linux基础服务器架设squid(二)acl 权限管控

在通过上一篇分别配置普通代理以后,我们透过测试正常使用的squid proxy,开始挖掘squid 的ACL权限管控

一、ACL简介

ACL:访问控制列表,应用在网络管理设备上的指令列表(规则), 即告诉管理设备哪些数据允许通过,哪些数据拒绝通过

定义:访问控制列表ACL 是由一系列的规则组成的集合,ACL通过这些规则对报文进行分类,从而使设备可以对不同类报文进行不同的处理!

Squid ACL访问控制步骤

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

2、透过http_access配置项对已定义的列表做“允许”或“拒绝”访问的控制

访问控制列表为顺序执行,如遇到匹配到acl策略,就执行,不执行后面的策略!

二‘、ACL的元素语法

acl name acltype value1 value2 ....

示例

acl  localnet src 10.0.0.0/8    定义原地址范围网段

acl localhost src 10.67.124.191    定义单个主机原地址

其中,acltype可以是src、dst、srcdomain、dstdomain、url_regex、time、port、proto、time中的任意一种,一下我们逐一分析!

列表类型

含义/用途

列表内容示例

src

IP地址、网段、IP地址范围(客户机IP地址)

10.67.124.0/23

10.67.50.0/23

dst

目标IP地址、网段主机名(服务器IP地址)

216.182.154.9

216.182.154.0/24

 

port 目标端口 80 443 20 22

srcdomain

源名称(客户机所属的域)

暂不测试

 

dstdomain

目标名称(服务器所属的域)

.qq.com

 .weibo.com

.163.com

time

字母表示一星期中各天的英文缩写MTWHFAS

MTWHF 8:30-17:30(周一至周五的时刻)

12:30-13:30

AS(周六、日)

maxconn 每个客户机的并发连接数 X

url_regex

目标资源的URL地址,-i表示忽略大小写

url_regex -i ^rtsp://

urlpath_regex

目标资源的整个URL路径

urlpath_regex -i sex adult

urlpath_regex -i \.mp3$

1、针对不同的客户机地址、时间段等分别定义列表

查看squid服务器时间,根据时间进行测试

 

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

http_port 3128
cache_mem 128 MB
cache_dir ufs /var/spool/squid 4096 16 256
cache_effective_user squid
cache_effective_group squid
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
visible_hostname basicservices
acl localnet src 10.0.0.0/8              #定义源地址段
acl jobtime time W 09:00-10:00           #定义时间
http_access allow localnet jobtime       #允许在规定时间下,源地址段使用代理工具
http_access deny all
cache_peer 10.67.50.59 parent 808 0 default
never_direct allow all 

1.1 测试

在将代理IP配置到IE浏览器后,10.0.0.0/8网段的地址使用proxy,无法在周三09:00-10:00 以外的时间使用!

2、针对不同的目的地址或目的域名进行访问限制,当需要限制的同一个acltype较多时,可以用独立的文件来存放;省时省力!

比如多个目的IP地址可创建文件,在指定目录下创建文件,并配置文件内容;

此两个文件的路径,我写入在/etc/squid目录下

[root@basicservices squid]# more ipblock.list
14.215.177.39
183.58.18.95

多个目的域名地址可创建文件,在指定目录下创建文件,并配置文件内容

[root@basicservices squid]# more dmblock.list
.qq.com
.weibo.com
163.com

将上面的文件添加到squid.conf 配置文件中!生成如下配置:

http_port 3128
cache_mem 128 MB
cache_dir ufs /var/spool/squid 4096 16 256
cache_effective_user squid
cache_effective_group squid
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
visible_hostname basicservices
acl localnet src 10.0.0.0/8    #定义源地址段
acl jobtime time W 09:00-10:00   #定义访问时间
acl dmblock dstdomain "/etc/squid/dmblock.list"   #定义block掉的目的域名指定文件
acl ipblock dst "/etc/squid/ipblock.list"         #定义block掉的目的IP指定文件
http_access allow localhost                       #顺序执行以下策略,符合标准就执行,不符合标准就调准至下一条指令!
http_access deny  dmblock                         #屏蔽掉dmblock 中的域名,模糊查询 .qq.com/.weibo.com/.163.com
http_access deny  ipblock                         #屏蔽掉ipblock 中的IP地址,无法访问  
http_access allow localnet jobtime                #允许在规定时间下,定义的源地址使用proxy
http_access deny all
cache_peer 10.67.50.59 parent 808 0 default
never_direct allow all

2.1 测试

根据上面的配置,客户能够使用的时间限制在周三的上午9:00-10:00 ,无法放问dmblock.list中的域名,也无访问ipblock.list中的地址;acl 的标准即顺序执行,符合条件就执行,不符合条件直接进入下一条策略!

3、定义最大连接数、文件后缀格式以及url格式的测试本次就不在测试!大家感兴趣,可以自行测试执行!

acl mc20  maxconn  50                          #最大并发连接50
acl blackURL  url_regex -i ^www://     #以www://等开头的URL
acl fileURL  urlpath_regex -i \.mp3$ \.mp4$      #以.mp3、.mp4结尾的URL路径

切记ACL 的执行标准!

 

posted @ 2019-01-09 18:28  Mr_henry_chen  阅读(890)  评论(0编辑  收藏  举报