Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

26723 attaques... Pb entre Fail2ban & Lenny

2 réponses
Avatar
Pierre
Bonjour à tous,

Aujourd'hui, en quelques heures, j'ai eu 26723 tentatives par brute
force sur mon serveur FTP...
J'utilise Fail2ban qui faisait merveille sur Etch, mais qui semble ne
plus fonctionner sur Lenny (je suis en 5.01).
Après recherche, il apparaît que le problème soit (relativement ?) connu
(http://reghost.fr/index.php?2009/03/11/78-fail2ban-version-lenny).
Mais j'ai crû comprendre que cela était lié à une modification propre à
Lenny et ne concernait que le log auth.log.
Or, mon problème concerne le traitement des logs proftpd.
J'ai regardé le fichier /etc/fail2ban/filter.d/proftpd.conf :
failregex = \(\S+\[<HOST>\]\)[: -]+ USER \S+: no such user found from
\S+ \[\S+\] to \S+:\S+$
\(\S+\[<HOST>\]\)[: -]+ USER \S+ \(Login failed\): Incorrect
password\.$
\(\S+\[<HOST>\]\)[: -]+ SECURITY VIOLATION: \S+ login
attempted\.$
\(\S+\[<HOST>\]\)[: -]+ Maximum login attempts \(\d+\) exceeded$
Je ne suis pas un expert en expression régulière, mais la première et
quatrième ligne figurent bien dans les logs de proftpd.
extrait de mon log :
mai 19 16:53:37 helios proftpd[4624] domaine.net
(222.81.8.228[222.81.8.228]): USER manuella: no such user found from
222.81.8.228 [222.81.8.228] to 192.168.1.2:21
mai 19 16:53:38 helios proftpd[4624] domaine.net
(222.81.8.228[222.81.8.228]): no such user 'manuella'
mai 19 16:53:38 helios proftpd[4624] domaine.net
(222.81.8.228[222.81.8.228]): USER manuella: no such user found from
222.81.8.228 [222.81.8.228] to 192.168.1.2:21
mai 19 16:53:39 helios proftpd[4624] domaine.net
(222.81.8.228[222.81.8.228]): no such user 'manuella'
mai 19 16:53:39 helios proftpd[4624] domaine.net
(222.81.8.228[222.81.8.228]): USER manuella: no such user found from
222.81.8.228 [222.81.8.228] to 192.168.1.2:21
mai 19 16:53:39 helios proftpd[4624] domaine.net
(222.81.8.228[222.81.8.228]): Maximum login attempts (3) exceeded,
connection refused

Je précise quand même que le service est bien lancé :
root 25839 1 0 May18 ? 00:01:22 /usr/bin/python
/usr/bin/fail2ban-server -b -s /var/run/fail2ban/fail2ban.sock

Sinon, en terme de config, rien de particulier, sinon que j'ai suivi les
préconisations de jail.conf qui suggère de créer un jail.local... et
dont voici les seules lignes modifiées :
ignoreip = 127.0.0.1 192.168.1.20 192.168.1.21 192.168.1.22 192.168.1.23
192.168.1.1
bantime = 72000
maxretry = 3

[proftpd]
enabled = true
port = ftp,ftp-data,ftps,ftps-data
filter = proftpd
logpath = /var/log/proftpd/proftpd.log
maxretry = 3

Droits de /var/log/proftpd/proftpd.log : -rw-r--r-- 1 root root 859
mai 17 12:47 fail2ban.conf

Désolé pour la longueur imbuvable de post, mais j'essaie d'être aussi
précis et complet que possible.
Merci d'avance.




--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org

2 réponses

Avatar
Philippe Laquet
Pierre a écrit :
Bonjour à tous,

Aujourd'hui, en quelques heures, j'ai eu 26723 tentatives par brute
force sur mon serveur FTP...
J'utilise Fail2ban qui faisait merveille sur Etch, mais qui semble ne
plus fonctionner sur Lenny (je suis en 5.01).
Après recherche, il apparaît que le problème soit (relativement ?)
connu (http://reghost.fr/index.php?2009/03/11/78-fail2ban-version-lenny).
Mais j'ai crû comprendre que cela était lié à une modification propre
à Lenny et ne concernait que le log auth.log.
Or, mon problème concerne le traitement des logs proftpd.
J'ai regardé le fichier /etc/fail2ban/filter.d/proftpd.conf :
failregex = (S+[<HOST>])[: -]+ USER S+: no such user found from
S+ [S+] to S+:S+$
(S+[<HOST>])[: -]+ USER S+ (Login failed):
Incorrect password.$
(S+[<HOST>])[: -]+ SECURITY VIOLATION: S+ login
attempted.$
(S+[<HOST>])[: -]+ Maximum login attempts (d+)
exceeded$
Je ne suis pas un expert en expression régulière, mais la première et
quatrième ligne figurent bien dans les logs de proftpd.
extrait de mon log :
mai 19 16:53:37 helios proftpd[4624] domaine.net
(222.81.8.228[222.81.8.228]): USER manuella: no such user found from
222.81.8.228 [222.81.8.228] to 192.168.1.2:21
mai 19 16:53:38 helios proftpd[4624] domaine.net
(222.81.8.228[222.81.8.228]): no such user 'manuella'
mai 19 16:53:38 helios proftpd[4624] domaine.net
(222.81.8.228[222.81.8.228]): USER manuella: no such user found from
222.81.8.228 [222.81.8.228] to 192.168.1.2:21
mai 19 16:53:39 helios proftpd[4624] domaine.net
(222.81.8.228[222.81.8.228]): no such user 'manuella'
mai 19 16:53:39 helios proftpd[4624] domaine.net
(222.81.8.228[222.81.8.228]): USER manuella: no such user found from
222.81.8.228 [222.81.8.228] to 192.168.1.2:21
mai 19 16:53:39 helios proftpd[4624] domaine.net
(222.81.8.228[222.81.8.228]): Maximum login attempts (3) exceeded,
connection refused

Je précise quand même que le service est bien lancé :
root 25839 1 0 May18 ? 00:01:22 /usr/bin/python
/usr/bin/fail2ban-server -b -s /var/run/fail2ban/fail2ban.sock

Sinon, en terme de config, rien de particulier, sinon que j'ai suivi
les préconisations de jail.conf qui suggère de créer un jail.local...
et dont voici les seules lignes modifiées :
ignoreip = 127.0.0.1 192.168.1.20 192.168.1.21 192.168.1.22
192.168.1.23 192.168.1.1
bantime = 72000
maxretry = 3

[proftpd]
enabled = true
port = ftp,ftp-data,ftps,ftps-data
filter = proftpd
logpath = /var/log/proftpd/proftpd.log
maxretry = 3

Droits de /var/log/proftpd/proftpd.log : -rw-r--r-- 1 root root
859 mai 17 12:47 fail2ban.conf

Désolé pour la longueur imbuvable de post, mais j'essaie d'être aussi
précis et complet que possible.
Merci d'avance.






La première semble correcte en effet (ton proftpd identifie donc a
priori bien les violations).
Par contre pour la quatrième expression :
(S+[<HOST>])[: -]+ Maximum login attempts (d+) exceeded$

Le "$" signifiant "fin de ligne" ne correspond pas avec ta ligne dans
les LOG qui est :
[...] Maximum login attempts (3) exceeded, connection refused

Donc, essaies en remplacant cette dernière expression par :
(S+[<HOST>])[: -]+ Maximum login attempts (d+) exceeded,
connection refused$


Ça devrait rouler... (I Hope!)
(Je ne sais pas si ces expressions sont lues à la volée ou s'il te
faudra faire un "restart" de ton proftpd)


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Avatar
Pierre
Merci beaucoup pour cette réponse rapide.
J'ai fait la modif et relancé fail2ban.
Sinon, en effet, on peut être certain que fail2ban scrute bien les logs
de proftpd,
puisque pendant un court laps de temps j'ai renommé le proftpd.log, et
immédiatement
il y avait des injures dans le fail2ban.log

Il y a quand même un truc qui me surprend : Effectivement la quatrième
expression régulière n'était pas conforme,
mais néanmoins, la première semblait bien l'être, et par conséquent les
conditions de bannissement étaient remplis
(3 fois "no such user found from")...

Merci encore, et on va bien voir...
La première semble correcte en effet (ton proftpd identifie donc a
priori bien les violations).
Par contre pour la quatrième expression :
(S+[<HOST>])[: -]+ Maximum login attempts (d+) exceeded$

Le "$" signifiant "fin de ligne" ne correspond pas avec ta ligne dans
les LOG qui est :
[...] Maximum login attempts (3) exceeded, connection refused

Donc, essaies en remplacant cette dernière expression par :
(S+[<HOST>])[: -]+ Maximum login attempts (d+) exceeded,
connection refused$


Ça devrait rouler... (I Hope!)
(Je ne sais pas si ces expressions sont lues à la volée ou s'il te
faudra faire un "restart" de ton proftpd)






--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS