Servidor HTTP, inundação SYN e perguntas de ataque DoS

1

Estou fazendo um servidor http em c. Ele está em um estágio pré-alfa, mas parece estar estável o suficiente para ser implantado no meu servidor e executar 4 sites mínimos. Está funcionando perfeitamente por dois dias até esta manhã. O daemon não estava funcionando e não saiu corretamente. Eu olhei nos logs e encontrei cerca de 10 linhas seguidas dizendo:

[815259.230706] possible SYN flooding on port 80. Sending cookies.

Em seguida, não há mais mensagens registradas do servidor http, portanto, suponho que esse seja o local onde ele morreu. Eu não tenho certeza de qual sinal ele recebeu que o matou, então estou assumindo que era SIGKILL, SIGSEGV ou SIGABRT porque eles não são pegos, e SIGKILL não pode ser pego de qualquer maneira. Eu procurei SYN flooding e é um tipo de ataque DoS. Não tenho certeza se o servidor foi realmente atacado ou não, mas a maioria dos pedidos que recebo no total para meus 4 sites é de no máximo 1 por segundo ... nem perto o suficiente para ser falsamente acusada de ser um ataque DoS.

Minhas perguntas são:

Qual a probabilidade de ser um ataque DoS?

O kernel (linux) teria matado o servidor http por causa disso ou morreu por conta própria?

Se o kernel o matou, como eu evito que isso aconteça, não posso morrer inesperadamente?

Se o kernel não o matou, a morte provavelmente foi causada pelo SYN flooding e como posso depurá-lo, ou é mais provável que seja um erro de programação não relacionado?

Quais medidas de segurança devo tomar para evitar possíveis inundações SYN?

EDITAR: O servidor http falhou 3 vezes com o mesmo cenário.

    
por user16517 12.08.2009 / 20:30

2 respostas

2

O kernel do Linux está enviando um cookie SYN para a máquina remota que está fazendo ataques possíveis, mas não para o seu servidor web.

Você pode ler Endurecendo a pilha TCP / IP para ataques SYN para saber mais sobre os ataques de inundação SYN.

Além disso, talvez você queira ler este guia sobre a depuração do apache e aplicar algumas ideias para depurar seu próprio servidor.

    
por 12.08.2009 / 20:51
0

Execute o netstat e veja qual é o status das conexões. Se você ver um monte de sockets SYN_RECV apenas sentado lá, há uma boa chance de seu sob um DOS. Se todas as conexões vierem do mesmo ip, a correção é simples.

Também é possível que seu site tenha se tornado popular ou esteja sendo rastreado por um bot de pesquisa mal codificado, resultando em muitas conexões e seu servidor não pode lidar com isso. Uma pesquisa por "Linux tcp tuning" em seu mecanismo de busca favorito vai trazer muitas dicas / sugestões sobre como ajustar a pilha tcp de seus servidores.

    
por 13.08.2009 / 03:10