Estou usando o fail2ban 0.9.3 no Ubuntu 16.04. Meu jail.local
é assim:
[DEFAULT]
banaction = ufw
[apache-post]
enabled = true
filter = apache-post
port = http,https
logpath = /var/log/apache2/other_vhosts_access.log
maxretry = 20
bantime = 3600
Estou executando o fail2ban 0.9.3 no Ubuntu 16.04.
Eu tenho uma ação ufw
personalizada definida da seguinte forma:
[Definition]
actionstart =
actionstop =
actioncheck =
actionban = ufw insert 1 deny from <ip>
actionunban = ufw delete deny from <ip>
(Isso é diferente daquele que vem com o fail2ban, que apenas bloqueia o IP em todas as portas).
A ação funciona - se eu fizer fail2ban-client set apache-post banip 10.0.0.1
e, em seguida, verificar ufw status
, o IP será banido:
To Action From
-- ------ ----
Anywhere DENY 10.0.0.1
Mas quando o servidor é reiniciado e executado, há um problema. O fail2ban está monitorando corretamente os logs e iniciando as proibições, mas os IPs não estão sendo banidos no ufw. Aqui está um exemplo de registro:
2018-10-09 14:00:57,679 fail2ban.actions [31576]: NOTICE [apache-post] Ban 10.0.5.2
2018-10-09 14:01:02,897 fail2ban.actions [31576]: NOTICE [apache-post] 10.0.5.2 already banned
2018-10-09 14:01:07,903 fail2ban.actions [31576]: NOTICE [apache-post] 10.0.5.2 already banned
2018-10-09 14:01:12,908 fail2ban.actions [31576]: NOTICE [apache-post] 10.0.5.2 already banned
2018-10-09 14:01:17,914 fail2ban.actions [31576]: NOTICE [apache-post] 10.0.5.2 already banned
Se eu verificar ufw status
, então o IP não foi banido - então, claramente, a ação não foi realmente executada, mas o fail2ban acha que foi.
Se eu reiniciar o servidor fail2ban neste ponto, ele verificará os logs recentes e com êxito banirá o IP - ou seja, quando executar ações na reinicialização, a ação ufw
será executada corretamente . Da mesma forma, se eu executar manualmente um comando banip
, o IP será banido corretamente. Mas as proibições de monitoramento de registros não funcionam.
Estou perplexo sobre por que funciona manualmente, mas não em operação normal. Como depuro isso?
O UFW está em execução:
> sudo ufw status
Status: active
E verificar o status da prisão mostra que ela está ativa e acha que proibiu os IPs:
Status for the jail: apache-post
|- Filter
| |- Currently failed: 0
| |- Total failed: 643
| '- File list: /var/log/apache2/other_vhosts_access.log
'- Actions
|- Currently banned: 9
|- Total banned: 11
'- Banned IP list: 10.0.5.2 (and more)