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
suhosin