[Résolu] Fail2ban + Pure-FTPd

Fail2ban + Pure-FTPd [Résolu] - Sécurité - Réseaux grand public / SoHo

Marsh Posté le 03-07-2009 à 13:13:15    

Bonjour à tous,
 
Voilà, j'ai mon petit serveur @home tout tranquille dans son coin d'Internet, ET j'ai des boulets qui tentent de passer en brute force sur mon serveur FTP derrière leur proxy  [:god].
 
Ce que j'aimerai  [:huit] :
Que fail2ban fasse son job pour pure-ftpd comme pour les autres (comprendre le serveur ssh, mail, apache).
 
Le problème  [:anne-sophie] :
Eh bah il le fait pas [:ddr555]!
 
J'ai fais pas mal de recherche sur ce problème, et à part des problèmes de regex merdées dans /etc/fail2ban/filter.d/pure-ftpd.conf j'ai rien trouvé.
J''en ai vu qui disait que ça marchait avec la regex d'origine, d'autre qu'il fallait échapper les caractères spéciaux, toussa, j'ai essayé différente regex, mais rien ne fonctionne, les vilains pas beau reviennent toujours :o.
Pour vous faire une idée voici mon fichier de conf :

Code :
  1. # Fail2Ban configuration file
  2. #
  3. # Author: Cyril Jaquier
  4. # Modified: Yaroslav Halchenko for pure-ftpd
  5. #
  6. # $Revision: 3$
  7. #
  8. [Definition]
  9. # Error message specified in multiple languages
  10. __errmsg = (?:Authentication failed for user|Erreur d'authentification pour l'utilisateur)
  11. #
  12. # Option: failregex
  13. # Notes.: regex to match the password failures messages in the logfile. The
  14. #         host must be matched by a group named "host". The tag "<HOST>" can
  15. #         be used for standard IP/hostname matching and is only an alias for
  16. #         (?:::f{4,6}:)?(?P<host>\S+)
  17. # Values: TEXT
  18. #
  19. # ça c'est la requête d'origine :
  20. #failregex = pure-ftpd(?:\[\d+\])?: (.+?@<HOST> ) \[WARNING\] %(__errmsg)s \[.+\]$
  21. # ça c'est mon dernier essai sans succès :
  22. failregex = .*pure-ftpd:.*@<HOST>.* \[WARNING\] Authentication failed for user.*\[.*\]
  23. # Option:  ignoreregex
  24. # Notes.:  regex to ignore. If this regex matches, the line is ignored.
  25. # Values:  TEXT
  26. #
  27. ignoreregex =


 
J'ai essayé la requête avec un petit grep avec cette regex un peu modifié (pas de <HOST> avec grep) sur le fichier de log avec succès, donc je soupçonne cet alias <HOST> de merder, même si sans l'alias ça ne fonctionne pas plus :o, mais pourtant il est indiqué qu'il le faut pour pouvoir capturer l'ip à bannir...
 
Quelqu'un utilise fail2ban avec pure-ftpd sur une debian lenny et aurait rencontré ce problème?
Ou une nouvelle piste sur laquelle chercher?
 
 
Merci d'avoir lu =)


Message édité par TizeN le 03-07-2009 à 16:08:34

---------------
[VDS] AMD RX Vega 56 Sapphire Pulse 8Go OC, Matos WC (WB CPU/GPU, embouts rigide, capteurs, pompe, etc.), Routeurs WiFi Linksys WRT3200ACM, Réhobus NZXT Sentry LXE
Reply

Marsh Posté le 03-07-2009 à 13:13:15   

Reply

Marsh Posté le 03-07-2009 à 13:42:15    

Je n'ai pas activé fail2ban pour mon pure-ftpd, je vais essayer et je te tiens au courant.
[:drap]


---------------
Un proverbe chinois dit que lorsqu'on a rien à dire d'intéressant, on cite généralement un proverbe chinois.
Reply

Marsh Posté le 03-07-2009 à 13:53:57    

Tu as ajouté une section dans le jail.conf ?


---------------
Un proverbe chinois dit que lorsqu'on a rien à dire d'intéressant, on cite généralement un proverbe chinois.
Reply

Marsh Posté le 03-07-2009 à 14:01:56    

Ouaip je te montre :

Code :
  1. [pure-ftpd]
  2. enabled = true
  3. port = ftp,ftp-data,ftps,ftps-data
  4. filter = pure-ftpd
  5. logpath = /var/log/messages
  6. maxretry = 3


 
pour la ligne "port = ftp,ftp-data,ftps,ftps-data" j'ai essayé avec seulement "ftp" et avec les autres, mais rien n'a changé...


---------------
[VDS] AMD RX Vega 56 Sapphire Pulse 8Go OC, Matos WC (WB CPU/GPU, embouts rigide, capteurs, pompe, etc.), Routeurs WiFi Linksys WRT3200ACM, Réhobus NZXT Sentry LXE
Reply

Marsh Posté le 03-07-2009 à 14:26:23    

Alors : l'expression "livrée" avec fail2ban n'a pas l'air de fonctionner. fail2ban démarre mais ne détecte rien. Par contre avec celle que tu as indiqué dans ton fichier je n'ai pas de problème :  

Citation :

2009-07-03 14:21:18,839 fail2ban.actions: WARNING [pure-ftpd] Ban 192.168.0.1


 
 
Voici mon filter.d/pure-ftpd.conf :

ruliane@serveur13:~$ cat /etc/fail2ban/filter.d/pure-ftpd.conf
# Fail2Ban configuration file
#
# Author: Cyril Jaquier
# Modified: Yaroslav Halchenko for pure-ftpd
#
# $Revision: 3$
#
 
[Definition]
 
# Error message specified in multiple languages
__errmsg = (?:Authentication failed for user|Erreur d'authentification pour l'utilisateur)
 
#
# Option: failregex
# Notes.: regex to match the password failures messages in the logfile. The
#         host must be matched by a group named "host". The tag "<HOST>" can
#         be used for standard IP/hostname matching and is only an alias for
#         (?:::f{4,6}:)?(?P<host>\S+)
# Values: TEXT
#
# Original
#failregex = pure-ftpd(?:\[\d+\])?: (.+?@<HOST> ) \[WARNING\] %(__errmsg)s \[.+\]$
failregex = .*pure-ftpd:.*@<HOST>.* \[WARNING\] Authentication failed for user.*\[.*\]
 
# Option:  ignoreregex
# Notes.:  regex to ignore. If this regex matches, the line is ignored.
# Values:  TEXT
#
ignoreregex =
 
ruliane@serveur13:~$


 
Et un extrait de mon jail.conf :

[pure-ftpd]
enabled = true
port = ftp,ftp-data
filter = pure-ftpd
#logpath = /var/log/pure-ftpd/pure-ftpd.log
logpath = /var/log/messages
maxretry = 3


 
Donc je ne vois pas d'où ça vient. Dans le log de fail2ban, quand tu lance le service tu as bien quelque chose comme ça ?

2009-07-03 14:08:35,659 fail2ban.jail   : INFO   Creating new jail 'pure-ftpd'
2009-07-03 14:08:35,659 fail2ban.jail   : INFO   Jail 'pure-ftpd' uses poller
2009-07-03 14:08:35,673 fail2ban.filter : INFO   Added logfile = /var/log/messages
2009-07-03 14:08:35,675 fail2ban.filter : INFO   Set maxRetry = 3
2009-07-03 14:08:35,679 fail2ban.filter : INFO   Set findtime = 600
2009-07-03 14:08:35,681 fail2ban.actions: INFO   Set banTime = 600
2009-07-03 14:08:35,729 fail2ban.jail   : INFO   Jail 'pure-ftpd' started


Message édité par Ruliane le 03-07-2009 à 14:27:23

---------------
Un proverbe chinois dit que lorsqu'on a rien à dire d'intéressant, on cite généralement un proverbe chinois.
Reply

Marsh Posté le 03-07-2009 à 16:08:17    

Ça marche! En fait j'avais un apostrophe qui s'était glissé à la fin de ma regex lorsque j'ai fais un copier coller de celle-ci suite à mon essai avec grep ce qui fait qu'elle ne fonctionnait pas  [:ddr555]  
 
Merci beaucoup!
 
EDIT : le seul truc que j'ai pas compris c'est ce message de fail2ban au restart :

Citation :

ERROR  Invalid argument ['ftp-data'] in 'name=pure-ftpd, port=ftp,ftp-data'
2009-07-03 16:00:54,094 fail2ban.server : INFO   Starting Fail2ban v0.8.3
2009-07-03 16:00:54,095 fail2ban.server : INFO   Starting in daemon mode


M'enfin ça marche très bien avec seulement le port "ftp", donc bon, en attendant je scrute toujours mes logs (vive logcheck) au cas où un petit malin arriverait quand même à jouer avec mon serveur [:huit].
 
NB: sujet résolu!


Message édité par TizeN le 03-07-2009 à 16:10:36

---------------
[VDS] AMD RX Vega 56 Sapphire Pulse 8Go OC, Matos WC (WB CPU/GPU, embouts rigide, capteurs, pompe, etc.), Routeurs WiFi Linksys WRT3200ACM, Réhobus NZXT Sentry LXE
Reply

Marsh Posté le 03-07-2009 à 17:50:37    

Si tu précises le port 20 au lieu du ftp-data ?


Message édité par Ruliane le 03-07-2009 à 17:50:42

---------------
Un proverbe chinois dit que lorsqu'on a rien à dire d'intéressant, on cite généralement un proverbe chinois.
Reply

Marsh Posté le 03-07-2009 à 18:02:27    

La même chose :/...
 
M'enfin de toute façon ça marche avec seulement le port 21, donc pas de quoi s'inquièter :)


---------------
[VDS] AMD RX Vega 56 Sapphire Pulse 8Go OC, Matos WC (WB CPU/GPU, embouts rigide, capteurs, pompe, etc.), Routeurs WiFi Linksys WRT3200ACM, Réhobus NZXT Sentry LXE
Reply

Marsh Posté le 04-07-2009 à 10:58:19    

Je ne savais pas que les règles de base étaient foireuses, quand je l'essaye (Fail2ban) sur mon serveur SSH, ça ne faire rien. Je vais le réinstaller et chercher ;)

Reply

Marsh Posté le 04-07-2009 à 10:58:19   

Reply

Marsh Posté le 04-07-2009 à 14:14:32    

Personnellement je n'ai eu que la règle de pure-ftpd qui était foireuse, le reste fonctionne très bien à partir du moment où tu modifie bien le port de chaque service dans /etc/services ;).
 
J'ai cherché pendant bien 1h la première fois avant de penser à changer le port SSH par défaut utilisé par le système [:god].


---------------
[VDS] AMD RX Vega 56 Sapphire Pulse 8Go OC, Matos WC (WB CPU/GPU, embouts rigide, capteurs, pompe, etc.), Routeurs WiFi Linksys WRT3200ACM, Réhobus NZXT Sentry LXE
Reply

Marsh Posté le 04-07-2009 à 21:47:10    

Moi ma config pour SSH était bonne dès le début. Aucun port à modifier  :??:


---------------
Un proverbe chinois dit que lorsqu'on a rien à dire d'intéressant, on cite généralement un proverbe chinois.
Reply

Marsh Posté le 04-07-2009 à 21:47:57    

Reply

Marsh Posté le 04-07-2009 à 21:49:27    

Ah OK


---------------
Un proverbe chinois dit que lorsqu'on a rien à dire d'intéressant, on cite généralement un proverbe chinois.
Reply

Marsh Posté le 05-07-2009 à 12:24:17    

Personnellement, j'écoute aussi sur le port 22 mais quand je simule une attaque, il s'en fout

Reply

Marsh Posté le 05-07-2009 à 13:08:50    

Gavrinis a écrit :

Personnellement, j'écoute aussi sur le port 22 mais quand je simule une attaque, il s'en fout


Ton /etc/services est correctement configuré ? Normalement aucune modification à faire, mais on sait jamais. Vérifie aussi tes regex, voilà les miennes (c'est celles par défaut) :


^%(__prefix_line)s(?:error: PAM: )?Authentication failure for .* from <HOST>\s*$
^%(__prefix_line)s(?:error: PAM: )?User not known to the underlying authentication module for .* from <HOST>\s*$
^%(__prefix_line)sFailed (?:password|publickey) for .* from <HOST>(?: port \d*)?(?: ssh\d*)?$
^%(__prefix_line)sROOT LOGIN REFUSED.* FROM <HOST>\s*$
^%(__prefix_line)s[iI](?:llegal|nvalid) user .* from <HOST>\s*$
^%(__prefix_line)sUser .+ from <HOST> not allowed because not listed in AllowUsers$
^%(__prefix_line)sUser .+ from <HOST> not allowed because none of user's groups are listed in AllowGroups\s*$
^%(__prefix_line)sauthentication failure; logname=\S* uid=\S* euid=\S* tty=\S* ruser=\S* rhost=<HOST> (?:\s+user=.*)?\s*$
^%(__prefix_line)srefused connect from \S+ \(<HOST>\)\s*$
^%(__prefix_line)sAddress <HOST> .* POSSIBLE BREAK-IN ATTEMPT\s*$


---------------
Un proverbe chinois dit que lorsqu'on a rien à dire d'intéressant, on cite généralement un proverbe chinois.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed