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:
- 3 logins com falha de um IP = WP recusam logins desse IP por 10 minutos (bloqueio de nível 1)
- 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?