Installation de Fail2Ban sur CentOs 6 et jail SSH

you are bannedFail2ban est un outils utile, développé en Python, permettant de bloquer un certain nombre d’attaques contre votre serveur. Fail2ban s’appuie sur vos logs pour bloquer des IPs tentant de passer à travers certaines RegEX interdites, tel que des tentatives de login abusives SSH, FTP, des tentatives de Forced browsing pour votre site web (par exemple, si quelqu’un recherche votre espace admin, “File does not exist” sera inscrit dans vos logs apache et fail2ban pourra bloquer les personnes qui recherchent trop de répertoires non existants).

De part cet article, nous allons voir comment installer Fail2Ban et l’utiliser pour bloquer les tentatives d’attaques par SSH.

Commandes utiles Lastb / SSH

Pour bien vous rendre compte de l’ampleur des attaques par brute force sur le protocol SSH, je vous propose quelques petites commandes utiles :

Top 5 des cinq comptes les plus récemment attaqués :

# lastb | awk ‘{print $1}’ | sort | uniq -c | sort -rn | head -5

Top 5 des cinq comptes les plus attaqués :

# awk ‘gsub(“.*sshd.*Failed password for (invalid user )?”, “”) {print $1}’ /var/log/secure* | sort | uniq -c | sort -rn | head -5

Top 5 des IP lançant le plus d’attaques :

# awk ‘gsub(“.*sshd.*Failed password for (invalid user )?”, “”) {print $3}’ /var/log/secure* | sort | uniq -c | sort -rn | head -5

Maintenant que vous prenez conscience de l’ampleur des attaques qui sont dirigées contre votre serveur, passons maintenant à l’installation de notre sauveur : fail2ban.

Installation & Configuration de Fail2Ban

Tout dabord, on installe le repo RPMFORGE :

# rpm -ivh http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

Nous installons ensuite fail2ban :

# yum install fail2ban

Maintenant, passons à la configuration, nous renommons notre fichier jail.conf en jail.local :

# cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Puis nous allons l’éditer, à savoir que le fichier jail.local est composé de deux sections :

  • DEFAULT permet de donner des options globales.
  • les sections de configurations pour chaque service (SSH,FTP,TFTP …), nous allons modifier la section “[ssh-iptables]”

# vim /etc/fail2ban/jail.local

// On peut éditer nos valeurs par defaut tel que bantime ou maxretry

// Nous allons nous interesser à [ssh-iptables], en gras, les valeurs à modifier, à noter que si vous utiliser un port différent, il faudra modifier la valeur “port=ssh” :

enabled  = true
filter   = sshd
action   = iptables[name=SSH, port=ssh, protocol=tcp] sendmail-whois[name=SSH, dest=votremail@mail.com, sender=fail2ban@alexnogard.com] logpath  = /var/log/secure
maxretry = 3

Démarrez fail2ban et attendez vos premiers mails :) :

# service fail2ban start

fail2ban mail

Pour aller plus loin

Ceci est une configuration des plus basiques pour fail2ban, si vous voulez aller plus loin, vous pouvez par exemple :

  • Exécuter une action lorsqu’un host se fait bannir (un nmap par exemple), à configurer dans /etc/fail2ban/action.d/hostsdeny.conf
  • Changer le message par défaut du mail, à configurer dans : /etc/fail2ban/action.d/mail.conf
  • Ajouter des RegEx pour être plus fin lors de vos bans, à configurer dans : /etc/fail2ban/filter.d/

Si vous avez aimé cet article, n’hésitez pas à utiliser les boutons qui se trouvent ci-dessous. Les commentaires sont là si vous avez des questions / remarques ;).

About Alexandre Nogard

Check Also

Bash Scripting : Creation de vhosts automatisés avec Certificat Lets Encrypt

Bonjour à tous, Il y a quelques temps, j’avais posté un script bash permettant de …

Owncloud 9.X : Sécurisez votre serveur avec Fail2Ban sur Centos 7.X – Part3

Dans ce tuto, nous allons voir comment protéger Owncloud 9.X des brutes-forces sur les tentatives …

OpenVAS : Configuration & Utilisation sur CentOs 7 – Part 2

OpenVAS est installé sur notre CentOs 7, nous allons maintenant aborder la partie configuration et …

Leave a Reply

Your email address will not be published. Required fields are marked *