Linux 代理流量回放实验
文章目录
代理流量回放方案
在 SOCKS5、TCP PROXY、Nginx 等代理中,如若需要对代理的流量还原成真实的 IP 网络包并发给网络审计设备,可以采取如下办法:
其中 namespace client&server、bridge br0 部分参考 Linux bridge 强制泛洪实验。
而还原代理流量的地方是在 namespace client&server, 在其中各运行一个程序,用于模拟真实的 client 和 server。
Linux 透明代理
Linux 透明代理 允许程序使用非本地 IP 去发送网络包,允许程序接收目的地址为非本地 IP 的网络包。也就是,在 namespace client 中,编写程序使用真实 client 地址去发 IP 包;在 namespace server 中,编写程序接收发送到真实 server 地址的 IP 包。
namespace server 效果:
namespace client 效果:
在 bridge 上抓包:
参考 Linux bridge 强制泛洪实验,即可在 bridge 上将流量泛洪到流量审计设备。
方案限制
该方案有个限制:代理流量回放所在的设备需要跟流量审计设备通过网线直连起来,泛洪出来的流量经过该网线直接到达流量审计设备的流量接收网卡。
总结
该方案巧妙地将 Linux 系统上一些成熟的技术组合起来,从而形成特定场景下的解决方案。
文章作者 Leon Hwang
上次更新 2021-01-23