他の切断された接続に関連する接続を切断するにはどうすればよいですか?

他の切断された接続に関連する接続を切断するにはどうすればよいですか?

シナリオ:iptablesDPI エンジンが Netfilter キューを監視しているホスト用のルールを作成しました。ファイアウォール ルールは、トラフィックが特定ipsetのホストから来ているかどうかに応じて、このホストに着信するトラフィックを異なる Netfilter キューにエンキューします。

チェーンではFORWARD、すべての接続がそれぞれ異なるキューに入れられますNFQUEUES。DPI エンジンは、iptables によって送信されたパケットをユーザー空間キューで監視し、禁止された接続が見つかった場合は、パケットに特別な値でマークを付けます。DPI エンジンは、禁止されたパケットをスタックに再挿入します。チェーンでは、POSTROUTING接続にその特別な値でマークされているかどうかを確認し、マークされている場合は、DROPそれらを削除し、

すべて正常に動作していますが...

問題: DPIエンジンは良いですが、完璧ではありません。時々、

  1. 禁止されていると識別されるべきトラフィックが禁止されていると識別されていないため、ブロックされません。
  2. 禁止されたトラフィックはブロックされますが、すぐにはブロックされません。その間に、禁止された接続によって、RELATED禁止としてマークされていない別の接続 (conntrack マシンによると ) が開かれる可能性がありますが、関連する接続もブロックしたいと思います。

2 番目のケースは、私が対処したいケースです。ケース 2 の例として、DPI エンジンが YouTube をブロックしたいが、すぐにはブロックできないとします。YouTube 接続は、DPI エンジンから SSL としてラベル付けされた別の接続を開くことができます。DPI エンジンは最終的に YouTube をブロックしますが、SSL 接続は自由に使用できます。どの接続が SSL 接続を開いたかに関係なく、DPI エンジンに SSL 接続をブロックするように指示することはできません。

考慮事項: で説明したようにシナリオ連鎖的にやってくるパケットはPOSTROUTING0(デフォルト値なのでDPIエンジンは何もしない)でマークされるか、特別な値(DPIエンジンが禁止された接続を検知してマークした)でマークされる。

iptables -t mangle -A POSTROUTING -m mark --mark DROPVALUE -j DROP

ほとんどの場合は十分ですが、問題セクションでは、禁止されている接続に関連するが、DPIエンジンではそのようには認識されないと書きました。禁止された接続によって作成された場合でも、そのプロトコルはブラックリストに登録されていないため、禁止されているとは見なされません。。ブラックリストに登録できないSSLので、これが正しいです。HTTPS

RELATED禁止されている接続への接続をブロックする必要があります。RELATEDまた、ESTABLISHED(私が正しく理解していれば) 特定の接続を参照するのではなく、禁止されている接続を参照する必要があります。

質問RELATED:ドロップする(またはすでにドロップされている)接続への接続をドロップすることは可能ですかiptables? または、 での何らかのハックconntrackが必要ですか?

ご提案がありましたら、よろしくお願いいたします。

答え1

誤解していますRELATED。これは、単一のアドレスが確立する可能性のあるすべての接続に使用されるわけではありません。これは、FTP 制御接続に関連付けられた FTP データ ストリームや、オープン接続に関連付けられた ICMP エラー メッセージなど、実際に関連するデータにのみ使用されます。実際に と一致する接続はほとんどありませんRELATED

関連情報