
Eu tenho uma configuração simples de servidor web Apache e tabelas IP básicas (ufw) para um servidor de desenvolvimento. Nos meus logs, vejo linhas como esta:
[Fri May 16 10:10:36.258369 2014] [:error] [pid 15926] [client 69.147.158.130:8396] script '/var/www/html/wp-login.php' not found or unable to stat
Não estou executando o WordPress e percebo que esta é uma tentativa muito pequena de hack (existem ataques muito mais sofisticados contra o Apache por aí). No entanto, eu gostaria de bloquear automaticamente este endereço IP (temporariamente) sem instalar um IDS/IPS como o Snort.
Estou apenas procurando uma maneira simples de bloquear um endereço que tenta se conectar ao wp-admin ou wp-login. Existe um módulo Apache que lidaria com algo assim?
Responder1
Embora você esteja claramente pedindo uma solução para bloquear endereços IP, não acho que seja uma boa solução.
A razão é que essas tentativas que você vê vêm de vários endereços IP, provavelmente controlados por um sistema mestre. Essa é simplesmente a natureza de como ocorrem as tentativas de DDoS e hackers hoje em dia.
Em vez disso, você deve considerar a implementaçãoModSegurança. É um módulo Apache que atua como um firewall de nível de serviço web. Ele analisa todo o tráfego da web que chega ao seu site e, se detectar comportamento aberrante conhecido, o acesso é bloqueado por uma resposta "403: Proibido".
Agora, o lado ligeiramente negativo é que o MidSecurity tem dezenas de conjuntos de regras padrão que funcionam bem, mas podem causar falsos positivos. Portanto, ao implementá-lo, você provavelmente precisará ajustá-lo nas primeiras semanas.
Mas o resultado líquido é que após esse período de “conhecer você”, você terá uma ferramenta que protege heuristicamente seu site de mau comportamento conhecido. E não apenas mantenha uma lista de endereços IP.
Responder2
Eu não recomendaria tentar fazer isso automaticamente, recomendaria bloquear manualmente o IP. O único sistema automatizado que eu faria seria um script ou algo semelhante que analisasse seus logs em busca de erros semelhantes.
Para bloquear um IP com ufw
sudo ufw deny from <ip address>
com iptables
sudo iptables -I INPUT -s <ip address> -j DROP
Responder3
A solução que funciona para mim é fail2ban conforme observado no comentário de @ceejayoz
@iain - Na verdade, é duplicado - obrigado por apontar isso.