Links

Intégré Nginx Proxy Manager à fail2ban

Pour bannir efficacement les BOTS !
Prérequis : - Avoir Fail2ban d'installer - Avoir son dossier de log monté en dehors du conteneur docker de NPM (Ligne à ajouté au docker compose )

1 . Crée le fichier /etc/fail2ban/filter.d/npm.conf

[INCLUDES]
[Definition]
failregex = ^<HOST>.+" (4\d\d|3\d\d) (\d\d\d|\d) .+$
^.+ 4\d\d \d\d\d - .+ \[Client <HOST>\] \[Length .+\] ".+" .+$

2. Crée le ficher /etc/fail2ban/action.d/docker-action.conf

[Definition]
actionstart = iptables -N f2b-npm-docker
iptables -A f2b-npm-docker -j RETURN
iptables -I FORWARD -p tcp -m multiport --dports 0:65535 -j f2b-npm-docker
actionstop = iptables -D FORWARD -p tcp -m multiport --dports 0:65535 -j f2b-npm-docker
iptables -F f2b-npm-docker
iptables -X f2b-npm-docker
actioncheck = iptables -n -L FORWARD | grep -q 'f2b-npm-docker[ \t]'
actionban = iptables -I f2b-npm-docker -s <ip> -j DROP
actionunban = iptables -D f2b-npm-docker -s <ip> -j DROP

3. Crée le fichier /etc/fail2ban/jail.d/npm.local

[npm]
enabled = true
chain=INPUT
maxretry = 3
bantime = 48h
findtime = 60m
logpath = /path/to/logs/default-host_*.log #Changer les chemins pour être en accord avec où sont vos logs
/path/to/logs/proxy-host-*.log
action = docker-action

4. Redémarrer fail2ban !

sudo systemctl reload fail2ban.service