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 fail2banFail2ban 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 restartPara 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
0 comentarios:
Publicar un comentario en la entrada