CND架构下,各个地区的IDC机房里最重要的设施就是代理服务器和智能DNS解析,而最常用的代理服务器就是Squid,其最重要的功能就是缓存功能。在Windows上使用较多的代理服务器如:WinGate、SyGate、WinRoute、Proxy(现已发展成为ISA防火墙);Linux上的使用较多的代理服务器就是Squid.
【Squid&NAT】
我们来通过几张图来简单看一下NAT和Squid的工作机制:
【NAT的工作机制】
当内网用户访问Internet时,在网络出口路由器上进行SNAT,在进行SNAT时,因为内网的私有IP在Internet上是不能传输的,所以在发往Internet时,数据包的源地址已经被SNAT成了路由器的外口公网IP发往了ISP;当进行内部服务器发布时,要进行DNAT,为了内部服务器的安全,隐藏IP,要进行DNAT,在DNAT过程中,内网服务器相对于外部网络就是Destination了,所以当外部访问内部服务器时,内网IP是私有地址,在经过内网出口路由器时,要进行DNAT,将来源数据包的目的地址(出口路由器的外口公网地址)转成内网服务器私有地址,然后进行服务。
【Squid的工作机制】
当内部的用户访问Internet时,将数据包发往代理服务器Squid,代理服务查询自身的缓存信息,如果缓存命中(Hit),就将数据直接送往用户,如果缓存未命中(Missing),就向兄弟代理服务器发送请求,如果兄弟代理服务器有请求页面,就将数据返回,如果兄弟也没有,虚拟主机,那么代理服务器就以自己的地址作为源地址,父级服务器地址作为目的地址,将数据包发往父亲服务器,进行请求。可能我们会奇怪的发现Squid和NAT不是一样的吗?其实不然,Squid在进行代理时,香港空间,是不会对原始的数据包进行任何的修改的,整个过程中,数据包的源地址和目的地址都没有发生改变。如果缓存命中,直接返回,未命中,以自己地址去查询了,这样就显得非常的高效。
通过上面的简单了解,是不觉得Squid真的很强大呢?
下面我们结合案例来谈一下Squild的具体应用。
【实验拓扑】
基本环境搭建:
【实验设备】
Linux虚拟机(RedHat)WinXP虚拟机(测试PC)宽带路由器(访问Internet)
【参数设定】
安装需要的软件包,启动服务.
如果启动过程出错时
到现在,我们基本的环境就已经搭建好了,下面我们来做一些案例:
一:代理的基本应用.
测试代理可用性:此时在WinXP虚拟机上访问会出现下面问题:
这是由于Squild的配置中默认是denyall的,所以为了测试,稍作修改。
servicesquidrestart后,再刷新页面试试看。。。(同时观察我们的日志信息)
tail-f/var/log/squid/access.log观察日志信息.
Squid:代理服务器,又称为代理服务器防火墙.因此它是可以做很多访问控制的,下面我们在Squid的配置中加入一些访问控制,来测试一下。。。。。
①基于来源地址的控制.
servicesquidrestart再次刷新页面测试结果.
将WinXP虚拟机的ip地址改一下(192.168.2.101)再刷新测试一下.
Squid还可以对一段来源地址范围进行控制
例如:
aclbadipsrc192.168.2.100-192.168.2.110/255.255.255.255
http_accessdenybadip
重启服务,刷新就会再次被拒绝.
Squid还可以基于目的地址进行控制
(不过用处不是很大,因为Internet上的ip地址一般都是动态或则不止一个)
例如:
①aclinternetipdst192.168.101.254/255.255.255.255
②aclmanageripsrc192.168.2.100/255.255.255.255
③http_accessallowmanageripinternetip
④http_accessdenyallinternetip
//第③④行也可以换成下面的这种写法
//http_accessdeny!manageripinternetip
说明:192.168.101.254是宽带路由器的管理ip(模拟Internetdes主机).
192.168.2.100主机ip
重启服务,就可以登陆宽带路由器管理界面,更换主机地址,会再次被拒绝.
打破原先的记录,生活没有预赛,要想登上它的领奖台,