Caros/as colegas,
Um dos ataques mais comuns aos servidores web é o ataque syn flood. Ao digitar “dmesg” em seu servidor, a possibilidade de você ter recebido um ataque syn flood pode ser detectada por meio da mensagem:
[10496484.393573] TCP: TCP: Possible SYN flooding on port 80. Sending cookies. Check SNMP counters.
Agora indo ao que interessa, inicie o processo de proteção digitando os seguintes comandos como root:
sudo iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
sudo sysctl -w net/netfilter/nf_conntrack_tcp_loose=0
A primeira regra que criamos foi para identificar se os novos pacotes TCP de entrada são SYN. Caso contrário, o kernel irá descartar o pacote.
A segunda configuração sysctl fará com que o sistema de rastreamento de conexões seja mais estrito em sua identificação/categorização. Especificamente, entre outras coisas, essa regra ajuda a captar os ACK-floods.
Quando um cliente tenta começar uma conexão TCP com um servidor, o cliente e o servidor trocam um série de mensagens, que normalmente são assim:
1) O cliente requisita uma conexão enviando um SYN (synchronize) ao servidor.
2) O servidor confirma esta requisição mandando um SYN-ACK(acknowledge) de volta ao cliente.
3) O cliente por sua vez responde com um ACK, e a conexão está estabelecida.
Isto é o chamado aperto de mão em três etapas (Three-Way Handshake).
Por hoje é só!