Protect your home server
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
greglebreton f55af5829e ajout choix ssh only ou nginx filters + debug 1 year ago
fail2ban-conf ajout choix ssh only ou nginx filters + debug 1 year ago
fail2ban-nginx-filters maj 2 years ago
README.md ajout choix ssh only ou nginx filters + debug 1 year ago
install.sh ajout choix ssh only ou nginx filters + debug 1 year ago

README.md

FAIL2BAN

INSTALLATION

sudo ./install.sh

CONFIGURATION

  • La création des "prisons" se fait dans le jail.local

exemple d'une prison pour le SSH:

#/etc/fail2ban/jail.local
[ssh]
enabled = true
port = 22
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = -1

exemple de prison contre le Dos pour Nginx:

[nginx-req-limit]

enabled = true
filter = nginx-req-limit
action = iptables-multiport[name=ReqLimit, port="http,https", protocol=tcp]
logpath = /var/log/nginx/*error.log
findtime = 600
bantime = 365d
maxretry = 10

[nginx-conn-limit]

enabled = true
filter = nginx-conn-limit
action = iptables-multiport[name=ConnLimit, port="http,https", protocol=tcp]
logpath = /var/log/nginx/*error.log
findtime = 300
bantime = 259200
maxretry = 100

Note:

  • Filter renvoie à la configuration de la prison quant aux lois qui la provoque (sous la forme de REGEX)
  • Action est les processus mis en place pour bannir l'IP, les configurations se trouvent dans /etc/fail2ban/action.d/
  • Logpath correspond au chemin des logs à surveiller.
  • Bantime est le temps de bannissement de l'IP, peux être exprimé en minutes (m) ou jours (d), l'unité par defaut est la seconde. (-1 pour sans limite de durée)
  • Maxretry indique le nombre d'essais infructueux avant de provoquer le bannissement.

A chaque modification de la configuration d'une "prison", redémarrer le service:

sudo systemctl restart fail2ban

COMMANDES UTILES

  • Afficher les prisons actives:
sudo fail2ban-client status
  • Afficher le détail de la prison ssh:
sudo fail2ban-client status ssh
  • Bannir une IP manuellement:
sudo fail2ban-client set [nom de la prison] banip [IP concerné]
  • Débannir une IP manuellement:
sudo fail2ban-client unban [IP concerné] [nom de la prison]