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.
fail2ban/README.md

87 lines
2.3 KiB

2 years ago
# FAIL2BAN
2 years ago
2 years ago
## INSTALLATION
2 years ago
2 years ago
```bash
sudo ./install.sh
2 years ago
```
1 year ago
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).
:warning: S'assurer que le service SSH est installé et que le port SSh dans /etc/ssh/sshd_config est renseigné.
2 years ago
## CONFIGURATION
2 years ago
1 year ago
> 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
2 years ago
exemple d'une prison pour le SSH:
```bash
#/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:
```bash
[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
```
1 year ago
Explications:
- Filter renvoie à la configuration de la prison quant aux lois qui la provoque (sous la forme de REGEX)
2 years ago
- 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:
```bash
sudo systemctl restart fail2ban
```
## COMMANDES UTILES
- Afficher les prisons actives:
```bash
sudo fail2ban-client status
```
- Afficher le détail de la prison ssh:
```bash
sudo fail2ban-client status ssh
```
- Bannir une IP manuellement:
```bash
sudo fail2ban-client set [nom de la prison] banip [IP concerné]
```
- Débannir une IP manuellement:
```bash
sudo fail2ban-client unban [IP concerné] [nom de la prison]
```