
Tengo una configuración simple de servidor web Apache y tablas de IP básicas (ufw) para un servidor de desarrollo. En mis registros veo líneas como esta:
[Fri May 16 10:10:36.258369 2014] [:error] [pid 15926] [client 69.147.158.130:8396] script '/var/www/html/wp-login.php' not found or unable to stat
No estoy ejecutando WordPress en absoluto y me doy cuenta de que se trata de un intento menor de pirateo (existen ataques mucho más sofisticados contra Apache). Sin embargo, me gustaría bloquear automáticamente esta dirección IP (temporalmente) sin instalar un IDS/IPS como Snort.
Solo estoy buscando una forma sencilla de bloquear una dirección que intenta conectarse a wp-admin o wp-login. ¿Existe algún módulo de Apache que pueda manejar algo como esto?
Respuesta1
Si bien está pidiendo claramente una solución para bloquear direcciones IP, no creo que sea una buena solución.
La razón es que estos intentos que ves provienen de varias direcciones IP que probablemente estén controladas por un sistema maestro. Esa es simplemente la naturaleza de cómo ocurren los ataques DDoS y los intentos de piratería hoy en día.
En lugar de ello, debería considerar la posibilidad de implementarModSeguridad. Es un módulo de Apache que actúa como firewall a nivel de servicio web. Analiza todo el tráfico web que llega a su sitio y, si detecta un comportamiento aberrante conocido, bloquea el acceso con una respuesta "403: Prohibido".
Ahora bien, el lado ligeramente negativo es que MidSecurity tiene docenas de conjuntos de reglas predeterminadas que funcionan bien, pero que pueden causar falsos positivos. Entonces, cuando lo implementes, lo más probable es que necesites modificarlo durante las primeras semanas.
Pero el resultado neto es que después de este período de "conocerle", tendrá una herramienta que protege heurísticamente su sitio de malos comportamientos conocidos. Y no sólo mantener una lista de direcciones IP.
Respuesta2
No recomendaría intentar hacerlo automáticamente, recomendaría bloquear la IP manualmente. El único sistema automatizado que usaría sería un script o algo similar que analice sus registros en busca de errores similares.
Para bloquear una IP con ufw
sudo ufw deny from <ip address>
con iptables
sudo iptables -I INPUT -s <ip address> -j DROP
Respuesta3
La solución que me funciona es fail2ban como se indica en el comentario de @ceejayoz
@iain: de hecho, esto está duplicado; gracias por señalarlo.