Fail2ban preso, mas IP ainda acessando o servidor

1

Eu tenho um servidor rodando um monte de sites WordPress, e cada um desses sites recusa logins de IP's depois de vários logins com falha. As etapas são as seguintes:

  1. 3 logins com falha de um IP = WP recusam logins desse IP por 10 minutos (bloqueio de nível 1)
  2. No segundo nível 1 de bloqueio, isso se move para o nível 2 em que o IP é recusado por 1 hora

Além disso, o plugin de segurança do WP grava em um arquivo no servidor (Nível 3?). Isso significa que podemos agrupar dados em sites hospedados nesse servidor. Agora, usando o Fail2Ban, procuramos 3 bloqueios de nível 3 em 1 mês e depois banimos o servidor por 3 meses.

No entanto, os plugins do WP ainda estão mostrando novos bloqueios para esses mesmos endereços IP. Isso significa que o perpetrador ainda está tendo acesso a sites hospedados neste servidor.

Se eu olhar nos logs do servidor, posso ver que os bloqueios estão sendo gravados no arquivo correto. Também posso ver que o Fail2Ban e as ações / cadeias relevantes estão detectando os IPs / ofensores repetidos e proibindo-os.

Agora, se eu executar o seguinte comando:

iptables -L

Eu recebo uma saída semelhante a essa (editada por brevidade):

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
f2b-WordPress  tcp  --  anywhere             anywhere            multiport dports http,https
f2b-Http-Get-Dos  tcp  --  anywhere             anywhere             multiport dports http,https
.....

e mais abaixo:

Chain f2b-WordPress (1 references)
target     prot opt source               destination         
REJECT     all  --  dedic980.hidehost.net  anywhere             reject-with icmp-port-unreachable
REJECT     all  --  dedic693.hidehost.net  anywhere             reject-with icmp-port-unreachable
RETURN     all  --  anywhere             anywhere

Assim, posso ver que minha cadeia está sendo acionada e que o nome do host relacionado aos IPs usados está sendo rejeitado, mas o usuário ainda está obtendo acesso ao servidor nos mesmos IPs que foram usados repetidamente. Então, claramente eles ainda estão obtendo acesso aos sites no servidor e estão tentando forçar sua entrada nos administradores do site.

Isso precisa ser interrompido o mais cedo possível.

Então, minha suposição é que o iptables está bloqueando o nome do host e não o IP. Como esse nome de host parece ser de um serviço projetado para ocultar nomes de host reais, percebi que essa é a causa do problema, por exemplo: iptables está bloqueando o nome do host errado. Mas talvez eu esteja errado aqui ... Eu gostaria de uma solução melhor se for esse o caso.

Com base nisso, editei /etc/fail2ban/jail.conf da seguinte maneira (eu sei que deveria criar uma versão local):

# "usedns" specifies if jails should trust hostnames in logs,
#   warn when DNS lookups are performed, or ignore all hostnames in logs
#
# yes:   if a hostname is encountered, a DNS lookup will be performed.
# warn:  if a hostname is encountered, a DNS lookup will be performed,
#        but it will be logged as a warning.
# no:    if a hostname is encountered, will not be used for banning,
#        but it will be logged as info.
# usedns = warn
usedns = no

Em seguida, salvei tudo e reiniciei o serviço fail2ban. Os arquivos de logs sugerem que tudo está funcionando bem e que a prisão wordpress fez seu trabalho e baniu os 2 IPs que estão sendo usados por essa pessoa em particular.

Outra olhada em iptables -L , no entanto, mostra que o nome do host foi bloqueado e não o do IP .....

Então, o que eu faço agora?

Atualizar

Acabei de adicionar os dois IP's manualmente ao iptables via Webmin > Linux Firewall (que eu acho que usa o firewalld) e execute iptables -L que mostra os nomes de host em vez dos IPs que eu digitei. Então, esse iptables está convertendo os IPs em nomes de host em vez de fail2ban. Em caso afirmativo, por que os outros 20 IP's que adicionei regras para todos os manuais são exibidos como IP e NÃO como um nome de host?

    
por Phill Healey 30.11.2017 / 14:51

1 resposta

2

As regras bloquearão novas conexões, não conexões existentes. Contanto que eles mantenham a conexão ativa, eles poderão fazer consultas.

Para eliminar as conexões existentes, adicione uma cópia da regra de rejeição acima da regra de aceitação para conexões estabelecidas. Remova a regra quando as conexões forem descartadas.

Você deve conseguir ver as conexões na saída do comando 'netstat -ant | grep EST '.

Você pode precisar adicionar manualmente uma regra se continuar tentando. O Fail2ban apenas proíbe a conexão pelo período especificado pela configuração de tempo de espera. Uma regra adicionada manualmente deve ficar.

    
por 01.12.2017 / 05:04