Protéger son serveur avec Fail2ban

Formation

À Paris

Prix sur demande

Appeler le centre

Avez-vous besoin d'un coach de formation?

Il vous aidera à comparer différents cours et à trouver la solution la plus abordable.

Description

  • Typologie

    Formation

  • Lieu

    Paris

Grâce à cette formation vous pourrez acquérir les connaissances nécessaires qui vous permettrons d’ajouter des compétences à votre profil et obtenir de solides aptitude qui vous offriront de nombreuses opportunités professionnelles.

Les sites et dates disponibles

Lieu

Date de début

Paris ((75) Paris)
Voir plan
7 Cité Paradis, 75010

Date de début

Consulter

Questions / Réponses

Ajoutez votre question

Nos conseillers et autres utilisateurs pourront vous répondre

À qui souhaitez-vous addresser votre question?

Saisissez vos coordonnées pour recevoir une réponse

Nous ne publierons que votre nom et votre question

Les Avis

Le programme

Introduction du cours

Si comme moi vous êtes un peu (beaucoup) paranoïaque sur les bords et que la simple idée qu'une personne extérieure accède ou mette le souk sur votre serveur vous est insupportable, ce cours est fait pour vous !

En effet si votre machine contient toutes vos données ou vos sites web par exemple, une personne malveillante qui réussit à rentrer dessus peut vite provoquer un désastre, surtout si bêtement vous n'avez pas pris la peine d'effectuer des sauvegardes.

Et même sans accéder directement à la machine, on peut vite vous pourrir la vie si vous ne protégez pas votre machine.

Il convient par conséquent de s'assurer que n'importe qui ne fasse pas n'importe quoi chez vous :) .

Ce cours vient en complément d'autres mesures de sécurité que je ne détaillerai pas ici. Ne croyez pas que Fail2ban protégera tout seul votre serveur !

Qu'est-ce que Fail2ban et à quoi ça sert ?

Bonne question ! Fail2ban est un service qui s'installe sur un serveur linux et qui permet de contrôler les tentatives de connexion de divers services sous linux (ssh, apache, mail etc).
Ainsi on peut limiter le nombre de tentatives consécutives d'une même personne et la bloquer pour un temps plus ou moins long.

Ce service est surtout destiné à limiter les effets des robots qui tentent de se connecter sur votre machine en testant des milliers voir des millions de combinaisons de mot de passe (le brute force) ou qui tente de flooder (surcharger) votre machine.

Alors on attaque ? 

ETAPE N°1 - Installation de Fail2ban

Je pars du principe que vous êtes connecté en tant que root sur votre machine, sinon il faudra rajouter sudo à toutes les commandes que je vais donner.

Lançons l'installation : 

aptitude install fail2ban

Laissez l'installation de dérouler.

Commençons par créer une copie du fichier de configuration en local. Cela a pour but de pouvoir personnaliser plus facilement la configuration de fail2ban sans toucher au coeur du service :

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.localETAPE N°2 - Configurer Fail2ban

Rentrons maintenant dans le vif du sujet. Ici je vais vous montrer comment surveiller les erreurs pour SSH et Apache, mais sachez que Fail2ban est très complet et permet de surveiller énormément de services du système. 
D'ailleurs ce n'est pas compliqué, la configuration de l'ensemble des services se fait de la même manière alors si vous avez compris à la fin du tutoriel pour ces deux-là, vous y arriverez pour tout le reste !

Allons voir maintenant à quoi ressemble notre fichier de configuration.

Le début du fichier n'est pas très intéressant mais il y a quand même un paramètre de configuration important :

ignoreip = 127.0.0.1/8 bantime = 600 maxretry = 3

Certes mais encore ?

Eh bien à moins que vous soyez aussi parfait que moi (:D), vous pourriez bien un jour vous tromper en tapant votre mot de passe lorsque vous vous connectez en SSH par exemple.

Le paramètre ignoreip permet donc d'ajouter une voir plusieurs IP à la liste blanche de Fail2ban et ainsi d'éviter aux plus étourdis de se bannir soi-même.

Maintenant que c'est fait, descendez jusqu'à la partie concernant les jails (prisons). Comme vous pouvez le constater, une prison est un bloc de 5 lignes concernant un service en particulier.

[ssh] enabled = false port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 6

Ici donc nous allons gérer la prison SSH, c'est à dire l'authentification à votre serveur. Pour activer celle-ci, il suffit de passer le paramètre enabled à true. Vous pouvez aussi réduire le nombre de tentatives avant le blocage de l'IP de l'intrus avec le paramètre maxretry.

Le paramètre port contient pour l'instant "ssh" qui est en réalité un alias de 22, qui est le port par défaut de SSH sous linux. Si vous avez changé ce port dans la configuration de SSH (et je vous le recommande vivement), vous devrez indiquer à Fail2ban le port utilisé.

Ce qui nous donne une fois terminé notre configuration :

[ssh] enabled = true port = 4526 filter = sshd logpath = /var/log/auth.log maxretry = 3

J'ai mis 4526 comme j'aurais pu mettre n'importe quel nombre, cela dépend du port que vous aurez défini.

Passons maintenant à Apache, il sufit de descendre un peu.

[apache] enabled = false port = http,https filter = apache-auth logpath = /var/log/apache*/*error.log maxretry = 6

Là aussi il suffit de changer le paramètre enabled à true pour activer la prison. Pour le port, sauf si vous avez effectué une configuration particulière d'Apache, vous pouvez laisser tel quel.

M'sieur M'sieur j'ai une question, j'ai regardé un peu plus bas et je vois d'autre prison pour Apache, c'est quoiiiiii ?

Bonne question ! Fail2ban étant un service très bien conçu, il possède plusieurs prisons pour Apache comme apache-noscript et apache-overflows .

Elles permettent respectivement de se prémunir contre les scans d'url à la recherche de faille de sécurité et contre les attaques de type DDOS sur le service Apache.

Vous pouvez les activer et je vous conseille même de mettre maxretry = 1 pour apache-noscript, histoire de bétonner la chose.

Voilà, notre configuration est terminée !

Comme je l'ai expliqué plus haut, Fail2ban peut protéger d'autres services, comme un serveur mail ou FTP, n'hésitez pas à activer ces prisons si vous en avez besoin.

ETAPE N°3 - Tester la configuration

Commençons par redémarrer le service pour que notre configuration soit prise en compte :

fail2ban-client reload

Maintenant nous allons consulter le fichier log de fail2ban pour vérifier que tout est OK :

tail -n 300 /var/log/fail2ban.log

Vous devriez avoir quelque chose comme ça. Si vous n'avez les mêmes informations, vous avez sûrement raté quelque chose. Je vous invite alors à relire le tutoriel du début.

fail2ban.filter : INFO Set maxRetry = 3 fail2ban.filter : INFO Set findtime = 600 fail2ban.actions: INFO Set banTime = 600 fail2ban.jail : INFO Jail 'ssh' started fail2ban.jail : INFO Jail 'apache' started

La commande "tail" que j'ai donné au-dessus reste valable lorsque vous voulez voir si quelqu'un a tenté de faire n'importe quoi, on obtient alors un résultat comme ceci :

fail2ban.actions: WARNING [ssh] Ban XXX.136.60.164 fail2ban.actions: WARNING [ssh] Unban XXX.136.60.164

Vous voilà protégé (en partie) contre les vilains méchants ! 

Je n'ai ici montré que la configuration de base de Fail2ban, par exemple vous pouvez modifier le chemin et le loglevel (le niveau d'erreur que le service enregistre) du fichier log dans le fichier /etc/fail2ban/fail2ban.conf

Voilà, j'espère que ce cours vous a plu et s'il manquait quelque chose ou si vous avez des questions, n'hésitez pas !

  • #
Waouh !

Très heureux de voir que nos cours vous plaisent, déjà 3 pages lues aujourd'hui ! Vous pouvez continuer la lecture de nos cours en devenant un Roomie, un membre de la communauté d'OpenClassrooms. C'est gratuit !

Vous pourrez aussi suivre votre avancement dans le cours, faire les exercices et discuter avec les autres Roomies.

S'inscrire Se connecter
  • Thématiques du cours : Linux Sécurité Serveurs

Chaque cours est créé par un professeur ou un expert dans le domaine. Il est composé d'une ou plusieurs parties et peut comporter du texte, des images (schéma, illustration) et des vidéos. Chaque partie d'un cours certifiant est ponctuée d'exercices de 2 types : Des quiz corrigés automatiquement Des devoirs libres (exemple : créer un site web avec des consignes précises). Ces devoirs sont évalués par les pairs. Chaque devoir est corrigé 3 fois par 3 autres élèves, dans un processus en double aveugle, selon un barème fixé par le professeur. La note finale est la moyenne des 3 notes reçues sur le devoir. 50% des devoirs corrigés par les pairs obtiennent quasiment les 3 mêmes notes, avec une variance inférieure à 1. La recherche académique montre d'ailleurs que l'évaluation par les pairs peut être aussi précise que celle des professeurs.

Appeler le centre

Avez-vous besoin d'un coach de formation?

Il vous aidera à comparer différents cours et à trouver la solution la plus abordable.

Protéger son serveur avec Fail2ban

Prix sur demande