Fail2ban (0.9.6-2) com pure-ftpd (1.0.46)

1

Estou usando o pureftpd e o fail2ban, mas não está funcionando. Parece que é capaz de ler o log, mas o evento fail2ban.filter não é acionado. Eu investiguei muito sobre todos os possíveis problemas e já fiz muitas verificações, mas não sei por que isso não está funcionando. Vou começar colocando minhas configurações, logs e o que fiz. Antes, devo dizer que já tenho no mesmo maching rodando ok fail2ban contra apache e ssh. O problema está acontecendo apenas com o pureftpd.:

no meu /etc/fail2ban/jail.local

[pureftpd]
enabled = true
port = 21
filter = pure-ftpd
logpath = /var/log/messages
backend = polling
maxretry = 5

Eu mudei isso milhares de vezes (reiniciando o daemon fail2ban após cada mudança de curso). port = ftp testado em vez de port = 21 parece ter o mesmo resultado. Eu tentei usar backend = auto ou removendo a instrução de backend ... mesmo resultado.

Meu /var/log/messages está recebendo ok as tentativas de login no ftp, algumas linhas como exemplo:

Aug  3 08:31:01 88a4998e8b37 pure-ftpd: ([email protected]) [INFO] New connection from 192.168.0.159
Aug  3 08:31:09 88a4998e8b37 pure-ftpd: ([email protected]) [WARNING] Authentication failed for user [testinguser]

Meu /etc/fail2ban/filter.d/pure-ftpd.conf :

[Definition]
__errmsg = Authentication failed for user
failregex = pure-ftpd: \(\?@<HOST>\) \[WARNING\] %(__errmsg)s \[.+\]$
ignoreregex =

Eu testei isso fazendo fail2ban-regex /var/log/messages /etc/fail2ban/filter.d/pure-ftpd.conf e ele retorna muitos resultados, então acho que está funcionando.

Eu também coloco o fail2ban no modo de depuração, e este é o log enquanto um usuário se conecta e tenta fazer o login com falha:

2017-08-03 03:31:10,163 fail2ban.filterpoll     [4429]: DEBUG   /var/log/messages has been modified
2017-08-03 03:31:10,164 fail2ban.datedetector   [4429]: DEBUG   Matched time template (?:DAY )?MON Day 24hour:Minute:Second(?:\.Microseconds)?(?: Year)?
2017-08-03 03:31:10,165 fail2ban.datedetector   [4429]: DEBUG   Got time 1470231069.000000 for "'Aug  3 08:31:09'" using template (?:DAY )?MON Day 24hour:Minute:Second(?:\.Microseconds)?(?: Year)?
2017-08-03 03:31:10,165 fail2ban.datedetector   [4429]: DEBUG   Sorting the template list
2017-08-03 03:31:10,166 fail2ban.datedetector   [4429]: DEBUG   Winning template: (?:DAY )?MON Day 24hour:Minute:Second(?:\.Microseconds)?(?: Year)? with 2 hits

Por isso, está detectando que o arquivo está mudando, mas o filtro não é acionado. Por quê?

Comparando com os meus outros serviços de fail2ban funcionando (apache por exemplo), eu vi nos logs uma diferença ... quando funciona uma linha como essa aparece nos logs:

2017-08-03 03:43:37,024 fail2ban.filterpoll     [4429]: DEBUG   /var/log/apache2/error.log has been modified
2017-08-03 03:43:37,025 fail2ban.datedetector   [4429]: DEBUG   Matched time template (?:DAY )?MON Day 24hour:Minute:Second(?:\.Microseconds)?(?: Year)?
2017-08-03 03:43:37,026 fail2ban.datedetector   [4429]: DEBUG   Got time 1501767816.000000 for "'Thu Aug 03 08:43:36.224686 2017'" using template (?:DAY )?MON Day 24hour:Minute:Second(?:\.Microseconds)?(?: Year)?
2017-08-03 03:43:37,026 fail2ban.filter         [4429]: DEBUG   Processing line with time:1501767816.0 and ip:192.168.0.154
2017-08-03 03:43:37,027 fail2ban.filter         [4429]: INFO    [apache] Found 192.168.0.154

Então, tudo parece semelhante verificando os arquivos ... fica o tempo, mas nada é acionado depois disso. O que pode estar acontecendo? Alguém já experimentou isso antes? Obrigado.

    
por OscarAkaElvis 03.08.2017 / 10:50

1 resposta

0

Está resolvido agora. O problema era que o fuso horário era diferente dentro do contêiner que estava definido no host. Leia este "problema errado" eu coloquei no github do fail2ban:

link

    
por 08.08.2017 / 22:17