当前位置: 首页 > 工具软件 > Squid > 使用案例 >

squid-ACL

郎慎之
2023-12-01

squid服务执行普通代理和透明代理时,使用ACL来控制内网用户对外网的访问。ACL要先定义后调用
定义方式:
acl 名称 类型 内容
调用方式:
http_access 控制方式 acl名称
使用方法:
src(源地址):可以为网段(例:192.168.4.0/24,192.168.4.0/255.255.255.0)或单独IP(192.168.4.1/32,192.168.4.1/255.255.255.255),有多个值时用空格间隔
dst(目的地址):用法与src相同
port(目标端口):端口名(80),端口区段(80-83)
dstdomain(目标域名):主机名(www.163.com),域名(.163.com)
time 访问时间
time 星期 起始时间-结束时间
SMTWUFA hh:mm-hh:mm
日123456
例:工作时间不允许上网

acl   mynet   src   192.168.0.0/24
acl   work_time    time  MTWUF    09:00-17:30
http_access  deny  mynet   work_time

maxconn 最大并发连接

acl   pc89   src    192.168.0.89/32
acl   max_line_10   maxconn     10   
http_access   allow    pc89   max_line_10

url_regex 目标URL地址,匹配url头(http://,ftp://
acl Blk_URL url_regex -i ^rtsp:// ^mms:// ^ftp://
urlpath_regex 整个目标URL路径,匹配整条url路径
acl Blk_Words urlpath_regex -i sex adult(路径中不能包含sex,adult敏感词)

例:上班时间不允许看视频
acl  RealFile  urlpath_regex   -i   \.rmvb$   \.rm$     \.mp3$   \.mp4$
http_access   deny   mynet   wrok_time  RealFile

在squid中使用时,从第一条acl开始匹配,指导找到匹配条目,之后的acl条目无视。

必要的时候ACL可以用文件方式定义,再在squid.conf中调用:
在/etc/aquid/目录下建立两个acl文件,注意要将文件的所有者改为squid:

[root@svr5 ~]# vim /etc/squid/ipblock.list
61.135.16.36
60.28.16.0/24
1.1.1.1/32
:wq
[root@svr5 ~]# vim /etc/squid/dmblock.list
.qq.com
.msn.com
tmall.com
www.taobao.com
:wq

chown   squid  ipblock.list   dmblock.list

在squid配置文件中调用:

[root@svr5 ~]# vim /etc/squid/squid.conf

acl IPaddress dst   "/etc/squid/ipblock.list"
acl DMname dstdomain "/etc/squid/dmblock.list"

http_access deny IPaddress
http_access deny DMname
vi /etc/squid/squid.conf
 类似资料: