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.