Protect your home server
Go to file
2023-02-03 17:11:39 +01:00
fail2ban-conf ajout choix ssh only ou nginx filters + debug 2023-02-03 16:45:03 +01:00
fail2ban-nginx-filters maj 2022-03-04 15:30:08 +01:00
install.sh ajout choix ssh only ou nginx filters + debug 2023-02-03 16:45:03 +01:00
README.md maj README 2023-02-03 17:11:39 +01:00

FAIL2BAN

INSTALLATION

sudo ./install.sh

Choisir si l'installation est simplement pour protéger le service SSH ou si le serveur hébrge également le service Nginx (protection contre les DOS attaques ainsi que les badbots).

⚠️ S'assurer que le service SSH est installé et que le port SSh dans /etc/ssh/sshd_config est renseigné.

CONFIGURATION

Note: l'installation est automatisé pour configurer les prisons SSH et Nginx en récupérant les configurations présentes sur le serveur.

  • 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

Explications:

  • 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]