Fail2ban não bane nenhum endereço IP com vsftpd

1

O Fail2ban inicia okey. Ele funciona com meu filtro sshd e proíbe endereços IP como deveria. Mas com o vsftpd ele não registra logins com falha quando eu executo:

fail2ban-client status vsftpd

Eu tentei o auth.log e o vsftpd.log. O caminho do arquivo é alterado do que realmente tenho por motivos de segurança e não são realmente /path/to/thelog.log

vsftpd.log :

Status for the jail: vsftpd
|- filter
|  |- File list:    /path/to/vsftpd.log 
|  |- Currently failed: 0
|  '- Total failed: 0
'- action
   |- Currently banned: 0
   |  '- IP list:   
   '- Total banned: 0

auth.log :

Status for the jail: vsftpd
|- filter
|  |- File list:    /path/to/auth.log 
|  |- Currently failed: 0
|  '- Total failed: 0
'- action
   |- Currently banned: 0
   |  '- IP list:   
   '- Total banned: 0

Mas com o fail2ban-regex, ele detecta os logins com falha.

vsftpd.log :

Running tests
=============

Use   failregex file : /etc/fail2ban/filter.d/vsftpd.conf
Use         log file : /path/to/vsftpd.log


Results
=======

Failregex: 16 total
|-  #) [# of hits] regular expression
|   2) [16] ^ \[pid \d+\] \[.+\] FAIL LOGIN: Client "<HOST>"\s*$
'-

Ignoreregex: 0 total

Date template hits:
|- [# of hits] date format
|  [806] WEEKDAY MONTH Day Hour:Minute:Second Year
'-

Lines: 806 lines, 0 ignored, 16 matched, 790 missed
Missed line(s): too many to print.  Use --print-all-missed to print all 790 lines

auth.log :

Running tests
=============

Use   failregex file : /etc/fail2ban/filter.d/vsftpd.conf
Use         log file : /path/to/auth.log


Results
=======

Failregex: 16 total
|-  #) [# of hits] regular expression
|   1) [16] ^\s*(<[^.]+\.[^.]+>)?\s*(?:\S+ )?(?:kernel: \[ *\d+\.\d+\])?(?:@vserver_\S+ )?(?:(?:\[\d+\])?:\s+[\[\(]?vsftpd(?:\(\S+\))?[\]\)]?:?|[\[\(]?vsftpd(?:\(\S+\))?[\]\)]?:?(?:\[\d+\])?:?)?\s(?:\[ID \d+ \S+\])?\s*\(?pam_unix(?:\(\S+\))?\)?:?\s+authentication failure; logname=\S* uid=\S* euid=\S* tty=(ftp)? ruser=\S* rhost=<HOST>(?:\s+user=.*)?\s*$
'-

Ignoreregex: 0 total

Date template hits:
|- [# of hits] date format
|  [9174] MONTH Day Hour:Minute:Second
'-

Lines: 9174 lines, 0 ignored, 16 matched, 9158 missed
Missed line(s): too many to print.  Use --print-all-missed to print all 9158 lines

Eu testei não fazendo login com a senha correta (registrando a senha incorreta que é :)) e com fail2ban-regex o número continua subindo, mas o status da prisão ainda é 0 e três logins com falha não desencadear uma proibição.

jail.local :

[vsftpd]
enable     = true
filter     = vsftpd
action     = iptables-multiport[name=vsftpd, port="20, 21, 10204, 10205"]
logpath    = /path/to/auth.log
bantime   = 60
maxretry   = 3

bantime 60 seg é apenas durante o teste.

Alguma idéia de por que não está funcionando?

    
por user251959 02.11.2014 / 15:22

3 respostas

1

vsftpd.log deny se parece com:

Wed Jun 29 14:57:37 2016 [pid 2517] [username] FTP response: Client "::ffff:192.168.0.100", "530 Permission denied."

e o padrão failregex WHICH não está funcionando no arquivo de configuração do fail2ban localizado " /etc/fail2ban/filter.d/vsftpd.conf " se parece com

failregex = ^%(__prefix_line)s%(__pam_re)s\s+authentication failure; logname=\S* uid=\S* euid=\S* tty=(ftp)? ruser=\S* rhost=<HOST>(?:\s+user=.*)?\s*$
            ^ \[pid \d+\] \[.+\] FAIL LOGIN: Client "<HOST>"\s*$

Então, você precisa alterar o failregex para o seguinte, para que ele funcione com o vsftpd

failregex = ^%(__prefix_line)s%(__pam_re)s\s+Permission denied; logname=\S* uid=\S* euid=\S* tty=(ftp)? ruser=\S* rhost=<HOST>(?:\s+user=.*)?\s*$
            ^ \[pid \d+\] \[.+\]\s+FTP response: Client "::ffff:<HOST>",\s*"530 Permission denied\."\s*$

Verifique a imagem para edição exata, pois a string acima está sem alguns caracteres. link

Verificado no Ubuntu com vsftpd: versão 3.0.3

    
por 29.06.2016 / 14:49
0

Onde seus arquivos de log são armazenados?

Eles estão em /scripts/logs/vsftpd.log e /scripts/logs/auth.log? É aí que o daemon fail2ban está procurando por eles, de acordo com sua cadeia.local.

Como nas pastas de saída do fail2ban-regex, ele está dizendo que está usando /path/to/vsftpd.log e /path/to/auth.log.

Você acabou de recortar os / scripts / logs / das saídas fail2ban-regex e colar os / path / to / placeholders? Ou os seus logs estão em / path / to /?

    
por 02.11.2014 / 15:42
-1
dual_log_enable=YES

Esta configuração ativa a pesquisa de DNS e IP

    
por 18.03.2018 / 22:17