Bloco permanente de IP após n tenta novamente usando fail2ban

33

Eu tenho um fail2ban configurado como abaixo:

  • bloqueia o ip após 3 tentativas malsucedidas
  • liberar o IP após o tempo limite de 300 segundos

Isso funciona perfeitamente e eu quero mantê-lo dessa maneira, de modo que um usuário válido tenha a chance de repetir o login após o tempo limite. Agora, quero implementar uma regra em que se o mesmo IP for detectado como ataque e bloqueado, desbloqueado 5 vezes, bloqueie permanentemente o IP e nunca desbloqueie novamente. Isso pode ser feito com o fail2ban sozinho ou eu preciso escrever meu próprio script para fazer isso?

Eu estou fazendo isso em centos.

    
por BTR Naidu 07.08.2012 / 13:59

4 respostas

27

Antes de 0,11, havia nenhum recurso padrão ou uma configuração dentro de fail2ban para alcançar isto. Mas, a partir da próxima versão 0.11, o tempo de proibição é calculado automaticamente e aumenta exponencialmente a cada nova ofensa que, no longo prazo, significará um bloqueio mais ou menos permanente.

Até lá, sua melhor abordagem provavelmente está configurando fail2ban para monitorar seu próprio arquivo de log . É um processo de dois passos ...

Etapa 1

Poderíamos precisar criar um filtro para verificar BAN no arquivo de log (arquivo de log do fail2ban)

Etapa 2

Precisamos definir a cadeia , semelhante ao seguinte ...

[fail2ban]
enabled = true
filter = fail2ban
action = iptables-allports[name=fail2ban]
logpath = /path/to/fail2ban.log
# findtime: 1 day
findtime = 86400
# bantime: 1 year
bantime = 31536000

Tecnicamente, não é um bloco permanente , mas apenas blocos por um ano (que também podemos aumentar).

De qualquer forma, para sua pergunta (isso pode ser conseguido com o fail2ban sozinho ou eu preciso escrever meu próprio script para fazer isso?) ... escrever o próprio script pode funcionar bem. Configurar o script para extrair os freqüentemente IPs proibidos e colocá-los em /etc/hosts.deny é o que eu recomendo.

    
por 08.08.2012 / 07:18
28

Acredito que se você colocar bantime = -1 nessa seção de configuração, é um bloco permanente.

    
por 21.03.2013 / 17:25
11

Phil Hagen escreveu um excelente artigo sobre este assunto. " Proibir permanentemente os infratores recorrentes com o fail2ban ".

Sua sugestão é a mesma que Pothi, mas fornece um guia passo a passo.

Isso incluiu:

  • lista de banimentos separada por jail (ip.blocklist.ssh, ip.blocklist.xxx)
  • ban lista autoloaded se o serviço for reiniciado (principal vantagem deste método)
  • notificação por email se o repetidor for envolvido.
por 29.10.2014 / 01:08
6

Para expandir a resposta de Chin, isso é bem simples. Basta editar as duas configurações em /etc/fail2ban/jail.local para corresponder às suas preferências.

 # ban time in seconds. Use -1 for forever. Example is 1 week.
 bantime  = 604800
 # number of failures before banning
 maxretry = 5
    
por 07.04.2013 / 22:11