Acl访问控制

Acl访问控制:

Squid提供了强大的代理控制机制,通过合理设置ACL并进行控制,可以针对源地址、目标地址、URL路径、访问时间等各种条件进行设置

ACL访问控制通过以下两个步骤来实现:

(1)使用acl配置项定义需要控制的条件

(2)通过http_access配置项对已定义的条件做限制,如“允许”或“拒绝”

1、定义acl配置项

每一行acl配置可以定义一条访问控制列表,格式如下:

	acl  列表名称   列表类型   列表内容
说明:

列表名称:由管理员自行指定,用来识别控制条件

列表类型:必须使用Squid预定义的值,对应不同类别的控制条件

列表内容:具体控制的对象,不同的类型对应的内容也不一样,可以有多个值,用空格分隔

列表类型:

列表类型 含义/用途 列表内容示例
src 源IP地址、网段、IP地址范围(客户机IP地址) 192.168.1.100
192.168.1.0/24
192.168.1.0-192.168.3.0/24
dst 目标IP地址、网段主机名(服务器IP地址) 216.182.154.9
216.182.154.0/24
www.ysf.com
port 目标端口 80、443、20、22
srcdomain 源名称(客户机所属的域) .yangshufan.com
dstdomain 目标名称(服务器所属的域) .qq.com
time 字母表示一星期中各天的英文缩写MTWHFAS MTWHF 8:30-17:30(周一至周五的时刻)

	12:30-13:30
	
	AS(周六、日)

maxconn 每个客户机的并发连接数 20
url_regex 目标资源的URL地址,-i表示忽略大小写 url_regex -i ^rtsp://

urlpath_regex 目标资源的整个URL路径 urlpath_regex -i sex adult

urlpath_regex -i .mp3$

从上向下依次匹配,匹配及停止,并执行匹配的动作

例子:
acl mylan src 192.168.1.0/24 192.168.4.0/24     
//客户机网段
acl worktime time MTWHF 08:30-17:30             
//周一至周五的工作时间段
acl to_host dst 127.0.0.0/8                     
//目标地址
acl mc20  maxconn  20                           
//最大并发连接20
acl blackURL  url_regex -i ^rtsp://  ^ emo://    
//以rtsp://等开头的URL
acl fileURL  urlpath_regex -i \.mp3$ \.mp4$      
//以.mp3、.mp4结尾的URL路径

#当需要限制的同一类型较多时,可以用独立的文件来存放

mkdir /etc/squid        //建立目标地址名单
cd /etc/squid
vi ipblock.list    //建立目标IP地址名单
89.23.12.34
191.12.37.112
171.23.65.0/24

vi dmblock.list    //建立目标域地址名单
.qq.com
.ysf.com
.yang.com

vi /etc/squid.conf     
acl ipblock dst "/etc/squid/ipblock.list"       

//调用指定文件的列表内容

acl dmblock dstdomain "/etc/squid/dmblock.list"
2. 设置访问权限

定义好acl后,需要设置访问权限,并必须防止对应的acl配置项之后,格式如下:

http_access   deny或allow   列表名

 vi /etc/squid.conf
……
http_access allow mylan !fileURL      //!取反值,表示禁止客户机下载MP3、MP4文件
http_access allow mylan worktime safeport !ipblock !dmblock
              //允许客户机在工作时间访问80、443端口,拒绝访问黑名单的IP地址、域
http_access deny all                 //默认禁止所有客户机使用代理

[root@lq1 ~]# vi /etc/squid.conf
禁止192.168.909主机上网
acl nolink src 192.168.90.9
http_access deny nolink

[root@lq1 ~]# service squid restart
在windows浏览器中输入http://192.168.80.101

[root@lq1 ~]# vi /etc/squid.conf

[root@lq1 ~]# service squid restart

在windows浏览器中输入192.168.80.101

你可能感兴趣的:(Linux,acl)