Fail2ban controlla i tentativi di accesso e, quando un IP sbaglia troppe volte, lo blocca per un po' nel firewall. Contro i bot che provano password è molto efficace e non consuma quasi nulla.
Installarlo
# Ubuntu / Debian
apt install -y fail2ban python3-systemd
# Rocky Linux
dnf install -y epel-release && dnf install -y fail2ban
Configurarlo
Crea /etc/fail2ban/jail.local (non modificare jail.conf: viene sovrascritto con gli aggiornamenti):
[DEFAULT]
bantime = 1h
findtime = 10m
maxretry = 5
# Metti qui l'IP di casa tua per non bloccare mai te stesso
ignoreip = 127.0.0.1/8 ::1
[sshd]
enabled = true
backend = systemd
Con questa configurazione, un IP che sbaglia 5 volte in 10 minuti resta bloccato per un'ora. La riga backend = systemd lo fa funzionare anche su Debian 12, che non scrive più il classico file auth.log.
systemctl enable --now fail2ban
systemctl restart fail2ban
Vedere cosa sta facendo
fail2ban-client status sshd
Ti dice quanti tentativi ha rilevato e quali IP tiene bloccati in questo momento.
Se blocchi te stesso
Aspetta che scada il tempo di blocco, oppure entra dalla console VNC e sbloccati:
fail2ban-client set sshd unbanip 198.51.100.7
Fail2ban è un buon livello di protezione in più, ma la vera protezione è non avere password da indovinare: accedi con una chiave SSH e disattiva le password.