netfilter/iptables: 元のテーブルを使用しないでください。

netfilter/iptables: 元のテーブルを使用しないでください。

Linuxでは、通常、一般的なフィルタリングには「フィルタ」テーブルを使用します。

iptables --table filter --append INPUT --source 1.2.3.4 --jump DROP
iptables --table filter --append INPUT --in-interface lo --jump ACCEPT

以下のnetfilterフローチャートによると、パケットは最初に「オリジナル」テーブルを通過します。

ここに画像の説明を入力してください。

だから私たちは次のように書くことができます:

iptables --table raw --append PREROUTING --source 1.2.3.4 --jump DROP
iptables --table raw --append PREROUTING --in-interface lo --jump ACCEPT
  • パケットはより速く処理され、conntrack+mangle+nat+routing を行う必要はありません。したがって、少し少量のCPU /メモリが使用されます(これはiptable_rawモジュールをロードして少し補償されます)。
  • フィルタリング/配信に同じルールを追加する必要がないため、ボックスがルータでもある場合、ルールは1つだけです(明らかにすべてのルールには適用されません)。

私は簡単なテストをしてみましたが、とてもうまくいきました。
私が見つけたドキュメントは、常に厳しい場合に生テーブルを使用する方法を説明しています。しかし、誰も些細な理由さえ提示していません。

質問:排他的なもの以外に生テーブルを使用しない理由はありますか?

ベストアンサー1

~からiptables:

raw: This table is used mainly for configuring exemptions from connection
     tracking in combination with the NOTRACK target. It registers at the
     netfilter hooks with higher priority and is thus called before
     ip_conntrack, or any other IP tables.
     It  provides the following built-in chains:

     - PREROUTING (for packets arriving via any network interface)
     - OUTPUT (for packets generated by local processes)

分析する:

したがって、RAWテーブルはconntrackの前にあり、netfilterで追跡したくないパケットにNOTRACKフラグを設定するように設計されています。

-j宛先はNOTRACKに制限されないため、CPU /メモリ消費を減らすことで、rawテーブルからパケットをフィルタリングできます。

ほとんどの場合、サーバーはすべての接続を追跡する必要はありません。以前に確立された接続に基づいてiptablesのパケットをフィルタリングする必要がある場合にのみ、トレースが必要です。ポート80(および可能であれば21)を開くなど、単純な目的でのみ使用されるサーバーでは、この操作は必要ありません。このような場合は、接続追跡を無効にできます。

ただし、NAT ルーターを実行しようとすると、状況がより複雑になります。 NATを実行するには、外部ネットワークから内部ネットワークにパケットを転送できるように、これらの接続を追跡する必要があります。

NOTTRACKを使用して完全な接続を確立すると、接続された接続も追跡できず、conntrackおよびnatヘルパーは追跡されていない接続に対しては機能せず、関連するICMPエラーも機能しません。つまり、手動でオンにする必要があります。 FTP や SCTP などの複雑なプロトコルが関連していると、管理が難しい場合があります。

はい:

たとえば、トラフィックが多いルータがあり、ルーティングされるトラフィックではなく、着信および発信トラフィックに対してファイアウォールを設定したい場合があります。その後、NOTRACKフラグを設定して、転送されたトラフィックを無視して処理能力を節約できます。

NOTRACKを使用できる別の例は、トラフィックの多いWebサーバーがある場合は、すべてのローカル所有IPアドレスまたは実際にWebトラフィックを提供するIPアドレスからポート80トレースをオフにするルールを設定できることです。その後、ネットワークトラフィックを除く他のすべてのサービスのステータス追跡を楽しむことができます。

はい - >プライベートネットワーク用の半状態非保存Linuxルーターの実行

結論として:RAWテーブルを使用しない理由はありませんが、RAWテーブルでNOTRACKターゲットを使用するときに注意が必要な理由はいくつかあります。

おすすめ記事