Fail2ban
fail2ban è un demone di sicurezza pensato principalmente per prevenire attacchi di forza bruta.
fail2ban legge i log delle applicazioni configurate, alla ricerca di eventi che indichino errori di autenticazione, e, se ne trova in un breve intervallo di tempo, allora banna gli indirizzi IP che hanno causato questi eventi.
Configurazione
fail2ban distribuisce dei file di configurazione con estensione .conf, che contengono i default e sono aggiornati dal proprio package manager. Per effettuare configurazioni specifiche, utilizzarli come modello per costruire un "omonimo" file .local.
nftables
Per usare nftables invece di iptables:
/etc/fail2ban/jail.local [DEFAULT] banaction = nftables banaction_allports = nftables[type=allports]
Regola personalizzata
1. creare un filtro personalizzato con una espressione regolare per identificare la linea di log che indica l'errore, ad esempio:
/etc/fail2ban/filter.d/nextcloud.local [Definition] failregex = Login failed: .* \(Remote IP: <HOST>\)
2. creare una regola per quando si attiva quel filtro.
/etc/fail2ban/jail.d/nextcloud.local [nextcloud] enabled = true port = http,https filter = nextcloud logpath = /var/www/nextcloud.example.org/data/nextcloud.log maxretry = 5 findtime = 180 bantime = 1800
Rimuovere ban manualmente
fail2ban-client set <jailname> unbanip <ip>