Como lidar com grandes números de conexões de um endereço IP?

6

A cada duas semanas, temos um problema em que um único endereço IP abre um grande número de processos do Apache ao mesmo tempo.

Parece conectar-se a páginas semelhantes a cada vez, mas nossos processos do Apache vão dos intervalos normais de 20-25 até o máximo (256).

Este endereço IP, em seguida, atualiza todas as solicitações sem descanso, elevando a carga do nosso servidor e diminuindo drasticamente o site.

A solução em cada instância é simples; Eu descubro o IP do Apache "status do servidor" e bloqueio o IP usando uma regra de tabelas IP.

Infelizmente, o endereço IP muda a cada vez (é sempre semelhante quando o host de pesquisa diz "bt openworld") e não estou disponível 24 horas por dia, 7 dias por semana para fazer login e adicionar uma regra de tabelas IP.

Para esclarecer, lidamos com rastreamentos do Google e de outros ehgines de pesquisa sem problemas. Não sei ao certo se o que estamos enfrentando é malicioso ou não.

Como posso limitar o efeito que isso tem?

Nossa configuração é um único servidor que manipula o MySQL e o Apache.

Fui informado de que um balanceador de carga é a única maneira de limitar o número de conexões a partir de endereços IP únicos (mas alterados por ataque).

    
por Jon M 19.09.2011 / 15:51

2 respostas

8

talvez algo assim ajude. ele bloqueará qualquer host que abra mais de 150 conexões em 2 minutos (180 segundos):

iptables -A INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --set
iptables -A INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --update --seconds 180 --hitcount 150 -j REJECT

você precisa ajustar o script para que os usuários normais nunca sejam bloqueados

    
por 19.09.2011 / 16:14
0

Bem, você pode usar algumas regras do iptables para limitar o número de conexões simultâneas.

A outra solução seria otimizar seu aplicativo para que ele seja tratado mais rapidamente usando menos recursos.

    
por 19.09.2011 / 16:16