:::: MENU ::::

Configuración básica de ufw y fail2ban

Instalar UFW:

# Instalar UFW si no está
sudo apt update && sudo apt install ufw -y

# Reglas básicas: permitir web y SSH (OJO si el puerto del SSH no es 22)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 22/tcp

# Activar el firewall
sudo ufw enable

Instalar fail2ban

sudo apt install fail2ban

Configurar fail2ban para bloquear intentos por SSH

Editar el archivo /etc/fail2ban/jail.local

[sshd]
backend=systemd   # Necesario en debian 12 (logs del sistema van con journal)
enabled=true
maxretry=3
findtime=1h
bantime=24h

Configurar fail2ban para bloquear bots pesados que dan 404

Crear un archivo /etc/fail2ban/filter.d/nginx-404.conf

[Definition]
# El regex busca la IP al inicio y el código 404 después de la petición
failregex = ^<HOST> -.*"(GET|POST|HEAD) .* HTTP\/.*" 404 .*$
ignoreregex =

Añadir a /etc/fail2ban/jail.local

[nginx-404]
enabled=true
port=http,https
filter=nginx-404
logpath=/var/log/nginx/*.access
maxretry=50
findtime=15m
bantime=24h

Configurar fail2ban para bloquear fuerza bruta en wordpress

Crear un archivo /etc/fail2ban/filter.d/wordpress.conf

[Definition]
failregex = ^<HOST> .* "POST /wp/wp-login.php .* 200 \d* "https?://.*"$

Añadir a /etc/fail2ban/jail.local

[wordpress]
enabled = true
filter = wordpress
logpath = /var/log/apache2/*access.log
maxretry = 5
bantime = 24h

Reiniciar fail2ban tras configuraciones

sudo systemctl start fail2ban

Monitorizar ufw y bloqueos

Logs de fail2ban

/var/log/fail2ban.log

Bloqueos activos

sudo ufw status numbered
sudo iptables -L -n | grep -A 15 f2b-sshd

Bloqueos de fail2ban por jail

# Para ver los bloqueos de SSH
sudo fail2ban-client status sshd

# Para ver los bloqueos de tus errores 404
sudo fail2ban-client status nginx-404



Hey! Qué opinas sobre el artículo?