wiki/HowtoFail2Ban.md

542 lines
18 KiB
Markdown
Raw Normal View History

2017-05-20 18:24:23 +02:00
---
categories: web security
title: Howto Fail2Ban
...
* Documentation : <https://www.fail2ban.org/wiki/index.php/MANUAL_0_8>
* Rôle Ansible : <https://forge.evolix.org/projects/ansible-roles/repository/show/fail2ban>
2016-12-29 11:25:39 +01:00
# Howto Fail2Ban
2017-05-21 02:57:28 +02:00
[Fail2Ban](https://www.fail2ban.org) est un service (en Python), qui scanne les logs applicatifs à la recherche d'un pattern particulier (généralement des échecs de connexions) et bannit les adresses IP responsables via le firewall.
2017-05-20 18:24:23 +02:00
2017-05-21 02:57:28 +02:00
La version présente dans Debian jessie est la v0.8.13.
2017-05-20 18:24:23 +02:00
2016-12-29 11:25:39 +01:00
## Installation
~~~
2017-05-20 18:24:23 +02:00
# apt install fail2ban
# fail2ban-server -V
Fail2Ban v0.8.13
Copyright (c) 2004-2008 Cyril Jaquier, 2008- Fail2Ban Contributors
Copyright of modifications held by their respective authors.
Licensed under the GNU General Public License v2 (GPL).
Written by Cyril Jaquier <cyril.jaquier@fail2ban.org>.
Many contributions by Yaroslav O. Halchenko <debian@onerussian.com>.
2016-12-29 11:25:39 +01:00
~~~
## Configuration
2017-05-20 18:24:23 +02:00
Fichiers de configuration :
2016-12-29 11:25:39 +01:00
2017-05-20 18:24:23 +02:00
~~~
/etc/fail2ban
├── fail2ban.conf
├── jail.conf
├── jail.local
├── action.d
│ ├── apf.conf
│ ├── badips.conf
│ ├── blocklist_de.conf
│ […]
├── fail2ban.d
├── filter.d
│ ├── 3proxy.conf
│ ├── apache-auth.conf
│ ├── apache-badbots.conf
│ […]
└── jail.d
~~~
2016-12-29 11:25:39 +01:00
2017-05-20 18:24:23 +02:00
Fail2ban repose sur des règles de filtrage définies dans `/etc/fail2ban/filter.d/` et des actions dans `/etc/fail2ban/action.d/`.
2016-12-29 11:25:39 +01:00
2017-05-20 18:24:23 +02:00
On définit ensuite des **jails**, combinaisons d'une règle de filtrage et d'une ou plusieurs actions.
2016-12-29 11:25:39 +01:00
2017-05-20 18:24:23 +02:00
Voici la jail nommée _ssh_ (activée par défaut à l'installation) :
2016-12-29 11:25:39 +01:00
2017-05-20 18:24:23 +02:00
~~~{.ini}
2016-12-29 11:25:39 +01:00
[ssh]
2017-01-03 11:20:35 +01:00
2016-12-29 11:25:39 +01:00
enabled = true
port = ssh
filter = sshd
2017-01-03 11:20:35 +01:00
logpath = /var/log/auth.log
2016-12-29 11:25:39 +01:00
maxretry = 6
~~~
2017-05-20 18:24:23 +02:00
Cette jail va surveiller le fichier `/var/log/auth.log` via la règle de filtrage `/etc/fail2ban/filter.d/sshd.conf` :
si il détecte la correspondance 6 fois en 10 minutes (temps par défaut), il va utiliser l'action par défaut,
à savoir l'action `/etc/fail2ban/action.d/iptables-multiport.conf` qui va ajouter une règle _iptables_ pour bannir le port concerné pendant 10 minutes.
2016-12-29 11:25:39 +01:00
2017-05-20 18:24:23 +02:00
Les paramètres par défaut sont :
2016-12-29 11:25:39 +01:00
2017-05-20 18:24:23 +02:00
~~~{.ini}
maxretry = 3
findtime = 600
banaction = iptables-multiport
bantime = 600
ignoreip = 127.0.0.1/8
~~~
Les paramètres par défaut et un certain nombre de jails (non activées à par _ssh_) sont définies dans `/etc/fail2ban/jail.conf`,
si l'on veut ajouter ou modifier des paramètres ou des jails, il faut utiliser le fichier `/etc/fail2ban/jail.local`.
Pour dumper la configuration courante :
2016-12-29 11:25:39 +01:00
~~~
2017-05-20 18:24:23 +02:00
# fail2ban-client -d
['set', 'loglevel', 3]
['set', 'logtarget', '/var/log/fail2ban.log']
[...]
2016-12-29 11:25:39 +01:00
~~~
2017-05-20 18:24:23 +02:00
2016-12-29 11:25:39 +01:00
## Administration
2017-05-20 18:24:23 +02:00
Fail2Ban est un démon en Python, on peut s'assurer qu'il tourne bien sur un système :
~~~
$ ps auwx | grep fail2ban
root 24173 0.00.2 185048 12176 ? Sl 16:16 0:03 /usr/bin/python /usr/bin/fail2ban-server -b -s /var/run/fail2ban/fail2ban.sock -p /var/run/fail2ban/fail2ban.pid
~~~
On peut lister les jails actives :
2016-12-29 11:25:39 +01:00
~~~
# fail2ban-client status
2017-05-20 18:24:23 +02:00
Status
|- Number of jail: 1
`- Jail list: ssh
~~~
Et l'on doit les retrouver au niveau d'iptables :
2016-12-29 11:25:39 +01:00
~~~
2017-05-20 18:24:23 +02:00
# iptables -L -n
~~~
### fail2ban-client
2016-12-29 11:25:39 +01:00
2017-05-20 18:24:23 +02:00
De nombreuses commandes sont possibles avec `fail2ban-client` pour lister des informations ou modifier des paramètres.
2016-12-29 11:25:39 +01:00
2017-05-20 18:24:23 +02:00
Pour lister l'état de la jail _ssh_ :
2016-12-29 11:25:39 +01:00
~~~
2017-05-20 18:24:23 +02:00
# fail2ban-client status ssh
Status for the jail: ssh
|- filter
| |- File list: /var/log/auth.log
| |- Currently failed: 0
| `- Total failed: 6
`- action
|- Currently banned: 1
| `- IP list: 192.0.2.42
`- Total banned: 1
2016-12-29 11:25:39 +01:00
~~~
2017-05-20 18:24:23 +02:00
Pour débannir l'adresse IP 192.0.2.42 de la jail _ssh_ :
2016-12-29 11:25:39 +01:00
2017-05-20 18:24:23 +02:00
~~~
# fail2ban-client set ssh unbanip 192.0.2.42
~~~
2016-12-29 11:25:39 +01:00
2017-05-20 18:24:23 +02:00
Pour lister les informations de la jail _ssh_ :
~~~
# fail2ban-client get ssh maxretry
6
# fail2ban-client get ssh findtime
600
# fail2ban-client get ssh bantime
600
# fail2ban-client get ssh ignoreip
These IP addresses/networks are ignored:
`- 127.0.0.1/8
# fail2ban-client get ssh addaction
iptables-multiport
# fail2ban-client get ssh failregex
The following regular expression are defined:
[...]
~~~
2016-12-29 11:25:39 +01:00
2017-05-20 18:24:23 +02:00
## Règles de filtrage
Un certain nombre de règles de filtrage sont définies dans `/etc/fail2ban/filter.d/` :
2016-12-29 11:25:39 +01:00
~~~
2017-05-20 18:24:23 +02:00
3proxy.conf apache-noscript.conf couriersmtp.conf exim.conf lighttpd-auth.conf openwebmail.conf proftpd.conf selinux-ssh.conf squid.conf webmin-auth.conf
apache-auth.conf apache-overflows.conf cyrus-imap.conf exim-spam.conf mysqld-auth.conf pam-generic.conf pure-ftpd.conf sendmail-auth.conf sshd.conf wuftpd.conf
apache-badbots.conf assp.conf dovecot.conf freeswitch.conf nagios.conf perdition.conf qmail.conf sendmail-reject.conf sshd-ddos.conf xinetd-fail.conf
apache-common.conf asterisk.conf dropbear.conf groupoffice.conf named-refused.conf php-url-fopen.conf recidive.conf sieve.conf suhosin.conf
apache-modsecurity.conf common.conf ejabberd-auth.conf gssftpd.conf nginx-http-auth.conf postfix.conf roundcube-auth.conf sogo-auth.conf uwimap-auth.conf
apache-nohome.conf courierlogin.conf exim-common.conf horde.conf nsd.conf postfix-sasl.conf selinux-common.conf solid-pop3d.conf vsftpd.conf
2016-12-29 11:25:39 +01:00
~~~
2017-05-20 18:24:23 +02:00
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>_.
Exemple d'une règle :
~~~
[Definition]
failregex = warning: \[<HOST>\]: authentication failed:
ignoreregex =
~~~
On peut tester sa règle avec la commande **fail2ban-regex** en précisant une date :
~~~
$ fail2ban-regex '2017-05-20 10:10:10 foo' 'warning: \[<HOST>\]: authentication failed:'
[...]
Failregex: 0 total
[...]
$ fail2ban-regex '2017-05-20 10:10:10 [192.0.2.42]: authentication failed:' '\[<HOST>\]: authentication failed:'
[...]
Failregex: 1 total
|- #) [# of hits] regular expression
| 1) [1] \[<HOST>\]: authentication failed:
[...]
$ fail2ban-regex auth.log /etc/fail2ban/filter.d/evolix-test.conf
[...]
~~~
## Exemples
### Dovecot
On ajoute la règle `filter.d/evolix-dovecot.conf` :
2016-12-29 11:25:39 +01:00
~~~
[Definition]
failregex = (?: pop3-login|imap-login): .*(?:Authentication failure|Aborted login \(auth failed|Aborted login \(tried to use disabled|Disconnected \(auth failed|Aborted login \(\d+ authentication attempts).*rip=(?P<host>\S*),.*
2017-01-03 11:20:35 +01:00
ignoreregex =
2016-12-29 11:25:39 +01:00
~~~
2017-05-20 18:24:23 +02:00
puis on définit une jail ainsi :
~~~{.ini}
[dovecot]
enabled = true
filter = evolix-dovecot
port = pop3,pop3s,imap,imaps
logpath = /var/log/mail.log
~~~
Filtre dovecot, filter.d/dovecot-pop3imap.conf
2016-12-29 11:25:39 +01:00
## Courier
2017-05-20 18:24:23 +02:00
On utilise la règle _courierlogin_ prédéfinie pour la jail :
2016-12-29 11:25:39 +01:00
2017-01-03 11:20:35 +01:00
~~~{.ini}
2016-12-29 11:25:39 +01:00
[courierauth]
enabled = true
port = smtp,ssmtp,imap2,imap3,imaps,pop3,pop3s
filter = courierlogin
logpath = /var/log/mail.log
~~~
## Postfix SASL
2017-05-20 18:24:23 +02:00
La règle SASL ne convient pas, il faut la modifier via une nouvelle règle `filter.d/evolix-sasl.conf` :
~~~
[Definition]
failregex = (?i): warning: [-._\w]+\[<HOST>\]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed:
ignoreregex =
~~~
puis l'on définit une jail ainsi :
2016-12-29 11:25:39 +01:00
2017-01-03 11:20:35 +01:00
~~~{.ini}
2016-12-29 11:25:39 +01:00
[sasl]
enabled = true
2017-05-20 18:24:23 +02:00
port = smtp,ssmtp,submissions,imap2,imap3,imaps,pop3,pop3s
filter = evolix-sasl
2016-12-29 11:25:39 +01:00
logpath = /var/log/mail.log
~~~
2017-05-20 18:24:23 +02:00
## Apache / Nginx
2016-12-29 11:25:39 +01:00
Il est possible d'utiliser `fail2ban` sur des sites web pour ajouter une couche de protection contre les attaques, ou alors pour répondre à une attaque en cours.
Les deux attaques les plus courantes sur les services HTTP sont les DDOS et les attaques en "brute force".
Pour les attaques de type DDOS, la chose la plus efficace à faire est d'écrire des règles pour le serveur web (Apache, Nginx, etc.)
Comme `fail2ban` a besoin d'être configuré au cas par cas, il faut utiliser des configurations différentes pour chaque plateforme web.
En général, on tente d'être le plus précis possible en configurant `fail2ban` pour regarder les logs d'authentification. Cela permet d'éviter les faux positifs et d'être efficace en cas d'attaque.
2017-05-20 16:27:32 +02:00
On peut protéger Apache des attaques DDOS simples avec les configurations suivantes. Il faut tout d'abord s'assurer qu'Apache enregistre des logs d'accès. On ajoute ensuite un filtre à `fail2ban` dans `/etc/fail2ban/filter.d/ddos-http.conf` :
2016-12-29 11:25:39 +01:00
~~~
failregex = ^ -.*GET
~~~
Finalement, on modifie `/etc/fail2ban/jail.local` pour ajouter une des deux règles suivantes. Avec cette règle, une personne qui accède plus de 300 fois à une page web sur notre serveur web en 5 minutes va être bannie pendant la période de temps par défaut:
2017-01-03 11:20:35 +01:00
~~~{.ini}
2017-05-20 16:27:32 +02:00
[ddos-http-apache]
2016-12-29 11:25:39 +01:00
enabled = true
2017-05-20 16:27:32 +02:00
port = http,https
2016-12-29 11:25:39 +01:00
filter = ddos-http
logpath = /var/log/apache2/access.log
maxretry = 300
findtime = 300
~~~
2017-01-03 11:20:35 +01:00
~~~{.ini}
2017-05-20 16:27:32 +02:00
[ddos-http-nginx]
2016-12-29 11:25:39 +01:00
enabled = true
2017-05-20 16:27:32 +02:00
port = http,https
2016-12-29 11:25:39 +01:00
filter = ddos-http
logpath = /var/log/nginx/access.log
maxretry = 300
findtime = 300
~~~
2017-05-20 18:24:23 +02:00
### webapps
2016-12-29 11:25:39 +01:00
2017-05-20 18:24:23 +02:00
#### Wordpress sans plugin
2016-12-29 11:25:39 +01:00
2017-05-20 18:24:23 +02:00
Il existe plusieurs options pour configurer `fail2ban` pour Wordpress. Cela découle du fait qu'il n'y a pas de moyen par défaut de logger les authentifications erronées sous Wordpress, et que la page d'authentification ne renvoie pas d'erreur HTTP particulière non plus. ["Une proposition à cet effet"](https://core.trac.wordpress.org/ticket/25446) a cependant été faite et risque éventuellement d'être implémentée.
2016-12-29 11:25:39 +01:00
Cette option est la plus simple des trois car elle ne nécessite pas de modifier l'installation Wordpress. Elle a cependant le désavantage d'être très générale et peu créer des faux positifs. C'est celle qui est actuellement utilisée par Évolix.
Il faut tout d'abord s'assurer que notre serveur web enregistre des logs d'accès. On ajoute ensuite un filtre à `fail2ban` dans `/etc/fail2ban/filter.d/apache-wp.conf`:
~~~
[Definition]
failregex = <HOST> -.*"POST.*/wp-login.php HTTP.* 200
<HOST> -.*"POST.*/xmlrpc.php.*
~~~
Finalement, on modifie `/etc/fail2ban/jail.local` pour ajouter une règle. Avec cette règle, une personne qui accède plus de 5 fois à la page `/wp-login.php` ou à `/xmlrpc.php` dans une période d'une minute va être bannie pendant la période de temps par défaut:
2017-01-03 11:20:35 +01:00
~~~{.ini}
2016-12-29 11:25:39 +01:00
[apache-wp]
enabled = true
2017-05-20 16:27:32 +02:00
port = http,https
2016-12-29 11:25:39 +01:00
filter = apache-wp
logpath = /var/log/apache2/access.log
maxretry = 5
findtime = 60
~~~
2017-05-20 18:24:23 +02:00
#### Wordpress avec plugin simple
2016-12-29 11:25:39 +01:00
Une seconde option est d'utiliser un plugin Wordpress très simple pour envoyer une erreur HTTP 401 en cas d'erreur d'authentification. Cette méthode est plus fine et créé moins de faux positifs, mais nécessite de toucher à l'installation Wordpress.
Elle est cependant peu invasive car elle fait installe le plugin dans [wp-content/mu-plugins](https://codex.wordpress.org/Must_Use_Plugins), un dossier spécial pour les plugins de ce genre. Typiquement, les mu-plugins ne sont pas vu à travers l'interface d'administration web.
Il faut tout d'abord s'assurer que notre serveur web enregistre des logs d'accès. Par la suite, on installe le plugin dans `wp-content/mu-plugins/401-on-login-fail.php`:
2017-01-03 11:20:35 +01:00
~~~{.php}
2016-12-29 11:25:39 +01:00
<?php
function my_login_failed_401() {
status_header( 401 );
}
add_action( 'wp_login_failed', 'my_login_failed_401' );
~~~
On ajoute ensuite un filtre à `fail2ban` dans `/etc/fail2ban/filter.d/apache-wp.conf`:
~~~
[Definition]
failregex = <HOST>.*POST.*(wp-login\.php|xmlrpc\.php).* 401
~~~
Finalement, on modifie `/etc/fail2ban/jail.local` pour ajouter une règle. Avec cette règle, une personne qui accède plus de 5 fois à la page `/wp-login.php` ou à `/xmlrpc.php` dans une période d'une minute va être bannie pendant la période de temps par défaut:
2017-01-03 11:20:35 +01:00
~~~{.ini}
2016-12-29 11:25:39 +01:00
[apache-wp]
enabled = true
2017-05-20 16:27:32 +02:00
port = http,https
2016-12-29 11:25:39 +01:00
filter = apache-wp
logpath = /var/log/apache2/access.log
/home/user/log/access.log
maxretry = 5
findtime = 60
~~~
2017-05-20 18:24:23 +02:00
#### Wordpress avec plugin Fail2Ban
2016-12-29 11:25:39 +01:00
La dernière solution utilise le [le plugin Wordpress fail2ban](https://wordpress.org/plugins/wp-fail2ban/) pour enregistrer les authentification dans un fichier de log. `fail2ban` vérifie par la suite ce fichier pour bannir les gens effectuant des attaques.
Parce qu'elle nécessite l'installation et la mise à jour régulière d'un plugin, elle ne devrait être utilisée que par les personnes administrant le site web en question.
On commence tout d'abord par [installer le plugin](https://wordpress.org/plugins/wp-fail2ban/). Une fois que cela est fait, on ajoute les deux filtres suivants, respectivement dans `etc/fail2ban/filter.d/wordpress-hard` et `etc/fail2ban/filter.d/wordpress-soft`:
2017-01-03 11:20:35 +01:00
~~~{.ini}
2016-12-29 11:25:39 +01:00
# Fail2Ban configuration file hard
#
# Author: Charles Lecklider
#
[INCLUDES]
# Read common prefixes. If any customizations available -- read them from
# common.local
before = common.conf
[Definition]
_daemon = (?:wordpress|wp)
# Option: failregex
# Notes.: regex to match the password failures messages in the logfile. The
# host must be matched by a group named "host". The tag "<HOST>" can
# be used for standard IP/hostname matching and is only an alias for
# (?:::f{4,6}:)?(?P<host>[\w\-.^_]+)
# Values: TEXT
#
failregex = ^%(__prefix_line)sAuthentication attempt for unknown user .* from <HOST>( via XML-RPC)?$
^%(__prefix_line)sBlocked authentication attempt for .* from <HOST>( via XML-RPC)?$
^%(__prefix_line)sBlocked user enumeration attempt from <HOST>$
^%(__prefix_line)sPingback error .* generated from <HOST>$
# Option: ignoreregex
# Notes.: regex to ignore. If this regex matches, the line is ignored.
# Values: TEXT
#
ignoreregex =
~~~
2017-01-03 11:20:35 +01:00
~~~{.ini}
2016-12-29 11:25:39 +01:00
# Fail2Ban configuration file soft
#
# Author: Charles Lecklider
#
[INCLUDES]
# Read common prefixes. If any customizations available -- read them from
# common.local
before = common.conf
[Definition]
_daemon = (?:wordpress|wp)
# Option: failregex
# Notes.: regex to match the password failures messages in the logfile. The
# host must be matched by a group named "host". The tag "<HOST>" can
# be used for standard IP/hostname matching and is only an alias for
# (?:::f{4,6}:)?(?P<host>[\w\-.^_]+)
# Values: TEXT
#
failregex = ^%(__prefix_line)sAuthentication failure for .* from <HOST>$
^%(__prefix_line)sXML-RPC authentication failure from <HOST>$
# Option: ignoreregex
# Notes.: regex to ignore. If this regex matches, the line is ignored.
# Values: TEXT
#
ignoreregex =
~~~
Finalement, on modifie `/etc/fail2ban/jail.local` pour ajouter les règles suivantes. Avec cette règle, une personne qui tente de se connecter avec un compte inexistant ou qui n'arrive pas à se connecter 5 fois sera bannie pendant la période de temps par défaut:
2017-01-03 11:20:35 +01:00
~~~{.ini}
2016-12-29 11:25:39 +01:00
[wordpress-hard]
enabled = true
filter = wordpress-hard
logpath = /var/log/auth.log
maxretry = 1
2017-05-20 16:27:32 +02:00
port = http,https
2016-12-29 11:25:39 +01:00
[wordpress-soft]
enabled = true
filter = wordpress-soft
logpath = /var/log/auth.log
maxretry = 5
2017-05-20 16:27:32 +02:00
port = http,https
2016-12-29 11:25:39 +01:00
~~~
2017-05-20 18:24:23 +02:00
#### ownCloud
2016-12-29 11:25:39 +01:00
Pour faire fonctionne ownCloud avec fail2ban, il faut tout d'abord modifier le `config.php` pour enregistrer les informations d'authentification:
~~~
'loglevel' => '2',
'log_authfailip' => true,
'logfile' => '/var/log/owncloud.log',
~~~
On ajoute ensuite un filtre à `fail2ban` dans `/etc/fail2ban/filter.d/owncloud.conf`:
~~~
[Definition]
failregex={"app":"core","message":"Login failed: user '.*' , wrong password, IP:<HOST>","level":2,"time":".*"}
~~~
Finalement, on modifie `/etc/fail2ban/jail.local` pour ajouter une règle. Avec cette règle, une personne qui n'arrive pas à se connecter 5 fois dans une période de 10 minutes sera bannie pendant la période de temps par défaut:
2017-01-03 11:20:35 +01:00
~~~{.ini}
2016-12-29 11:25:39 +01:00
[owncloud]
2017-01-03 11:20:35 +01:00
enabled = true
2016-12-29 11:25:39 +01:00
filter = owncloud
2017-05-20 16:27:32 +02:00
port = http,https
2016-12-29 11:25:39 +01:00
logpath = /var/log/owncloud.log
maxrety = 5
findtime = 600
~~~
2017-05-20 18:24:23 +02:00
#### Joomla
2016-12-29 11:25:39 +01:00
Il faut tout d'abord s'assurer que notre serveur web enregistre des logs d'accès. On ajoute ensuite un filtre à `fail2ban` dans `/etc/fail2ban/filter.d/apache-joomla.conf`:
2017-01-03 11:20:35 +01:00
~~~{.ini}
2016-12-29 11:25:39 +01:00
[Definition]
failregex = <HOST> -.*"POST.*/administrator/index.php.*
~~~
Finalement, on modifie `/etc/fail2ban/jail.local` pour ajouter une règle. Avec cette règle, une personne qui accède plus de 5 fois à la page `/administrator/index.php` dans une période d'une minute va être bannie pendant la période de temps par défaut:
2017-01-03 11:20:35 +01:00
~~~{.ini}
2016-12-29 11:25:39 +01:00
[apache-joomla]
enabled = true
2017-05-20 16:27:32 +02:00
port = http,https
2016-12-29 11:25:39 +01:00
filter = apache-joomla
logpath = /var/log/apache2/access.log
maxretry = 5
findtime = 60
~~~
2017-05-20 18:24:23 +02:00
#### Prestashop
2016-12-29 11:25:39 +01:00
Il faut tout d'abord s'assurer que notre serveur web enregistre des logs d'accès. On ajoute ensuite un filtre à `fail2ban` dans `/etc/fail2ban/filter.d/apache-prestashop.conf`:
2017-01-03 11:20:35 +01:00
~~~{.ini}
2016-12-29 11:25:39 +01:00
[Definition]
failregex = <HOST> -.*"POST.*/login.*
~~~
Finalement, on modifie `/etc/fail2ban/jail.local` pour ajouter une règle. Avec cette règle, une personne qui accède plus de 10 fois à la page de connexion pour un compte utilisateur dans une période d'une minute va être bannie pendant la période de temps par défaut:
2017-01-03 11:20:35 +01:00
~~~{.ini}
2016-12-29 11:25:39 +01:00
[apache-prestashop]
enabled = true
2017-05-20 16:27:32 +02:00
port = http,https
2016-12-29 11:25:39 +01:00
filter = apache-prestashop
logpath = /var/log/apache2/access.log
maxretry = 10
findtime = 60
2017-01-03 11:20:35 +01:00
~~~
2017-05-20 18:24:23 +02:00
## FAQ
### Fail2Ban supporte l'IPv6 ?
Non, Fail2Ban ne supporte pas encore l'IPv6, c'est prévu pour la version 0.10 (encore expérimentale).
### Attaque via un utilisateur
Un utilisateur local peut générer des logs vers _syslog_ (par exemple avec la commande **logger**), il faut donc bien avoir en tête
que toute jail s'appuyant sur des logs _syslog_ (comme `/var/log/auth.log`) pourra être activée par un utilisateur logué en SSH ou via PHP, CGI, etc.