接続を処理するプロセスがストリームを取得する前に、既知のtcp Host:portからの着信トラフィックに小さな変更を加える必要があります。
たとえば、192.168.1.88をWebサーバーを実行するリモートホストとします。
ローカルホストのプロセスが192.168.1.88:80(たとえば、ブラウザ)からデータを受信すると、最初にデータが変更されてtext-A
とtext-B
、 このような:
127.0.0.1:...は192.168.1.88:80に送信します。
GET /
192.168.1.88:80は127.0.0.1に送信します:...:
HTTP/1.0 200 OK
Content-Type: text/plain
Some text-A, some other text
そのデータはシステムによっていくらか傍受され、出力が次のようなプログラムに渡されます。
HTTP/1.0 200 OK
Content-Type: text/plain
Some text-B, some other text
システムは、このように変更されたデータを、192.168.1.88:80からのように、127.0.0.1:...を処理するプロセスに提供します。
私がこの変更を行うためのストリームベースの方法(たとえば、sed
を使用)があるとすると、着信tcpストリームを前処理する最も簡単な方法は何ですか?
これにはiptables
が関係すると思いますが、私はあまり得意ではありません。
アプリケーションは元のホストを処理するように感じる必要があるため、プロキシの設定はおそらく解決策ではないことに注意してください。
これを正確に行うには、iptablesをsquidプロキシを介して透過的にプロキシ接続するを使用し、次にsquid re-write the http contentあなたのために。
iptables
+ libnetfilter_q の使用は、あなたが望むことをする別のオプションです:
「... [再注入]カーネルnfnetlink_queueサブシステムへの変更されたパケット。」
ソフトウェアのコーディングはあなた次第なので、拡張性が最も高くなるでしょう。
a python wrapper も利用できます。