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 ebf91d1496 maj README 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 maj README 1 year ago
install.sh ajout choix ssh only ou nginx filters + debug 1 year ago

README.md

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]