iptablesおよびRETURNターゲット


15

RETURNターゲットがiptablesコマンドで何をするのかわかりません。

このガイドには、次のような疑問があります。

チェーンは、パケットが順番にチェックされるルールのセットです。パケットがルールの1つに一致すると、関連するアクションが実行され、チェーン内の残りのルールに対してチェックされません。

パケットがルールに一致し、他のルールのチェックを停止した場合、なぜ必要なのRETURNですか?

たとえば、私はインターネットでこれを見つけました:

iptables -A PREROUTING -t mangle -i wlan0 -s 192.168.1.10 -j MARK --set-mark 30;
iptables -A PREROUTING -t mangle -i wlan0 -s 192.168.1.10 -j RETURN;

なぜ必要なのRETURNですか?パケットが最初のルールに一致する場合、他のルールの実行を自動的に停止します。

回答:


32

パケットは、彼らがヒットするまで、チェーンを横断しACCEPTDROPREJECT、またはRETURN。マッチに終了アクションが含まれていない限り、マッチで停止しません。この例では、最初のルールに一致するパケットにマークが付けられますが、その後、2番目のルールによって検査(および場合によっては処理)されます。

純粋に参照用に、manページの関連セクションを以下に示します

ファイアウォールルールは、パケットとターゲットの基準を指定します。パケットが一致しない場合、チェーン内の次のルールが検査されます。一致する場合、次のルールはターゲットの値によって指定されます。ターゲットの値は、ユーザー定義チェーンの名前または特別な値ACCEPTDROP[、REJECT]、QUEUEまたはのいずれかRETURNです。

  • ACCEPT パケットを通過させることを意味します。
  • DROP 床にパケットをドロップする、つまり、パケットを破棄し、応答を送信しないことを意味します
  • [ REJECT一致したパケットに応答してエラーパケットを送り返すために使用されます。それ以外の場合DROPは、TARGETを終了し、ルールトラバーサルを終了するのと同等です。
  • QUEUE パケットをユーザー空間に渡すことを意味します。
  • RETURNこのチェーンの走査を停止し、前の(呼び出し元の)チェーンの次のルールで再開することを意味します。組み込みチェーンの終わりに到達するか、ターゲットを含む組み込みチェーンのルールRETURNが一致した場合、チェーンポリシーで指定されたターゲットがパケットの運命を決定します。

あなたの特定の懸念に応えて、私はあなたのガイドが誤解を招くと言っています。「関連アクション」が5つの端末アクションの1つでない限り、パケットはRETURN最後に暗黙的に到達するまでチェーンを流れ続けます。


できれば、この答えを複数回支持します。
JakeRobb

ユーザー定義チェーンのデフォルトアクションはRETURNであることに注意してください。
スターク

@starkは、最後の文が言っていることではありませんか?
ロアイマ

1
ああ、今はDROPをよりよく理解しています。それが、私もこの机の下に足のスペースがない理由を説明しています。
ジョナサンノイフェルド
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.