
Fundo: Eu tenho o Apache 2 rodando no Ubuntu. Há um baixo uso dele e é acessado principalmente por um URL de serviço da web a partir de aplicativos móveis. Estava funcionando bem até instalar os certificados SSL. Agora tenho http e https. Quando acesso o servidor usando https, recebo uma resposta bastante rápida (mas provavelmente não tão rápida quanto antes). Quando uso http, é muito lento.
O que eu tentei: Deessepublicar:
- Eu
curl localhost
sou do host e leva algum tempo, o que significa que não há problema de roteamento. - O servidor é executado na instância Amazon EC2 e é gerenciado apenas por mim.
Também:
- Vejo que o Apache, uma vez em execução, cria o número máximo de processos permitidos, o que não acontecia antes. Reduzi o MaxClients para 20 e acho que estou obtendo respostas mais rápidas, mas ainda leva mais de um minuto e sempre tenho processos MaxClients Apache.
dmesg
retorna muitos[ 1953.655703] TCP: Possible SYN flooding on port 80. Sending cookies.
- Quando faço netstat, recebo muitas entradas com
SYN_RECV
. Possivelmente um ataque DDoS? - Nos diagramas de monitoramento do EC2, vejo um padrão alto de "Maximum Network In (Bytes)" desde 2 dias atrás. A propósito, o servidor ainda está sendo testado, o tráfego real é muito baixo e inconsistente.
- Eu tentei ir comessesolução para limitar conexões de entrada usando
iptables
, ainda sem sorte, mas estou tentando.
Pergunta: Qual poderia ser o problema? Isto é um ataque DDoS?
Atualizar: Eu discuti esse problemaaqui. Na verdade, foi um ataque DDoS; algumas soluções também são discutidas.
Responder1
Da próxima vez, você pode usar algo como apachetop
ou tail -f /var/log/httpd/access_log
para ter uma ideia melhor do que está acontecendo. Você provavelmente teria visto muitas solicitações chegando, possivelmente com um padrão reconhecível: como intervalos de IP específicos ou mesmos URLs, talvez tentativas de força bruta em algum formulário de login, etc. varia em uma regra de bloqueio do iptables se as solicitações de URL forem altas o suficiente em um determinado período de tempo.