fail2ban : Différence entre versions

De Vulgum Techus
Aller à : Navigation, rechercher
(Liens utiles)
(Liens utiles)
 
(14 révisions intermédiaires par un utilisateur sont masquées)
Ligne 5 : Ligne 5 :
 
  '''[[QR code]]''' vers cette page : https://vt.cx/f2b.qr
 
  '''[[QR code]]''' vers cette page : https://vt.cx/f2b.qr
 
<html>
 
<html>
<script type="text/javascript"><!--
+
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
google_ad_client = "ca-pub-3341840374417340";
+
<!-- VT2 -->
/* VT2 */
+
<ins class="adsbygoogle"
google_ad_slot = "6349432125";
+
    style="display:inline-block;width:468px;height:60px"
google_ad_width = 468;
+
    data-ad-client="ca-pub-3341840374417340"
google_ad_height = 60;
+
    data-ad-slot="6349432125"></ins>
//-->
+
<script>
</script>
+
(adsbygoogle = window.adsbygoogle || []).push({});
<script type="text/javascript"
+
src="//pagead2.googlesyndication.com/pagead/show_ads.js">
+
 
</script>
 
</script>
 
</html>
 
</html>
Ligne 20 : Ligne 18 :
 
= Présentation =
 
= Présentation =
 
fail2ban détecte les tentatives répétées d'intrusion dans les programmes dont il surveille les logs de connexions (exemple '''[[SSH]], [[Apache]], [[CMS]], [[FTP]]''', back office, etc.). Les '''[[IP]]''' répondant aux critères de configuration ('''maxretry''' ou nombre de tentatives par exemple) sont alors transmis à '''[[iptables]]''' pour un blocage dont le délai ('''bantime''') est paramétrable. fail2ban fonctionne suivant deux axes :
 
fail2ban détecte les tentatives répétées d'intrusion dans les programmes dont il surveille les logs de connexions (exemple '''[[SSH]], [[Apache]], [[CMS]], [[FTP]]''', back office, etc.). Les '''[[IP]]''' répondant aux critères de configuration ('''maxretry''' ou nombre de tentatives par exemple) sont alors transmis à '''[[iptables]]''' pour un blocage dont le délai ('''bantime''') est paramétrable. fail2ban fonctionne suivant deux axes :
* '''jail''' -> règles définissant la marche à suivre en cas de détection d'intrusions  
+
* '''jail''' règles définissant la marche à suivre en cas de détection d'intrusions  
* '''filtre''' -> règles définissant la détection d'intrusions
+
* '''filtre''' règles définissant la détection d'intrusions
 
Ces deux aspects sont indissociables et doivent être définis pour chaque point d'entrée surveillé ('''[[FTP]]''', back office, '''[[Horde]], [[Qmail]]''', etc.)
 
Ces deux aspects sont indissociables et doivent être définis pour chaque point d'entrée surveillé ('''[[FTP]]''', back office, '''[[Horde]], [[Qmail]]''', etc.)
  
 
= Commandes utiles =
 
= Commandes utiles =
* Liste des commandes '''fail2ban-client''' -> http://www.fail2ban.org/wiki/index.php/Commands
+
* Liste des commandes '''fail2ban-client''' -> https://www.fail2ban.org/wiki/index.php/Commands
 
* '''fail2ban-client -V''' ou '''fail2ban-client --version | head -1''' -> affichage de la '''[[version]]'''
 
* '''fail2ban-client -V''' ou '''fail2ban-client --version | head -1''' -> affichage de la '''[[version]]'''
 
* Statut de fail2ban -> '''fail2ban-client status'''
 
* Statut de fail2ban -> '''fail2ban-client status'''
 
* Listes des '''[[IP]]''' bloquées -> '''iptables -L'''
 
* Listes des '''[[IP]]''' bloquées -> '''iptables -L'''
* Lancer '''fail2ban''' -> '''service fail2ban start'''
+
* Lancer fail2ban -> '''service fail2ban start'''
* Arrêter '''fail2ban''' -> '''service fail2ban stop'''
+
* Arrêter fail2ban -> '''service fail2ban stop'''
* Relancer '''fail2ban''' et vider la liste des '''[[IP]]''' bannies -> '''service fail2ban restart'''
+
* Relancer fail2ban et vider la liste des '''[[IP]]''' bannies -> '''service fail2ban restart'''
 
* Tester un '''Jail''' -> '''fail2ban-regex /fichier log/ /filtre.conf/ | less'''  
 
* Tester un '''Jail''' -> '''fail2ban-regex /fichier log/ /filtre.conf/ | less'''  
 
  exemple : fail2ban-regex /var/log/maillog /etc/fail2ban/filter.d/smtp-auth.conf | less
 
  exemple : fail2ban-regex /var/log/maillog /etc/fail2ban/filter.d/smtp-auth.conf | less
 +
* Backup Fail2Ban sqlite database → cp -a /var/lib/fail2ban/fail2ban.sqlite3{,.bkp}
 +
* Trouver quelle application utiliser fail2ban.sqlite3 → fuser '/var/lib/fail2ban/fail2ban.sqlite3'
  
 
= Fichiers de configuration =  
 
= Fichiers de configuration =  
 +
 
== jail.conf ou jail.local ==
 
== jail.conf ou jail.local ==
Le fichier de configuration '''jail.conf''' est pris en compte par '''fail2ban''' sauf si '''jail.local''' est créé en parallèle. Si c'est le cas, toutes les modifications concernant les '''jails''' devront y êtres mises à savoir :
+
Le fichier de configuration jail.conf est pris en compte par fail2ban sauf si jail.local est créé en parallèle. Si c'est le cas, toutes les modifications concernant les jails devront y êtres mis à savoir :
* Ajout ou suppression d'un '''jail'''
+
* Ajout ou suppression d'un jail
* Mis on (true) ou off (false) d'une '''jail'''
+
* Mis on (true) ou off (false) d'un jail
* Modification des règles d'un '''jail'''
+
* Modification des règles d'un jail
Les fichiers '''jail.conf''' et '''jail.local''' doivent se trouver dans '''/etc/fail2ban/'''.
+
Les fichiers jail.conf et jail.local doivent se trouver dans /etc/fail2ban/.
 +
 
 
=== Paramètres de jail.conf ou jail.local ===
 
=== Paramètres de jail.conf ou jail.local ===
 
'''bantime''' : délai de bannissement :
 
'''bantime''' : délai de bannissement :
Ligne 56 : Ligne 58 :
  
 
== filter.d ==
 
== filter.d ==
Répertoire des fichiers de filtres situé à :
+
Dossier des fichiers de filtres situé à :
 
  /etc/fail2ban/filter.d/
 
  /etc/fail2ban/filter.d/
  
 
== action.d ==
 
== action.d ==
Répertoire de fichiers de traitement situé à :
+
Dossier de fichiers de traitement situé à :
 
  /etc/fail2ban/action.d/
 
  /etc/fail2ban/action.d/
  
== Articles [[Vulgum Techus]] ==
+
== Log ==
 +
Dossier des logs de fail2ban
 +
* /var/log/auth.log
 +
* /var/log/fail2ban.log
 +
 
 +
= Base sqlite3 fail2ban =
 +
* /var/lib/fail2ban/fail2ban.sqlite3
 +
 
 +
= Liens utiles =
 +
* [https://www.fail2ban.org fail2ban.org] site officiel de fail2ban
 +
* [https://www.fail2ban.org/wiki/index.php/MANUAL_0_8 fail2ban.org] manuel de fail2ban
 +
* [https://www.abuseipdb.com/fail2ban.html abuseipdb.com] '''AbuseIPDB''' : une '''[[API]]''' pour automatiser la vérification et le signalement des IP bloqués
 +
* [https://www.saas-secure.com/online-services/fail2ban-ip-sharing.html saas-secure.com] '''Centralize Fail2Ban''' : script PHP pour la centralisation des IP bloquées par fail2ban
 +
* [https://stuffphilwrites.com/2013/03/permanently-ban-repeat-offenders-fail2ban/ stuffphilwrites.com] Permanently Ban Repeat Offenders With fail2ban (UPDATED)
 +
* [https://github.com/Sean-Der/fail2web github.com] '''fail2web''' : outil graphique de configuration pour fail2ban
 +
 
 +
= Concurrents de fail2ban =
 +
* [http://denyhosts.sourceforge.net/ denyhosts.sourceforge.net] '''DenyHosts''' : DenyHosts permet la centralisation des IP bloquées par des dizaines de milliers de serveurs l'utilisant
 +
* [https://yalis.fr/git/yves/pyruse yalis.fr] '''Pyruse''' : une alternative en Python qui sollicite beaucoup moins le serveur → https://vt.cx/fu
 +
 
 +
== Articles Vulgum Techus ==
 
* [[fail2ban et Plesk]]
 
* [[fail2ban et Plesk]]
 
* [[fail2ban et Postfix]]
 
* [[fail2ban et Postfix]]
Ligne 70 : Ligne 92 :
 
* [[fail2ban.log vide]]
 
* [[fail2ban.log vide]]
 
* [[iptables]]
 
* [[iptables]]
 +
* [[DMARC]]
 
* [[Reconnaître un CMS]]
 
* [[Reconnaître un CMS]]
 
+
* [[SpamAssassin]]
= [[Liens]] utiles =
+
* [https://www.fail2ban.org fail2ban.org] site officiel de fail2ban
+
* [https://www.fail2ban.org/wiki/index.php/MANUAL_0_8 fail2ban.org] manuel de fail2ban
+
* [https://github.com/Sean-Der/fail2web github.com] '''fail2web''' : outil graphique de configuration pour fail2ban
+
  
 
= Commentaires =  
 
= Commentaires =  

Version actuelle en date du 19 février 2021 à 00:30

Lien court vers cette page : https://vt.cx/f2b
QR code vers cette page : https://vt.cx/f2b.qr

Présentation

fail2ban détecte les tentatives répétées d'intrusion dans les programmes dont il surveille les logs de connexions (exemple SSH, Apache, CMS, FTP, back office, etc.). Les IP répondant aux critères de configuration (maxretry ou nombre de tentatives par exemple) sont alors transmis à iptables pour un blocage dont le délai (bantime) est paramétrable. fail2ban fonctionne suivant deux axes :

  • jail → règles définissant la marche à suivre en cas de détection d'intrusions
  • filtre → règles définissant la détection d'intrusions

Ces deux aspects sont indissociables et doivent être définis pour chaque point d'entrée surveillé (FTP, back office, Horde, Qmail, etc.)

Commandes utiles

  • Liste des commandes fail2ban-client -> https://www.fail2ban.org/wiki/index.php/Commands
  • fail2ban-client -V ou fail2ban-client --version | head -1 -> affichage de la version
  • Statut de fail2ban -> fail2ban-client status
  • Listes des IP bloquées -> iptables -L
  • Lancer fail2ban -> service fail2ban start
  • Arrêter fail2ban -> service fail2ban stop
  • Relancer fail2ban et vider la liste des IP bannies -> service fail2ban restart
  • Tester un Jail -> fail2ban-regex /fichier log/ /filtre.conf/ | less
exemple : fail2ban-regex /var/log/maillog /etc/fail2ban/filter.d/smtp-auth.conf | less
  • Backup Fail2Ban sqlite database → cp -a /var/lib/fail2ban/fail2ban.sqlite3{,.bkp}
  • Trouver quelle application utiliser fail2ban.sqlite3 → fuser '/var/lib/fail2ban/fail2ban.sqlite3'

Fichiers de configuration

jail.conf ou jail.local

Le fichier de configuration jail.conf est pris en compte par fail2ban sauf si jail.local est créé en parallèle. Si c'est le cas, toutes les modifications concernant les jails devront y êtres mis à savoir :

  • Ajout ou suppression d'un jail
  • Mis on (true) ou off (false) d'un jail
  • Modification des règles d'un jail

Les fichiers jail.conf et jail.local doivent se trouver dans /etc/fail2ban/.

Paramètres de jail.conf ou jail.local

bantime : délai de bannissement :

bantime  = NNNNN où NNNNN est un entier définissant le délai en secondes 
exemple pour 1 heure -> bantime = 3600

maxretry : nombre d'essais avant bannissement :

maxretry = N où N est un entier définissant le nombre d'essais permis
exemple pour 3 essais -> maxretry = 3 

logpath : chemin des log identifiés :

logpath = XXXXXXX où XXXXXXX est une chaine alphanumérique définissant un chemin d'accès 
exemple -> logpath = /var/log/apache*/*error.log

filter.d

Dossier des fichiers de filtres situé à :

/etc/fail2ban/filter.d/

action.d

Dossier de fichiers de traitement situé à :

/etc/fail2ban/action.d/

Log

Dossier des logs de fail2ban

  • /var/log/auth.log
  • /var/log/fail2ban.log

Base sqlite3 fail2ban

  • /var/lib/fail2ban/fail2ban.sqlite3

Liens utiles

  • fail2ban.org site officiel de fail2ban
  • fail2ban.org manuel de fail2ban
  • abuseipdb.com AbuseIPDB : une API pour automatiser la vérification et le signalement des IP bloqués
  • saas-secure.com Centralize Fail2Ban : script PHP pour la centralisation des IP bloquées par fail2ban
  • stuffphilwrites.com Permanently Ban Repeat Offenders With fail2ban (UPDATED)
  • github.com fail2web : outil graphique de configuration pour fail2ban

Concurrents de fail2ban

  • denyhosts.sourceforge.net DenyHosts : DenyHosts permet la centralisation des IP bloquées par des dizaines de milliers de serveurs l'utilisant
  • yalis.fr Pyruse : une alternative en Python qui sollicite beaucoup moins le serveur → https://vt.cx/fu

Articles Vulgum Techus

Commentaires

blog comments powered by Disqus