[代理服务器和透明代理.doc
文本预览下载声明
一、什么是代理服务器?
所谓代理服务器是指代表内部私有网中的客户连接互联网www资源的外部服务器的程序。客户与代理服务器对话,它们接收客户请求,然后连接真实的服务器,请求得到数据并将响应数据返回给客户。代理服务器发挥了中间转接作用。
在代理方式下,私有网络的数据包从来不能直接进入互联网,而是需要经过代理的处理。同样,外部网的数据也不能直接进入私有网,而是要经过代理处理以后才能到达私有网,因此在代理上就可以进行访问控制,地址转换等功能。目前,代理服务器软件有很多,如Netscape Suit Proxy,MS Proxy,Wingate,squid等。这些代理服务器不仅能起到防火墙的作用,而且还可以加速局域网用户对INTERNET的访问,因为代理服务器有一个大的缓冲器,将每次浏览的网页都保存起来,在下一次访问该页时就直接从缓冲器里调出,而无需再次访问原始服务器。
二、什么是透明代理?
透明代理技术中的透明是指客户端感觉不到代理的存在,不需要在浏览器中设置任何代理,客户只需要设置缺省网关,客户的访问外部网络的数据包被发送到缺省网关,而这时缺省网关运行有一个代理服务器,数据实际上被被重定向到代理服务器的代理端口(如8080),即由本地代理服务器向外请求所需 数据然后拷贝给客户端。理论上透明代理可以对任何协议通用。
但是在这种情况下客户端必须正确设置DNS服务器。因为现在浏览器不设置任何代理。则DNS查询必须由browser来解析,也就是要由客户端必须在TCP/IP中设置的正确的DNS服务器,其完成dns解析。
例如: 从私有网络上访问因特网上的 web 站点。
私有网地址为192.168.1.*, 其中客户机是00,防火墙机器网卡是。透明web代理被安装在防火墙机器上并配置端口为8080。内核使用iptables把与防火墙端口80的连接重定向到代理服务。私有网上的Netscape被配置为直接连接方式。私有网络的客户机需要设置DNS服务器。私有网络上机器的默认路由(别名网关)指向防火墙机器。客户机机器上的 Netscape 访问 .
1.Netscape通过查找””, 得到它的地址为31. 然后它使用端口1050与此地址建立一个连接,并向web站点发出请求。
2.当包由客户机 (port 1050)通过防火墙送往(port 80)时, 它们重定向到代理服务重定的8080端口。透明代理使用端口1025与31的端口80(这是原始包的目的地址)建立一个连接。
3. 当代理服务收到从 web 站点传来的页面后, 通过已经建立的连接把它复制给 Netscape。
4. Netscape 显示此页面。
5. 从 的角度来看,连接是由(防火墙的拨号连接IP地址)的端口1025到 31的端口80。从客户机的角度来看,连接是从00(客户机)端口1050连接到31()的端口80, 但是, 它实际是在与透明代理服务器对话。
这就是透明代理的操作流程。
三、内核编译
一般来讲,透明代理所在机器往往是带动整个局域网联入互联网的入口,因此该机器往往需要配置防火墙规则以对内部网络进行防护。因此在编译内核时也许要考虑将防火墙支持选项编译进去。一般来说需要在使用make menuconfig命令配置时打开如下选项:
[*]Networking support [*]Sysctl support [*]Network packet filtering [*]TCP/IP networking [*]/proc filesystem support [*] Kernel/User netlink socket [*] Netlink device emulation [*] Connection tracking (required for masq/NAT) [*] FTP protocol support[*] IP tables support (required for filtering/masq/NAT)* limit match support [*] MAC address match support [*] Netfilter MARK match support [*] Multiple port match support [*] TOS match support [*] Connection state match support [*] Packet filtering[*] REJECT target support[*] Full NAT [*] MASQUERADE target support [*] REDIRECT target support [*] Packet mangling
显示全部