fail2ban - Guía básica UNIX
fail2ban
fail2ban es un juego de programas de cliente y servidor para limitar intentos de autentificación por fuerza bruta que nos permite ejecutar acciones predeterminadas para determinados eventos (inicio, prohibición/ban,…).
La ruta por defecto es /etc/fail2ban/. La configuración global se realiza en el fichero jail.local y las acciones personalizadas se almacenan en el directorio action.d. Todos los ficheros son en formato .ini y no pueden utilizar variables de bash puesto que trabaja como servidio de systemd.
# fail2ban + ntfy
Vamos a configurar fail2ban para que avise vía curl a ntfy cuando se activen determinados eventos.
Instalar dependencias
sudo apt update
sudo apt install fail2ban curl -yCrear acción personalizada ntfy
sudo tee /etc/fail2ban/action.d/ntfy.conf >/dev/null <<'EOF'
[Definition]
actionstart = /usr/bin/curl -sS -H "Title: OMV: fail2ban iniciado" -H "Priority: low" \
-d "fail2ban activo en <name>" "<ntfy_url>"
actionstop = /usr/bin/curl -sS -H "Title: OMV: fail2ban detenido" -H "Priority: default" \
-d "fail2ban detenido en <name>" "<ntfy_url>"
actionban = /usr/bin/curl -sS -H "Title: OMV: IP baneada" -H "Priority: high" \
-H "Tags: no_entry,warning" \
-d "Jail=<name> IP=<ip> Host=<host> Time=<time_iso8601>" "<ntfy_url>"
actionunban = /usr/bin/curl -sS -H "Title: OMV: IP desbaneada" -H "Priority: default" \
-d "Jail=<name> IP=<ip> Host=<host> Time=<time_iso8601>" "<ntfy_url>"
[Init]
# URL de tu servidor ntfy
ntfy_url =
EOFConfigurar jail.local
# /etc/fail2ban/jail.local
[DEFAULT]
# Tiempo que la IP permanecerá bloqueada (1h)
bantime = 1h
# Ventana de tiempo para contar intentos fallidos (10m)
findtime = 10m
# Número de intentos permitidos antes del ban
maxretry = 5
# Backend de logs (systemd para OMV/Debian 11+)
backend = systemd
# Acción de notificación
action = ntfy
[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
action = ntfy[ntfy_url=https://ntfy.sh/topic]Reiniciar fail2ban
sudo systemctl restart fail2banProbar notificaciones
sudo fail2ban-client set sshd banip 203.0.113.77
sudo fail2ban-client set sshd unbanip 203.0.113.77Revisar logs
sudo tail -f /var/log/fail2ban.logActualizar el canal de ntfy
# Editamos el fichero de configuración de ntfy
sudo -e /etc/fail2ban/action.d/ntfy.conf
# Reiniciamos el servicio de fail2ban
sudo systemctl reload fail2ban