知识屋:更实用的电脑技术知识网站
所在位置:首页 > 操作系统 > linux

RedHat Linux 9 安装配置Squid

发布时间:2014-09-05 17:20:46作者:知识屋

软件环境:RedHat Linux 9
在Squid主页www.squid-cache.org下载最新的Squid 2.5-STABLE5进行编译。

步骤:
1.下载最新版本的源文件 Squid-2.5.STABLE5.src.tar.gz 放置于/usr/local目录下

2.登录作为root,执行下面的命令:
cd /usr/local


tar -zxvf Squid-2.5.STABLE5.src.tar.gz
生成解压缩文件Squid-2.5.STABLE5
进入Squid-2.5.STABLE5目录进行编译
#cd /usr/local/squid*
#./configure --prefix=/usr/local/squid 
#make
#make install


3.上面二步执行完毕,Squid整个程序应该被安装在/usr/local/squid目录下了,但仍需要做其余的动作。

4.进入目录/usr/local ,以root身份执行下面的命令,改变整个Squid目录的所有者为school:school
#cd /usr/local
#chown -R school:school squid

5.修改squid.conf的配置信息
#su school
$cd /usr/local/squid
$vi etc/squid.conf
http_port 8080
cache_peer 10.10.2.53 parent 6666 7 login=username:password default no-query
cache_mem 60 MB
cache_mgr zdysgs@zju.edu.cn
dns_nameservers 10.10.0.21
visible_hostname zdysgs.zju.edu.cn
cache_dir ufs /usr/local/squid/var/cache 500 16 256
http_access allow all
never_direct allow all
error_directory /usr/local/squid/share/errors/Simplify_Chinese
cache_swap_low 80
cache_swap_high 97这两行是设置cache进行替换的闸值。当占用到97%的cache后,cache中的内容将被清空20%

6.su作为school,进入/usr/local/squid/bin目录,执行#squid -z 创建cache交换目录
#su school
$cd /usr/local/squid/sbin
$./squid -z
$./squid
检查squid是否正常运行的命令
$netstat -ntl
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN
以上信息表示squid已经正常启动
停止squid运行的命令:
$usr/local/squid/sbin -k shutdown
到现在为止,该代理服务器已经可以正常使用,但是不具有用户认证的功能,以下介绍了使用ncsa用户认证功能的实现7.ncsa用户认证的实现
ncsa是squid源代码包自带的认证程序之一,下面我们以squid-2.5.STABLE5版本为例讲述ncsa的安装和配置。
1) 以school身份进入/usr/local/squid-2.5.STABLE5/helpers/basic_auth/NCSA目录。 //修改文件夹squid-2.5.STABLE5的所有者为school,chown -R school:school squid-2.5.STABLE5


% make
% make install
编译成功后,会生成ncsa_auth的可执行文件。
2) 拷贝生成的执行文件ncsa_auth到/usr/local/squid/bin目录
cp ncsa_auth /usr/local/squid/bin
3) 修改squid.conf中的相关选项如下所示:
auth_param basic program /usr/local/squid/bin/ncsa_auth /usr/local/squid/etc/passwd
4) 定义相关的用户类
acl auth_user proxy_auth username1 username2或者acl auth_user proxy_auth REQUIRED
注意,REQUIRED关键字指明了接收所有合法用户的访问。
5) 设置http_access
http_access allow auth_user
http_access deny all
6) 利用apache携带的工具软件htpasswd在/usr/local/squid/etc下生成密码文件并添加相应的用户信息。一般说来,该密码文件每行包含
一个用户的用户信息,即用户名和密码。
用htpasswd生成密码文件passwd并添加用户bye。
htpasswd -c /usr/local/squid/etc/passwd bye
然后重新启动squid,密码认证已经生效 //再增加用户的话,使用如下命令htpasswd /usr/local/squid/etc/passwd user(增加用户参数-c不要了)


8.客户端设置:ie->工具->internet选项->连接-> 局域网设置-> 代理服务器地址:10.71.65.110 端口:8080

9.备注
·http_port:设定Squid监听的端口,你最好设一个比较好记的端口号,以便在进行客户机配置
时容易记住。我的机器上端口号设的是8080。缺省为3128。
·cache_mem:设定Squid占用的物理内存,根据我的经验,cache_mem的大小不应超过你的服务
器物理内存的三分之一,否则将会影响机器的总体性能。
·maximum_object_size:设定Squid可以接收的最大对象的大小。Squid缺省值为4M,我自己入
认为太大,你可以根据自己的需要进行设定。
·cache_dir:设定缓存的位置、大小。一般看起来形式如下
cache_dir /usr/local/squid/cache 100 16 256
/usr/local/squid/cache代表缓存的位置;
100代表缓存最大为100M;16和256代表一级和二级目录数。
·cache_effective_user:设定使用缓存的有效用户。缺省为用户nobody,如果你的系统中没
有用户nobody,最好建一个或以非root用户运行Squid。
·error_directory:设定显示错误信息网页目录信息。缺省为英文/usr/local/squid/share/errors/English
如果想显示中文的话,修改为/usr/local/squid/share/errors/Simplify_Chinese。
·限制同一用户同时只在同一IP上使用
acl FOO max_user_ip 1
http_access deny FOO
authenticate_ip_ttl 2 hours //限制保持连接时间,超过该时间才能用其他ip上网
·显示的是你client的内网IP
forwarded_for on|off
关闭此项将在访问某些论坛时显示的IP是unknown
如果打开则显示的是你client的内网IP
forwarded_for off
·如何限制使用squid 的同一个ip 的连接数
Q:如何限制使用squid 的同一个ip 的连接数?
A:修改squid.conf,以下两句限制每ip不得超过10连接:
acl BadUser maxconn 10
http_access deny BadUser
client_db=on
//The maxconn ACL feature relies on Squids client database. This database keeps a small data structure in memory for each client IP address. If you have a lot of clients, this database may consume a significant amount of memory. You can disable the client database in the configuration file with the client_db directive. However, if you disable the client database, the maxconn ACL will no longer work

 
(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜