5.7透明代理

5.7.1透明代理的工作原理

假设客户端192.168.0.100想通过代理服务器来访问web服务器10.0.1.16,另外,代理服务器对企业内部的IP地址位是192.168.0.1,对因特网的IP地址是10.0.1.200

164001313.jpg

工作原理:客户端先通过DNS的查询,然后再对Web服务器提出网页请求①,因此这个数据包内②的source IP等于192.168.0.100Destination IP等于10.0.1.16.接着,可以通过NAT中的REDIRECT机制,将这个数据包内的Destination IPDestination port 改为127.0.0.13128⑥,这样这个数据包就会被转发到“本机”的“端口”⑦,因为NAT主机上有启动缓存代理⑦,而代理所服务的端口正是3128,所以这个数据包就等于是转发给本机的缓存代理⑧,最后由缓存代理机制连接到web服务器,将客户端所请求的网页下载回来。

5.7.2

透明代理的配置:一是squid本身,其二是NAT的机制。

1配置squid代理

squid.conf中执行透明代理机制

64 http_port 3128 transparent

2.配置NAT

重定向:

Iptables -t NAT -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

Iptables -t NAT -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j SNAT --to 10.0.1.200

REDIRECT机制允许我们把TCP或UDP的数据包转向到本机(127.0.0.1)的任何一个端口。因此,我们可以通过REDIRECT机制,针对所有来自192.168.0.0/24网段,且要送往因特网的TCP port 80的数据包,将其中的Destination IP改为127.0.0.1.Destination Port改为3128.


这里将有关透明代理一些理解写成笔记,如想更加深入了解透明代理的相关概念,请浏览:http://baike.baidu.com/view/610467.htm