“编辑”来自 tcp 主机(linux)的流量的简单方法

etu*_*rdu 9 iptables transparent-proxy tcp

在处理连接的进程获取流之前,我需要对来自已知 tcp host:port 的传入流量进行一些小的修改。

例如,让 192.168.1.88 成为运行 Web 服务器的远程主机。
我需要的是,当我本地主机上的进程从 192.168.1.88:80(例如浏览器)接收数据时,数据首先被替换text-Atext-B,如下所示:

假设我有一种基于流的方法来进行这种更改(sed例如使用),预处理传入的 tcp 流的最简单方法是什么?

我想这会涉及iptables,但我不是很擅长。

请注意,应用程序应该感觉与原始主机打交道,因此设置代理不太可能是解决方案。

dfc*_*dfc 22

使用 netsed 和 iptables 代理。

iptables -t nat -D PREROUTING -s yourhost -d desthost -p tcp --dport 80 -j REDIRECT --to 10101
Run Code Online (Sandbox Code Playgroud)

然后运行:

netsed tcp 10101 desthost 80 s/text-A/text-B
Run Code Online (Sandbox Code Playgroud)

NetSED是一个小巧而方便的实用程序,旨在实时更改通过您的网络转发的数据包的内容。它对于网络数据包更改、伪造或操纵非常有用。NetSED 支持:

  • 黑盒协议审计 - 每当有两个或更多专有盒子使用一些未记录的协议进行通信时。通过在正在进行的传输中强制更改,您将能够测试是否可以声明已检查的应用程序是安全的。

  • 模糊生成实验、完整性测试——每当您对应用程序进行稳定性测试以查看它如何关心数据完整性时;

  • 其他常见用例:欺骗性传输、内容过滤、协议转换——任何最适合您手头任务的。


pau*_*los 5

您可以通过使用 iptables通过 squid 代理透明地代理连接,然后让squid为您重新编写 http 内容来做到这一点。