Améliorations (relecture, ajout d'une info et d'une question/réponse)
This commit is contained in:
parent
d6f7a41546
commit
363fcd4b9d
|
@ -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
|
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
|
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 :
|
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
|
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
|
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
|
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
|
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
|
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]
|
action = iptables-multiport,sendmail[dest=jdoe@example.com]
|
||||||
sendmail[name=ssh,dest=user@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
|
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)
|
||||||
|
~~~
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue