netdxf命名空间列表_访问控制列表-细说ACL那些事儿(初步认识ACL)

ACL,是Access Control List的简称,中文名称叫“访问控制列表”,它由一系列规则(即描述报文匹配条件的判断语句)组成。这些条件,可以是报文的源地址、目的地址、端口号等。这样解释ACL,大家是不是觉得太抽象了!

好,现在小编换一种解释方式。打个比方,ACL其实是一种报文过滤器,ACL规则就是过滤器的滤芯。安装什么样的滤芯(即根据报文特征配置相应的ACL规则),ACL就能过滤出什么样的报文了。

基于过滤出的报文,我们能够做到阻塞攻击报文、为不同类报文流提供差分服务、对Telnet登录/FTP文件下载进行控制等等,从而提高网络环境的安全性和网络传输的可靠性。

说到这,大家一定迫不及待的想看看ACL长啥模样。话不多说,先上图!

ae17dc27c2a1f7b5e1c050558eceec37.png

ACL分类

首先,图中是一个数字型ACL,ACL编号为2000。这类似于人类的身份证号,用于唯一标识自己的身份。当然,人类的身份证上不仅有身份证编号,还有每个人自己的名字。ACL也同样如此,除了数字型ACL,还有一种叫做命名型的ACL,它就能拥有自己的ACL名称。

f0452d0753637added1e5c3445cb3752.png

通过名称代替编号来定义ACL,就像用域名代替IP地址一样,可以方便记忆,也让大家更容易识别此ACL的使用目的。

另外,小编告诉大家,命名型ACL实际上是“名字+数字”的形式,可以在定义命名型ACL时同时指定ACL编号。如果不指定编号,则由系统自动分配。上图就是一个既有名字“deny-telnet-login”又有编号 “3998”的ACL。

细心的你,一定会注意到,ACL结构图中的ACL编号是“2000”,而这个例子中的ACL编号是“3998”,两者有什么区别吗?

实际上,按照ACL规则功能的不同,ACL被划分为基本ACL、高级ACL、二层ACL、用户自定义ACL和用户ACL这五种类型。每种类型ACL对应的编号范围是不同的。ACL 2000属于基本ACL,ACL 3998属于高级ACL。高级ACL可以定义比基本ACL更准确、更丰富、更灵活的规则,所以高级ACL的功能更加强大。

ea8716a6424cffc694a84032dfb48d2c.png

ACL规则

接下来,我们来看看图中ACL的 “deny | permit”语句。这些条件语句,我们称作ACL规则(rule)。其中的“deny | permit”,称作ACL动作,表示拒绝/允许。

ACL规则的编号范围是0~4294967294,所有规则均按照规则编号从小到大进行排序。所以,上图中我们可以看到rule 5排在首位,而规则编号最大的rule 4294967294排在末位。系统按照规则编号从小到大的顺序,将规则依次与报文匹配,一旦匹配上一条规则即停止匹配。

除了包含ACL动作和规则编号,我们可以看到ACL规则中还定义了源地址生效时间段这样的字段。这些字段,称作匹配选项,它是ACL规则的重要组成部分。

其实,ACL提供了极其丰富的匹配选项。你可以选择二层以太网帧头信息(如源MAC目的MAC以太帧协议类型)作为匹配选项,也可以选择三层报文信息(如源地址、目的地址、协议类型)作为匹配选项,还可以选择四层报文信息(如TCP/UDP端口号)等等等等。

你只需分析清楚需要过滤的报文的特征,便可以指定使用哪一种ACL匹配选项,从而让ACL能正确的识别需过滤的报文。

步长

步长,是指系统自动为ACL规则分配编号时,每个相邻规则编号之间的差值。也就是说,系统是根据步长值自动为ACL规则分配编号的。

图中的ACL 2000,步长就是5。系统按照5、10、15…这样的规律为ACL规则分配编号。如果将步长调整为了2,那么规则编号会自动从步长值开始重新排列,变成2、4、6…。

abfa7b7029f521b23ad71a6f53e77e9f.png

ACL的缺省步长值是5。通过display acl acl-number命令,可以查看ACL规则、步长等配置信息。通过step step命令,可以修改ACL步长值。

说到这,小伙伴们是不是好奇了,设置ACL步长有什么作用呢?

实际上,设置步长的目的,是为了方便大家在ACL规则之间插入新的规则。

先来看个例子。

假设,一条ACL中,已包含了下面三条规则5、10、15。如果你希望源IP地址为1.1.1.3的报文也被禁止通过,该如何处理呢?

rule 5 deny source 1.1.1.1 0 //表示禁止源IP地址为1.1.1.1的报文通过 rule 10 deny source 1.1.1.2 0 //表示禁止源IP地址为1.1.1.2的报文通过 rule 15 permit source 1.1.1.0 0.0.0.255 //表示允许源IP地址为1.1.1.0网段的报文通过

我们来分析一下。由于ACL匹配报文时遵循“一旦命中即停止匹配”的原则,所以源IP地址为1.1.1.1和1.1.1.2的报文,会在匹配上编号较小的rule 5和rule 10后停止匹配,从而被系统禁止通过;而源IP地址为1.1.1.3的报文,则只会命中rule 15,从而得到系统允许通过。要想让源IP地址为1.1.1.3的报文也被禁止通过,我们必须为该报文配置一条新的deny规则。

rule 5 deny source 1.1.1.1 0 //表示禁止源IP地址为1.1.1.1的报文通过

rule 10 deny source 1.1.1.2 0 //表示禁止源IP地址为1.1.1.2的报文通过

rule 11 deny source 1.1.1.3 0 //表示禁止源IP地址为1.1.1.3的报文通过

rule 15 permit source 1.1.1.0 0.0.0.255 //表示允许源IP地址为1.1.1.0网段的报文通过

在rule 10和rule 15之间插入rule 11后,源IP地址为1.1.1.3的报文,就可以先命中rule 11而停止继续往下匹配,所以该报文将会被系统禁止通过。

试想一下,如果这条ACL规则之间间隔不是5,而是1(rule 1、rule 2、rule 3…),这时再想插入新的规则,该怎么办呢?只能先删除已有的规则,然后再配置新规则,最后将之前删除的规则重新配置回来。如果这样做,那付出的代价可真是太大了!

所以,通过设置ACL步长,为规则之间留下一定的空间,后续再想插入新的规则,就非常轻松了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值