Protéger les accès SSH avec fail2ban

Après l'attaque de ce week-end et après une lecture des logs d'accès ssh, je me suis décidé à mettre en place une gestion automatique des bannissements d'IPs.

L'idée est simple : bannir les IPs qui tentent de passer le compte root en "Brut de force".
Il est évident que l'accès root n'est pas autorisé en ssh (PermitRootLogin no) tout comme les mots de passe (PasswordAuthentication no), et que de telles attaques ne peuvent pas aboutir, mais c'est pour le principe ;-).

[bash]
root@borsalino ~> cat /var/log/secure.1 | grep "Failed password for root" --count
1812

Sur les conseils de Titax, je me suis penché sur fail2ban, mais à la différence de la méthode proposée par Thierry, j'ai préféré utiliser le dépôts dries.

Si vous ne l'avais pas installé, vous en trouverez la config ici.

Pour installer fail2ban :

[bash]
root@borsalino ~> yum --enablerepo=dries install fail2ban

Une fois le service installé, il faut le configurer, ça ce passe dans /etc/fail2ban.conf, le fichier et très bien documenté vous pourrez y régler le nombre de tentative, la durée du bannissement, les services concernés (ssh mais possibilité de le mettre en place pour apache), et l'envoi de mail lors d'un bannissement.

Ensuite, pour activer le service :

[bash]
root@borsalino ~> /sbin/chkconfig --add fail2ban
root@borsalino ~> /sbin/service fail2ban start
Attribution - Partage dans les Mêmes Conditions 4.0 International