Como bloquear uma solicitação HTTP mal-intencionada?

1

desde alguns dias, alguém está enviando milhares de solicitações para um site do wordpress hospedado no meu servidor da Web.

Uma linha de registro genérica para esta solicitação é:

60.173.10.250 - - [23/Nov/2013:18:24:46 +0100] "GET /archivio/mgilbert/ HTTP/1.0" 200 24758 "http://www.**********.it/archivio/mgilbert/#comment-9768++++++++++++Result:+chosen+nickname+%22Tiedimmox%22;+nofollow+is+found;+success+%28from+first+page%29;+BB-code+not+working;" "Mozilla/5.0 (Windows NT 5.1; rv:15.0) Gecko/20100101 Firefox/15.0.1

Como resultado dessa solicitação, o proprietário do site recebe vários e-mails. A solicitação vem de endereços IP diferentes, por isso não posso bloqueá-los usando o endereço IP como filtro.

Existe alguma maneira de bloquear esses pedidos?

    
por Zagorax 23.11.2013 / 18:39

2 respostas

4

O site está sendo atacado por um bot, script, malware ou geralmente algo não é bom. Os endereços IP sempre serão alterados porque é assim que esses sistemas funcionam. Um servidor principal pai controla vários sistemas infectados em todo o mundo. E usa esses sistemas infectados para espalhar mais & mais malware.

Como você diz que este é um site WordPress, é provável que exista uma vulnerabilidade na versão do WordPress instalada. Se possível, isso deve ser atualizado.

Outra opção é instalar o ModSecurity . Ou, se o seu serviço de hospedagem estiver implementado, peça que ele seja ativado. O ModSecurity é uma ótima ferramenta que atua como um firewall no nível do servidor da Web entre seu site hospedado do Apache2 & ataques. Mas dito isso, pode ser difícil configurar. E às vezes os falsos positivos podem atrapalhar o funcionamento normal do seu site.

Além disso, outro bom tato é colocar .htaccess/.htpasswd level password protection no wp-admin.php . A grande maioria dos bots caem mortos no segundo em que atingem o prompt de senha & seu servidor está seguro. Isso pode ser inconveniente para qualquer um que administre a administração do site WordPress, já que agora eles precisam lembrar de dois conjuntos de senhas, mas é uma maneira muito eficaz de bloquear ataques.

    
por 23.11.2013 / 20:16
3

se você estiver usando nginx, você pode combinar em qualquer cabeçalho e retornar 403 (proibido)

Então, por exemplo (fora do topo da minha cabeça, então verifique a sintaxe)

if $user_agent =~ /Gecko/20100101 Firefox/15.0.1/ { return 403; }

no apache, você pode carregar o mod_security, mas é conhecido por muitos falsos positivos, especialmente se você tiver muitos vhosts.

se a sua caixa estiver ao vivo na internet, com um ip público, outra opção é estrangular os pedidos recebidos com o iptables,

iptables -A INPUT -p tcp --syn -m limit --limit 1/s --limit-burst 3 -j RETURN

EDITAR: como uma solução de curto prazo, você poderia

location =~ /archivio/mgilbert { return 403; }

    
por 23.11.2013 / 22:43

Tags