我们在我们的内部networking中有一个代理服务器,我想把所有的Internet http请求redirect到本地networking中的一个Web服务器。 这就像一个networking广告牌,说:“没有直接连接可用,设置您的代理等。 例如:
我已经在Checkpoint防火墙中添加了一个简单的手动NAT规则来解决翻译问题,但它根本不起作用。 这是我的地址转换规则
Source Destination Service T.Source T.Destination T.Service MY_PC A_GOOGLE_IP ALL ORIGINAL INT_WEB_SRV ORIGINAL
然后,当我ping A_GOOGLE_IP ,答复来自INT_WEB_SRV ,正如我所料。 但是,当我尝试从浏览器( http:// A_GOOGLE_IP )连接A_GOOGLE_IP ,SYN_SENT没有响应,并进入超时。 当我查看INT_WEB_SRV的防火墙日志时,可以看到来自MY_PC的传入连接请求被接受,并且NO拒绝。 顺便说一下,从浏览器查看INT_WEB_SRV ( http:// INT_WEB_SRV )是没有问题的。
我的理解是,我的NAT规则在检查点NGX R60不包括返回数据包。 我绝对需要一些帮助。
在遇到NAT问题时,我总是先打开几个SSH会话,然后在内部和外部接口上执行tcpdump。
就像是:
tcpdump -i eth0 proto ICMP
要么
tcpdump -i eth0 host A_GOOGLE_IP
并观察看看本机IP地址是什么。 那至less应该给你一个开始的地方!
检查点返回的stream量应该是natted。 networking服务器上的服务器日志中是否显示stream量? 此外,它值得使用fw监视器,以确保检查点是正确的natting,并通过双方的交通,类似
fw monitor -e 'accept (src=<host address> and dport=80) or (dst=<host address> and sport=80);'
这应该显示每个数据包4行,包括前,后NAT地址。
如果内部服务器与客户端位于同一个子网中,则需要执行SNAT以及DNAT,因为现在,以下是它的工作原理。
iptables -t nat -A PREROUTING -i LAN_IFACE -d A_GOOGLE_IP -j DNAT --to-destination INT_WEB_SRV
如果你SNAT,那么它的工作原理是这样的:
iptables -t nat -A PREROUTING -i LAN_IFACE -d A_GOOGLE_IP -j DNAT --to-destination INT_WEB_SRV iptables -t nat -A POSTROUTING -s LAN_RANGE/mask -d INT_WEB_SRV -j SNAT --to-source ROUTER_IP
但是,如果您只想强制所有人使用代理服务器,只需将DNAT的所有传出HTTP连接传送到代理服务器(您将获得所谓的透明代理服务器),客户端则无需更改其计算机上的设置。