Hachther Blog > Hachther  > Sécurité minimale pour vos VPS avec Fail2Ban
Securité minimale pour vos VPS avec Fail2Ban

Sécurité minimale pour vos VPS avec Fail2Ban

Après avoir durement bossé sur son projet, après des mois de dur labeur, on est enfin prêt, prêt à le mettre en ligne : prêt à le partager avec le monde entier. Pour ce faire, on identifie un fournisseur, on achète un VPS et l’on y héberge notre projet afin de le rendre publiquement accessible. Cependant, étant publiquement accessible il devient visible par tout le monde et pas toujours des personnes bien intentionnées. C’est la raison pour laquelle nous vous proposons comment configurer une sécurité minimale sur votre VPS avec Fail2Ban.

Fail2Ban

C’est un outil permettant de bannir les adresses IP ayant des interactions suspectes avec votre VPS. Il analyse les fichiers logs (/var/log/apache/error_log par exemple) afin d’identifier tout comportement suspect et de bannir l’IP du responsable. Ladite détection est configurable en fonction de ce qui est recherché: trop d’échec de mot de passe, trop de requêtes 404 sur le serveur web, etc. Sa configuration se fait à travers des filtres et il en possède à son installation, quelques-uns très utiles (SSH, Apache, Mail, etc.).

Comme indiqué, Fail2Ban peut permettre par exemple de réduire les risques de casser votre mot de passe par brute forte, mais il ne peut pas vous aider dans un cas où le mot de passe est facile à deviner.

Installation et configuration

Installation

Dans notre exemple, nous utilisons un VPS avec Ubuntu 16.04: c’est ce qui sera considéré dans la suite de notre tutoriel. Ainsi dans la suite toutes les commandes saisies seront des commandes Ubuntu.

Commande d’installation:

sudo apt-get update
sudo apt-get install fail2ban

L’installation est assez simple, car il est déjà présent dans le dépôt par défaut d’Ubuntu. Maintenant, nous allons faire une configuration minable de Fail2Ban.

Paramètres généraux

La configuration de fail2ban se fait principalement dans le fichier “jail.conf” situé dans le dossier /etc/fail2ban/. Comme l’indique son nom (jail veut prison en anglais), c’est dans ce fichier que sont configurées les règles de mise en prison en cas d’événement suspect.

Ce fichier contient les paramètres qu’il faudra configurer afin d’avoir l’effet escompté. Il contient les paramètres tels que le temps de bannissement, l’action en cas de détection …

IPs à ignorer

...
ignoreip = 127.0.0.1/8
...

il s’agit de la liste des IPS qui doivent être ignorées par Fail2Ban. Vous pouvez passer un sous-réseau, une adresse IP ou alors un nom de machine. Vous devez utiliser le caractère “espace” comme séparateur et ainsi toutes requêtes venant d’eux seront ignorées.

Temps de bannissement

...
bantime  = 600
...

C’est le temps (en secondes) durant lequel une IP reste bannie une fois qu’elle est jetée en prison.

Paramètre de détection

...
findtime = 600
maxretry = 3
...

Ces deux paramètres permettent de configurer le comportement de détection. maxretry c’est le nombre de fois à partir duquel si un événement se répète alors une action doit être prise. Et findtime  c’est l’intervalle de temps (en secondes) durant lequel l’évènement doit se répéter  maxretry de fois.

Paramètre d’envoi par email

...
destemail = root@localhost
sendername = Fail2Ban
mta = sendmail
...

Si vous voulez recevoir des alertes par mail en cas de détection, vous devez configurer les paramètres ci-dessous:

  • destemail: c’est l’adresse email de celui qui doit recevoir les alertes.
  • sendername: c’est le nom avec lequel le mail doit être envoyé. expl: Hachther Security
  • mta: c’est le service que se chargera de l’envoi du mail: expl: sendmail, mail, …

Action en cas de détection

...
action = $(action_)s
...

C’est ici que l’on configure ce qui doit être fait en cas de détection d’une anomalie. Ce paramètre prend trois valeurs possible:

  • action_: dans ce cas, l’adresse IP est juste bannie.
  • action_mw: dans ce cas, l’adresse IP est bannie et un mail est envoyé en fonction des paramètres configurés plus haut. Ce mail contient les informations sur la propriétaire de cette adresse IP.
  • action_mwl:  Ici, l’adresse IP est bannie et un mail est envoyé. Mais contrairement au cas précédent, le mail contient en plus des informations sur le propriétaire de l’adresse IP, les logs.

Les configurations générales étant faites nous pouvons maintenant passer à la configuration des prisons.

Configuration des prisons

Une prison est une configuration permettant de dire à Fail2Ban de surveiller un service précis et de prendre les actions qui s’imposent en cas de comportement suspect.

La configuration des prisons se fait toujours dans le même fichier précédent (/etc/fail2ban/jail.conf): vers la fin du fichier, vous devriez voir “#JAILS“. C’est à partir de là que commence la configuration des prisons.

La configuration d’une prison se fait de la façon ci-dessous:

[jail_to_enable]
...
enabled = true
port    = [port]
logpath = [path to log]
...

Le port ici représente le port d’écoute et le logpath est le chemin absolu vers le fichier de log à analyser. Tous les paramètres que nous avons précédemment vus peuvent être configurés dans une prison avec des valeurs différentes si vous voulez avoir un comportement particulier.

Votre prison étant ainsi configurée, il vous suffit de redémarrer le service Fail2Ban pour qu’il prenne en compte les mises à jour.

sudo service fail2ban start

NB: la prison pour la protection des comptes SSH est activée par défaut.

Tags:
Comments:
  • Rosario
    January 7, 2023 at 5:55 am

    Greetіngs! This is mу firѕt vijsit to y᧐ur blog!
    Ꮃe aгe a collection of volunteers аnd starting a new project
    in а community іn tһe same niche. Yߋur blog pгovided us
    useful infoгmation tо wօrk on. You have dοne a marvellous job!

Leave a reply