Fail2ban

Instale y configure Fail2ban para bloquear temporalmente fallas repetidas de autenticación SSH en un servidor Ubuntu.

Antes de ejecutar

Estos ejemplos están dirigidos a un servidor Ubuntu que utiliza systemd y un firewall compatible. Los nombres de los paquetes, las fuentes de registro y los servidores de firewall difieren según la distribución. Fail2ban reduce los intentos repetidos de inicio de sesión; no reemplaza las claves SSH, las actualizaciones ni los controles de acceso. Mantenga disponible una sesión administrativa existente y la recuperación de la consola, y evite realizar pruebas desde su única dirección de trabajo. Verifique que la cárcel SSH lea los registros de autenticación reales y que su acción de firewall sea efectiva. No incluya en la lista blanca redes amplias sin comprender el riesgo.

Después de aplicar los cambios, compruebe en una nueva sesión SSH que puede iniciar sesión y que el funcionamiento es el esperado. Mantenga abierta la sesión actual hasta que la comprobación sea satisfactoria para poder restaurar la configuración si fuera necesario.

Ejemplos

Instale Fail2ban en Ubuntu e inicie su servicio. La instalación requiere privilegios de administrador.

sudo apt update
sudo apt install fail2ban
sudo systemctl enable --now fail2ban

Cree una anulación de cárcel separada en /etc/fail2ban/jail.d/sshd.local; no edite el jail.conf empaquetado. El ejemplo utiliza registros de systemd y bloquea una dirección durante una hora después de cinco fallas en diez minutos.

Abra el archivo con nano:

sudo nano /etc/fail2ban/jail.d/sshd.local
[sshd]
enabled = true
backend = systemd
maxretry = 5
findtime = 10m
bantime = 1h

Valide la configuración, reinicie el servicio e inspeccione la cárcel SSH. Asegúrese de que el resultado identifique el origen del registro y la acción del firewall previstos.

sudo fail2ban-client -t && sudo systemctl restart fail2ban && sudo fail2ban-client status sshd

Inspeccione los registros de servicio recientes si la cárcel no se inicia o no se detectan fallas.

sudo journalctl -u fail2ban -n 100 --no-pager

Si una dirección autorizada fue prohibida, elimine la prohibición de esa dirección de una sesión administrativa existente o de la consola del servidor. Reemplace la dirección de ejemplo.

sudo fail2ban-client set sshd unbanip 192.0.2.10

Referencias oficiales

Revisado el 27 de octubre de 2026