[Resolu]Vsftp et fail2ban

Salut,
Linux phoenix 2.6.18-4-686 #1 SMP Wed May 9 23:03:12 UTC 2007 i686 GNU/Linux

voilà j’ai un problème avec vsftp et fail2ban, plusieurs fois des personnes tentent d’acceder à mon ftp, mais fail2ban ne les banni pas.
Vsftp est configurer avec els utilisateurs virtuels et voilà la conf pour vsftp dans jail.conf

[code]…
[vsftpd]

enabled = true
port = ftp
filter = vsftpd
logpath = /var/log/auth.log
bantime = 1000
maxretry = 3
…[/code]

vsftpd.conf dans filter.d

[code]# Fail2Ban configuration file

Author: Cyril Jaquier

$Revision: 471 $

[Definition]

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 “” can

be used for standard IP/hostname matching.

Values: TEXT

failregex = vsftpd: (pam_unix) authentication failure; .* rhost=

Option: ignoreregex

Notes.: regex to ignore. If this regex matches, the line is ignored.

Values: TEXT

ignoreregex =[/code]

Ca vient p-e du faite que ce sont des utilisateurs virtuels?
Qu’est ce que je peux faire pour bloquer els ips qui tentent des utilisateurs/mdp sur mon ftp?

ps: fail2ban fonctione pour mon ssh

il semble qu’il y ait des erreurs dans le format du failregex qui ne matche pas les erreurs de login dans le log, mais je n’ai pas trouvé de correctif.
il est conseillé de mettre le correctif dans /etc/fail2ban/jail.conf plutot que de modifier les fichiers de filter.d qui sont mis à jour lors des upgrade.

Il faudrait reécrire la regexp.
Tu as quoi dans les logs en cas d’erreur d’authentification ?

regardes ce tweak pour pureftpd, ça peut t’inspirer:
bugs.debian.org/cgi-bin/bugreport.cgi?bug=426050

Justement, je vois les mauvaises connections dans /var/log/vsftpd.log mais je vois des b onnes connexions dans /var/log/auth.log:

/var/log/auth.log:

Aug 14 11:32:02 phoenix pam_userdb[6529]: user 'stinger' granted acces ... Aug 14 12:29:25 phoenix pam_userdb[6564]: user 'koto' granted acces

/var/log/vsftp.log:

[code]…
Tue Aug 14 03:16:57 2007 [pid 5718] FTP command: Client “61.150.85.39”, "USER Administrator"
Tue Aug 14 03:16:57 2007 [pid 5718] [Administrator] FTP response: Client “61.150.85.39”, "331 Please specify the password."
Tue Aug 14 03:16:58 2007 [pid 5718] [Administrator] FTP command: Client “61.150.85.39”, "USER Administrator"
Tue Aug 14 03:16:58 2007 [pid 5718] [Administrator] FTP response: Client “61.150.85.39”, "331 Please specify the password."
Tue Aug 14 03:16:58 2007 [pid 5664] [Administrator] FTP response: Client “61.150.85.39”, "421 Timeout."
Tue Aug 14 03:16:59 2007 [pid 5718] [Administrator] FTP command: Client “61.150.85.39”, "PASS "
Tue Aug 14 03:16:59 2007 [pid 5717] [Administrator] FAIL LOGIN: Client "61.150.85.39"
Tue Aug 14 03:17:00 2007 [pid 5718] [Administrator] FTP response: Client “61.150.85.39”, “530 Login incorrect.”

Tue Aug 14 03:17:41 2007 [pid 5729] CONNECT: Client "61.150.85.39"
Tue Aug 14 03:17:41 2007 [pid 5729] FTP response: Client “61.150.85.39”, "220-test"
Tue Aug 14 03:17:41 2007 [pid 5729] FTP response: Client “61.150.85.39”, "220 "
Tue Aug 14 03:17:42 2007 [pid 5729] FTP command: Client “61.150.85.39”, "USER Administrator"
Tue Aug 14 03:17:42 2007 [pid 5729] [Administrator] FTP response: Client “61.150.85.39”, "331 Please specify the password."
Tue Aug 14 03:17:46 2007 [pid 5729] [Administrator] FTP command: Client “61.150.85.39”, "USER Administrator"
Tue Aug 14 03:17:46 2007 [pid 5729] [Administrator] FTP response: Client “61.150.85.39”, "331 Please specify the password."
Tue Aug 14 03:17:47 2007 [pid 5729] [Administrator] FTP command: Client “61.150.85.39”, "PASS "
Tue Aug 14 03:17:47 2007 [pid 5728] [Administrator] FAIL LOGIN: Client "61.150.85.39"
Tue Aug 14 03:17:48 2007 [pid 5729] [Administrator] FTP response: Client “61.150.85.39”, “530 Login incorrect.”[/code]

Bonjour,

Si c’est ton ssh que tu veux protéger, tu es sûr que la config de fail2ban doit porter sur vsftp?

J’ai trouvé ça: http://jujuseb.com/dotclear/?2006/04/18/6-fail2ban-contre-l-attaque-par-brute-force.

Je n’en sais pas plus sur le sujet, mais la suite m’interesse.

Je disais que la protection pour ssh marche, comme ca ca aide à comprendre mon problème.
Il bloque pas les mauvaises connection de vsftp c’est tout.

J’ai trouvé ca:
fail2ban.org/wiki/index.php/Talk:Vsftpd

Mais je comrpend aps tout, vous pouvez m’aider?

[quote=“K0t0x”]Justement, je vois les mauvaises connections dans /var/log/vsftpd.log mais je vois des b onnes connexions dans /var/log/auth.log:
(…)[/quote]Alors peut être qu’en changeant le logpath.
Et peut être faut il aussi changer le regexp.
tyrtamos: le bhug de config est spécifique à vsftp. Pour protèger le ssh, fail2ban marche “out of the box”, et il a toujours marché, c’est le premier (le seul ?) truc que les empaqueteurs debian de fail2ban vérifient.

Une idée.

Dans le fichier /etc/fail2ban/fail2ban.conf, tu peut augmenter la quantité d’infos du fichier log de fail2ban (mettre “loglevel=4” qui correspond à debug).

Simule ensuite une attaque sur vsftp (avec le bon port) et regarde le fichier log: /var/log/fail2ban.log. Il donne beaucoup d’infos, en particulier sur les instructions à donner à iptables.

Voilà j’ai trouvé la solution!

jail.conf:

[code][vsftpd]

enabled = true
port = ftp
filter = vsftpd
logpath = /var/log/vsftpd.log
bantime = 1000
maxretry = 3[/code]

/etc/fail2ban/filter.d/vsftpd.conf

[code]# Fail2Ban configuration file

Author: Cyril Jaquier

$Revision: 471 $

[Definition]

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 “” can

be used for standard IP/hostname matching.

Values: TEXT

failregex = [.+] [.+] FAIL LOGIN: Client “(?P\S+)”$

Option: ignoreregex

Notes.: regex to ignore. If this regex matches, the line is ignored.

Values: TEXT

ignoreregex =
[/code]

J’ai modifier le logpath dans jail.conf et changer le failregex. Si ca peut aider! :wink:

Par contre si quelqu’un sait comment on fait pour que ca envoit un mail quand il y a un ban??

ça doit se trouver dans fail2ban.conf:

[code][MAIL]

Option: enabled

Notes.: enable mail notification when banning an IP address.

Values: [true | false] Default: false

enabled = true

Option: host

Notes.: host running the mail server.

Values: STR Default: localhost

host = localhost

Option: port

Notes.: port of the mail server.

Values: INT Default: 25

port = 25

Option: user

Notes.: the username for smtp-server if authentification is required.

if user is empty, no authentification is done.

Values: STR Default:

user =

Option: password

Notes.: the smtp-user’s password if authentification is required.

Values: STR Default:

password =

Option: from

Notes.: e-mail address of the sender.

Values: MAIL Default: fail2ban

from = root

Option: to

Notes.: e-mail addresses of the receiver. Addresses are space

separated.

Values: MAIL Default: root

to = root

Option: localtime

Notes.: report local time (including timezone) or GMT

Values: [true | false] Default: false

localtime = true

Option: subject

Notes.: subject of the e-mail.

Tags: active section (eg ssh, apache, etc)

IP address

number of failures

unix timestamp of the last failure

Values: TEXT Default: [Fail2Ban] : Banned

subject = [Fail2Ban] : Banned

Option: message

Notes.: message of the e-mail.

Tags: active section (eg ssh, apache, etc)

IP address

number of failures

unix timestamp of the last failure


new line

Values: TEXT Default:

message = Hi,

The IP has just been banned by Fail2Ban after
attempts against .

Regards,

Fail2Ban[/code]si tu lis l’espagnol:
fail2ban.sourceforge.net/howto/s … l2ban.html
tiens, je vais essayer sur mon routeur.

bon ca a pas l’air de marcher, si tu arrives dit moi comment? ^^(j’ai config pour qu’il se connecte au smtp de free etc…)

[quote=“K0t0x”]bon ca a pas l’air de marcher, si tu arrives dit moi comment? ^^(j’ai config pour qu’il se connecte au smtp de free etc…)[/quote]Tu fais sortir les infos de sécurité de ta machine, toi ? Tu sais qu’elles transitent en clair jusqu’au serveur free ? Tu devrais te limiter à une desserte locale.
Bon, pour l’instant, je n’ai pas de ban, ni de machine blacklistable pour tester. Je te dirais plsu tard si ça marche chez moi.

PS: tu n’as pas besoin normalement de configurer d’authentification sur le serveur free, si l’adresse à laquelle tu envoies est sur free, c’est peut être ça ton pb.

Si vous voulez vous amuser avec iptables, il y a des trucs du genre :

iptables -A lan_in_new -p tcp --syn --dport 21 -m recent --set --name ftp_hits_list2
iptables -A lan_in_new -p tcp --syn --dport 21 -m recent --rcheck --seconds 300 --hitcount 4 --name ftp_hits_list2 -j reject_all
iptables -A lan_in_new -p tcp --syn --dport 21 -j ACCEPT

Pour autoriser 3 tentatives de connexions sur le serveur ftp (soit 9 logins possible par défaut).
La 4eme tentative et toutes celles qui suivent sont rejetées pendant 5min pour l’ip blacklistée.

iptables -A wan_in_new -p tcp --syn --dport 5001 -m recent --set --name list_knock_1
iptables -A wan_in_new -p tcp --syn --dport 5002 -m recent --rcheck --seconds 1 --name list_knock_1 -j ssh_phase2
iptables -A wan_in_new -p tcp --syn --dport 5003 -m recent --rcheck --seconds 1 --name list_knock_2 -j ssh_phase3
iptables -A wan_in_new -p tcp --syn --dport 22 -m recent --rcheck --seconds 5 --name list_ssh -j ACCEPT

Et la c’est une petite mise en oeuvre de port knocking assez simple pour l’accès au serveur SSH.

Les règles ne sont pas applicables, il faut d’autres choses avec. Ce sont juste des exemples.
Normalement on ajoute des logs pour qu’un autre outil puisse les analyser, et mettre en évidence les tentatives réelles d’intrusion.

Ouais sympa les règles.

Pour le mail notification, même sans autentification ca marche pas. erf ^^

Tu as peut-être des logs dans /var/log/mail.* pour t’aider !

Tous vide.

phoenix:/var/log# cat mail.err phoenix:/var/log# cat mail.info phoenix:/var/log# cat mail.log phoenix:/var/log# cat mail.warn

[quote=“K0t0x”]Ouais sympa les règles.

Pour le mail notification, même sans autentification ca marche pas. erf ^^[/quote]Bon, moi non plus: j’ai un ban à 21:01, mais pas de mail.

C’est pas vraiment grave, c’est une option facultative ^^.