Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
fail2ban [Le 08/05/2018, 10:21]
82.251.241.242 [Généralités]
fail2ban [Le 15/01/2019, 17:51]
78.222.60.172 [Voire le status des jails]
Ligne 15: Ligne 15:
 ==== Généralités ==== ==== Généralités ====
  
-Fail2ban n'est pas a proprement parler un outil de sécurité. L'​objectif principal est d'​éviter de surcharger les logs du système avec des milliers de tentatives de connexion. +**Fail2ban n'est pas a proprement parler un outil de sécurité**. L'​objectif principal est d'​éviter de surcharger les logs du système avec des milliers de tentatives de connexion. 
-Un serveur avec un accès SSH sur le port standard, par exemple, recevra très rapidement des centaines, voire des milliers de tentatives de connexions provenant de différentes machines. Ce sont des attaques par force brute lancées par des robots. +Un serveur avec un accès SSH sur le port standard, par exemple, recevra très rapidement des centaines, voire des milliers de tentatives de connexions provenant de différentes machines. Ce sont généralement ​des attaques par force brute lancées par des robots.\\ 
-Fail2ban en analysant les logs permet de bannir les IP au bout d'un certain nombre de tentatives ce qu limitera le remplissage des logs et l'​utilisation de la bande passante. Mais cela n'​améliore en rien la sécurité du service concerné. Si l'​accès SSH n'est pas suffisamment sécurisé (mot de passe faible par exemple) fail2ban n'​empêchera pas un attaquant d'​arriver à ses fins.\\+Fail2ban en analysant les logs permet de bannir les IP au bout d'un certain nombre de tentatives ce qui limitera le remplissage des logs et l'​utilisation de la bande passante. ​\\ 
 +**Mais cela n'​améliore en rien la sécurité du service concerné**. Si l'​accès SSH n'est pas suffisamment sécurisé (mot de passe faible par exemple) fail2ban n'​empêchera pas un attaquant d'​arriver à ses fins.\\
 Autrement dit, utilisez votre temps de travail pour analyser vos configurations et sécuriser vos services plutôt que d''​installer et paramétrer des outils d'​analyse de logs plus ou moins gourmands en ressources système. Autrement dit, utilisez votre temps de travail pour analyser vos configurations et sécuriser vos services plutôt que d''​installer et paramétrer des outils d'​analyse de logs plus ou moins gourmands en ressources système.
  
Ligne 28: Ligne 29:
 Une autre directive importante est **findtime** qui définit en secondes le temps depuis lequel une anomalie est recherchée dans les logs. Il ne faut pas mettre une valeur trop élevée (1 heure suffit) sans quoi la quantité de logs à analyser pourrait devenir très importante et donc avoir un impact sur les performances. Une autre directive importante est **findtime** qui définit en secondes le temps depuis lequel une anomalie est recherchée dans les logs. Il ne faut pas mettre une valeur trop élevée (1 heure suffit) sans quoi la quantité de logs à analyser pourrait devenir très importante et donc avoir un impact sur les performances.
  
-La directive **ingnoreip** permet de définir la liste des IP à ignorer. Il est utile d'y mettre sa propre IP afin de ne pas risquer de se faire bannir.+La directive **ignoreip** permet de définir la liste des IP à ignorer. Il est utile d'y mettre sa propre IP afin de ne pas risquer de se faire bannir.
  
 Il faut créer le fichier dans **/​etc/​fail2ban/​jail.d/​custom.conf** (ou un autre nom de votre choix) contenant : Il faut créer le fichier dans **/​etc/​fail2ban/​jail.d/​custom.conf** (ou un autre nom de votre choix) contenant :
Ligne 38: Ligne 39:
 maxretry = 3</​code>​ maxretry = 3</​code>​
  
-  * ingnoreip ​⇒ votre IP (ici 124.32.5.48) en plus de l'​interface de bouclage ;+  * ignoreip ​⇒ votre IP (ici 124.32.5.48) en plus de l'​interface de bouclage ;
   * bantime = 86400 soit 24 heures   * bantime = 86400 soit 24 heures
   * findtime = 3600 soit une heure   * findtime = 3600 soit une heure
-  * maxretry = 3 ⇒ une IP sera bannie après 3 tentative ​de connexion avortées.+  * maxretry = 3 ⇒ une IP sera bannie après 3 tentatives ​de connexion avortées.
  
 ==== Configurer fail2ban pour les services actifs ==== ==== Configurer fail2ban pour les services actifs ====
  
-Pour spécifier à **fail2ban** quels services il doit surveiller, il faut activer les « jails » (prisons) ​correspondant.+Pour spécifier à **fail2ban** quels services il doit surveiller, il faut activer les « jails » (prisons) ​correspondantes.
  
 Si vous regardez le fichier **/​etc/​fail2ban/​jail.conf**,​ dans la partie //jail// vous trouverez des blocs du type : Si vous regardez le fichier **/​etc/​fail2ban/​jail.conf**,​ dans la partie //jail// vous trouverez des blocs du type :
Ligne 56: Ligne 57:
 </​file>​ </​file>​
 Il indique : Il indique :
-  * **port** = les ports à bloquer ​avec les règles [[:​iptables]] ;+  * **port** = les ports à bloquer ​au moyen des règles [[:​iptables]] ;
   * **logpath** = l'​emplacement des fichiers de log à surveiller ;    * **logpath** = l'​emplacement des fichiers de log à surveiller ; 
   * **backend** = le moteur de surveillance des logs.   * **backend** = le moteur de surveillance des logs.
Ligne 70: Ligne 71:
 Il est bien entendu inutile d'​activer des prisons pour des services qui ne sont pas utilisés sur le serveur. Il est bien entendu inutile d'​activer des prisons pour des services qui ne sont pas utilisés sur le serveur.
  
-Si vous avez besoin de spécifier un port (par exemple, quand SSH n'est pas en écoute sur un port standard, un fichier de log particulier, ​oun un nombre de tentatives différent de la valeur par défaut, précisez-le :+Si vous avez besoin de spécifier un port (par exemple, quand SSH n'est pas en écoute sur un port standard, un fichier de log particulier, ​ou un nombre de tentatives différent de la valeur par défaut, précisez-le :
  
 <file - /​etc/​fail2ban/​jail.d/​custom.conf > <file - /​etc/​fail2ban/​jail.d/​custom.conf >
Ligne 100: Ligne 101:
 </​code>​ </​code>​
  
-Pour plus d'​informations,​ référez-vous aux pages de //man//.+Pour plus d'​informations,​ référez-vous aux pages de //[[:man]]//.
  
 ==== Vérifier le bon fonctionnement de votre configuration Fail2Ban ​ ==== ==== Vérifier le bon fonctionnement de votre configuration Fail2Ban ​ ====
Ligne 149: Ligne 150:
 [[http://​www.fail2ban.org/​wiki/​index.php/​FAQ_french#​J.27utilise_Postfix_sur_mon_syst.C3.A8me_mais_je_n.27ai_pas_de_commande_.22mail.22._Comment_recevoir_les_notifications_par_mail.3F|FAQ Fail2ban]] [[http://​www.fail2ban.org/​wiki/​index.php/​FAQ_french#​J.27utilise_Postfix_sur_mon_syst.C3.A8me_mais_je_n.27ai_pas_de_commande_.22mail.22._Comment_recevoir_les_notifications_par_mail.3F|FAQ Fail2ban]]
  
-Il existe de nombreuses autres possibilités de configuration des actions : envoi automatiques de courriels au service « //abuse// » concerné, bannissement d'​utilisateur,​ envoi des IP et motif de bannissement à des service externes comme [[https://​www.abuseipdb.com/​|AbuseIPDB]],​ etc.+Il existe de nombreuses autres possibilités de configuration des actions : envoi automatiques de courriels au service « //abuse// » concerné, bannissement d'​utilisateur,​ envoi des IP et du motif de bannissement à des service externes comme [[https://​www.abuseipdb.com/​|AbuseIPDB]],​ etc.
  
 ==== Configurer les filtres ==== ==== Configurer les filtres ====
Ligne 173: Ligne 174:
 <​code>​fail2ban-regex /​var/​log/​apache2/​access.log /​etc/​fail2ban/​filter.d/​apache-badbots.conf</​code>​ <​code>​fail2ban-regex /​var/​log/​apache2/​access.log /​etc/​fail2ban/​filter.d/​apache-badbots.conf</​code>​
  
 +===== Gestion du bannissement =====
 +
 +==== Voire le status des jails ====
 +Pour savoir si votre jail est actif, vous devriez le voir affiché, après avoir taper cette commande :
 +<​code>​fail2ban-client status</​code>​
 +//Cette commande affiche tous les jails que fail2ban traite.//
 +
 +
 +Pour savoir si une de vos jails de votre fail2ban a bannis une ou plusieurs IP, taper cette commande :
 +<​code>​fail2ban-client status [Nom du jail]</​code>​
 +//Cette commande va afficher le nombre de tentative lu dans vos logs, le nombre de bannis et, le plus intéressant,​ les IPs qui sont bannis temporairement.//​
 +
 +==== Dé-bannir une IP de l'un de vos jails ====
 +Une de vos adresse IP se retrouve blacklisté suite à une mauvaise manips répété ou un teste de sécurité. Vous pouvez le retirer de la liste des IP blacklisté de fail2ban avec cette commande :
 +<​code>​fail2ban-client set [nom du jail] unban [IP concerné]</​code>​
 +
 +==== Bannir manuellement une IP sur l'un de vos jails ====
 +Vous voulez tester plus rapidement l'​interdiction d'un accès d'un PC, ou bloqué une personne malveillante. Renseigner son IP dans cette commande : 
 +<​code>​fail2ban-client set [nom du jail] ban [IP à bannir]</​code>​
 +<note important>​Une fois la commande validé, votre pare-feu, iptables, va empêcher la machine en question de ce connecté. ATTENTION, de ne pas mettre votre propre adresse IP, si le faite à distance.</​note>​
  
 ===== Alternatives à fail2ban ===== ===== Alternatives à fail2ban =====
  • fail2ban.txt
  • Dernière modification: Le 24/03/2023, 10:40
  • par 78.196.241.242