Sur Debian 12, fail2ban recherche un fichier auth.log (pour ssh), sinon il refuse de se lancer. Le contournement consiste à indiquer à fail2ban qu'il doit utiliser systemd désormais :
[sshd]
mode = normal
port = ssh
backend = systemd
logpath = journal
apt install fail2ban -y
Le répertoire des fichiers de conf est : /etc/fail2ban
On ne travaille pas sur le fichier par défaut (.conf). On va créer une copie : jail.local
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Indiquer à fail2ban que vous utilisez le pare-feu nftables et plus iptables. (Debian est passé à nftables depuis 3 ans.. fail2ban lui, est resté sur iptables par défaut).
nano /etc/fail2ban/jail.local
Cherchez les 2 lignes suivantes et modifiez-les comme ci-dessous :
banaction = nftables-multiport # au lieu de iptables-multiport
banaction_allports = nftables-allports # au lieu de iptables-allports
A partir de là, vous pouvez configurer ce que vous souhaitez. Fail2ban fonctionne par "jail".. Pour chacun des services entre [] dans jail.local, fail2ban cible un service qui peut être installé et utilisé sur votre serveur et "tente" de le protéger.
Pour désactiver un jail, on place enabled = false sous la section concernée... Par défaut, les jails sont actifs autrement.
[sshd]
enabled = false
# ...
Pour configurer un anti-ddos pour apache, nous devons d'abord écrire un filtre pour que fail2ban puisse correctement lire les logs d'apache, puis écrire un jail spécifique dans jail.local
cd /etc/fail2ban/filter.d
nano apache-ddos.conf
[Definition]
failregex = ^ -.*"(GET|POST).*"
ignoreregex =
nano /etc/fail2ban/jail.local
(rapprochez-vous des jail concernant apache pour plus de cohérence, et rajoutez :)
[apache-ddos]
port = http,https
logpath = /var/log/apache2/*.log
maxretry = 200
bantime = 6m
findtime = 1m
filter = apache-ddos
N'oubliez pas de relancer fail2ban !
systemctl restart fail2ban
Vérifiez si fail2ban s'est bien lancé (si vous n'avez pas fait d'erreur de syntaxe !)
systemctl status fail2ban
Faîtes des tests de fonctionnement avec ddosify par exemple (voir l'article consacré au sujet). Regardez vos logs fail2ban en direct :
tail -f /var/log/fail2ban.log