Я использую ufw на веб-сервере с высоким трафиком (много трафика http / https) на ubuntu (12.04 или 14.04).
Я попытался настроить параметры ядра, связанные с отслеживанием соединений, с помощью некоторый успех.
Однако, если подумать, я не использую NAT, поэтому не думаю, что мне нужно отслеживание соединений, по крайней мере, для соединений на портах 80 или 443.
Я пробовал следовать указаниям этот вопрос с приспособлениями, то есть:
sudo iptables -t raw -A PREROUTING -p tcp --dport 80 -j NOTRACK
и моя необработанная таблица выглядит так:
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
Чтобы проверить, что все работает, я запрашиваю экземпляр nginx на машине, используя wrk, используя 3 потока и 1000 соединений.
wrk -t 3 -c 1000 "http://<server_ip>/"
Поскольку они не должны отслеживаться, я не должен видеть их в счетчике conntrack
Однако я ...
sudo sysctl -A | grep net.netfilter.nf_conntrack_count
net.netfilter.nf_conntrack_count = 1035
Я ясно вижу, как это значение увеличивается и уменьшается по мере запуска теста.
Что я делаю не так?
Вам также понадобится правило ВЫХОДА.
-t raw -A PREROUTING -p tcp --dport 80 -j NOTRACK
-t raw -A OUTPUT -p tcp --sport 80 -j NOTRACK