Necesito hacer una pequeña modificación al tráfico entrante desde un host tcp conocido: puerto antes de que el proceso que maneja la conexión obtenga la transmisión.
Por ejemplo, deje que 192.168.1.88 sea un host remoto que ejecuta un servidor web.
Necesito que, cuando un proceso en mi host local reciba datos de 192.168.1.88:80 (por ejemplo, el navegador), los datos se cambien primero y se reemplacen text-A
por text-B
, de esta manera:
- 127.0.0.1: ... se conecta a 192.168.1.88:80
127.0.0.1: ... envía a 192.168.1.88:80:
GET /
192.168.1.88:80 envía a 127.0.0.1: ...:
HTTP/1.0 200 OK Content-Type: text/plain Some text-A, some other text
El sistema intercepta esos datos y los pasa a un programa cuya salida es:
HTTP/1.0 200 OK Content-Type: text/plain Some text-B, some other text
el sistema proporciona los datos cambiados al proceso que maneja 127.0.0.1: ..., como si viniera de 192.168.1.88:80.
Suponiendo que tengo una forma basada en transmisión para hacer estos cambios (usando, sed
por ejemplo), ¿cuál es la forma más fácil de preprocesar la transmisión de TCP entrante?
Supongo que esto implicaría iptables
, pero no soy muy bueno en eso.
Tenga en cuenta que la aplicación debería tratar con el host original, por lo que configurar un proxy probablemente no sea una solución.