代理服务器(Proxy Server)是一种重要的安全功能,它的工作主要在开放系统互联(OSI)模型的对话层,从而起到防火墙的作用。代理服务器大多被用来连接INTERNET(国际互联网)和INTRANET(局域网)。

        代理服务器的主要功能:

    (1)设置用户验证和记账功能,可按用户进行记账,没有登记的用户无权通过代理服务器访问Internet网。并对用户的访问时间、访问地点、信息流量进行统计。  (2)对用户进行分级管理,设置不同用户的访问权限,对外界或内部的Internet地址进行过滤,设置不同的访问权限。  (3)增加缓冲器(Cache),提高访问速度,对经常访问的地址创建缓冲区,大大提高热门站点的访问效率。通常代理服务器都设置一个较大的硬盘缓冲区(可能高达几个GB或更大),当有外界的信息通过时,同时也将其保存到缓冲区中,当其他用户再访问相同的信息时,则直接由缓冲区中取出信息,传给用户,以提高访问速度。  (4)连接内网与Internet,充当防火墙(Firewall):因为所有内部网的用户通过代理服务器访问外界时,只映射为一个IP地址,所以外界不能直接访问到内部网;同时可以设置IP地址过滤,限制内部网对外部的访问权限。  (5)节省IP开销:代理服务器允许使用大量的伪IP地址,节约网上资源,即用代理服务器可以减少对IP地址的需求,对于使用局域网方式接入Internet ,如果为局域网(LAN)内的每一个用户都申请一个IP地址,其费用可想而知。但使用代理服务器后,只需代理服务器上有一个合法的IP地址,LAN内其他用户可以使用私有IP地址,这样可以节约大量的IP,降低网络的维护成本。

  而squid就是常用的代理服务器软件;

(squid的透明代理的详细配置请看:http://sf418.blog.51cto.com/5627295/979572

(squid的反向代理的详细配置请看:http://sf418.blog.51cto.com/5627295/979571

下面我们用一个简单的案例来介绍一下squid的控制机制:

wps_clip_p_w_picpath-233

先设置squid服务器的配置:

内网卡:

wps_clip_p_w_picpath-28465

外网卡:

wps_clip_p_w_picpath-11786

再查看一下网关信息:

wps_clip_p_w_picpath-29983

看看能不能喝internet通信:

wps_clip_p_w_picpath-29427

通信正常,如果不能通信,要编辑这个脚本(做dns指向):

wps_clip_p_w_picpath-9836

wps_clip_p_w_picpath-21141

保证有效的dns;

好了既然和internet通信正常,我们就接着往下做:

创建光盘挂载点:

wps_clip_p_w_picpath-21010

wps_clip_p_w_picpath-158

回到Server目录下安装squid软件包:

wps_clip_p_w_picpath-801

进入squid配置文件:

wps_clip_p_w_picpath-20886

为了要让代理服务器向客户返回错误信息,需要加上这条命令:

wps_clip_p_w_picpath-8936

另外 因为squid是默认拒绝所有,所有要想通信就加上一行命令:

wps_clip_p_w_picpath-31952

然后保存退出;;

打开一个xp系统,来测试和外网通信情况:

先看其ip情况(只配置ip即可):

wps_clip_p_w_picpath-14763

再看浏览器设置:

wps_clip_p_w_picpath-18133

设置好后::打开浏览器:

wps_clip_p_w_picpath-10713

成功访问到了;

我们在看一下其日志:

wps_clip_p_w_picpath-8245

wps_clip_p_w_picpath-25116

我们可以用squid代理来上网了,再看看它的控制功能:

首先为了防止别人蹭网速,先写在squid配置文档上添加一行:

wps_clip_p_w_picpath-25574

wps_clip_p_w_picpath-9401

然后重点来了:

先看squid服务器基于ip的控制:

编辑squid配置文件:

wps_clip_p_w_picpath-31129

如果我不想让这些ip的机器上网就可以这样编辑:

wps_clip_p_w_picpath-14105

然后是策略,策略名、动作(deny拒绝)、元素名称;

重回到xp系统测试:

wps_clip_p_w_picpath-939

不能访问了吧!(因为xp系统的ip是145.22,正好在拒绝的范围内);

我们再把xp系统的ip换一下试试看:

wps_clip_p_w_picpath-8819

打开浏览器:

wps_clip_p_w_picpath-15766

又能访问到外网了!!

而编写命令的格式是固定的,如下(在squid配置文件里有):

wps_clip_p_w_picpath-14060

编写好控制元素,就是策略名、动作、元素名称;

上面的例子是基于ip的控制,下面我们再看一个基于域名的控制:

基于域名的控制:

wps_clip_p_w_picpath-5914

例如,不让访问带有新浪的域名:

wps_clip_p_w_picpath-19634

控制元素、元素名称(自己起的,关键自己能看明白)、目标域、域名

wps_clip_p_w_picpath-14704

然后是策略,策略名、动作(deny拒绝)、元素名称。(这里没有写来源,默认是all)

做好后保存退出,重启服务;

在测试:

wps_clip_p_w_picpath-23252

wps_clip_p_w_picpath-20288

Sina是不能访问了,再看看能不能访问其他的网站:

wps_clip_p_w_picpath-31201

成功了,除了sina不能访问外,其他都能成功访问!

我们再看一个基于时间的控制:

格式为;

wps_clip_p_w_picpath-27965

例如,工作时间周一到周五的上午六点到下午六点不能上网:

wps_clip_p_w_picpath-22687

然后保存退出;

再测试:

先看一下时间:

wps_clip_p_w_picpath-10374

当然是按照Squid服务器时间为准:

wps_clip_p_w_picpath-6998

现在正好不在工作时间:

wps_clip_p_w_picpath-4425

可以上网,我们改变一下时间:

wps_clip_p_w_picpath-8827

wps_clip_p_w_picpath-15156

工作时间被拒绝了!

因为还有很多控制,读者可以自己试试看,我们在看最后一个基于内容的控制:

例如,刚才是工作时间不能上网,先在我们让工作时间可以上网(刚才已经改到工作时间),但不能浏览关于jpg属性的图片:

wps_clip_p_w_picpath-23498

策略可以这样编写(当然也可用两条语句来写,它相当于http_access allow worktime;

http_access deny badcontent):

wps_clip_p_w_picpath-2744

在测试:

wps_clip_p_w_picpath-6410

可以看一下图片的属性:

wps_clip_p_w_picpath-30003

好了  squid的控制功能就说的这了。