Outils pour utilisateurs

Outils du site


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édentesRévision précédente
Prochaine révision
Révision précédente
140-pare-feu-fail2ban:20-config-sshd [le 01/07/2025 à 13:26] – [authentifications ratées] prof140-pare-feu-fail2ban:20-config-sshd [le 05/07/2025 à 14:25] (Version actuelle) – [fail2ban a-t-il de la mémoire ?] prof
Ligne 254: Ligne 254:
 Si la structure ajoutée par fail2ban est toujours intacte, les sets ont quant-à-eux été purgés. Si la structure ajoutée par fail2ban est toujours intacte, les sets ont quant-à-eux été purgés.
  
-===== Analyse plus profonde ===== +==== Aménagement du filtre ==== 
-==== authentifications ratées ====+Certains filtres, dont ''sshd.conf'', proposent des modes de fonctionnement. Ces modes agissent sur le choix des expressions régulières utilisées pour le filtrage.
  
-Dans la configurationnous avons autorisé deux essaiscependant, le malveillant n'a eu droit qu'à un seul essai par adresse IP. La raison se trouve dans le filtre ''sshd.conf''.+Des explicationsplus ou moins sibyllinespeuvent se trouver dans le fichier de filtre lui-même. Pour ''sshd.conf'', nous trouvons: 
 +<html><pre class="code"> 
 +<span class="txtb"># Parameter "mode": normal (default), ddos, extra or aggressive (combines all) 
 +# Usage example (for jail.local): 
 +#   [sshd] 
 +#   mode = extra 
 +#   # or another jail (rewrite filter parameters of jail): 
 +#   [sshd-aggressive] 
 +#   filter = sshd[mode=aggressive] 
 +#</span> 
 +<span class="hly">mode = normal</span> 
 +</pre></html> 
 +Hélas, la maîtrise de ces modes suppose non seulement celle des expressions régulières, mais également celle des [[https://fail2ban.readthedocs.io/en/latest/filters.html|règles de création des filtres]]. Si le mode «ddos» peut laisser supposer qu'il s'intéresse essentiellement aux attaques par déni de service distribuées, le mode «extra» est plus obscur.
  
-Il faut avoir une bonne habitude des expressions régulières pour espérer maîtriser les filtres  que l'on trouve dans le répertoire ''filter.d''. Ces filtres ont pour objectif de fonctionner avec le plus large éventail possible de configurations logicielles. +Le mode «normal» sélectionné par défaut est généralement satisfaisant. 
 +===== Analyse plus profonde =====
  
-Il se trouve qu'ici, deux lignes de log sont capturées par le filtre, lors d'une authentification ratée, si bien que fail2ban comptabilise deux essais alors qu'il n'y en a eu qu'un seul. 
  
-Ceci est dû au fait que l'attaquant a essayé un nom d'utilisateur au hasard, qui ne correspond à aucun utilisateur connu. Ceci a déjà déclenché une alerte, et l'authentification ratée, bien que découlant de ce fait, en a déclenché une autre. 
  
-Un utilisateur légitime aurait effectivement droit à une erreur avant de se faire coincer. 
 ==== fail2ban a-t-il de la mémoire ? ==== ==== fail2ban a-t-il de la mémoire ? ====
 Nous allons considérablement rallonger la durée de bannissement, pour vérifier ce qu'il se passerait pour les adresses bannies en cas de redémarrage de l'hôte: Nous allons considérablement rallonger la durée de bannissement, pour vérifier ce qu'il se passerait pour les adresses bannies en cas de redémarrage de l'hôte:
Ligne 311: Ligne 321:
  
 fail2ban a bonne mémoire. fail2ban a bonne mémoire.
 +
 +Dans la foulée, nous pouvons également vérifier qu'une commande comme:
 +  systemctl restart fail2ban
 +n'efface pas pour autant sa mémoire.
 +==== L'outil «fail2ban-client» ====
 +Cet outil sert essentiellement à contrôler le fonctionnement du serveur fail2ban. Le manuel fournit (en anglais) tous les détails de son utilisation.
 +Voici quelques-uns de ses usages:
 +  * **fail2ban-client ping** permet de savoir si le serveur est vivant. S'il l'est, il répond simplement: «pong»,
 +  * **fail2ban-client status** retourne l'état du serveur. exemple:\\ <code>Status
 +|- Number of jail: 1
 +`- Jail list: ssh</code>
 +  * **fail2ban-client start/stop/reload <JAIL>** permet de démarrer, arrêter, recharger la configuration d'une prison,
 +  * **fail2ban-client get <JAIL> banned** retourne la liste des adresses IP bannies dans la prison indiquée. Exemple: \\  <code>['1.202.223.2', '101.126.14.37', '101.126.151.131', '101.126.81.188', '101.126.88.203', '101.126.89.164', '101.126.91.34', '101.36.108.134', '101.36.122.23', '101.36.231.231', '102.140.97.134', '102.210.80.6', '102.215.218.114', '103.106.194.74', '103.112.54.86', '103.113.105.228', '103.116.177.252', '103.117.56.152', '103.120.227.88', '103.123.227.244', '103.137.194.125', '103.139.192.247']</code>Notons que le résultat est sous la forme d'un tableau python (fail2ban est écrit en python).
 +  * **fail2ban-client unban <IP> ... <IP>** Permet de sortir une liste d'adresses IP de prison, quelle que soit sa prison.
 +  * etc.
 +
Surveillance de sshd: Dernière modification le: 01/07/2025 à 13:26 par prof