
Estou usando o ufw em um servidor web de alto tráfego (muito tráfego http/https) no Ubuntu (12.04 ou 14.04).
Tentei ajustar os parâmetros do kernel relacionados ao rastreamento de conexão comalgum sucesso.
Porém, pensando bem, eu não faço NAT, portanto não acho que preciso de rastreamento de conexão pelo menos para as conexões na porta 80 ou 443.
Tentei seguir as instruções deessa questãocom adaptações, ou seja:
sudo iptables -t raw -A PREROUTING -p tcp --dport 80 -j NOTRACK
e minha tabela bruta se parece com:
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
NOTRACK tcp -- anywhere anywhere tcp dpt:http
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Para testar se tudo funciona, solicito uma instância nginx na máquina usando wrk usando 3 threads e 1000 conexões.
wrk -t 3 -c 1000 "http://<server_ip>/"
Como eles não devem ser rastreados, não devo vê-los na contagem do conntrack
No entanto, eu faço...
sudo sysctl -A | grep net.netfilter.nf_conntrack_count
net.netfilter.nf_conntrack_count = 1035
Posso ver claramente esse valor subindo e descendo enquanto executo o teste.
O que estou fazendo de errado?
Responder1
Você também precisa de uma regra OUTPUT.
-t raw -A PREROUTING -p tcp --dport 80 -j NOTRACK
-t raw -A OUTPUT -p tcp --sport 80 -j NOTRACK