用Squid实现代理上网及计费[1]

[入库:2005年9月21日] [更新:2007年3月24日]

本文简介:


---- IP紧缺是高速发展的网络面临的现实问题,我们该如何解决这一问题?将只有内部IP的计算机通过一台具有标准IP作为代理服务器的计算机连接到Internet上是解决此问题的一种绝妙手段。代理服务器是数据的中转站,它可以将经过代理服务器的数据记录下来,为后继的数据分析和计费提供服务与帮助。另外,借助代理服务器软件(比如Squid)可以建立访问站点的缓存,从而让再次访问的用户能够直接从缓存中调用数据,加快访问速度,减少重复的网络数据流量。


---- 由于Squid具有权限管理灵活、性能高和效率快等特点,应用较为广泛,因此,我们将就代理服务器软件Squid在Linux、FreeBSD和Unix应用中的认证问题进行讨论,同时还将介绍关于利用Squid辅助软件实现代理上网与计费的具体方法。


一、 获取Squid及相关的软件


---- 从http://squid-cache.org/上获取Squid软件,从http://web.onda.com.br/orso/上获取htpasswd_plus和SQMGRLOG,并将它们保存在/tmp目录下。


二、在Linux下编译并安装Squid


---- 我们假设软件环境为Redhat Linux 7.x,编译和安装Squid的操作步骤如下。


---- 1.下载最新版本的源文件Squid-2.3.STABLE4.src.tar.gz,并将它放置在/tmp目录下。


---- 2.以root身份创建用户squidadmin#adduser squidadmin


---- 在缺省的情况下,同名组squidadmin已经被建立。Squid因为考虑到安全问题,不能以root身份运行,所以从一开始就使用新建的用户进行安装管理。


---- 3.以squidadmin登录,对Squid源文件解包和安装。


$cd /tmp
$tar -zxvf squid*
$cd squid*
$./configure --prefix=/usr/local/squid
进入Squid目录进行编译,考虑的选项是安装路径
--prefix=/usr/local/squid。
$make
$make install


---- 4.进入/usr/local/squid/bin目录,执行$./squid -z,创建cache交换目录。至此,Squid已经安装在用户的系统上了。然而,要让Squid正常运转,用户还需要做一些基本设置。Squid的运转只与/usr/local/squid/etc/squid.conf有关,所有设置均在此文件中完成。


三、Squid基本设置


#Defaults:
acl all src 0.0.0.0/0.0.0.0
设置的规则在此处加入。
http_access deny all


---- 在缺省的情况下,有以上2条规则。当有请求未能匹配任何一条用户定义的规则时,http_access deny all规则将被应用,这样,http请求将被拒绝。


---- 那么如何在Linux中设置Squid的用户认证存取控制呢?Squid用access control list(缩写为acl)来管理规则。例如:


acl aclname acltype string1 ...
acl aclname acltype "file"


---- aclname为用户定义规则的名字,acltype是可被Squid识别的类别(主要有src、dst、proxy_auth、port和time...),string为用户的设置,可以用"file"从外部文件调入设置。


---- 1.如果用户喜欢弹出输入用户名及密码的方式,首先需要安装认证程序。Squid的源文件包自带了几种认证程序,都在/tmp/squid-2.3.STABLE4/auth_modules目录下。


(1)$ cd /tmp/squid-2.3.STABLE4/auth_modules/NCSA
$ make ncsa_auth
(2)将生成的执行文件ncsa_auth拷贝到squid执行文件目录中。
$ cp ncsa_auth /usr/local/squid/bin
(3)用htpasswd_plus生成供Squid利用的用户名和密码认证数据文件
$htpasswd_plus -c /usr/local/squid/etc/passwd
passwd的格式如下。
username1:SilykvIBT46C.:977867617:*
username2:tV.8XcR8tgIqw:*:192.168.1.0
username3:密码:失效时间:可以登录的IP
若为*,则说明任何项都能与其匹配。另外还可以增加其他更多的用户。

本文关键:用Squid实现代理上网及计费
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top