ACL协议使用指南,建议收藏!!

ACL的基本原理

ACL是一种应用非常广泛的网络技术,它的基本原理极为简单:配置了ACL的网络设备根据事先设定好的报文匹配规则对经过该设备的报文进行匹配,然后对匹配上的报文执行事先设定好的处理动作。这些匹配规则及相应的处理动作是根据具体的网络需求而设定的。处理动作的不同以及匹配规则的多样性,使得ACL可以发挥出各种各样的功效。

ACL技术总是与防火墙(Firewall)、 路由策略、QoS (Quality of Service)、流量过滤(Traffic Filtering)等其他技术结合使用的。小编只是从网络安全的角度来简单地了解一下关于ACL的基本知识。

根据ACL所具备的特性不同,我们将ACL分成了不同的类型,分别是:基本ACL、高级ACL、二层ACL、用户自定义ACL,其中应用最为广泛的是基本ACL和高级ACL。在网络设备上配置ACL时,每一个ACL都需要分配一个编号,称为ACL编号。基本ACL、高级ACL、二层ACL、用户自定义ACL的编号范围分别为2 000~-2  999、3 000~3 999、4 000-4 999、 5 000-5 999。配置ACL时,ACL的类型应该与相应的编号范围保持一致。

一个ACL通常由若干条“deny | permit"语句组成,每条语句就是该ACL的一条规则,每条语句中的deny或permit就是与这条规则相对应的处理动作。处理动作permit的含义是“允许”,处理动作deny的含义是“拒绝”。特别需要说明的是,ACL技术总是与其他技术结合在一起使用的,因此,所结合的技术不同,“允许(permit)” 及“拒绝(deny)”的内涵及作用也会不同。例如,当ACL技术与流量过滤技术结合使用时,permit就是“允许通行”的意思,deny 就是“拒绝通行”的意思。

配置了ACL的设备在接收到一个报文之后,会将该报文与ACL中的规则逐条进行匹配。如果不能匹配上当前这条规则,则会继续尝试去匹配下一条规则。一旦报文匹配上了某条规则,则设备会对该报文执行这条规则中定义的处理动作(permiet 或deny),并且不再继续尝试与后续规则进行匹配。如果报文不能匹配上ACL的任何一条规则,则设备会对该报文执行permit这个处理动作。

一个ACL中的每一条规则都有一个相应的编号,称为规则编号(rule-id)。缺省情况下,报文总是按照规则编号从小到大的顺序与规则进行匹配。缺省情况下,设备会在创建ACL的过程中自动为每一条规则分配一个编号。如果将规则编号的步长设定为10(注:规则编号的步长的缺省值为5),则规则编号将按照10、20、30、 4....这样的规

律自动进行分配。如果将规则编号的步长设定为2,则规则编号将按照2、4、6、.....

这样的规律自动进行分配。步长的大小反映了相邻规则编号之间的间隔大小。间隔的存在,实际上是为了便于在两个相邻的规则之间插入新的规则。

基本ACL

ACL分为基本ACL和高级ACL等类型。基本ACL只能基于IP报文的源IP地址、报文分片标记和时间段信息来定义规则。

配置基本ACL规则的命令具有如下的结构。

rule [rule-id] {deny I permit} [source {source address source-wildcard| any}|

fragment| logging | time-range time-name]

命令中各个组成项的解释如下。

rule:表示这是一条规则。

rule-id:表示这条规则的编号。

deny |permit:这是一个二选一选项, 表示与这条规则相关联的处理动作。deny 表示“拒绝”; permit 表示“允许”。

source:表示源IP地址信息。

source-address:表示具体的源IP地址。

source-wildcard:表示与source-address相对应的通配符。source-wildcard 和source address的结合使用,可以确定出一个IP地址的集合。极端情况下,该集合中可以只包含一个IP地址。通配符source-wildcard 的使用方法,是与wildcard-mask的使用方法完全一样的,所以这里不再赘述。

any:表示源IP地址可以是任何地址。

fragment:表示该规则只对非首片分片报文有效。

logging:表示需要将匹配上该规则的IP报文进行日志记录。

time-range time-name:表示该规则的生效时间段为time-name, 具体的使用方法这里不做描述。

如图13-1所示,某公司网络包含了研发部区域,人力资源部区域和财务部区域。在研发部区域中,有一台专门供实习人员使用的PC,该PC的IP地址是172.16.10.100/24。出于网络安全方面的考虑,我们要禁止财务部区域接收到实习人员发送的IP报文。为了满足这样的网络需求,我们可以在路由器R上配置基本ACL。基本ACL可以根据源IP地址信息识别出实习人员发出的IP报文,然后在GE1/0/3接口的出方向(Outbound方向)上拒绝放行这样的IP报文。

针对图13-1所示的例子,我们来看看应该如何配置路由器R。首先,我们在R的系统视图下创建一个编号为2000的ACL。

[R] acl 2000

[R-acl-basic 2000]

然后,在ACL2000的视图下创建如下的规则。

[R-acl-basic 2000] rule deny source 172.16.10.100 0.0.0.0

[R-ac-basic-2000]

这条规则的含义是:拒绝源IP地址为172.16.10.100 的IP报文。

最后,使用报文过滤技术中的traffic-filter命令将ACL 2000应用在R的GE1/0/3接口的出方向上。

[R-acl-basic-2000] quit

[R] interface gigabitethernet 1/0/3

[R-GigabiEthernet1/0/3] taff filter outbound acl 2000

[R-GigabitEthermet1/0/3]

通过上面的配置,源IP地址为172.16.10.100 的IP报文便无法在出方向上通过R的GE1/0/3接口,这样就实现了我们的安全策略。

高级ACL

高级ACL可以根据IP报文的源IP地址、IP 报文的目的IP地址、IP 报文的协议字段的值、IP报文的优先级的值、IP 报文的长度值、TCP报文的源端口号、TCP报文的目的端口号、UDP报文的源端口号、UDP报文的目的端口号等信息来定义规则。基本ACL的功能只是高级ACL的功能的一个子集,高级ACL可以比基本ACL定义出更精准、更复杂、更灵活的规则。

高级ACL中规则的配置比基本ACL中规则的配置要复杂得多,且配置命令的格式也会因IP报文的载荷数据的类型不同而不同。例如,针对ICMP报文、TCP报文、UDP

报文等不同类型的报文,其相应的配置命令的格式也是不同的。下面是针对所有IP报文的一种简化了的配置命令的格式。

rule [ rule-id] { deny | permit } ip [destination {destination address destination wildeard

| any}] [source { source address source-wildcard any }]

如图13-2所示,该网络的结构与图13-1所示的网络完全一样,所不同的是,我们要求实习人员无法接收到来自财务部区域的IP报文。在这种情况下,我们可以在路由器R上配置高级ACL。高级ACL可以根据目的IP地址信息识别出去往实习人员的IP报文,然后在GE1/0/03接口的入方向(Inbound方向)上拒绝放行这样的 IP报文。

针对图13-2所示的例子,我们来看看应该如何配置路由器R。首先,我们在R的系统视图下创建一个编号为3000的ACL。

[R] acl 3000

[R-acl-adv-3000]

然后,在ACL3000的视图下创建如下的规则。

[R-acl-adv-3000] rule deny destination 172.16.10.100 0.0.0.0

[R-acl-adv-3000

这条规则的含义是:拒绝目的IP地址为172.16.10.100的IP报文。

最后,使用报文过滤技术中的trf-filter命令将ACL 3000应用在R的GE1/0/3接口的入方向上。

([R-acl-adv-3000] quit

[R] interface gigabitethermet 1/0/3

[R-GigabitEthermet/0/3) raffic filter inbound acl 3000

[R-GigabitEthernet1/0/3]

通过上面的配置,目的IP地址为172.16.10.100 的IP报文便无法在入方向上通过R的GE1/0/3接口,这样就实现了我们的安全策略。

基本ACL的配置示例

图13-3显示了某公司的网络结构。出于网络安全方面的考虑,我们希望只有网络管理员的PC才能通过Telnet方式登录到路由器Router上,其他PC都不能通过Telnet方式登录到路由器。

1. 配置思路

(1)在路由器Router 上创建基本ACL。

(2)在基本ACL中制定规则,区分网管人员的PC发出的IP报文与其他PC发出的IP报文。

(3)在VTY (Virtual Type Terminal)上应用所配置的基本ACL。

2.配置步骤

要在路由器Router上创建ACL,必须首先进入系统视图,然后执行命令acl acl-number。对于基本ACL, acl-number 的值必须在2 000~2 999的范围内,我们这里确定为2000。另外,我们假设网管人员的PC (IP 地址为172.16.0.2) 已经使用Telnet方式登录上了路由器Router。

#配置路由器Router。

<Router> system-view

[Router] acl 2000

[Router- acl-basic 2000]

创建了基本ACL 2000后,我们便可以使用rule命令来制定相应的规则。首先,我们制定一条规则,其含义是允许(permit) 源IP地址为172.16.0.2 的IP报文。

#配置路由器Router。

[Router-acl-basic 2000] rule permit source 172.16.0.20

然后,我们再制定一条规则,其含义是拒绝(deny)源IP地址为任意地址的IP报文。

#配置路由器Router。

[Router-acl-basic 2000 rule deny source any

制定完规则之后,我们可以使用display acl 2000命令来查看ACL 2000的配置信息。

从回显信息中我们可以看到,基本ACL 2000 中已经存在两条规则,路由器Router为这两条规则自动分配的规则编号分别是5和10。另外,回显信息中的“ACL's step is 5”表示该ACL的规则编号的步长为5,两个“0 times matched"表示该ACL的两条规则的匹配次数都为0 (这是因为我们还没有把这个ACL应用到路由器上)。

接下来,我们在VTY上应用ACL 2000。

#配置路由器Router。

为了确认配置是否生效,我们先退出本次网管人员的Telnet 登录,然后重新使用Telnet登录路由器,发现可以正常登录。

在路由器上重新查看ACL 2000的配置信息如下。

从回显信息中我们可以看到,第一条规则的匹配次数已经变为1,这说明网管人员的PC所发出的IP报文已经匹配上了这条规则。

然后,我们在其他某台PC.上使用Telnet方式登录路由器,发现无法正常登录。

再次在路由器上查看ACL 2000的配置信息。

从回显信息中我们可以看到,第二条规则的匹配次数也变为了1,这说明刚才尝试Telnet登录的那台PC所发出的IP报文匹配上了第二条规则,但该报文被直接丢弃了。

看到这里不是真爱就是变态学霸

那就给一波小福利~

扫描下方二维码,加助教好友~

回复“课件PPT+秘籍”

即可领取

 HCIP 最新Datacom 课件PPT

以及华为认证网盘学习礼包!

en

球分享

球点赞

球在看

(0)

相关推荐