Si alguien ha intentado un ataque de fuerza forzada en mi sitio web, ¿cómo puedo bloquearlo?
Idealmente, quiero bloquear una IP si tengo muchas solicitudes http / Apache en un segundo.
fail2ban puede configurarse para hacer esto. Puede configurarlo para que se active en una coincidencia de expresiones regulares en un archivo de registro y si sucede demasiadas veces por minuto (no estoy seguro de que vaya a la segunda resolución, sino simplemente multiplique lo que estaba pensando por segundo por 60) y puede eliminar la IP del cliente en el filtro de paquetes de iptables o cualquier otra acción que desee realizar. O puede usar el módulo reciente de iptables y adaptar lo que he hecho aquí para los ataques de fuerza bruta SIP para usar con su servidor web:
fail2ban es una solución fácil de implementar en estos casos.
Agregue un archivo block-all-dem-noobs.conf
a su directorio filter.d
, algo como esto
[Definition]
failregex = ^<HOST> -.*"GET.*
Traducción: un RegExp para encontrar solicitudes GET
Luego crea una nueva entrada en tu jail.conf
, algo como esto
[block-all-dem-noobs]
enabled = true
port = http,https
filter = block-all-dem-noobs
logpath = /var/log/httpd/access.log
maxretry = 100
findtime = 5
bantime = 600
action = iptables[name=HTTP, port=http, protocol=tcp]
Traducción: revise mi archivo access.log
, luego bloquee durante 600 segundos (10 minutos) las direcciones IP que realizaron 100 solicitudes en 5 segundos
Un gran inconveniente, sin embargo, es que esto podría producir falsos positivos para los usuarios de NAT , ya que todos aparecer como una dirección IP para ti.
Puedes configurar Apache mod_evasive module. Este módulo proporciona una función muy básica al mantener una tabla hash de IP y páginas solicitadas y, cuando se supera un nivel de umbral en una página o sitio de destino, "bloqueará" la IP con un error 403 "Prohibido". Para los detalles de configuración, lea " Cómo detener un ataque DDoS Apache con mod_evasive ".
Lea otras preguntas en las etiquetas denial-of-service http webserver apache