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
pratique:informatique:fail2ban [17/11/2023 13:35] – [Commandes Iptables utiles] Zatalyzpratique:informatique:fail2ban [23/01/2024 11:48] (Version actuelle) – [Commandes Iptables utiles] Zatalyz
Ligne 1: Ligne 1:
 ====== Fail2ban et Iptables ====== ====== Fail2ban et Iptables ======
 +
 +<WRAP center round important 100%>
 +Tout ça n'est pas encore au point. 
 +
 +À un moment faudra que tout ça soit revu de fond en comble... J'apprends petit à petit.
 +
 +En attendant, n'utilisez pas ça "comme ça", ne croyez pas à la qualité de ce qui est là !
 +</WRAP>
 +
 Fail2ban logiciel me file des boutons mais je n'ai pas vraiment trouvé de remplaçant. Son principal mérite est de délayer les attaques par brute-force ; en principe notre serveur n'y est pas vulnérable, mais les principes et la sécurité... Bref, c'est aussi bien de l'avoir comme protection supplémentaire, selon le principe du tamis : si ça passe une couche, avec un peu de chance ça ne passera pas la suivante. Fail2ban logiciel me file des boutons mais je n'ai pas vraiment trouvé de remplaçant. Son principal mérite est de délayer les attaques par brute-force ; en principe notre serveur n'y est pas vulnérable, mais les principes et la sécurité... Bref, c'est aussi bien de l'avoir comme protection supplémentaire, selon le principe du tamis : si ça passe une couche, avec un peu de chance ça ne passera pas la suivante.
  
Ligne 75: Ligne 84:
 #-A INPUT -m set --match-set blocklist_ip src -j DROP #-A INPUT -m set --match-set blocklist_ip src -j DROP
 # Ça, ça ne veut pas... # Ça, ça ne veut pas...
 +
 +#rejeter tout le reste 
 +-A INPUT -j REJECT --reject-with icmp-port-unreachable
  
 </code> </code>
 +
 ==== Commandes Iptables utiles ==== ==== Commandes Iptables utiles ====
 Lister "tout" en vrac :  Lister "tout" en vrac : 
Ligne 86: Ligne 99:
   iptables -L INPUT --line-numbers   iptables -L INPUT --line-numbers
  
 +Sauf que ce n'est pas "tout", genre pour lister les règles nat :
 +  iptables -t nat -S
 + 
 Enlever une règle d'après son numéro de ligne Enlever une règle d'après son numéro de ligne
   iptables -D INPUT 14   iptables -D INPUT 14
Ligne 92: Ligne 108:
   iptables-restore /etc/iptables/rules.v4   iptables-restore /etc/iptables/rules.v4
  
-=== Quelques explications === +==== Quelques explications ==== 
-== Différence entre -I et -A ==+=== Différence entre -I et -A ===
   * ''-I'' signifie "insérer la règle à la ligne n° X" ; sans préciser de numéro, la règle se retrouve au début et a donc la priorité sur tout autre.   * ''-I'' signifie "insérer la règle à la ligne n° X" ; sans préciser de numéro, la règle se retrouve au début et a donc la priorité sur tout autre.
   * ''-A'' indique d'ajouter donc ce sera à la suite du reste des règles.   * ''-A'' indique d'ajouter donc ce sera à la suite du reste des règles.
  
 Bref, quand on a un fichier qui charge les règles, elles sont forcément les unes après les autres, ''-A'' est indiqué. Si on teste une règle, alors ''-I'' peut être plus pertinent.  Bref, quand on a un fichier qui charge les règles, elles sont forcément les unes après les autres, ''-A'' est indiqué. Si on teste une règle, alors ''-I'' peut être plus pertinent. 
 +
 +=== DROP ou REJECT --reject-with icmp-port-unreachable ===
 +  * ''DROP'' ignore complètement le paquet (comme si le serveur n'existait pas). Il ne renvoie pas de message, ce qui évite les attaques où on force le serveur à envoyer des messages icmp à un autre serveur par exemple.
 +  * ''REJECT --reject-with icmp-port-unreachable'' renvoie un message icmp disant que le port est fermé (comme si le service qui écoute sur ce port n'était pas lancé et que le port était inutilisé).
 +
 +
 +
 +=== Ordre des règles ===
 +Les règles sont appliquées dans l'ordre. 
 +
 +Donc il faut que les commandes d'ipset et fail2ban soient avant celles qui acceptent une connexion : 
 +  - On regarde si l'un de ces logiciels dit qu'il faut bloquer l'ip 
 +    - Si oui, elle dégage
 +    - Si non, on passe à la règle suivante
 +  - La règle suivante étant "on accepte".
 +
 +Sinon, ça serait :
 +  - On accepte la connexion
 +  - On regarde si fail2ban... ah ben non, forcément, ça ne marche pas, puisque la connexion est acceptée. 
  
 ===== Ipset ===== ===== Ipset =====
-Créer une entrée pour toutes les ip qui vont être renvoyées dans les limbes (adapter le nom ''blocklist_ip'':+Créer une entrée pour toutes les ip qui vont être renvoyées dans les limbes (adapter le nom ''blocklist_ip''):
   ipset create blocklist_ip hash:ip   ipset create blocklist_ip hash:ip
  
Ligne 218: Ligne 253:
   * Vérifier la configuration avant de relancer : ''fail2ban-server -t''   * Vérifier la configuration avant de relancer : ''fail2ban-server -t''
   * Bannir une ip en particulier : ''fail2ban-client set <prison> banip <adresse IP>''   * Bannir une ip en particulier : ''fail2ban-client set <prison> banip <adresse IP>''
-  * Et la débannir : ''fail2ban-client get <prison> actionunban <adresse IP>''+  * Et la débannir : ''fail2ban-client set <prison> unbanip <adresse IP>''
 ==== Faire ses propres règles Fail2ban ==== ==== Faire ses propres règles Fail2ban ====
 Il y a quelques améliorations à faire concernant les filtres. Il y a quelques améliorations à faire concernant les filtres.
Ligne 468: Ligne 503:
   * https://www.malekal.com/comment-utiliser-ipset-sur-linux/   * https://www.malekal.com/comment-utiliser-ipset-sur-linux/
   * https://sysreseau.net/iptables-12-commandes/   * https://sysreseau.net/iptables-12-commandes/
 +  * http://www.delafond.org/traducmanfr/man/man8/iptables.8.html
  
  
CC Attribution-Noncommercial-Share Alike 4.0 International Driven by DokuWiki
pratique/informatique/fail2ban.1700224514.txt.gz · Dernière modification : 17/11/2023 13:35 de Zatalyz