Améliorations (relecture, ajout d'une info et d'une question/réponse)

This commit is contained in:
Gregory Colpart 2017-07-04 23:25:54 +02:00
parent d6f7a41546
commit 363fcd4b9d

View file

@ -159,10 +159,29 @@ The following regular expression are defined:
[...]
~~~
## Ajouter ses propres jails
## Règles de filtrage
On peut bien sûr ajouter ses propres _jails_ en ajoutant dans le fichier `jail.local`, un exemple :
Un certain nombre de règles de filtrage sont définies dans `/etc/fail2ban/filter.d/` :
~~~
[custom-1234]
enabled = true
port = http,https
filter = accesslog-custom-1234
logpath = /var/log/access.log
maxretry = 5
findtime = 180
bantime = 86400
ignoreip = 127.0.0.1/8 192.0.2.42
action = iptables-multiport,sendmail[dest=jdoe@example.com]
~~~~
> *Attention* : en cas d'action liée à iptables (ce qui est le défaut), le nom de la jail ne doit pas excéder 20 caractères !
### Règles de filtrage
Les règles de filtrage sont définies dans `/etc/fail2ban/filter.d/` :
~~~
3proxy.conf apache-noscript.conf couriersmtp.conf exim.conf lighttpd-auth.conf openwebmail.conf proftpd.conf selinux-ssh.conf squid.conf webmin-auth.conf
@ -173,7 +192,7 @@ apache-modsecurity.conf common.conf ejabberd-auth.conf gssftpd.conf
apache-nohome.conf courierlogin.conf exim-common.conf horde.conf nsd.conf postfix-sasl.conf selinux-common.conf solid-pop3d.conf vsftpd.conf
~~~
On peut écrire ses propres règles en s'appuyant sur [les expressions régulières Python](https://docs.python.org/3/library/re.html) pour détecter la variable _<HOST>_.
On peut écrire ses propres règles de filtrage en s'appuyant sur [les expressions régulières Python](https://docs.python.org/3/library/re.html) pour détecter la variable _<HOST>_.
Exemple d'une règle :
@ -202,12 +221,11 @@ $ fail2ban-regex auth.log /etc/fail2ban/filter.d/evolix-test.conf
[...]
~~~
## Actions
### Actions
Les actions se trouvent par défaut dans /etc/fail2ban/action.d/
Les actions sont définies dans `/etc/fail2ban/action.d/` :
~~~
# ls /etc/fail2ban/action.d/
apf.conf firewallcmd-ipset.conf iptables.conf iptables-xt_recent-echo.conf osx-ipfw.conf sendmail-whois-lines.conf
badips.conf firewallcmd-new.conf iptables-ipset-proto4.conf mail-buffered.conf pf.conf shorewall.conf
blocklist_de.conf hostsdeny.conf iptables-ipset-proto6-allports.conf mail.conf route.conf ufw.conf
@ -217,17 +235,16 @@ dshield.conf iptables-allports.conf iptables-multiport-log.conf
dummy.conf iptables-blocktype.conf iptables-new.conf osx-afctl.conf sendmail-whois.conf
~~~
Par défaut dans le jail.conf est définis l'action par défaut si non indiqué pour chaque jail (services) configurés :
Si l'on ne précise pas d'action, l'action sera par défaut _iptables-multiport_ (définie dans `jail.conf`) :
~~~
banaction = iptables-multiport
~~~
Exemple pour jail ssh avec envoie de mail vers user@example.com :
Exemple pour bannir et déclencher l'envoi d'un email :
~~~
action = iptables[name=ssh,port=22,protocol=tcp]
sendmail[name=ssh,dest=user@example.com]
action = iptables-multiport,sendmail[dest=jdoe@example.com]
~~~
@ -565,3 +582,19 @@ Pour mettre en whitelist certaines adresses IP, il faut utiliser le paramètre _
~~~
ignoreip = 127.0.0.1/8 192.0.2.42
~~~
### Erreur "fail2ban.actions.action: ERROR" avec jail au nom trop long
Si le nom de votre jail dépasse 20 caractères, vous obtiendrez des erreurs du type :
~~~
fail2ban.actions.action: ERROR iptables -N fail2ban-accesslog-custom-12345
fail2ban.actions.action: ERROR iptables -n -L INPUT | grep -q fail2ban-accesslog-custom-12345 returned 100
~~~
la raison est que Fail2Ban utilise le nom de la jail pour ajouter une chaîne IPTables et elle ne doit pas dépasser une certaine longueur :
~~~
22:52 < reg> iptables v1.4.14: chain name `fail2ban-accesslog-custom-12345' too long (must be under 29 chars)
~~~