Em seu jail.local, você direciona o fail2ban para / var / logs / httpd / access_log em vez de / var / log / httpd / access_log como em seu regex teste.
Estou tentando fazer com que o fail2ban bloqueie certos bots ruins que martelam meu site. Comecei com apenas habilitando o padrão "apache-badbots" em jail.local (eu mudei o logpath para coincidir com os meus próprios logs e o usuário envia relatórios para)
enabled = true
filter = apache-badbots
action = iptables-multiport[name=BadBots, port="http,https"]
sendmail-buffered[name=BadBots, lines=5, dest=jisti]
logpath = /var/logs/httpd/access_log
bantime = 172800
maxretry = 1
Eu reiniciei o fail2ban e recebi um email dizendo que a prisão começou. No entanto, enquanto eu observava os logs, um dos bots ruins martelou o site e o fail2ban não fez nada.
Então eu verifiquei o apache-badbots.conf nos filtros. Cheguei à conclusão de que o regex provavelmente não combinava com o formato de log personalizado que eu estava usando, nem estava realmente procurando pelo bot errado específico que estava martelando meu site. Eu mexi com o failregex e depois testei com
fail2ban-regex /var/log/httpd/access_log /etc/fail2ban/filter.d/apache-badbots.conf
Isso relatou sucesso e mais de 300 correspondidos. Woohoo eu pensei. Eu reiniciei o fail2ban. Logo depois vi o bot martelando o site novamente e fail2ban não fazendo nada. Eu verifiquei o iptables só para ver se estava fazendo alguma coisa, mas pegando a regra do iptables errada
iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-N fail2ban-BadBots
-N fail2ban-SSH
-N fail2ban-php-url-open
-A INPUT -p tcp -m tcp --dport 22 -j fail2ban-SSH
-A fail2ban-BadBots -j RETURN
-A fail2ban-SSH -j RETURN
-A fail2ban-php-url-open -j RETURN
Também devo mencionar que quando bloqueia ataques SSH, ele adiciona corretamente as regras do iptables. Então, alguma coisa funciona, mas não apache-badbots.
Em seguida, tentei configurar o log do fail2ban para depurar e ler através do fail2ban.log. Infelizmente não havia nada lá que ajudasse. Havia entradas de log para a cadeia de partida e definindo o regex correto, bem como definir as ações. No entanto, não havia entradas de log para a correspondência de cadeia do apache-badbots e ação contra qualquer IP.
Também vou mencionar que o SSH parece funcionar muito bem, então o fail2ban funciona na caixa, mas não na cadeia do apache-badbots.
O que preciso fazer para que funcione?
Tags fail2ban