Esta tarde estaba configurando un servidor para un proyecto personal que he alquilado en un proveedor de estos baratillos y nada más instalar CentOS y conectarme por SSH, lo primero que me sale es un mensaje indicando que ha habido siete intentos de inicio de sesión incorrectos…

Hay que ver cómo está el patio, ¡la máquina encendida llevaba cinco minutos encendida! Así que después de cambiar en el servicio SSH que solo se pueda autenticar mediante claves, lo siguiente ha sido instalar Fail2ban.

Instalación de Fail2ban en CentOS

El primer paso es instalar el repositorio EPEL, si no lo tiene hecho ya, claro.

dnf install epel-repo

Después tenemos que instalar el paquete fail2ban.

dnf install fail2ban

Configuración de Fail2ban

En mi caso, al menos por ahora, voy a dejar la configuración por defecto. En el fichero /etc/fail2ban/jail.conf, está toda la configuración por si queréis modificarla.

Creación de la jaula para SSHD

Hay que crear el fichero que contendrá la configuración de la jaula para el servicio SSHD. Creamos el fichero /etc/fail2ban/jail.d/sshd.local y dentro ponemos el siguiente contenido:

[sshd]
enabled = true

Activación del servicio Fail2ban

Una vez que hemos completado la configuración de Fail2ban, lo siguiente es activar el servicio para que empiece a vigilar por nosotros. 😉

systemctl enable --now fail2ban
Created symlink /etc/systemd/system/multi-user.target.wants/fail2ban.service → /usr/lib/systemd/system/fail2ban.service.

Verificación del estado del servicio Fail2ban

Verificamos que se ha iniciado correctamente con la jaula definida.

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

Comprobamos cómo va la cosa

Dejamos pasar un par de minutos y vamos a ver cuántas IP bloqueadas tenemos.

fail2ban-client get sshd banned
['xxx.xxx.xxx.xxx', 'xx.xx.xx.xxx', 'xx.xx.xxx.xxx', 'xxx.xxx.xxx.xxx', 'xx.xx.xxx.xxx', 'xxx.xxx.xxx.xxx', 'xx.xxx.xxx.xxx', 'xx.xxx.xxx.xx', 'xxx.xxx.xx.xx', 'xx.xx.xxx.xxx']