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
fail2ban [Le 09/05/2020, 22:53]
91.170.93.64 [Installation]
fail2ban [Le 24/03/2023, 10:40] (Version actuelle)
78.196.241.242 [Généralités]
Ligne 2: Ligne 2:
  
 ---- ----
-====== Bannir des IP avec fail2ban ======+====== Bannir des IP avec fail2ban ​- v2020 ======
  
 {{ :​fail2ban_logo.png?​90}} {{ :​fail2ban_logo.png?​90}}
Ligne 13: Ligne 13:
 <​code>​systemctl start fail2ban</​code>​ <​code>​systemctl start fail2ban</​code>​
  
-puis d'en créer le démarage ​automatique+puis d'en créer le démarrage ​automatique
 <​code>​systemctl enable fail2ban</​code>​ <​code>​systemctl enable fail2ban</​code>​
  
-Et enfin de controler ​la bonne installation+Et enfin de contrôler ​la bonne installation
 <​code>​systemctl status fail2ban</​code>​ <​code>​systemctl status fail2ban</​code>​
  
-Si la réponse comporte du rouge et le mot "​failed"​ " sur la ligne commençant par "​Active :", les dernières lignes du message ​indique ​les raisons de l'​échec et permettant ​sa correction avant un nouvel essai, à tenter après lecture du reste de cet article.+Si la réponse comporte du rouge et le mot "​failed"​ " sur la ligne commençant par "​Active :", les dernières lignes du message ​indiquent ​les raisons de l'​échec et permettent ​sa correction avant un nouvel essai, à tenter après lecture du reste de cet article.
  
 Si la réponse comporte du vert et les mots "​active (running)"​ sur la ligne commençant par "​Active :", le service est installé et actif. Si la réponse comporte du vert et les mots "​active (running)"​ sur la ligne commençant par "​Active :", le service est installé et actif.
Ligne 27: Ligne 27:
 ==== 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 ​ne doit pas être considéré comme un outil de sécurisation absolu d'un service**. Ses objectifs sont d'​éviter de surcharger les logs du système avec des milliers de tentatives de connexion ​et de limiter la portée des attaques répétées provenant d'une même machine.\\
 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.\\ 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 qui limitera le remplissage des logs et l'​utilisation de la bande passante. \\ 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. \\
 +Ceci va également rendre les attaques par force brute ou par dictionnaire beaucoup plus longues mais ce n'est pas une sécurité absolue contre ce type d'​attaque.
 +
 **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.\\ **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.
  
 ==== Paramétrage par défaut ==== ==== Paramétrage par défaut ====
Ligne 47: Ligne 49:
 <​code>​[DEFAULT] <​code>​[DEFAULT]
 ignoreip = 127.0.0.1 124.32.5.48 ignoreip = 127.0.0.1 124.32.5.48
-findtime = 3600 +findtime = 10m 
-bantime = 86400+bantime = 24h
 maxretry = 3</​code>​ maxretry = 3</​code>​
  
   * ignoreip ⇒ 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 secondes (24 heures+  * findtime ​10m (10 minutes), 3600 secondes (une heure
-  * findtime ​3600 secondes ​(une heure)+  * bantime ​24h (24 heuresou 86400 secondes
   * maxretry = 3 (une IP sera bannie après 3 tentatives de connexion avortées).   * maxretry = 3 (une IP sera bannie après 3 tentatives de connexion avortées).
  
Ligne 70: Ligne 72:
 Il indique : Il indique :
   * **port** = les ports à bloquer au moyen des 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.
 Les valeurs représentées ainsi **%(sshd_logs)s** sont des variables qui sont définies dans d'​autres fichiers de configuration : **paths_common.conf** et **paths_debian.conf** notamment. Les valeurs représentées ainsi **%(sshd_logs)s** sont des variables qui sont définies dans d'​autres fichiers de configuration : **paths_common.conf** et **paths_debian.conf** notamment.
Ligne 121: Ligne 123:
 Attention ! Pensez à régler la valeur de **bantime** sur un temps assez court si vous faites ce genre d’essais afin de pouvoir vous reconnecter à votre serveur. Attention ! Pensez à régler la valeur de **bantime** sur un temps assez court si vous faites ce genre d’essais afin de pouvoir vous reconnecter à votre serveur.
  
-Côté serveur vous pouvez également surveiller ce qu'il se passe avec la commande ​+Côté serveur vous pouvez également surveiller ce qu'il se passe avec la commande
 <​code>​sudo fail2ban-client status sshd</​code>​ <​code>​sudo fail2ban-client status sshd</​code>​
 qui dans ce cas vous retournera le statut de la prison « sshd » (avec le nombre de tentatives échouées et la liste des IP bannies) qui dans ce cas vous retournera le statut de la prison « sshd » (avec le nombre de tentatives échouées et la liste des IP bannies)
Ligne 140: Ligne 142:
  
 Il est possible de recevoir un courriel après chaque bannissement d'une adresse IP.\\ Il est possible de recevoir un courriel après chaque bannissement d'une adresse IP.\\
-Pour cela vous pouvez définir globalement l'​adresse du destinataire dans la section [DEFAULT] du fichier **/​etc/​fail2ban/​jail.d/​custom.conf** : +Pour cela vous pouvez définir globalement l'​adresse du destinataire dans la section [DEFAULT] du fichier **/​etc/​fail2ban/​jail.d/​custom.conf** :
 <​code>​destemail = adresse@example.com</​code>​ <​code>​destemail = adresse@example.com</​code>​
 Il faut que le système soit correctement configuré pour l'​envoi de courriels, par exemple avec [[ssmtp|ssmtp]]. Il faut que le système soit correctement configuré pour l'​envoi de courriels, par exemple avec [[ssmtp|ssmtp]].
Ligne 159: Ligne 161:
 <​code>​sudo systemctl restart fail2ban</​code>​ <​code>​sudo systemctl restart fail2ban</​code>​
  
-Des informations complémentaires sont disponibles sur le site officiel de Fail2ban : +Des informations complémentaires sont disponibles sur le site officiel de 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]] [[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]]
  
Ligne 180: Ligne 182:
 ==== Tester les filtres ==== ==== Tester les filtres ====
  
-Si vous avez crée vos propres filtres, ​modifier ​des filtres existants, ou si vous voulez simplement tester un filtre sur un fichier de log particulier,​ l'​outil fail2ban-regex est fait pour vous.\\+Si vous avez créé ​vos propres filtres, ​modifié ​des filtres existants, ou si vous voulez simplement tester un filtre sur un fichier de log particulier,​ l'​outil fail2ban-regex est fait pour vous.\\
  
-Par exemple pour teste le filtre apache-badbots sur le fichier journal d'​Apache :+Par exemplepour tester ​le filtre apache-badbots sur le fichier journal d'​Apache :
  
 <​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>​
Ligne 203: Ligne 205:
  
 ==== Bannir manuellement une IP sur l'un de vos jails ==== ==== 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 bloquer une personne malveillante. Renseignez son IP dans cette commande : ​+Vous voulez tester plus rapidement l'​interdiction d'un accès d'un PC, ou bloquer une personne malveillante. Renseignez son IP dans cette commande :
 <​code>​fail2ban-client set [nom du jail] banip [IP à bannir]</​code>​ <​code>​fail2ban-client set [nom du jail] banip [IP à bannir]</​code>​
 <note important>​Une fois la commande validée, votre pare-feu, iptables, va empêcher la machine en question de se connecter. ATTENTION, de ne pas mettre votre propre adresse IP, si vous le faites à distance.</​note>​ <note important>​Une fois la commande validée, votre pare-feu, iptables, va empêcher la machine en question de se connecter. ATTENTION, de ne pas mettre votre propre adresse IP, si vous le faites à distance.</​note>​
Ligne 209: Ligne 211:
 ===== Alternatives à fail2ban ===== ===== Alternatives à fail2ban =====
  
-  * [[https://yalis.fr/​git/​yves/​pyruse/|Pyruse]] Pyruse ​est une alternative ​légère ​à fail2ban qui utilise systemd-journal +  * [[https://www.sshguard.net/|SSHGuard]] est une alternative à Fail2ban présent dans les dépôts Ubuntu 
-  * [[https://​github.com/​clearlinux/​tallow|Tallow]] ​Tallow ​est une alternative légère à fail2ban ​qui utilise systemd-journal+  * [[https://​github.com/​clearlinux/​tallow|Tallow]] est une alternative légère à Fail2ban ​qui utilise systemd-journal 
  
 ===== Ressources ===== ===== Ressources =====
  • fail2ban.1589057597.txt.gz
  • Dernière modification: Le 09/05/2020, 22:53
  • par 91.170.93.64