Instalar y configurar Fail2Ban


Instalar y configurar Fail2Ban

Fail2Ban es una aplicación para prevenir el acceso de intrusos a un sistema baneando conexiones remotas que intentan acceder con métodos de fuerza bruta.

Para realizar las pruebas utilizaré una máquina virtual como servidor y otra como cliente (Ambas con Debian).

El primer paso es instalar en el servidor las aplicaciones openssh-server y fail2ban con el siguiente comando:

apt-get install openssh-server fail2ban -y

Al terminar la instalación, debemos configurar el archivo jail.com.

nano /etc/fail2ban/jail.conf

Dentro del archivo podemos configurar las siguientes opciones.

ignoreip: En esta opción se agregan los IPs que no estarán bajo las reglas que estipule la aplicación.

bantime: Es el tiempo en segundos que será baneada una IP que intente ingresar por fuerza bruta.

maxretry: Es la cantidad de reintentos de login.

Luego en el mismo archivo tenemos distintas aplicaciones a las cuales podemos proteger. En este manual configuraremos la aplicación SSH. Estas aplicaciones están en la sección JAIL.
En esta parte debemos configurar lo siguiente:
enabled = true (para habilitar la opción).
maxretry = Máximo de reintentos de login con SSH.


Se guardan los cambios y se reinicia el servicio fail2ban.

service fail2ban restart

Ahora vamos al cliente e intentamos loguearnos a SSH con un usuario y clave erróneos.

Veremos que después del tercer intento no podrá volver a conectarse hasta 60 segundos que es lo que configuramos en el archivo jail.conf.

Podemos revisar la tabla de iptables y ver como fail2ban agrego el IP.

Después de los 60 segundos, podemos revisar la tabla de iptables y no aparecerá el IP baneado. Si intentamos acceder desde el cliente nuevamente, será posible.

Para que un IP no se vea afectado por esto, es posible agregarlo en el archivo jail.conf en ignoreip. Si se necesita ingresar más de un IP, es posible agregarlo después de un espacio. Además se pueden agregar redes completas. Ejemplo:

ignoreip = 127.0.0.0/8 192.168.0.12 200.21.10.2