Fail2Ban son un conjunto de programas servidor – cliente cuya configuración esta pensada para limitar los intentos de acceso por fuerza bruta, sin embargo el riesgo de usar credenciales débiles, sigue presente. Una forma de asegurar real seria implementando mecanismos de 2 factores de autenticación, si se quieren proteger los servicios que estemos corriendo.

Un usuario local es capaz de inyectar mensajes en el syslog y usando una Fail2ban jail, podría desencadenar un Dos Attack contra cualquier ip. Los archivos están en:

/etc/fail2ban/*

Para tener esta herramienta hay que instalarla:


sudo apt update && sudo apt upgrade -y 
sudo apt install fail2ban

Existen dos archivos de configuración importantes, dónde se define el pid:

/etc/fail2ban/fail2ban.conf

Y donde ocurre la magia, editando este archivo, puedes configurar un tiempo por defecto de baneo antes de meter una ip en la whitelist, aquí se controla el comportamiento del Fail2Ban:

/etc/fail2ban/jail.conf

Es aconsejable hacer una copia de estos archivos de configuración antes de tocarlos, por si acaso:

sudo cp /etc/fail2ban/fail2ban.conf  /etc/fail2ban/fail2ban.local 
sudo cp /etc/fail2ban/jail.conf  /etc/fail2ban/jail.local

El archivo Jail.conf se divide en dos partes, la parte que se aplica a todos los servidcos y la parte que mete los servicios entre corchetes como:

[sshd], [apache-auth], [squid].

El significado de algunos parámetros que nos podemos encontrar es:

bantime: tiempo de banneo por defecto 10 minutos
findtime: tiempo en que una acción, para una ip, puede ser ejecutada.por defecto 10 minutos.
maxretry: o el número de intentos fallidos antes de que una acción sea baneada, un aviso.

Para usar Fail2ban correctamente, te muestro algunas maneras para hacer un hardening de la seguridad. Se necesitan privilegios de root para ejecutar las siguientes acciones. Habilitar El Fail2ban en tu server y comprobar todas las jails, hacemos uso de comandos de systemd:

systemctl start fail2ban 
systemctl enable fail2ban

Miramos el status y activamos las jails con fail2ban-client:

fail2ban-client status Status |- Number of jail: 1 `- Jail list: sshd


sshd jail esta habilitada por defecto.

Mirar el Fil2ban log Esta localizado en la ruta /var/log/fail2ban.log:

2022-11-12 18:30:22,206 fail2ban.server [947]: INFO Starting Fail2ban v0.11.2 2022-11-12 18:30:22,216 fail2ban.observer [947]: INFO Observer start… 2022-11-12 18:30:22,229 fail2ban.database [947]: INFO Connected to fail2ban persistent database '/var/lib/fail2ban/fail2ban.sqlite3' 2022-11-12 18:30:22,230 fail2ban.jail [947]: INFO Creating new jail 'sshd' 2022-11-12 18:30:22,300 fail2ban.jail [947]: INFO Jail 'sshd' uses pyinotify {} 2022-11-12 18:30:22,323 fail2ban.jail [947]: INFO Initiated 'pyinotify'backend

Otra forma seria comprobar el status de ciertas jails.

fail2ban-client status

si quieres tener todos los fallos de conexion por ssh banneados del Fail2ban:

root@test-server:~# fail2ban-client status sshd Status for the jail: sshd |- Filter | |- Currently failed: 14 | |- Total failed: 715 | - File list: /var/log/auth.log - Actions |- Currently banned: 7 |- Total banned: 17 `- Banned IP list: 177.47.115.67 118.130.133.110 68.183.62.73 202.65.154.110 106.12.102.114 61.184.247.3 218.92.1.150

También se podría banear permanentemente un ip, se podría igualar el tiempo de baneo a -1 lo que sería equivalente a un ban permanente, puede que de un error .

Starting fail2ban: ERROR NOK: (‘database disk image is malformed’,)’ pero funcionaria, también se podría igualar a mas tiempo 1 year por ejemplo.

(bantime = -1)

Como de podría desbannear una ip blokeada:
Habria que entrar en iptables para ver la ip que esta siendo baneada en tu server:

iptables -n -L

Se podría usar el comando grep, luego buscar la jail que esta banneando la IP

root@test-server:~# grep -E ‘Ban.*61.184.247.3’ /var/log/fail2ban.log 2019-03-14 13:09:25,029 fail2ban.actions [25630]: NOTICE [sshd] Ban 61.184.247.3 2019-03-14 13:52:56,745 fail2ban.actions [25630]: NOTICE [sshd] Ban 61.184.247.3

Y procedemos a desbanear:

fail2ban-client set unbanip

Como meter en lista blanca un ip en Fail2ban

fail2ban-client set addignoreip
sudo fail2ban-client set sshd addignoreip 203.93.83.113 These IP addresses/networks are ignored: `- 203.93.83.113

Puedes ver todas las IPs que están en la whitelist usando:

fail2ban-client get ignoreip
Categorías: Hacking

0 comentarios

Deja una respuesta

Marcador de posición del avatar