Linux服务器配置:Squid配置详解(3)

  另一种情况是整个网站都不许访问,那么只需要写出这个网站共有的域名即可,配置如下:

  acl qq dstdomain .tcccent.com.cn

  注意tcccent前面的“.”,正是它指出以此域名结尾的所有主机都不可访问,否则就只有tcccent.com.cn这一台主机不能访问。

  如果想禁止对某个IP地址的访问,如202.118.2.182,可以用dst来控制,代码如下:

  acl badaddr dst 202.118.2.182

  当然,这个dst也可以是域名,由Squid查询DNS服务器将其转换为IP。

  还有一种比较广泛的控制是文件类型。如果不希望普通用户通过代理服务器下载MP3、AVI等文件,完全可以对他们进行限制,代码如下:

  acl mmxfile urlpath_regex \.mp3$ \.avi$ \.exe$ http_access deny mmxfile

  看到regex,很多读者应该心领神会,因为这条语句使用了标准的规则表达式(又叫正则表达式)。它将匹配所有以.mp3、.avi等结尾的URL请求,还可以用-i参数忽略大小写,例如以下代码:

  acl mmxfile urlpath_regex -i \.mp3$

  这样,无论是.mp3还是.MP3都会被拒绝。当然,-i参数适用于任何可能需要区分大小写的地方,如前面的域名控制。

  如果想让普通用户只在上班时间可以上网,而且是每周的工作日,用Squid应当如何处理呢?看看下面的ACL定义:

  acl worktime time MTWHF 8:30-12:00 14:00-18:00 http_access deny !worktime

  首先定义允许上网的时间是每周工作日(星期一至星期五)的上午和下午的固定时段,然后用http_access 定义所有不在这个时间段内的请求都是不允许的。

  或者为了保证高级用户的带宽,希望每个用户的并发连接不能太多,以免影响他人,也可以通过Squid控制,代码如下:

  acl conncount maxconn 3 http_access deny conncount normal http_access allow normal

  这样,普通用户在某个固定时刻只能同时发起三个连接,从第四个开始,连接将被拒绝。

  总之,Squid的ACL配置非常灵活、强大,更多的控制方式可以参考squid.conf.default。

  认证

  用户/密码认证为Squid管理提供了更多便利,最常用的认证方式是NCSA。从Squid 2.5版本开始,NCSA认证包含在了basic中,而非以前单独的认证模块。下面来看看实现认证的具体操作。

  首先在编译时配置选项应包括以下配置:

  --enable-auth="basic" --enable-basic-auth-helpers="NCSA"

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wyfjpp.html