====== fail2ban ======
Fail2ban escanea ficheros de log (por ejemplo ''/var/log/apache/error_log'') y bloquea IPs que muestran comportamientos sospechosos (muchos fallos de contraseña, etc).
* [[https://github.com/fail2ban/fail2ban|Repositorio oficial]]
Generalmente Fail2Ban se utiliza para actualizar las reglas del firewall para rechazar las direcciones IP por un determinado tiempo. Por defecto, Fail2Ban viene con filtros para varios servicios. Por ejemplo, para ver un resumen de intentos fallidos e IPs bloqueadas por accesos SSH:
fail2ban-client status sshd
Ejemplo de salida:
Status for the jail: sshd
|- Filter
| |- Currently failed: 5
| |- Total failed: 1431722
| `- File list: /var/log/auth.log
`- Actions
|- Currently banned: 6
|- Total banned: 11730
`- Banned IP list: 81.68.216.38 49.232.172.163 42.192.75.240 112.16.211.200 42.192.84.251 162.243.99.164
Si queremos quitar de la lista de bloqueos cierta IP:
fail2ban-client set sshd unbanip 123.123.123.123
===== SSH =====
Crear configuración local (NO edites ''jail.conf'')
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Editamos ''/etc/fail2ban/jail.local'':
[sshd]
enabled = true
port = 22222
filter = sshd
logpath = /var/log/auth.log
backend = systemd
maxretry = 3
findtime = 10m
bantime = 24h
Qué hace:
* 3 fallos en 10 minutos → ban
* Bloqueo durante 24 horas
* Funciona con journalctl y auth.log
Reiniciar fail2ban:
systemctl restart fail2ban
Ver si ya está bloqueando IPs:
fail2ban-client status
fail2ban-client status sshd
Salida típica:
Currently banned: 2
Banned IP list: 45.135.232.92 4.211.84.189