iptables、真の開放性は何だろうか?

iptables、真の開放性は何だろうか?

RSAデバイスがあり、デバイスのファイアウォールルールを確認して、どのポートが有効になっているかを確認しました。私はそれが開いているように見えましたが、売り手は私がそれについて間違っていて、私はそれを正しく読んでいないと言いました。セキュリティ上の理由から、iptables全体を公開することはできませんが、ベンダーは次のように言います。

私を信じてください。ロックされています。 iptablesについてクライアントをトレーニングすることはできませんが、オンラインでiptablesのドキュメントを参照すると、各ルールがどのように設定されるかをよりよく理解できます。 Linuxファイアウォールiptables初心者ガイド

次の例は、許可ポリシーではなくDROPポリシーです。どこでもACCEPTを読んで開いていると思うのではなく、この点に注意してください。

Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere

後で彼らは言った

  1. すべてのポートが開いていますか?

    いいえ。 Iptable は、最初のルールがプロセスを満たす pam 構成ファイルとは異なります。 iptablesでは、すべてのルールを満たす必要があります。どこでもすべてが許可されていないと、何もファイアウォールを通過できません。

私にとって、これは言葉ではありません。この例はaccept any any anyポリシーの削除から始まります。オンラインで見ると、ポリシーの削除はデフォルトの受け入れではなくデフォルトの拒否に設定されます。例をポリシーの削除または承認に設定すると、結果がどのように変更されるかを理解できません。

私は何を見逃していますか?

答え1

Iptablesは、最初のルールが特定のプログラムを満たす必要があるpam構成ファイルとは異なります。 iptablesでは、すべてのルールを満たす必要があります。

これは完全に間違っています。ルールは順番に巡回され、一致するルールが組み込みターゲット(ACCEPTDROPまたはQUEUE)のいずれかにジャンプすると、パケット処理は終了します。これ以上ルールは巡回されません。 「どこにでもACCEPTがなければ、何もファイアウォールを通過できません」という主張は真ですが(DROPポリシーを使用)、パケットが真になるためにすべてのACCEPT規則と一致する必要はなく、1つだけ到達すればよいです。

カスタムチェーンにジャンプするか(この場合はチェーンのルールが順番に試みられる)、まったくジャンプせずに単に存在するためにブロックされるいくつかのルールがある可能性があるため、パケットは複数の一致ルールによって処理される可能性があります。他の理由(例えば、ロギング)が到着すると、ACCEPTパケットDROPは送信または破棄されます。QUEUE到着すると、パケットは追加の処理のためにユーザー領域に転送され、このパケットに対してルールは処理されなくなります。最後に、処理が組み込みチェーンの終わりに達した場合にのみ、そのチェーンのポリシーが適用されます。

たとえば、iptables -L次のように表示されるとします。

Chain INPUT (policy DROP) target prot opt source
destination ACCEPT all -- anywhere anywhere

ポリシーはそのため、DROP特定の規則によって明示的に許可されたパケットのみが通過します。ルールそうだすべてを許可するのと同じですが、必ずしもそうではありません。iptables -L省略された条件がある可能性があります。 Run はiptables -vLすべての条件を印刷します。一般的に省略される条件はインタフェースです。すべてのループバックトラフィックを許可するルールを持つことが一般的です。あなたは次のようなものを見るでしょう

# iptables -L INPUT 
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            
# iptables -vL INPUT
Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  lo     any     anywhere             anywhere            

ルールがすべてのトラフィックを許可すると、送信者列にany表示されます。iniptables -vL INPUT

関連情報