Nouveau tutoriel sur la mise en place de Fail2Ban qui permettra de bannir les IP qui tentent une attaque BruteForce votre machine. L’attaque BruteForce consiste à tenter de se connecter à une machine en utilisant un dictionnaire (Base contenant les mot de passe les plus utilisées) en espérant que l’administrateur ai laissé les identifiants de base. Fail2Ban va donc ban les IP à chaque fois qu’un utilisateur se sera trompé X fois de mot de passe.Il existe une multitudes de bonnes pratiques à adopter (Désactiver la connexion en ssh par l’utilisateur root, activer l’authentification par clé à la place de celle par mot de passe) mais la mise en place d’une telle solution permet de sécuriser sa machine tout en gardant ses vielles (mais pas forcément bonnes) habitudes. Dans le cas présent je prend l’exemple du ssh mais sachez que Fail2Ban pourra sécuriser bien d’autres protocoles.

 

Passons maintenant au tutoriel. Dans un premier temps comme d’habitude on met à jour notre machine et on installe Fail2Ban.

apt update && apt upgrade && apt install fail2ban

On va ensuite faire une copie du fichier de configuration afin de garder une trace de la configuration initiale en cas de problème.

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Puis on peut commencer la modification du fichier /etc/fail2ban/jail.conf
nano /etc/fail2ban/jail.conf

Plusieurs options pour chaque paramètre s’offre a vous.

ignoreip désigne toutes les IP qui ne pourront pas être ban même si elle dépasse les limitation, en gros il s’agit des IP qui ne peuvent pas vous attaquer. Pour indiquer plusieurs adresses il suffit de mettre un espace entre chaque tout en laissant celle déjà indiqué.

bantime indique le nombre de secondes pendant laquelle une IP sera banni. Nous ne bannons définitivement les IP car si une IP publique correspond a un hôtel par exemple tous les futurs résidents de l’hôtel ne pourront plus se connecter à votre machine tan disque une seule personne a chercher a vous attaquer. De plus cela permet de prévenir en cas d’erreur humaine. Il est conseille comme vous pourrez le voir dans l’article d’où est tiré ce tutoriel que bannir 10 minutes une IP est peu efficace nous conseillons plus une journée ce qui correspond a 86 400 secondes.

maxretry indique le nombre d’essai d’une IP avant que celle ci se fasse ban.

destemain permet de renseigner une adresse email afin d’être prévenu en cas de ban d’une adresse.

Repérer la ligne contenant action = %(action_)s afin de la modifier en action = %(action_mw)s pour indiquer dans le mail plus d’informations comme le pays (théorique) d’où vient L’IP etc.

 

Pour définir ce que nous allons surveiller, passons au bloc Jails et plus spécifiquement celui correspondant au SSH.

Comme vous vous en doutez la variable enabled permet de définir si on active la surveillance du processus en question (true) ou si elle est désactivé (false). Il est vivement recommandé de désactiver la surveillance sur les processus qui ne sont pas accessible depuis l’extérieur.

La variable port indique le port à bloquer, la variable filter indique le nom du processus, la variable logpath indique le chemin vers le ficher de log et enfin la variable maxretry indique comme au dessus, le nombre d’essai maximum avant le ban de l’IP.

Il suffit maintenant de sauvegarder votre fichier puis de redémarrer le service.

service fail2ban restart

Puis nous pouvons vérifier que le service fonctionne.

service fail2ban status

Enfin vous pouvez vous rendre sur le fichier de log afin de vous rendre compte.

cat /var/log/fail2ban.log

 

Article réalise grâce au tutoriel de Pulseheberg (Hébergeur français que je ne peut que vous conseiller) ainsi que Ubuntu-fr.org.

N’hésitez pas si vous avez la moindre question.