web-dev-qa-db-ja.com

接続追跡なしのufw

私はubuntu(12.04または14.04)の高トラフィックWebサーバー(多くのhttp/httpsトラフィック)でufwを使用しています。

ある程度の成功 で接続追跡に関連するカーネルパラメータを調整してみました。

ただし、考えてみると、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         

すべてが機能することをテストするために、3つのスレッドと1000の接続を使用するwrkを使用してマシン上でnginxインスタンスを要求します。

wrk -t 3 -c 1000 "http://<server_ip>/"

それらは追跡されることになっていないので、conntrackカウントに表示されるべきではありません

しかし、私は...

Sudo sysctl -A | grep net.netfilter.nf_conntrack_count
net.netfilter.nf_conntrack_count = 1035

テストを実行すると、この値が上下することがはっきりとわかります。

私は何が間違っているのですか?

1
Arnaud Potier

OUTPUTルールも必要です。

-t raw -A PREROUTING -p tcp --dport 80 -j NOTRACK
-t raw -A OUTPUT -p tcp --sport 80 -j NOTRACK
2
Mike Crews