本人只介绍Squid代理权限的设置,若是安装的话,可以参考

http://fengwan.blog.51cto.com/508652/1212613

Squid ACL权限控制请参考:http://os.51cto.com/art/201009/223455.htm

在很多公司里面上网都是控制的相当严格,那么我们通过下面几个实例来抛砖引玉:


 说明:由于我的squid是使用yum的方式安装的,如果你是手动编译的话,请更改相应的设置


1.某几个IP上网不受限制(如192.168.1.10和192.168.1.20这个IP上网不受限制)

编辑vim /etc/squid/squid.conf

在前面加入以下字段:

acl master src 192.168.1.10/32 192.168.1.20/32

http_access allow master


2.某几个IP只能上某个网站(如192.168.1.12只能访问www.baidu.com)

acl web_ctrl src 192.168..1.12/32

acl web_ctrl_url url_regex www.baidu.com //若是增加网站的话只需在后面添加网址即可

acl allow web_ctrl web_ctrl_url



3.某几个IP限制时间上网(如192.168.1.15上班时间只能上公司网站,下班后可以上其他网站)

acl time_client src 192.168.1.15/32                     //定义客户机地址

acl time_time time MTWHF 08:00-12:00 13:00-17:00     //在星期一到星期五的8点到12点 13点到17点

acl time_server url_regex lookwest.taobao.com          //设定要访问的网站

http_access allow time_client time_time time_server    //允许192.168.1.15上班时间上www.lushare.com

http_access deny time_time                           //拒绝上班时间的访问,防止上其他网站

http_access allow time_client                           //允许192.168.1.15上网


4.其他电脑需要使用用户名和密码才能上网,主要是用于临时使用网络

a.首先需要生成一个密码文件

[root@WebSer ~]# htpasswd -c /etc/squid/user.pass lookwest
New password:
Re-type new password:
Adding password for user lookwest

上面就已经增加了一个lookwest帐户


htpasswd的用法:

1.增加用户

htpasswd  /etc/squid/user.pass lookwest

2.修改用户密码:

htpasswd -d /etc/squid/user.pass lookwest

3.删除用户:

htpasswd -D /etc/squid/user.pass lookwest


b.编辑/etc/squid/squid.conf

auth_param basic program /usr/lib64/squid/ncsa_auth /etc/squid/user.pass

//由于我使用的是64位的centos所以上面是/usr/lib64/squid/ncsa_auth

//那后面跟的就是刚才生成密码文件的位置/etc/squid/user.pass

auth_param basic children 5

//指定认证程序的进程数

auth_param basic realm Welcome to LookWest

//浏览器显示输入用户/密码对话框时的领域内容
auth_param basic credentialsttl 2 hours

//基本的认证有效时间

acl lookwest proxy_auth REQUIRED

//普通用户需要通过认证才能访问Internet

http_access allow lookwest


最后需要加入一行:

http_access deny all  



小技巧:

要使squid重新加载配置文件是不用重新启动squid服务的,只需要运行:


[root@WebSer ~]# squid -k reconfigure