[[fail2ban]]
Piste: » fail2ban
Bannir des IP avec fail2ban
fail2ban lit les logs de divers serveurs (ssh, apache, ftp,…) à la recherche d'erreurs d'authentification répétées et ajoute une règle iptables pour bannir l'adresse IP de la source.
Installation
Installez le paquet fail2ban disponible dans les dépôts Universe.
(attention, à partir d'Ubuntu Feisty, il est conseillé d'installer fail2ban via les sources, fail2ban n'étant pas mis à jour dans les dépôts depuis de nombreuses maj de sécurité)
en ligne de commande:
tar xvfj fail2ban-0.8.1.tar.bz2
cd fail2ban-0.8.1
python setup.py install
Ceci installera fail2ban dans ce répertoire /usr/share/fail2ban. Les scripts executables sont placés dans le répertoire /usr/bin.
Fail2Ban devrait être correctement installé, pour vérifier tapez :
fail2ban-client -h
Configuration
Pour spécifier à fail2ban quels services il doit surveiller, éditez le fichier /etc/fail2ban/jail.conf
Dans la partie jail vous trouverez des blocs du type :
[ssh] enabled = true port = ssh,sftp filter = sshd logpath = /var/log/auth.log maxretry = 6
Il indique, par ordre, l'activation, les ports à bloquer avec les règles iptables, le nom du filtre (expression régulière) associé, le fichier de log à lire, le nombre maximal de tentatives.
Un certain nombre de services disposent de tels blocs de configuration, vous pouvez les activer en passant si besoin false à true.
Relancez la configuration avec
sudo fail2ban-client reload
Vous pouvez alors vérifier si les prisons ont été correctement lancées avec :
(20:34:21)guixx@C2209:~ $ sudo fail2ban-client status Status |- Number of jail: 3 `- Jail list: apache, vsftpd, ssh
Les prisons peuvent être contrôlées séparément avec les mots clés start,stop,status Par exemple :
(20:50:16)guixx@C2209:~ $ sudo fail2ban-client stop ssh Jail stopped
Pour plus d'informations, référez-vous aux pages de man.
Configuration avancée
A chaque service est associé un fichier de configuration dans le dossier /etc/fail2ban/filter.d
Une expression régulière définit les lignes du log qui signalent une erreur d'authentification. Il est possible de spécifier via une regex des exceptions, ie des lignes à ignorer. Cela peut être utile par exemple pour ne pas bannir les IP provenant de votre réseau local.
Ressources
Voir aussi
- denyhosts à peu près le même principe mais sans utiliser iptables
