访问控制列表-细说ACL那些事儿(ACL应用篇)

访问控制列表-细说ACL那些事儿(ACL应用篇)

文章来源:https://forum.huawei.com/enterprise/zh/thread-336589.html

访问控制列表-细说ACL那些事儿(ACL应用篇).docx

1        ACL应用范围

通过前两期的ACL理论学习,大家知道ACL并不能单独完成控制网络访问行为或者限制网络流量的效果,而是需要应用到具体的业务模块才能实现上述功能。

那么ACL到底可以应用在哪些业务中呢?

小编总结了一下,ACL应用的业务模块非常多,但主要分为以下四类:

业务分类

应用场景

涉及业务模块

登录控制

对交换机的登录权限进行控制,允许合法用户登录,拒绝非法用户登录,从而有效防止未经授权用户的非法接入,保证网络安全性。

例如,一般情况下交换机只允许管理员登录,非管理员用户不允许随意登录。这时就可以在Telnet中应用ACL,并在ACL中定义哪些主机可以登录,哪些主机不能。

TelnetSNMPFTPTFTPSFTPHTTP

对转发的报文进行过滤

对转发的报文进行过滤,从而使交换机能够进一步对过滤出的报文进行丢弃、修改优先级、重定向、IPSEC保护等处理。

例如,可以利用ACL,降低P2P下载、网络视频等消耗大量带宽的数据流的服务等级,在网络拥塞时优先丢弃这类流量,减少它们对其他重要流量的影响。

QoS流策略、NATIPSEC

对上送CPU处理的报文进行过滤

对上送CPU的报文进行必要的限制,可以避免CPU处理过多的协议报文造成占用率过高、性能下降。

 

例如,发现某用户向交换机发送大量的ARP攻击报文,造成交换机CPU繁忙,引发系统中断。这时就可以在本机防攻击策略的黑名单中应用ACL,将该用户加入黑名单,使CPU丢弃该用户发送的报文。

黑名单、白名单、用户自定义流

路由过滤

ACL可以应用在各种动态路由协议中,对路由协议发布和接收的路由信息进行过滤。

例如,可以将ACL和路由策略配合使用,禁止交换机将某网段路由发给邻居路由器。

BGPIS-ISOSPFOSPFv3RIPRIPng、组播协议

 

2        ACL业务模块的处理机制

各类ACL应用的业务模块对命中/未命中ACL的处理机制是各不相同的。

例如,在流策略中应用ACL时,如果ACL中存在规则但报文未匹配上,该报文仍可以正常通过;但在Telnet中应用ACL,这种情况下,该报文就无法正常通过了。

再如,在黑名单中应用ACL时,无论ACL规则配置成permit还是deny,只要报文命中了规则,该报文都会被系统丢弃,其他模块却不存在这种情况。

所以,大家在配置ACL规则并应用到业务模块中时,一定要格外小心。

为了方便大家查阅,小编特地将常用ACL业务模块的处理机制进行了整理。

业务模块

匹配上了permit规则

匹配上了deny规则

ACL中配置了规则,但未匹配上任何规则

ACL中没有配置规则

ACL未创建

Telnet

permit(允许登录)

deny(拒绝登录)

deny(拒绝登录)

permit(允许登录)

permit(允许登录)

HTTP

permit(允许登录)

deny(拒绝登录)

deny(拒绝登录)

permit(允许登录)

permit(允许登录)

SNMP

permit(允许登录)

deny(拒绝登录)

deny(拒绝登录)

permit(允许登录)

permit(允许登录)

FTP

permit(允许登录)

deny(拒绝登录)

deny(拒绝登录)

permit(允许登录)

permit(允许登录)

TFTP

permit(允许登录)

deny(拒绝登录)

deny(拒绝登录)

permit(允许登录)

permit(允许登录)

SFTP

permit(允许登录)

deny(拒绝登录)

deny(拒绝登录)

permit(允许登录)

permit(允许登录)

流策略

流行为是permit:permit(允许通过)

流行为是deny时:deny(丢弃报文)

deny(丢弃报文)

permit(功能不生效,按照原转发方式进行转发)

permit(功能不生效,按照原转发方式进行转发)

permit(功能不生效,按照原转发方式进行转发)

NAT

permit(进行NAT转换)

permit(功能不生效,按照原转发方式进行转发)

permit(功能不生效,按照原转发方式进行转发)

permit(功能不生效,按照原转发方式进行转发)

permit(功能不生效,按照原转发方式进行转发)

IPSEC

permit(数据流经过IPSec处理后再转发)

不允许出现此情况

permit(功能不生效,按照原转发方式进行转发)

不允许出现此情况

不允许出现此情况

本机防攻击策略

白名单

permit(CPU优先处理)

deny(丢弃报文)

permit (功能不生效,正常上送报文)

permit(功能不生效,正常上送报文)

permit(功能不生效,正常上送报文)

黑名单

deny(丢弃报文)

deny(丢弃报文)

permit (功能不生效,正常上送报文)

permit (功能不生效,正常上送报文)

permit (功能不生效,正常上送报文)

用户自定义流

用户自定义流的处理动作是deny时:deny(丢弃报文)

动作是car时:permit(进行CAR限速)

deny(丢弃报文)

permit (功能不生效,按照原转发方式进行转发)

permit (功能不生效,正常上送报文)

permit (功能不生效,正常上送报文)

路由

Route Policy

匹配模式是permit时:permit(允许执行路由策略)

匹配模式是deny时:

deny(不允许执行路由策略)

deny功能不生效,不允许执行路由策略)

deny(功能不生效,不允许执行路由策略

permit(对经过的所有路由生效)

deny(功能不生效,不允许执行路由策略

Filter Policy

permit(允许发布或接收该路由)

deny(不允许发布或接收该路由)

deny(不允许发布或接收该路由)

deny(不允许发布或接收路由)

permit(允许发布或接收路由)

组播

igmp-snooping      ssm-policy

permit(允许加入SSM组播组范围)

deny(禁止加入SSM组地址范围)

deny(禁止加入SSM组地址范围)

deny(禁止加入SSM组地址范围,所有组都不在SSM组地址范围内)

deny(禁止加入SSM组地址范围,只有临时组地址范围232.0.0.0232.255.255.255SSM组地址范围内)

igmp-snooping      group-policy

配置了default-permit时:permit(允许加入组播组)

未配置default-permit permit(允许加入组播组)

配置了default-permit时:deny(禁止加入组播组)

未配置default-permitdeny (禁止加入组播组)

配置了default-permit时:permit(允许加入组播组)

未配置default-permitdeny(禁止加入组播组)

配置了default-permit时:permit(允许加入组播组)

未配置default-permitdeny(禁止加入组播组)

配置了default-permit时:permit(允许加入组播组)

未配置default-permitdeny(禁止加入组播组)

 

3        ACL应用方式

每个业务模块的ACL应用方式,风格也是各不相同。为此,小编同样进行了一番整理,供大家参考查阅。

业务模块

ACL应用方式

可使用的ACL编号范围

Telnet

方式一:

系统视图下执行命令telnet [ ipv6 ] server acl acl-number

方式二:

a、执行命令user-interface vty first-ui-number [ last-ui-number      ],进入VTY用户界面视图

b、执行命令acl [ ipv6 ] acl-number      { inbound | outbound }

20003999

HTTP

系统视图下执行命令http acl acl-number

20003999

SNMP

SNMPv1SNMPv2c

系统视图下执行命令snmp-agent acl acl-number

snmp-agent community { read | write } { community-name      | cipher community-name } [ mib-view view-name | acl      acl-number ] *

SNMPv3

系统视图下执行命令snmp-agent acl acl-numbersnmp-agent group v3      group-name { authentication      | privacy | noauthentication } [ read-view      read-view | write-view write-view | notify-view notify-view ]* [ acl acl-number ]snmp-agent usm-user v3 user-name [      group group-name | acl      acl- number ] *

20002999

FTP

系统视图下执行命令ftp [ ipv6      ] acl acl-number

20003999

TFTP

系统视图下执行命令tftp-server [      ipv6 ] acl acl-number

20003999

SFTP

方式一:

系统视图下执行命令ssh [ ipv6      ] server acl acl-number

方式二:

a、执行命令user-interface vty first-ui-number [ last-ui-number      ],进入VTY用户界面视图

b、执行命令acl [      ipv6 ] acl-number      { inbound | outbound }

20003999

流策略

a、       系统视图下执行命令traffic classifier classifier-name [ operator { and      | or } ] [ precedence precedence-value      ]进入流分类视图。

b、执行命令if-match acl { acl-number      | acl-name },配置ACL应用于流分类。

c、      系统视图下执行命令traffic behavior behavior–name,定义流行为并进入流行为视图。

d、配置流动作。报文过滤有两种流动作:deny permit

e、      系统视图下执行命令traffic policy policy-name [      match-order { auto | config      } ]定义流策略并进入流策略视图。

f、      执行命令classifier classifier-name behavior      behavior-name,在流策略中为指定的流分类配置所需流行为,即绑定流分类和流行为。在系统视图、接口视图或VLAN视图下,执行命令traffic-policy policy-name { inbound      | outbound },应用流策略。

ACL20005999

ACL620003999

NAT

方式一:

a、        系统视图下执行命令nat address-group group-index start-address end-address,配置公网地址池。

b、        执行命令interface      interface-type interface-number.subnumber,进入子接口视图。

c、        执行命令nat      outbound acl-number address-group group-index [ no-pat ],配置带地址池的NAT      Outbound

方式二:

a、        系统视图下执行命令interface      interface-type interface-number.subnumber,进入子接口视图。

b、        执行命令nat      outbound acl-number,配置Easy IP

20003999

IPSEC

方式一:

a、   系统视图下执行命令ipsec      policy policy-name seq-number manual,创建手工方式安全策略,并进入手工方式安全策略视图。

b、        执行命令security      acl acl-number,在安全策略中引用ACL

方式二:

a、        系统视图下执行命令ipsec      policy policy-name seq-number      isakmp,创建IKE动态协商方式安全策略,并进入IKE动态协商方式安全策略视图。

b、        执行命令security      acl acl-number,在安全策略中引用ACL

方式三:

a、        系统视图下执行命令ipsec      policy-template template-name seq-number,创建策略模板,并进入策略模板视图。

b、        执行命令security      acl acl-number,在安全策略中引用ACL

c、        系统视图下执行命令ipsec      policy policy-name seq-number isakmp template      template-name,在安全策略中引用策略模板。

30003999

本机防攻击策略

白名单

a、        系统视图下执行命令cpu-defend policy      policy-name,创建防攻击策略并进入防攻击策略视图。

b、        执行命令whitelist whitelist-id acl acl-number,创建自定义白名单。

c、        系统视图下执行命令cpu-defend-policy      policy-name [ global ],或槽位视图下执行命令cpu-defend-policy      policy-name,应用防攻击策略。

20004999

黑名单

a、        系统视图下执行命令cpu-defend policy      policy-name,创建防攻击策略并进入防攻击策略视图。

b、        执行命令blacklist blacklist-id acl acl-number,创建黑名单。

c、        系统视图下执行命令cpu-defend-policy      policy-name [ global ],或槽位视图下执行命令cpu-defend-policy      policy-name,应用防攻击策略。

20004999

用户自定义流

a、        系统视图下执行命令cpu-defend policy      policy-name,创建防攻击策略并进入防攻击策略视图。

b、        执行命令user-defined-flow      flow-id acl acl-number,配置用户自定义流。

c、        系统视图下执行命令cpu-defend-policy      policy-name [ global ],或槽位视图下执行命令cpu-defend-policy      policy-name,应用防攻击策略。

20004999

路由

Route Policy

a、   系统视图下执行命令route-policy route-policy-name { permit | deny      } node node,创建Route-Policy,并进入Route-Policy视图。

b、   执行命令if-match acl      { acl-number | acl-name },配置基于ACL的匹配规则;或者配置apply子句为路由策略指定动作,如执行命令apply cost [ + | - ] cost设置路由的开销值等。

c、   应用路由策略。路由协议不同,命令行不同。例如针对OSPF协议,可以在OSPF视图下,执行命令import-route { limit      limit-number | { bgp [ permit-ibgp      ] | direct | unr | rip [ process-id-rip ] | static | isis      [ process-id-isis ] | ospf      [ process-id-ospf ] } [ cost      cost | type type | tag tag      | route-policy route-policy-name ]*      },引入其他路由协议学习到的路由信息;针对RIP协议,可以在RIP视图下,执行命令import-route { { static | direct | unr      } | { { rip | ospf | isis      } [ process-id ] } } [ cost      cost | route-policy route-policy-name ] *

 

20002999

Filter Policy

路由协议不同,过滤方向不同,命令行不同。例如针对RIP协议,对引入的路由进行过滤,可以在RIP视图下执行命令filter-policy { acl-number | acl-name acl-name | ip-prefix ip-prefix-name [ gateway ip-prefix-name ] } import [ interface-type interface-number      ];对发布的路由进行过滤,可以在RIP视图下执行命令filter-policy { acl-number | acl-name acl-name | ip-prefix ip-prefix-name } export [ protocol [ process-id      ] | interface-type interface-number      ]

20002999

组播

igmp-snooping ssm-policy

VLAN视图下执行命令igmp-snooping      ssm-policy basic-acl-number

20002999

igmp-snooping group-policy

VLAN视图下执行命令igmp-snooping      group-policy acl-number [ version      version-number ] [ default-permit      ]

20003999

 

好啦,有了小编整理的这两张表做参考,配置ACL应用案例就可以轻松搞定啦!下面就跟随小编一起,动手试试吧~

4        ACL应用案例

案例1:使用ACL限制Telnet访问权限

为了保障远程维护网络设备的安全性,现要求只有管理员(源地址是10.1.1.1/32)才能telnet登录交换机,其他人不允许登录。

193433iu3xwn4dfxobz2lf.png

要实现这个需求,一定是在Telnet模块中应用ACL。那么该如何配置ACL规则呢?大家是不是认为应该先配置一条permit规则允许10.1.1.1/32登录,然后再配置多条deny规则拒绝其他地址登录呢?其实大可不必。

查阅Telnet模块的报文处理机制参照表,当ACL中存在规则的情况下,如果报文匹配上permit规则,则该地址允许登录设备;如果未匹配上规则,该地址被拒绝登录设备。

业务模块

匹配上了permit规则

匹配上了deny规则

ACL中配置了规则,但未匹配上任何规则

ACL中没有配置规则

ACL未创建

Telnet

permit(允许登录)

deny(拒绝登录)

deny(拒绝登录)

permit(允许登录)

permit(允许登录)

因此,我们仅需配置一条允许10.1.1.1/32地址通过的permit规则即可,10.1.1.1/32以外的地址的报文因匹配不上任何规则会被拒绝登录。

案例1关键配置的配置文件如下:

194400c8cptcali21rprju.png

案例2:使用基于时间的ACL限制用户访问服务器权限

某企业禁止市场部门和研发部门在上班时间(8:0017:30)访问工资查询服务器(IP地址为10.10.4.9/32),而总裁办公室不受限制,可以随时访问。

193433yyw2n8swzg2nh8c2.png分析上述需求,实际上就是要对源IP=10.10.1.0/24访问目的IP=10.10.4.9/32的转发流量、以及源IP=10.10.2.0/24访问目的IP=10.10.4.9/32的转发流量,在特定时间内进行限制,其他访问流量则不受限制,所以我们可以通过在流策略中应用ACL来解决。

1)       首先,查阅流策略模块的ACL处理机制参照表,为需要过滤的报文配置ACL规则。

ACL中存在规则的情况下,如果报文匹配上deny规则,则被拒绝通过;如果未匹配上,则会被正常转发。因此,根据上述需求,我们只需要针对两类需限制的流量,分别配置deny规则即可。其他地址访问服务器的报文因匹配不上任何规则而被正常转发,不受限制。

业务模块

匹配上了permit规则

匹配上了deny规则

ACL中配置了规则,但未匹配上任何规则

ACL中没有配置规则

ACL未创建

流策略

流行为是permit:

permit(允许通过)

流行为是deny时:

deny(丢弃报文)

deny(丢弃报文)

permit(功能不生效,按照原转发方式进行转发)

permit(功能不生效,按照原转发方式进行转发)

permit(功能不生效,按照原转发方式进行转发)

2)       其次,我们需要注意,需求中强调了是在一定时间范围内进行流量限制,所以仅仅进行流量控制是不可行的,还必须在规则中引入生效时间段。

我们定义一个时间段名称为control-time,并配置该时间段为8:0017:30,然后在规则中指定time- name参数为control-time,即把生效时间段与ACL关联起来了。

3)       最后,我们再查阅流策略ACL应用方式参照表,将ACL应用到流策略中。

根据上述需求,我们为市场部和研发部分别配置两个流分类c_marketc_rd,然后将配置的两条deny规则对应的ACL应用到两个流分类中,并配置两个流行为动作为deny。同时为市场部和研发部分别创建流策略p_marketp_ rd,并将流分类和流行为与流策略绑定,最后再在接口上应用流策略。

在选择流策略的应用方向时,一定要注意,需求中是要对源自市场部和研发部的报文进行过滤,即对从接口GE1/0/0和接口GE1/0/1进入交换机的报文进行过滤,所以流策略的应用方向必须指定为入方向(inbound)。如果应用方向配置成了出方向(outbound),那就达不到过滤的效果了。


上述案例我们还可以通过这样的配置来实现需求:在一条ACL中配置两条规则,在一个流分类中应用这条ACL,配置一个流行为动作为deny,最后创建并应用一个流策略。这样配置起来更加简洁和方便,但同时又带来了新的问题:若后续企业增加了市场部对其他服务器的访问限制,这时该如何处理呢?

如果之前市场部和研发部使用的是同一个ACL、流分类、流行为和流策略(这整套ACL的相关配置小编统称为“ACL策略配置”),那么这时只能重新再为市场部配置一条新的ACL策略;如果之前两个部门使用的是不同的ACL策略,那么现在只需在市场部的ACL策略中,增加一条ACL规则即可解决。所以,为各个部门部署独立的ACL策略,可以让您在后续需求扩充或发生改变时,更加方便的维护网络配置。小编建议大家能把眼光放的更加长远一些,不要只顾眼前配置的简单噢~

 

案例2关键配置的配置文件如下:

 194428qymnd0y9xbxdlxfy.png


结束了ACL应用案例的配置,本期ACL应用篇也要完结了。限于篇幅问题,小编只能为大家讲解两个最为典型的ACL案例。好学的你,一定觉得不过瘾吧!

想要了解更多的ACL技术原理和应用案例,你可以登录技术支持网站https://support.huawei.com/enterprise/zh/switches/s5700-pid-6691579?category=product-documentation-sets,下载并学习这里的交换机产品文档。

ACL系列技术贴:

名称

简介

【交换机在江湖之初窥门径】访问控制列表-细说ACL那些事儿(初步认识ACL

围绕一张ACL结构图,介绍ACL最基本的概念,包括ACL的定义、作用、分类、ACL规则、步长的定义和作用。

【交换机在江湖之初窥门径】

访问控制列表-细说ACL那些事儿(ACL匹配篇)

围绕“匹配”二字,展开介绍ACL的匹配机制、匹配顺序和常用匹配项的使用方法。

 


1、本站资源长期持续更新。
2、本资源基本为原创,部分来源其他付费资源平台或互联网收集,如有侵权请联系及时处理。
3、本站大部分文章的截图来源实验测试环境,请不要在生产环境中随意模仿,以免带来灾难性后果。

转载请保留出处:  www.zh-cjh.com珠海陈坚浩博客 » 访问控制列表-细说ACL那些事儿(ACL应用篇)

作者: cjh


手机扫一扫,手机上查看此文章:

一切源于价值!

其他 模板文件不存在: ./template/plugins/comment/pc/index.htm

未雨绸缪、居安思危!

数据安全、有备无患!

注意操作、数据无价!

一切源于价值!