Configurer Fail2ban (configurer un anti-ddos simple)
Information importante pour Debian 12
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
Installer Fail2ban
apt install fail2ban -y
Le répertoire des fichiers de conf est : /etc/fail2ban
1ère étape : Créer une copie du fichier principal
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
2ième étape : Configurer nftables
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
# ...
Configurer un anti-DDoS pour Apache
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
D'abord le filtre
cd /etc/fail2ban/filter.d
nano apache-ddos.conf
[Definition]
failregex = ^ -.*"(GET|POST).*"
ignoreregex =
À présent le jail
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
3ième étape : Relancer fail2ban
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
4ième étape : Tests de fonctionnement
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
↑ Haut de page