FAQ Matérielle

ID #1048

Modification du langage par défaut des logs de proftpd pour analyse Fail2ban

Fail2Ban, qu’on ne présente plus, est un outil bien utile.
Encore faut-il que les regex soit bien configurées, et que les services (tels que ProFTPd) sortent un log qui est interprétable par ProFTPd.

Il m’est arrivé de détecter que fail2ban ne faisait pas bien son job avec proftpd.
En effet, un log comme suit :

1 déc. 08 04:26:16 xxx.sn4ky.net proftpd[20043] 127.0.0.1 (174.133.xxx.xxx[174.133.xxx.xxx]): USER Administrator: no such user found from 174.133.xxx.xxx [174.133.xxx.xxx] to 217.174.xxx.xxx:21

n’est pas correctement interprété par fail2ban (fail2ban ne parvient pas à « lire » le format de la date – date dont il se sert afin de déterminer la fréquence des tentatives de connexions).

Ceci n’est pas un problème d’une regex mal configurée, comme on peut le voir en utilisant l’outil fail2ban-regex (qui permet de valider le bon fonctionnement d’un filtre dans /etc/filter.d/profptd.conf) :

1 fail2ban-regex /var/log/proftpd/proftpd.logbak /etc/fail2ban/filter.d/proftpd.conf
2 Found a match for 'd xxx.sn4ky.net proftpd[20043] 127.0.0.1 (174.133.xxx.xxx[174.133.xxx.xxx]): USER Administrator: no such user found from 174.133.xxx.xxx[174.133.xxx.xxx] to 217.174.xxx.xxx:21
3 ' but no valid date/time found for 'éc. 08 04:26:16'. Please contact the author in order to get support for this format

Il apparaît que le démon proftpd démarre en utilisant la valeur de la variable d’environnement LANG, définie par la locale par défaut utilisée sur le système au moment du démarrage de celui-ci :

1 # echo $LANG
2 fr_FR@euro

Une solution permet de contourner ce problème, modifier les locales afin d’utiliser un environnement en Anglais, qui serai reconnu correctement par proftpd.
MAIS, je n’aime pas trop cette solution (bien qu’efficace, changer sa locale par défaut peut parfois causer des soucis).

Une autre solution, beaucoup plus « soft » m’es venue à l’esprit :
On va tout d’abord ajouter une locale à notre système :

1 # dpkg-reconfigure locales

(on va ajouter une locale en anglais, par exemple en_US.UTF-8 – universelle en plus)
On ne change pas la locale par défaut, par contre, on va éditer le fichier /etc/default/proftpd.conf et y rajouter la ligne suivante :

1 export LANG=en_US.UTF-8

Par la suite, il ne reste plus qu’à redémarrer proftpd, puis constater, dans les logs :

1 déc. 10 01:50:32 xxx.sn4ky.net proftpd[8594] 127.0.0.1: ProFTPD 1.3.3a standalone mode SHUTDOWN
2 Dec 10 01:50:34 xxx.sn4ky.net proftpd[9237] 127.0.0.1: ProFTPD 1.3.3a (maint) (built Sun Nov 13 2011 22:40:44 UTC) standalone mode STARTUP

Miracle ! le format de sortie du log a changé !
Et cette fois, il est lisible par Fail2ban (un fail2ban-regex pour s’en convaincre, après avoir fait un petit coup de sed -i.bak 's/déc\./Dec/g' /var/log/proftpd/proftpd.log pour s’en convaincre.

En espérant en avoir dépanné plus d’un.

Source : http://markasread.sn4ky.net/proftpd-fail2ban-locales/

Nuage de tags: -

Questions - Réponses en relation :

Dernière mise à jour : 2015-02-14 16:21
Auteur : Joris Frugier
Révision: 1.0

Digg it! Share on Facebook Imprimer cet article Envoyer à un ami version PDF
Proposer une traduction pour Proposer une traduction pour
Merci de noter cette entrée :

Moyenne des notes : 0 (0 Vote)

complètement inutile 1 2 3 4 5 indispensable

Vous ne pouvez pas commenter cet enregistrement