Suite à la redondance de certaine ip qui allonge de maniere inconsidéré les log , j’ai decidé d’agir.
Apres quelques recherche , les articles suivant m’ont mis sur la voie:
- http://cx.cx/2011/02/22/fail2ban-installation-et-configuration/
- http://gardouilleland.free.fr/wordpress/?cat=17
- http://forum.inforeseau.com/post118.html
donc , je trouvais l’approche de l’analyse du fichier de log de fail2ban (gardouilleland) etre une bonne approche;
Je me suis donc mis en tete de rajouter un filtre puis une action
En suivant le tuto de gardouilleland, je n’arrivais pas a faire fonctionner la mise en prison des ip qui insiste malgres des ban repeté (les boths ne ce lassent pas vite)
J’ai donc testé le filtre mise en place
fail2ban-regex /var/log/fail2ban.log /etc/fail2ban/filter.d/fail2ban.conf
et la constaté qu’il manquait le <host> en fin de regex, comme precié dans le wiki
http://www.fail2ban.org/wiki/index.php/MANUAL_0_8
avec sont encadrement , soit:
(?P<host> ... )
Ajout régle et jail pour bloquer les tentatives incessantes
fichier filter fail2ban.conf
Et la, c’est ok apres test de la regex, plus de soucis, celle ci est bien trouvé; Ce qui donne donc , l’ajout d’un fichier etc/fail2ban/filter.d/fail2ban.conf composé comme suit:
# Fail1Ban: fichier de configuration
#
# Author: Tom Hendrikx
# Traduction: Gardouille
#
# Version: 1.0
#
[Definition]
# Option: failregex
# Notes.: regex qui correspond aux messages d'erreur relatifs
# à un mauvais mot de passe dans le fichier de log.
# L'hote doit correspondre à un groupe nommé "host".
# Le tag "<HOST>" peut être utilisé pour faire correspondre
# les IP/hostname et c'est seulement un alias pour
# (?:::f{4,6}:)?(?P<host>\S+)
# Valeur: Texte
#
# Compter toutes les ip bannies dans le fichier de log
failregex = fail2ban.actions: WARNING \[(.*)\] Ban (?P<host>\S+)
# Option: ignoreregex
# Notes.: regex à ignorer. Si cette regex correspond, la ligne est ignorée.
# Valeur: Texte
#
# Ignorer nos propres bannissements, pour garder nos comptes exacts.
# Dans le fichier de config, nommer la prison 'fail2ban', ou alors changer cette ligne!
ignoreregex = fail2ban.actions: WARNING \[fail2ban\] Ban
jail
Et la régle jail correpsondante, dans le fichier etc/fail2ban/jail.conf
[fail2ban]
enabled = true
filter = fail2ban
action = iptables-allports[name=fail2ban]
sendmail-whois[dest="aurelien@oscim.com",name="fail2ban",sender="fail2ban@sd-27429.dedibox.fr"]
# Fichier de log analysé :
logpath = /var/log/fail2ban.log
# Analyse les logs sur 1 semaine
findtime = 604800
# bantime: 1 semaine
bantime = 604800
maxretry = 2
Ajout régle est jail en complement de suhosin
On construit le fichier de configuration
# Fail1Ban: fichier de configuration
#
# Author: oscim
#
# Version: 1.0
#
[Definition]
# Option: failregex
# Notes.: regex qui correspond aux messages d'erreur relatifs
# à un mauvais mot de passe dans le fichier de log.
# L'hote doit correspondre à un groupe nommé "host".
# Le tag "<HOST>" peut être utilisé pour faire correspondre
# les IP/hostname et c'est seulement un alias pour
# (?:::f{4,6}:)?(?P<host>\S+)
# Valeur: Texte
#
# Compter toutes les attack bloqué par suhosin et declaré dans le log (/var/log/user.log) et on les bannies
failregex = suhosin\[\d*\].*\(attacker\s'<HOST>'.*
# Option: ignoreregex
# Notes.: regex à ignorer. Si cette regex correspond, la ligne est ignorée.
# Valeur: Texte
#
# Ignorer nos propres bannissements, pour garder nos comptes exacts.
# Dans le fichier de config, nommer la prison 'fail2ban', ou alors changer cette ligne!
ignoreregex = fail2ban.actions: WARNING \[suhosin\] Ban
On teste ensuite la regex avec
fail2ban-regex /var/log/user.log /etc/fail2ban/filter.d/suhosin.conf
jail
Et la régle jail correpsondante, dans le fichier etc/fail2ban/jail.conf
[suhosin]
enabled = true
port = http,https
filter = suhosin
logpath = /var/log/syslog/*error.log
maxretry = 1