fail2ban et IPv6
By Pierre-Alain B on Sunday, October 20 2013, 12:02 - Permalink
Fail2ban est un outil indispensable pour surveiller les tentatives d'accès frauduleuses à des serveurs. Quand un nombre déterminé d'actions offensantes ont été vues (dans les logs de vos serveurs SSH, FTP, HTTP...), alors fail2ban bannit l'IP mal intentionnée (grâce à iptables).
Malheureusment, la version 0.8.6 de fail2ban ne supporte que l'IPv4. Des travaux sont en cours à ce sujet et la version 0.9 (qui sera libérée bientôt) devrait contenir tout le nécessaire. En attendant, il existe un petit script que l'on peut déployer en suivant les instructions détaillées ici : http://www.crazyws.fr/dev/systeme/fail2ban-et-ipv6-sur-votre-serveur-debian-squeeze-MG970.html
Pour archive, je recopie aussi les grandes étapes à effectuer :
cd /root wget http://thanatos.trollprod.org/sousites/fail2banv6/fail2ban-ipv6.tar.bz2 mkdir fail2ban-ipv6 tar xvjf fail2ban-ipv6.tar.bz2 -C fail2ban-ipv6
puis on sauvegarde les fichiers qui ont être patchés :
cd /usr/share/fail2ban/server cp filter.py filter.py.withoutipv6 cp failregex.py failregex.py.withoutipv6
on teste le déploiement du patch :
cd /usr/share/fail2ban/server/ patch -p0 --dry-run < /root/fail2ban-ipv6/patchfilter.patch patch -p0 --dry-run < /root/fail2ban-ipv6/regex.patch
puis on l'applique pour de vrai :
patch -p0 < /root/fail2ban-ipv6/patchfilter.patch patch -p0 < /root/fail2ban-ipv6/regex.patch
et on rajoute les fichiers de configuration nécessaires :
cp /root/fail2ban-ipv6/ip64tables.sh /usr/bin/ chmod 755 /usr/bin/ip64tables.sh cp /root/fail2ban-ipv6/iptables46-multiport.conf /etc/fail2ban/action.d/ chmod 644 /etc/fail2ban/action.d/iptables46-multiport.conf
On peut alors re-paramétrer les services à surveiller...
Pour SSH par exemple :
[ssh] enabled = true filter = sshd action = iptables46-multiport[name=ssh, port=ssh, protocol=tcp] logpath = /var/log/auth.log maxretry = 6
ou pour Apache (en utilisant la spécificité du multi-port) :
[apache] enabled = true filter = http,https action = iptables46-multiport[name=ssh, port="http,https", protocol=tcp] logpath = /var/log/apache*/*error.log maxretry = 6