web-dev-qa-db-ja.com

iptables(確立された関連ルール)

次のiptablesルールが正確に何をするのか知りたいですか?なぜそれが必要なのですか?

ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
2
Sangfroid

ESTABLISTED状態は、既存の接続の一部であるすべてのパケットが通過できるようにします。 RELATED状態では、既存の接続に関連する新しいセカンダリ接続を作成できます。これにより、たとえば、制御接続がポート21にあり、データポートがプロトコルによってネゴシエートされるFTPデータ転送が可能になります。

3
user9517

上記のコメントのいくつかが示唆するよりも少し複雑です。

state ESTABLISHEDは、「接続が開いたら、残りのパケットを通過させる」ことを意味しますが、ここでの「接続」は同期性によって定義されることに注意してください。パケットは、ある既知のアドレス/ポートペアと別の既知のアドレス/ポートペアの間を移動します。 「ESTABLISHED」として定義されます。有名なスリーウェイTCPハンドシェイクは入りません。

state RELATEDは、それが何をするのかを本当に理解していない多くの人々によってカーゴカルトされているようです。これには通常、既存の接続(試行)に関連するICMPトラフィックが含まれます。たとえば、ファイアウォールから戻ってくるICMP-Host-administratively-unreachableパケットが、禁止ボックスへの接続要求をブロックしています。

ただし、nf_conntrack_ftpなどのカーネルモジュールのグループもあり、ロード時にRELATEDトラフィックの定義を動的に拡張します(特定のモジュールはftp制御チャネルトラフィックのレイヤー4検査を実行し、DATAを探します) DATAチャネルの差し迫った開始を警告し、それらのパケットが到着したときに一致するステートメント)。

必要であることがわかっている場合を除いて、notRELATEDトラフィックを一般的に許可することをお勧めしますが、代わりにRELATEDステートメントを必要なトラフィックに制限します(例:-p icmp)。

3
MadHatter