iptablesで文字列をあるチェーンから別のチェーンに移動するには?

iptablesで文字列をあるチェーンから別のチェーンに移動するには?

これが私がしたいことです。

私のルールファイル(と一緒に使用されますiptables-restore)には次のものがあります(制限が削除されます)。

-4 -A LOGDROP -j LOG --log-prefix "ipt:4:drop "
-6 -A LOGDROP -j LOG --log-prefix "ipt:6:drop "
   -A LOGDROP -j DROP

私はすべてのチェーンが終わるたびに同じ言葉を繰り返したくありません。だから別のチェーンに飛び込むといいと思います。~からLOGDROP文字列をチェーンに組み立てることができるように、すでに文字列を設定できますlog-prefix

これを達成する方法はありますか?

ベストアンサー1

良いアイデア。これは、変数を生成してすべてのパケットに追加することを意味します。私はそれが可能であることを知りませんでした。しかし、すべての希望は消えません。同様のことを達成する方法があるかもしれません。

MARKターゲットを使用できます。

iptables -A INPUT -j MARK --set-mark 123

Netfilterは32ビットフィールドを各パケットに関連付けます。その値は LOG 宛先とともに記録されます。その後、ログから文字列MARK=0x7b(7B = 123)をgrepできます。 iptblesルールでこのタグをさらに一致させるには、matchを使用して完了できますmark

もしそうなら、文字列ほど良くはありませんが、あなたのニーズに適していますか?

編集:または、--and-markまたはを使用して、1つ以上の特定のビットのみを設定/設定解除することもできます。これにより、接続文字列と同じようにパケットを表示するためのさまざまな可能性が提供されます。--or-mark--xor-mark--set-mark val/mask

この文書は次の場所にあります。Webフィルタページ下部のセクションでは、ターゲットに対して(正確に一致する拡張子(-m)が同じ名前を持ち、同じページに文書化されています。)

おすすめ記事