0

通常のTCPスタックが従わない動作を生成するために、非標準のTCPソケットの使用を必要とするいくつかのセキュリティテストを実行しています。私はそのようなトラフィックを生成するためにrawソケットを使用します。

もう一方のエンドポイントからの応答を受信すると、TCP接続はカーネルに認識されず、RESETを発行します。これを防ぐための通常の解決策は、すべての発信RESETをドロップするiptablesルールを定義することです(たとえば、iptables -A OUTPUT -p tcp -dport 50000 --tcp-flags RST RST -j DROP)。

ただし、私の特定のケースでは、RESETはテスト中に生成する有効なセグメントでもあります。必要なのは、その接続からすべてのセグメントをフィルターで除外して、カーネルTCPスタックが関与せず、rawソケット内のすべてのセグメントにアクセスできるようにする方法です。どうすればこれを達成できますか?これはiptablesで可能ですか?

よろしくお願いしますルイス

4

1 に答える 1

0

ホストの IP アドレスを使用しようとして、Linux の TCP/IP スタックと戦うことは、問題を引き起こします。

代わりに、別の IP アドレスを使用し、それを tun デバイスにルーティングし、未加工のソケットを使用する代わりに tun デバイスから未加工の IP パケットを取得します (tun デバイスに接続するためのサンプル コードは、http://www. secdev.org/projects/tuntap_udp/ )。そうすれば、Linux の TCP/IP スタックが邪魔になることはありません (ルーティングの目的を除く)。

于 2012-06-01T19:40:15.983 に答える