- 论坛徽章:
- 0
|
本帖最后由 geoh 于 2012-04-24 18:49 编辑
经过我的实验,改变80端口到内网一台机器
如果不加POSTROUTING,改变源IP,数据就无法返回。
必须修改其SNAT。但是我也不知道该如何获取真实IP,据别人说可以在目标机器上也做转发来返回数据,但是不知道改怎么做,也许那样才能获取到真实IP并返回数据。
如果是Web Server 好解决一点,不用iptables做转发,而是用NginX做反向代理,
并添加HTTP的Header如下
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
服务器端读取$_ENV['X-Forwarded-For'];即可获取真实IP。
个人觉得主要是如下困扰
用户→服务器1→服务器2
如果不进行SNAT,则
服务器2→用户 实际上用户和服务器2并没握手,也就无法分析收到返回的包。在这个过程中,服务器2只是充当了DDOS的角色。
做了SNAT,实际上是
服务器2→服务器1→用户 用户只和服务器1握手,所以只能分析从服务器1返回的包,而无法分析服务器2主动发送的包, |
|