Fail2ban escanea logs (por ejemplo /var/log/auth.log), bloqueando IPs que muestran comportamientos maliciosos.
Es una gran herramienta en la que se pueden configurar jaulas para los diferentes tipos de servicios que tengáis en vuestro servidor, protegiendo de esta manera intentos de acceso con contraseña errónea (fuerza bruta) o incluso bots maliciosos en busca de páginas comunes entre tus webs y que suelen obtener un 404.
Bloqueando reincidentes de Fail2ban
Con éste sencillo script, podéis crear una tarea en cron para que cada minuto lea el fichero en el que Fail2ban registra su actividad, en busca de IPs que ya han sido baneadas, pero siguen insistiendo.
#!/bin/bash #Look for "already" banned IP if tail -n 1 /var/log/fail2ban.log | grep -q already then IP=$(awk -F' ' 'END{print $6}' /var/log/fail2ban.log) else exit fi #Look if IP is already in hosts.deny if grep -q $IP /etc/hosts.deny then exit else echo ALL: $IP >> /etc/hosts.deny fi
Con esto conseguimos, principalmente, 3 cosas:
- Que se aplique a todas las jaulas sin tener que modificar el action una a una.
- Que Fail2ban no consuma recursos en banear IPs reincidentes.
- Reducir el tiempo máximo que un atacante por fuerza bruta tendría para intentar saltar la seguridad del sistema.
Por ejemplo, en un intento de acceso ssh por fuerza bruta, un atacante podría intentar autenticarse 3 veces antes de ser baneado por el tiempo definido en la jaula.
Si vuelve a intentarlo durante ese tiempo de baneo, su IP acabará en el archivo ‘hosts.deny’ y ante un nuevo intento de conexión al sistema obtendría el siguiente mensaje: «ssh_exchange_identification: Connection closed by remote host». Y tampoco podría acceder a ninguna de las páginas webs u otros servicios, su IP sería siempre rechazada.
Con esta solución cabría la posibilidad de bloquear IPs que posteriormente puedan ser utilizadas por otros usuarios sin fines maliciosos, por lo que si albergáis muchas páginas web, quizás sería una buena práctica restaurar cada cierto tiempo un archivo hosts.deny vacío.
Hasta aquí otro de los artículos en informaticapremium sobre lo último en hardware, sistemas, almacenamiento, redes, programación, diseño web, recuperación de datos y actualidad del mundo de la técnica y la informática. Nos vemos en breve.