Outils pour utilisateurs

Outils du site


doc:formations:hebergement:serveur:proteger:fail2ban

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
doc:formations:hebergement:serveur:proteger:fail2ban [2022/10/25 16:18] jeremiedoc:formations:hebergement:serveur:proteger:fail2ban [2022/11/17 12:24] (Version actuelle) – [brute force sur nginx] jeremie
Ligne 25: Ligne 25:
  
 </code> </code>
 +
 +===== recherche abusive de point d'attaque sur nginx =====
 +
 +Den ombreux "script-kiddies" font tourner des programmes qui testent toute une série de logiciels pouvant être installé afin d'en trouver une version avec une faille de sécurité connue. On les repère aisément car ils font une série brutales d'accès à l'aveugle, qui résultent pour la plupart en une erreur 404 "not found".
 +
 +Il est trivial de bloquer les IP source pendant un petit délai, par exemple 300 secondes (5 minutes) si on détecte de 10 essais infructueux en moins de 10 secondes:
 +
 +<code nginx /etc/fail2ban/filter.d/nginx-4xx.conf>
 +[Definition] 
 +failregex = ^<HOST>.*"(GET|POST).*" (404|444|403|400) .*$ 
 +ignoreregex =
 +</code>
 +
 +<code nginx /etc/fail2ban/jail.conf>
 +# A ajouter à la fin du fichier:
 +[nginx-4xx] 
 +enabled = true 
 +port = http,https 
 +filter = nginx-4xx 
 +logpath = /var/log/nginx/access.log 
 +bantime = 300
 +findtime = 10
 +maxretry = 10
 +</code>
 +
 +Enfin, on relance et on teste avec:
 +  
 +  service fail2ban restart
 +  fail2ban-client status nginx-4xx
  
 ===== brute force sur nginx ===== ===== brute force sur nginx =====
Ligne 57: Ligne 86:
  
  
-Fail2ban permet de tester en amont la validité des règles, mais aussi d'avoir des statistiques, par exemple ici avec:+:!: Fail2ban permet de tester en amont la validité des règles (voyez ci-dessous), mais aussi d'avoir des statistiques, par exemple ici avec:
  
 <code> <code>
Ligne 74: Ligne 103:
 ===== brute force sur postgresql ===== ===== brute force sur postgresql =====
  
 +On peut ajouter ces règles:
 +
 +Dans ''/etc/fail2ban/jail.d/postgres.conf'':
 +<code>
 +[postgresql]
 +enabled = true
 +port    = 5432
 +protocol = tcp
 +filter = custom-postgresql
 +logpath = /var/log/postgresql/postgresql-*-main.log
 +maxretry = 3
 +</code>
 +
 +Puis le filtre dans ''/etc/fail2ban/filter.d/custom-postgresql.conf'':
 +<code>
 +[Definition]
 +failregex = ^<HOST>.+FATAL:  password authentication failed for user.+$
 +            ^<HOST>.+FATAL:  no pg_hba.conf entry for host .+$
 +ignoreregex = duration:#
 +</code>
 +
 +Enfin, pour que celui-ci marche, on modifie la composition du fichier log de postgresql afin d'y mettre l'IP client en-tête. C'est dans le fichier ''/etc/postgresql/13/main/postgresql.conf'':
 +<code>
 +(...)
 +log_line_prefix = '%h %m [%p] %q%u@%d '
 +(...)
 +</code>
  
 +:!: on peut tester avec ''fail2ban-regex /etc/fail2ban/filter.d/custom-postgresql.conf /var/log/postgresql/postgresql-12-main.log''.
doc/formations/hebergement/serveur/proteger/fail2ban.1666714737.txt.gz · Dernière modification : 2022/10/25 16:18 de jeremie