lyonte 2008-04-19
为了节省与控制上网开支,许多公司及办公室采取了申请一条DDN专线,将整个公司或办公室连成一个局域网,然后让整个局域网共享这条DDN专线上网。在这种情况下,如下图所示,在Linux环境下我们可以通过一个代理服务器来实现。
图-1 用代理服务器上网
1 HTTP代理服务器
代理服务器,顾名思义就是局域上不能直接上网的机器将上网请求(比如说,浏览某个主页)发给能够直接上网的代理服务器,然后代理服务器代理完成这个上网请求,将它所要浏览的主页调入代理服务器的缓存;然后将这个页面传给请求者。这样局域网上的机器使用起来就像能够直接访问网络一样。
并且,代理服务器还可以进行一些网站的过滤和控制的功能,这样就实现了我们使用它的初衷——控制和节省上网费用。
在Linux中,有一个功能很强大的http/https/ftp的代理服务器程序——Squid Proxy Server,由于它安装简单,使用方便,所以已经被广泛地使用。在RedHat Linux的安装光盘中已经包含了它。下面我们说说它的使用方法。
1.1 安装Squid Proxy Server
由于在安装光盘中用Squid的RPM安装包,所以我们可以使用RPM来安装Squid。
rpm –ivh squid-1.1.22-2.rpm
当然,由于这个安装包是在光盘上的,我们要先将光盘mount到文件系统中来,才能够进行安装。
这样,squid就会完成安装,并做了相应的初始设置。
1.2 配置初步
Squid Proxy Server仅有一个配置文件——/etc/squid.conf。我们必须对它进行相应的修改才能适用于我们的系统。下面就是一些最基本的配置选项。我们可以用vi打开这个文件进行编辑。
1. 设置http/https/ftp的代理端口号:
代理端口的默认值是3128,可以根据自己的喜好修改。但是要注意的是,千万不能与一些著名的端口冲突,例如POP端口——110等。如果你不是十分熟悉,就保留默认值吧。
下面就是在/etc/squid.conf文件中的一句:
http_port 3128
2.添加访问控制组:
我们将需要区别开的不同用户定义成一个访问控制组。比如一个公司的内部网的网络IP是192.168.200.0。而且只想区分公司内和公司外的两类用户,则我们就在/etc/squid.conf文件中添加下表的两句:
acl all src 0.0.0.0/0.0.0.0
acl company src 192.168.200.0/255.255.255.0
这样,我们说定义了一个包含所有人的组,和一个包含公司内部网的所有人的组。下面就可以对这两个组分别进行访问权力的设制。
3. 设置每个访问控制组的访问权力:
比如,我们希望公司内部的所有人都能够通过代理服务器上网,而禁止其它的人使用代理服务器上网,则我们就在/etc/squid.conf文件中添加下面两句:
http_access allow company
http_access deny all
也就是我们allow(允许)“company”组使用代理服务器,而除了这个组以外的“all”deny(禁止)使用代理服务器。要注意的是,这两句一定不能顺序调换。否则将禁止所有的用户使用。
请大家好好体会。
4. 存盘退出;
5. 执行下面的命令,使得新的配置生效:
/etc/rc.d/init.d/squid restart
上面仅仅是一个最基本的设置,squid提供了许多功能强大的可选项,大家可以根据实际情况进行更详尽的设置。在/etc/squid.conf文件中,每一项设置均有详尽的注释,大家可以参看这些帮助为squid作更多的设置。