Administrer un VPS Classic – Modérer Fail2ban
Rappel : je suis sur un VPS Classic 1 (10 Go d'espace disque / 1Go de RAM) de chez OVH tournant sous Release 3 (CentOS 6.6Â – Webmin)
Failtoban est un processus qui épluche les logs (valeur logpath) et inscrit les IP coupables d'attaques dans iptables. Et il envoie un mail à chaque fois. C'est très bien… Sauf que des attaques, il y en a toutes les 5 min et j'en ai rapidement assez de me faire inonder de mails…
Où se trouvent les logs ?
IPtables SSH se trouve dans /var/log/secure
IPtables ProFTPD se trouve dans /var/log/proftpd/proftpd.log
Paramétrage
Ça se passe dans le fichier etc/fail2ban/jail.local (et non pas dans etc/fail2ban/jail.conf, ni dans etc/fail2ban/fail2ban.conf, ni dans etc/fail2ban/action.d/mail-whois.conf. On peut dire qu'ils s'y entendent pour compliquer les choses…)
Paramètre ignoreip
Pour ne pas risquer de m'auto-bannir, j'ajoute mon adresse IP (je suis en IP fixe) à la suite de 127.0.0.1 (séparée par un espace).
Mettons que mon IP soit 85.68.000.000
[DEFAULT]
ignoreip = 127.0.0.1 .249 .250 .251 213.186.33.13 8.33.137.102 213.186.33.62 85.68.000.000
Paramètre bantime
J'augmente bantime, la valeur durant laquelle l'IP est bannie (en nombre de secondes). Elle était à l'origine de 600 secondes (soit 10 min)
bantime = 600
Changement pour 6000 secondes (le hacker sera bloqué pendant 100 minutes)
Actions
Configuration de départ :
[ssh-iptables]
enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
sendmail-whois[name=SSH, dest=root, sender=postmaster@vpsXXXXXX.ovh.net]
logpath = /var/log/secure
maxretry = 5
[proftpd-iptables]
enabled = true
filter = proftpd
action = iptables[name=ProFTPD, port=ftp, protocol=tcp]
sendmail-whois[name=ProFTPD, dest=root, sender=postmaster@vpsXXXXXX.ovh.net]
logpath = /var/log/proftpd/proftpd.log
maxretry = 6
Je commente la ligne sendmail-whois. Attention, le # doit être placé en tout début de ligne ! Sinon erreur…
# sendmail-whois[name=ProFTPD, dest=root, sender=postmaster@vpsXXXXXX.ovh.net]
Puis redémarrage
service fail2ban restart
Cela a fonctionné, Fail2Ban arrête d'arroser à tout va…
Si on veut modifier le texte du mail envoyé (le mettre en Français par exemple), aller dans /etc/fail2ban/action.d/mail-whois.conf
# Option: actionban
# Notes.: command executed when banning an IP. Take care that the
# command is executed with Fail2Ban user rights.
# Tags: See jail.conf(5) man page
# Values: CMD
#
actionban = printf %%b "Hi,\n
The IP <ip> has just been banned by Fail2Ban after
<failures> attempts against <name>.\n\n
Here is more information about <ip>:\n
'whois <ip> || echo missing whois program'\n
Regards,\n
Fail2Ban"|mail -s "[Fail2Ban] <name>: banned <ip> from 'uname -n'" <dest>
Par contre, vider ce qui est derrière actionban = n'empêche pas l'envoi de mails
Quelques commandes utiles
Afficher les paramètres de jail.local
fail2ban-client -d
Pour lister les IP bannies
iptables -L -n --line