質問:現在、ポート80要求をポート1000の他のシステムにリダイレクトしています。
実行方法は次のとおりです。
iptables -t nat -A PREROUTING ! -s 172.20.1.2 -p tcp --dport 80 -j DNAT --to-destination 172.20.1.2:1000
ただし、MSIEを含むフィルタリングされたパケットに追加されると、事前ルーティングは最初の-m string --algo kmp --string 'MSIE'
SYNパケットのみを評価するため無視されます(したがって、評価しようとしているヘッダーを含むHTTPパケットがありません)。
壊れたルール:
iptables -t nat -A PREROUTING ! -s 172.20.1.2 -p tcp --dport 80 -j DNAT --to-destination 172.20.1.2:1000 --algo kmp -m string --string 'MSIE'
私の質問:文字列一致が発生したときにHTTPヘッダーを評価し、パケットをリダイレクトしたりシステムイベントをトリガーしたりするにはどうすればよいですか?
ベストアンサー1
マニュアルページを引用すると、次のようになります。
DNAT(IPv4のみ)
このターゲットは、natテーブル、PREROUTINGおよびOUTPUTチェーン、およびこれらのチェーンでのみ呼び出されるカスタムチェーンでのみ有効です。
つまり、敗北すれば不可能です。接続中に宛先アドレスを変更できないため、これは明らかです(新しい宛先では変更せず)。
アプリケーション層が必要な場合は、アプリケーションが必要です。接続の処理方法を決定できる(透明な)プロキシにすべてのパケットをリダイレクトします。