BLOQUEAR ATAQUES POR FUERZA BRUTA CON FAIL2BAN

BLOQUEAR ATAQUES POR FUERZA BRUTA CON
‘Fail2ban’


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:

#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:
[DEFAULT]
-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 = sshdlogpath = /var/log/auth.log
maxretry = 5
bantime = 6000

Y ahora, para que la configuración tenga efecto, debemos reiniciar el deminio con:
#/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:

#iptables -L fail2ban-ssh


1 comentario:

Anónimo dijo...

vale, bien tu explicacion, solo tengo una duda ojala y me la puedas resolver, vale, tengo una conexion infinitum en mi casa en la cual puedo desmilitarizar para que todas las peticiones entren a mi servidor, mas sin embargo y todo esto repito todo esto es para fines de estudio con tinuando solo tengo instalado el servidor ssh el cual acceso solamente de manera local pero quiero que solo ese servicio sea visible fuera de mi red mas sin embargo a pesar de seleccionar el servidor para que sea visible fuera de mi red no lo he podido lograr pero si quiero accesar en mi red pues si, cuando esto no deberia de suceder, ojala me entiendas, para que me heches la mano, la verdad es que estamos planeando hacer un cluster como proyecto escolar y pues se necesita administrar ese rollo.