Eu criei outra solução para isso e parece estar funcionando até agora. Basicamente, eu escrevi um filtro que varre o log e bloqueia todos os endereços IP não autorizados que foram descartados por várias razões no dado findtime
. Portanto, esse filtro bloqueará os IPs que foram descartados devido a ataques Syn, Xmas, varredura de portas, etc. - o que estiver listado em suas regras do iptables. Em outras palavras, bloqueia aqueles que continuam aparecendo na lista de bloqueios do iptables por várias razões.
Jail.local
[iptables-dropped]
enabled = true
filter = iptables-dropped
banaction = iptables-allports
port = all
logpath = /var/log/messages
bantime = 1800
maxretry = 3
FILTER: iptables-dropped.conf
[Definition]
failregex = IPTables Dropped: .* SRC=<HOST>
ignoreregex =
Certifique-se de registrar os IPs perdidos como este nas regras do iptables, para que o filtro acima funcione:
# log iptables denied calls (access via 'dmesg' command) to /var/log/messages file
iptables -N LOGGING
iptables -A INPUT -j LOGGING
iptables -A LOGGING -m limit --limit 5/min -j LOG --log-prefix "IPTables Dropped: " --log-level 4
iptables -A LOGGING -j DROP
O acima parece funcionar para mim.