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:10-install-fail2ban [le 21/06/2025 à 13:32] – [paths-debian.conf] prof140-pare-feu-fail2ban:10-install-fail2ban [le 06/07/2025 à 15:50] (Version actuelle) prof
Ligne 76: Ligne 76:
  
 ==== jail.conf ==== ==== jail.conf ====
 +«jail» voulant dire: «prison». Ce fichier est le point de départ de la définition du comportement de fail2ban.
 +
 Ce très volumineux fichier contient essentiellement deux parties: Ce très volumineux fichier contient essentiellement deux parties:
 <html><pre class="code"> <html><pre class="code">
Ligne 101: Ligne 103:
 <b>banaction = iptables-multiport <b>banaction = iptables-multiport
 banaction_allports = iptables-allports</b></span> banaction_allports = iptables-allports</b></span>
-action_ = %(banaction)s[port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]+<span class="hlo">action_ = %(banaction)s[port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
 action_mw = %(action_)s action_mw = %(action_)s
             %(mta)s-whois[sender="%(sender)s", dest="%(destemail)s", protocol="%(protocol)s", chain="%(chain)s"]             %(mta)s-whois[sender="%(sender)s", dest="%(destemail)s", protocol="%(protocol)s", chain="%(chain)s"]
Ligne 112: Ligne 114:
 action_blocklist_de  = blocklist_de[email="%(sender)s", service="%(__name__)s", apikey="%(blocklist_de_apikey)s", agent="%(fail2ban_agent)s"] action_blocklist_de  = blocklist_de[email="%(sender)s", service="%(__name__)s", apikey="%(blocklist_de_apikey)s", agent="%(fail2ban_agent)s"]
 action_abuseipdb = abuseipdb action_abuseipdb = abuseipdb
-action = %(action_)s+<b>action = %(action_)s</b></span>
 </pre></html> </pre></html>
 Le surlignage jaune indique les paramètres qui seront pris par défaut pour un filtre donné. Nous verrons dans un exemple ce que ceci implique. Les parties en gras étant les plus remarquables en première approche: Le surlignage jaune indique les paramètres qui seront pris par défaut pour un filtre donné. Nous verrons dans un exemple ce que ceci implique. Les parties en gras étant les plus remarquables en première approche:
Ligne 119: Ligne 121:
   * **maxretry = 5**\\ le nombre d'essais auquel à droit cette IP durant le «findtime».   * **maxretry = 5**\\ le nombre d'essais auquel à droit cette IP durant le «findtime».
   * **maxmatches = %(maxretry)s**\\ le nombre de fois que l'IP a exécuté une opération frauduleuse durant le «findtime», par défaut égal au nombre d'essais.   * **maxmatches = %(maxretry)s**\\ le nombre de fois que l'IP a exécuté une opération frauduleuse durant le «findtime», par défaut égal au nombre d'essais.
-  * **backend = auto**\ La source d'informations à scruter, «auto» faisant référence aux sources vues plus haut.+  * **backend = auto**\\ La source d'informations à scruter, «auto» faisant référence aux sources vues plus haut. 
 + 
 +<note important>__//banaction = **iptables-multiport**\\ banaction_allports = **iptables-allports**//__\\ Notons que par défaut, ce serait à iptables de gérer les filtres, **ce qui ne doit pas être notre cas** puisque nous avons choisi nftables. Il faudre intervenir pour modifier ceci.</note> 
 +Le surlignage orange décrit les actions possibles lorsqu'il est décidé qu'une IP est malveillante. la syntaxe permettant de décrire ces actions n'est pas très complexe, mais laissons tomber pour l'instant : 
 +    * **action_**\\ action la plus simple, elle ne déclenche qu'un simple bannissement. 
 +    * **action_mw**\\ en plus du bannissement, un e-mail est envoyé au destinataire défini plus haut, avec un rapport «whois». 
 +    * **action_mwl**\\ e-mail avec rapport «whois» et les lignes de log qui ont déclenché l'alerte. 
 +    * **action_xarf**\\ Complètement inutile, dans la mesure où en plus du bannissement, elle envoie un e-mail au contact «abuse» décrit dans le whois, qui le plus souvent n'en a rien à faire... 
 +    * **action_cf_mwl**\\ concerne les abonnés à [[https://fr.wikipedia.org/wiki/Cloudflare|Cloudflare]], ce qui est ici hors-sujet. 
 +    * **action_blocklist_de**\\ hors de propos en première approche. 
 +    * **action_abuseipdb**\\ hors de propos en première approche. 
 +    * **action = %(action_)s**\\ L'action qui sera menée par défaut étant définie ici comme étant la plus simple: «action_» 
 +Pour approfondir la question, il est utile de lire les commentaires inscrits dans ''jail.conf'' et non retranscrits ici. 
 + 
 +<note important>En ce qui concerne l'action «//action_cf_mwl//» celle-ci n'affichera les lignes de logs que si le «backend» est un fichier de logs «à l'ancienne». Dans le cas  de journaux gérés par systemd il faudra, si l'on souhaite les ligne de logs, créer une action supplémentaire... </note> 
 + 
 +La seconde partie définit justement des «prisons» que l'on veut activer pour différents services. Aucune n'est active par défaut puisque le paramètre «enabled» est justement positionné par défaut sur «faux».  
 + 
 +Ce qui est inscrit dans cette seconde partie ne devrait servir que de modèle et **en aucun cas** être activé dans ce fichier. C'est ce que l'on va inscrire dans le répertoire ''jail.d'' qui sera décisif. 
 +==== action.d ==== 
 +Ce répertoire contient une collection d'actions. Il n'est absolument pas question d'analyser ces configurations tant qu'on n'est pas devenu un spécialiste de ce logiciel. Il est cependant utile d'identifier certaines configurations d'actions dont on peut retrouver les noms dans les définitions d'actions vues dans ''jail.conf''
 + 
 +En premier lieu: 
 +  nftables-allports.conf 
 +  nftables.conf 
 +  nftables-multiport.conf 
 +qui vont devoir remplacer les: 
 +  iptables-allports.conf 
 +  iptables.conf 
 +  iptables-multiport.conf 
 +Nous allons voir comment opérer proprement. 
 + 
 +D'autres actions comme les ''mail-*.conf'' peuvent être intéressantes à lire, si l'on souhaite modifier le contenu des notifications. 
 +==== filter.d ==== 
 +Ce répertoire contient les filtres spécifiques à chaque service que fail2ban sait surveiller. Nous y trouvons par exemple: 
 +  sshd.conf 
 +  dovecot.conf 
 +  postfix.conf 
 +Mais également une série de filtres concernant apache, nginx etc. 
 + 
 +Ce sont des [[https://fr.wikipedia.org/wiki/Expression_r%C3%A9guli%C3%A8re|expressions régulières]] (aussi nommées «expressions rationnelles»). Il faut beaucoup de patience et de persévérance arriver à les maîtriser. Retenons que leur fonction consiste à identifier les messages d'erreur intéressants dans les logs, concernant un service donné ou pour un service donné, concernant un type d'attaque donné. 
 +==== jail.d ==== 
 +Celui dans lequel nous allons intervenir pour activer les filtres qui nous intéressent, car il est écrit en commentaire dans ''jail.conf'': 
 +<code> 
 +# Changes:  in most of the cases you should not modify this 
 +#           file, but provide customizations in jail.local file, 
 +#           or separate .conf files under jail.d/ directory, e.g.: 
 +
 +# HOW TO ACTIVATE JAILS: 
 +
 +# YOU SHOULD NOT MODIFY THIS FILE. 
 +
 +# It will probably be overwritten or improved in a distribution update. 
 +
 +# Provide customizations in a jail.local file or a jail.d/customisation.local. 
 +# For example to change the default bantime for all jails and to enable the 
 +# ssh-iptables jail the following (uncommented) would appear in the .local file. 
 +# See man 5 jail.conf for details. 
 +</code> 
 +Les divers fichiers contenus dans ce répertoire seront lus par ordre alphabétique et leur contenu écrasera éventuellement ce qui a pu être défini précédemment. 
 + 
Mise en œuvre: Dernière modification le: 21/06/2025 à 13:32 par prof