Força o Apache2.2 a descartar uma solicitação

2

Para encurtar a história, recentemente tivemos uma conta em um dos hosts compartilhados comprometida, o problema foi resolvido, mas a conta afetada ainda está sendo spammada com mais de um milhão de solicitações por dia para um arquivo específico.

Desde que o arquivo comprometedor é removido, todas as solicitações são atendidas com a página 404 minimalista do Apache, pesando cerca de 521 bytes. O problema é de 512 bytes * 1 milhão + pedidos não apenas prejudicam o desempenho de nossos servidores, mas também desperdiçam gigabytes de largura de banda por dia.

  • Os ataques de centenas de IPs, bloqueando IPs individuais, não são viáveis.
  • Todos os pedidos são pedidos POST para o mesmo arquivo, vamos chamá-lo de "evil.php".

Nós tentamos usar rapidamente um RewriteRule e proibir todos os pedidos para o evil.php, mas isso mostrou uma página proibida nos deixando onde começamos.

Idealmente, queremos apenas descartar as solicitações para "evil.php" e não retornar nada. Essencialmente, pare o Apache de responder. Isso é possível e como?

Editar

Vamos supor que, por causa deste exercício, não haja acesso ao shell e todas as soluções devem ser implementadas por meio de uma interface semelhante ao cPanel. Embora esse não seja o caso aqui, nossa liberdade de fazer alterações na configuração do servidor é pequena, além das configurações de pilha LAMP, DNS (bind) e Mail.

    
por xzyfer 26.01.2011 / 06:14

3 respostas

2

mod_security, ação "drop".

[pad chars para serverfault]

    
por 26.01.2011 / 06:58
0

E se você substituiu "evil.php" por um arquivo de tamanho zero? Pelo menos na minha instalação do Apache 2.2, que ocupa apenas cerca de 206 bytes (cabeçalhos HTTP). Um 404 ocupa cerca de 500 bytes. Isso pelo menos cortaria seu tráfego pela metade. Para listas negras mais avançadas, confira:

link

    
por 26.01.2011 / 06:36
0

Você pode criar o arquivo evil.php e hospedá-lo no apache e retornar o conteúdo vazio (semelhante à sugestão do Markus). Ao mesmo tempo, você pode salvar o IP solicitante em um arquivo de texto. Este arquivo de texto pode ser lido por um script para adicionar todos esses IPs à regra do iptables para descartar todas as solicitações futuras. Dessa forma, você pode coletar todos os pedidos de IPs e pará-los.

    
por 26.01.2011 / 08:57