具体的には、パケットのコンテンツに基づいてパケットの宛先をブロックまたは変更するファイアウォールを構成しようとしています-一部のホストの一部のページへのHTTPリクエスト(ええ、それは別の「優れたファイアウォール」です)。ブロックに問題はありません。次のように簡単です。
iptables -A FORWARD -m string --string "Host: www.host.com" --algo bm -j DROP
問題は宛先アドレスの変更にあります。nat テーブルの PREROUTING チェーンでのみ可能です。しかし、次のようなルール
iptables -t nat -A PREROUTING -m string --string "Host: www.host.com" --algo bm -j DNAT --to-destination 1.2.3.4
決してトリガーしないでください。mangle テーブルで PREROUTING チェーンのパケットをマークし、nat/PREROUTING でマークをチェックしようとしました。パケットはマークされますが、nat/PREROUTING でキャッチされることはありません。
私は何か間違ったことをしていますか (もちろん、このすべてを除いて)?