会计考友 发表于 2012-8-4 12:07:07

Linux辅导:解读在Linux下squid代理服务(3)

通过以上的配置即可完成认证工作。有的读者可能要问:认证只针对普通用户,而高级用户是直接上网的,该怎么处理呢?其实,这两种用户是可以共存的。如前所述,Squid是顺序处理http_access的,所以在http_access处理过程中,如果先处理normal用户,那么当前用户无论是否属于高级用户,都会被要求进行认证;相反如果先处理高级用户,剩下的就只有需要认证的普通用户了。例如以下配置代码:   ...
  http_access allow normal (需要认证)
  http_access allow advance (不需要认证)
  ...
  不管是否为noauth用户,都要求进行用户名/密码验证。正确的方法是将二者位置交换,代码如下:
  ...
  http_access allow advance
  http_access allow normal
  ...
  这时,高级用户不会受到任何影响。
  总结
  下面把整个squid.conf总结一下:
  # 服务器配置
  http_port 192.168.0.1:3128
  cache_mgr netsnake@963.net
  cache_dir null /tmp
  cache_access_log /var/squid/access.log
  cache_log /var/squid/cache.log
  cache_store_log /var/squid/store.log
  visible_hostname No1.proxy
  client_mask 255.255.255.255
  httpd_accel_host virtual
  httpd_accel_port 80
  httpd_accel_with_proxy on

  httpd_accel_user_host_header on

会计考友 发表于 2012-8-4 12:07:08

Linux辅导:解读在Linux下squid代理服务(3)

</p>  # 用户分类
  acl advance arp 00:01:02:1f:2c:3e 00:01:02:3c:1a:8b ...
  acl normal proxy_auth REQUIED
  acl all src 0.0.0.0
  # 行为分类
  acl mmxfile urlpath_regex .mp3$ .avi$ .exe$
  acl conncount maxconn 3
  acl worktime time MTWHF 8:30-12:00 14:00-18:00
  acl sinapage dstdomain sinapage4.sina.com.cn
  acl qq dstdomain .tencent.com.cn
  # 处理
  http_access allow advance
  http_access deny conncount normal
  http_access deny !worktime
  http_access deny mmxfile
  http_access deny sinapage
  http_access deny qq
  http_access allow normal
  配置后的状况是,advance组可以不受任何限制地访问Internet,而normal组则只能在工作时间上网,而且不能下载多媒体文件,不能访问某些特定的站点,而且发送请求不能超过3个。
  通过本文的介绍,它可以了解Squid的基本能力。当然,它的能力远不止此,可以建立强大的代理服务器阵列,可以帮助本地的Web服务器提高性能,可以提高本地网络的安全性等。要想发挥它的功效,还需要进一步控制。
页: [1]
查看完整版本: Linux辅导:解读在Linux下squid代理服务(3)