私は this howtoを読んでいます、そしてこのようなものがあります:
確立されたセッションがトラフィックを受信できるようにすることができます。
$ Sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
上記のルールには、ESTABLISHED、RELATEDのカンマの両側にスペースがありません。
上記の行が機能しない場合、プロバイダーが拡張機能を使用可能にしていない去勢されたVPSを使用している可能性があります。その場合、下位バージョンを最後の手段として使用できます。
$ Sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-m conntrack --ctstate
と-m state --state
での作業に大きな違いはありますか?彼らは人は働かないかもしれないと言います、しかし彼らは理由を言いません。なぜ私はどちらか一方を好むべきですか?
iptables
ルールのエキスパートであるとは主張していませんが、最初のコマンドは接続追跡拡張機能(conntrack
)を使用しており、2番目のコマンドはstate
拡張機能を使用しています。
このドキュメント によると、conntrack
拡張はstate
に取って代わりました。
Obsolete extensions:
• -m state: replaced by -m conntrack
それでも私はこのSF Q&Aのタイトルを見つけました: 状態とポリシーに関するファイアウォールの質問? OPがこの質問をしたと主張したところIRC in#iptables @ freenode。Afterそこで議論して、彼は次の結論に達しました:
技術的には、conntrackの一致は、状態の一致に取って代わります。しかし実際には、州の一致は決して廃止されていません。
最後に、このSF Q&Aというタイトルの Iptables、-m stateと-m conntrackの違いは何ですか? を見つけました。この質問からの回答は、conntrack
とstate
の使用法を表示する方法に関するおそらく最も良い証拠とアドバイスです。
抜粋
どちらも(接続追跡サブシステム)の下で同じカーネル内部を使用します。
Xt_conntrack.cのヘッダー:
xt_conntrack - Netfilter module to match connection tracking information. (Superset of Rusty's minimalistic state match.)
だから私は言うでしょう-状態モジュールはより単純です(そしておそらくエラーが起こりにくい)。カーネルでも長くなります。反対側のConntrackには、より多くのオプションと機能があります [1]。
私の呼びかけは、機能が必要な場合はconntrackを使用し、それ以外の場合は状態モジュールを使用することです。
[1]
"-m conntrack --ctstate DNAT -j MASQUERADE"
routing/DNAT fixup ;-)のようにかなり便利です
このスレッドは、netfilter @ vger.kernel.orgのnetfilte/iptablesディスカッションから見つかりました。タイトルは state match is obsolete 1.4.17 です。これは、state
がconntrack
の単なるエイリアスであるため、どちらを使用するかは重要ではありません。どちらの状況でもconntrack
を使用しています。
抜粋
実際、私は同意しなければなりません。 「state」をエイリアスとして保持し、「conntrack」の古い構文を受け入れないのはなぜですか?
状態は現在エイリアスされており、カーネルにある場合はiptablesのconntrackに変換されます。壊れたスクリプトはありません。
エイリアスがユーザー空間で行われる場合、カーネル部分を削除できます-いつかは。
エイリアシングはすでにユーザー空間で行われています。 1つは「状態」と入力し、「conntrack」に変換されてから、カーネルに送信されます。 (ipt_stateなどのモジュールエイリアスがconntrackモジュールに追加されたかどうかを確認する限り、状態カーネルモジュールも削除できます。)
私はnetfilterの専門家ではありませんが、iptables-extensionのマンページを調べたところ、驚きました。
The "state" extension is a subset of the "conntrack" module.
したがって、stateはconntrackの一部であり、本当に--stateだけが必要な場合の単純なバージョンであり、conntrackのより豪華な機能ではありません