Bloquea ataques por fuerza bruta con ‘Fail2ban’

Publicado el 22 de Marzo ,2008 por ekhtor

Fail2ban es una aplicación que nos permite bloquear ciertas direcciones cuyos intentos fallidos de conexión sean superiores a un número determinado por el usuario. Es muy potente ya que aprovecha la robustez de iptables y los log’s del sistema para conseguir su función.

Básicamente consiste en leer los log’s y busca patrones comunes como el número de veces que se intenta conectar un usuario de forma fallida (esto se encuentra en /var/log/auth.log) y a partir de los datos obtenidos actúa en función de la configuración que le hayamos dado.

Primero instalamos el programa:

sudo apt-get install fail2ban

Fail2ban se ejecuta como demonio y para configurarlo modificaremos el archivo /etc/fail2ban/jail.conf. Éste archivo se divide en secciones, como por ejemplo [DEFAULT], debajo de ésta se encontrarán las reglas a seguir en el caso predeterminado. Si por ejemplo, queremos que nuestro servicio ssh tenga unas reglas distintas, crearemos una nueva sección llamada [ssh].

Las reglas más importantes son las siguientes:

-enabled = true/false Indica si la regla estará activa o no.
-port = ssh,sftp,http… El puerto del servicio.
-filter = sshd El parámetro de búsqueda en el fichero de log.
-logpath = /var/log/auth.log El fichero de log donde realizaremos la búsqueda.
-maxretry = 3 Numero de conexiones permitidas antes de bloquear la ip.
-bantime = 300 Tiempo en segundos que permanecerá baneada la ip.

Ahora conociendo un poco más las reglas, si quisiéramos banear durante 10 minutos las ip’s, que realizan 5 conexiones fallidas a nuestro sistema por ssh crearíamos la siguiente sección en el archivo /etc/fail2ban/jail.conf:

[ssh]
enabled = true
port = ssh,sftp
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 6000

Y ahora, para que la configuración tenga efecto, debemos reiniciar el deminio con:

sudo /etc/init.d/fail2ban restart

Para comprobar que funciona, podemos probar a conectarnos desde otra máquina y hacer 5 intentos fallidos. Veremos que no nos deja conectar más veces y en el servidor si introducimos el siguiente comando, veremos las ip’s que están actualmente bloqueadas:

sudo iptables -L fail2ban-ssh

Entradas Relaccionadas

Publica un comentario

Comenta