o fail2ban não é "para http", é uma estrutura para executar ações (como proibir IPs no firewall) com base em entradas de log. Aqui estão as opções de configuração relevantes do meu servidor DNS:
named.conf
logging {
channel default_file {
file "/var/log/named.log" size 10m;
severity info;
print-time yes;
print-severity yes;
print-category yes;
};
category default{ default_file; };
};
jail.local
(arquivo de configuração do fail2ban)
[named-refused-bsd-ipfw]
enabled = true
filter = named-refused
action = bsd-ipfw
logpath = /var/named/var/log/named.log
maxretry = 20
bantime = 43200
Note que esta é uma caixa do FreeBSD usando o IPFW (firewall). Você desejará usar a ação iptables
e nomear a regra adequadamente.
Você também pode precisar alterar os caminhos de log, dependendo da sua instalação. Note que no meu exemplo existem caminhos diferentes porque o BIND está sendo executado em uma cadeia (chrooted to /var/named
). Correr em uma prisão torna as coisas mais complicadas, mas não é ruim quando você se acostuma.
Você também deve configurar algum tipo de mecanismo de rotação de log para o arquivo de log.
newsyslog.conf
/var/log/named.log bind:bind 644 7 * $W6D0 J /var/run/named/pid 1
Você também pode querer dar uma olhada em quem é, pode ser um resolvedor aberto (como o Google, 4.2.2.2-.4, etc). Bani-los não bane o verdadeiro "atacante". Você pode fazer uma pesquisa inversa no IP com algo como dig -x 4.2.2.4
e ver se isso ajuda.