ACL简介访问控制列表ACL(Access Control List)是由一条或多条规则组成的集合。所谓规则,是指描述报文匹配条件的判断语句,这些条件可以是报文的源地址、目的地址、端口号等。 ACL本质上是一种报文过滤器,规则是过滤器的滤芯。设备基于这些规则进行报文匹配,可以过滤出特定的报文,并根据应用ACL的业务模块的处理策略来允许或阻止该报文通过。 基于ACL规则定义方式,可以将ACL分为基本ACL、高级ACL、二层ACL等种类。基本ACL根据源IP地址、分片信息和生效时间段等信息来定义规则,对IPv4报文进行过滤。如果只需要根据源IP地址对报文进行过滤,可以配置基本ACL。 本例,就是将基本ACL应用在FTP模块中,实现只允许指定的客户端访问FTP服务器,以提高安全性。
本文包含以下5个ACL应用案例
使用ACL限制FTP访问权限示例
使用ACL限制用户在特定时间访问特定服务器的权限示例
使用ACL禁止特定用户上网示例
配置特定时间段允许个别用户上网示例
使用ACL限制不同网段的用户互访示例
使用ACL限制FTP访问权限示例
组网需求
如图1所示,Switch作为FTP服务器,对网络中的不同用户开放不同的访问权限:
子网1(172.16.105.0/24)的所有用户在任意时间都可以访问FTP服务器。
子网2(172.16.107.0/24)的所有用户只能在某一个时间范围内访问FTP服务器。
其他用户不可以访问FTP服务器。
已知Switch与各个子网之间路由可达,要求在Switch上进行配置,实现FTP服务器对客户端访问权限的设置。
图1 使用基本ACL限制FTP访问权限组网图
操作步骤
配置时间段
<HUAWEI> system-view
[HUAWEI] sysname Switch
[Switch] time-range ftp-access from 0:0 2014/1/1 to 23:59 2014/12/31 //配置ACL生效时间段,该时间段是一个绝对时间段模式的时间段
[Switch] time-range ftp-access 14:00 to 18:00 off-day //配置ACL生效时间段,该时间段是一个周期时间段,ftp-access最终生效的时间范围为以上两个时间段的交集
配置基本ACL
[Switch] acl number 2001
[Switch-acl-basic-2001] rule permit source 172.16.105.0 0.0.0.255 //允许172.16.105.0/24网段的所有用户在任意时间都可以访问FTP服务器
[Switch-acl-basic-2001] rule permit source 172.16.107.0 0.0.0.255 time-range ftp-access //限制172.16.107.0/24网段的所有用户只能在ftp-access时间段定义的时间范围内访问FTP服务器
[Switch-acl-basic-2001] rule deny source any //限制其他用户不可以访问FTP服务器
[Switch-acl-basic-2001] quit
配置FTP基本功能
[Switch] ftp server enable //开启设备的FTP服务器功能,允许FTP用户登录
[Switch] aaa
[Switch-aaa] local-user huawei password irreversible-cipher SetUesrPasswd@123 //配置FTP用户的用户名和密码,其中irreversible-cipher方式的密码仅适用于V200R003C00及以后版本,在V200R003C00之前版本上,仅适用cipher方式密码
[Switch-aaa] local-user huawei privilege level 15 //配置FTP用户的用户级别
[Switch-aaa] local-user huawei service-type ftp //配置FTP用户的服务类型
[Switch-aaa] local-user huawei ftp-directory cfcard: //配置FTP用户的授权目录,在盒式交换机上需配置为flash:
[Switch-aaa] quit
配置FTP服务器访问权限
[Switch] ftp acl 2001 //在FTP模块中应用ACL
验证配置结果
在子网1的PC1(172.16.105.111/24)上执行ftp 172.16.104.110命令,可以连接FTP服务器。
2014年某个周一在子网2的PC2(172.16.107.111/24)上执行ftp 172.16.104.110命令,不能连接FTP服务器;2014年某个周六下午15:00在子网2的PC2(172.16.107.111/24)上执行ftp 172.16.104.110命令,可以连接FTP服务器。
在PC3(10.10.10.1/24)上执行ftp 172.16.104.110命令,不能连接FTP服务器。
使用ACL限制用户在特定时间访问特定服务器的权限示例
组网需求
如图2所示,某公司通过Switch实现各部门之间的互连。公司要求禁止研发部门和市场部门在上班时间(8:00至17:30)访问工资查询服务器(IP地址为10.164.9.9),总裁办公室不受限制,可以随时访问。
图2 使用ACL限制用户在特定时间访问特定服务器的权限组网图
配置思路
采用如下的思路在Switch上进行配置:
配置时间段、高级ACL和基于ACL的流分类,使设备可以基于时间的ACL,对用户访问服务器的报文进行过滤,从而限制不同用户在特定时间访问特定服务器的权限。
配置流行为,拒绝匹配上ACL的报文通过。
配置并应用流策略,使ACL和流行为生效。
操作步骤
配置接口加入VLAN,并配置VLANIF接口的IP地址
# 将GE1/0/1~GE1/0/3分别加入VLAN10、20、30,GE2/0/1加入VLAN100,并配置各VLANIF接口的IP地址。下面配置以GE1/0/1和VLANIF 10接口为例,接口GE1/0/2、GE1/0/3和GE2/0/1的配置与GE1/0/1接口类似,接口VLANIF 20、VLANIF 30和VLANIF 100的配置与VLANIF 10接口类似,不再赘述。
<HUAWEI> system-view
[HUAWEI] sysname Switch
[Switch] vlan batch 10 20 30 100
[Switch] interface gigabitethernet 1/0/1
[Switch-GigabitEthernet1/0/1] port link-type trunk
[Switch-GigabitEthernet1/0/1] port trunk allow-pass vlan 10
[Switch-GigabitEthernet1/0/1] quit
[Switch] interface vlanif 10
[Switch-Vlanif10] ip address 10.164.1.1 255.255.255.0
[Switch-Vlanif10] quit
配置时间段
# 配置8:00至17:30的周期时间段。
[Switch] time-range satime 8:00 to 17:30 working-day //配置ACL生效时间段,该时间段是一个周期时间段
配置ACL
# 配置市场部门到工资查询服务器的访问规则。
[Switch] acl 3002
[Switch-acl-adv-3002] rule deny ip source 10.164.2.0 0.0.0.255 destination 10.164.9.9 0.0.0.0 time-range satime //禁止市场部在satime指定的时间范围内访问工资查询服务器
[Switch-acl-adv-3002] quit# 配置研发部门到工资查询服务器的访问规则。
[Switch] acl 3003
[Switch-acl-adv-3003] rule deny ip source 10.164.3.0 0.0.0.255 destination 10.164.9.9 0.0.0.0 time-range satime //禁止研发部在satime指定的时间范围内访问工资查询服务器
[Switch-acl-adv-3003] quit
配置基于ACL的流分类
# 配置流分类c_market,对匹配ACL 3002的报文进行分类。
[Switch] traffic classifier c_market //创建流分类
[Switch-classifier-c_market] if-match acl 3002 //将ACL与流分类关联
[Switch-classifier-c_market] quit# 配置流分类c_rd,对匹配ACL 3003的报文进行分类。
[Switch] traffic classifier c_rd //创建流分类
[Switch-classifier-c_rd] if-match acl 3003 //将ACL与流分类关联
[Switch-classifier-c_rd] quit
配置流行为
# 配置流行为b_market,动作为拒绝报文通过。
[Switch] traffic behavior b_market //创建流行为
[Switch-behavior-b_market] deny //配置流行为动作为拒绝报文通过
[Switch-behavior-b_market] quit# 配置流行为b_rd,动作为拒绝报文通过。
[Switch] traffic behavior b_rd //创建流行为
[Switch-behavior-b_rd] deny //配置流行为动作为拒绝报文通过
[Switch-behavior-b_rd] quit
配置流策略
# 配置流策略p_market,将流分类c_market与流行为b_market关联。
[Switch] traffic policy p_market //创建流策略
[Switch-trafficpolicy-p_market] classifier c_market behavior b_market //将流分类c_market与流行为b_market关联
[Switch-trafficpolicy-p_market] quit# 配置流策略p_rd,将流分类c_rd与流行为b_rd关联。
[Switch] traffic policy p_rd //创建流策略
[Switch-trafficpolicy-p_rd] classifier c_rd behavior b_rd //将流分类c_rd与流行为b_rd关联
[Switch-trafficpolicy-p_rd] quit
应用流策略
# 由于市场部访问服务器的流量从接口GE1/0/2进入Switch,所以可以在GE1/0/2接口的入方向应用流策略p_market。
[Switch] interface gigabitethernet 1/0/2
[Switch-GigabitEthernet1/0/2] traffic-policy p_market inbound //流策略应用在接口入方向
[Switch-GigabitEthernet1/0/2] quit# 由于研发部访问服务器的流量从接口GE1/0/3进入Switch,所以在GE1/0/3接口的入方向应用流策略p_rd。
[Switch] interface gigabitethernet 1/0/3
[Switch-GigabitEthernet1/0/3] traffic-policy p_rd inbound //流策略应用在接口入方向
[Switch-GigabitEthernet1/0/3] quit
使用ACL禁止特定用户上网示例
组网需求
如图3所示,Switch作为网关设备,下挂用户PC。管理员发现PC1(MAC地址为00e0-f201-0101)用户是非法用户,要求禁止该用户上网。
图3 使用二层ACL禁止特定用户上网示例组网图
配置思路
采用如下的思路在Switch上进行配置:
配置二层ACL和基于ACL的流分类,使设备对MAC地址为00e0-f201-0101的报文进行过滤,从而禁止该地址对应的用户上网。
配置流行为,拒绝匹配上ACL的报文通过。
配置并应用流策略,使ACL和流行为生效。
操作步骤
配置ACL
# 配置符合要求的二层ACL。
<HUAWEI> system-view
[HUAWEI] sysname Switch
[Switch] acl 4000
[Switch-acl-L2-4000] rule deny source-mac 00e0-f201-0101 ffff-ffff-ffff //禁止源MAC地址是00e0-f201-0101的报文通过
[Switch-acl-L2-4000] quit
配置基于ACL的流分类
# 配置流分类tc1,对匹配ACL 4000的报文进行分类。
[Switch] traffic classifier tc1 //创建流分类
[Switch-classifier-tc1] if-match acl 4000 //将ACL与流分类关联
[Switch-classifier-tc1] quit
配置流行为
# 配置流行为tb1,动作为拒绝报文通过。
[Switch] traffic behavior tb1 //创建流行为
[Switch-behavior-tb1] deny //配置流行为动作为拒绝报文通过
[Switch-behavior-tb1] quit
配置流策略
# 配置流策略tp1,将流分类tc1与流行为tb1关联。
[Switch] traffic policy tp1 //创建流策略
[Switch-trafficpolicy-tp1] classifier tc1 behavior tb1 //将流分类tc1与流行为tb1关联
[Switch-trafficpolicy-tp1] quit
应用流策略
# 由于PC1的报文从GE2/0/1进入Switch并流向Internet,所以可以在接口GE2/0/1的入方向应用流策略tp1。
[Switch] interface gigabitethernet 2/0/1
[Switch-GigabitEthernet2/0/1] traffic-policy tp1 inbound //流策略应用在接口入方向
[Switch-GigabitEthernet2/0/1] quit
配置特定时间段允许个别用户上网示例
ACL生效时间段简介
ACL定义了丰富的匹配项,可以满足大部分的报文过滤需求,但无法满足基于时间过滤报文的需求。
通过配置ACL生效时间段,并在ACL规则中引用,可以使设备基于时间过滤报文,从而能够管理员在不同时间段为用户设置不同的策略。
本例,就是在基本ACL中引入时间段,并在流策略模块中应用该ACL,使设备可以对特定时间段内用户访问外网的报文进行过滤,达到基于时间限制用户上网的目的。
组网需求
如图4所示,某公司通过Switch实现各部门之间的互连。公司要求在上班时间(周一至周五)所有员工均可以上网,但周末时间(周六和周日)仅允许各部门经理能够上网,其他用户不允许上网。
图4配置特定时间段允许个别用户上网组网图
配置思路
采用如下的思路在Switch上进行配置:
配置时间段、基本ACL和基于ACL的流分类,使设备可以基于时间的ACL,对公司用户访问外网的报文进行过滤,从而达到在特定时间段内仅允许个别用户上网的目的。
配置流行为,允许匹配上ACL的permit规则的报文通过。
配置并应用流策略,使ACL和流行为生效。
操作步骤
配置接口所属的VLAN以及接口的IP地址
# 创建VLAN10和VLAN20。
<HUAWEI> system-view
[HUAWEI] sysname Switch
[Switch] vlan batch 10 20
# 配置Switch的接口GE1/0/1、GE1/0/2为trunk类型接口,并分别加入VLAN10和VLAN20;配置Switch的接口GE2/0/1为trunk类型接口,加入VLAN10和VLAN20。
[Switch] interface gigabitethernet 1/0/1
[Switch-GigabitEthernet1/0/1] port link-type trunk
[Switch-GigabitEthernet1/0/1] port trunk allow-pass vlan 10
[Switch-GigabitEthernet1/0/1] quit
[Switch] interface gigabitethernet 1/0/2
[Switch-GigabitEthernet1/0/2] port link-type trunk
[Switch-GigabitEthernet1/0/2] port trunk allow-pass vlan 20
[Switch-GigabitEthernet1/0/2] quit
[Switch] interface gigabitethernet 2/0/1
[Switch-GigabitEthernet2/0/1] port link-type trunk
[Switch-GigabitEthernet2/0/1] port trunk allow-pass vlan 10 20
[Switch-GigabitEthernet2/0/1] quit# 创建VLANIF10和VLANIF20,并配置各VLANIF接口的IP地址。
[Switch] interface vlanif 10
[Switch-Vlanif10] ip address 10.1.1.1 24
[Switch-Vlanif10] quit
[Switch] interface vlanif 20
[Switch-Vlanif20] ip address 10.1.2.1 24
[Switch-Vlanif20] quit
配置时间段
# 配置周六至周日的周期时间段。
[Switch] time-range rest-time 0:00 to 23:59 off-day //配置ACL生效时间段,该时间段是一个周期时间段
配置ACL
# 创建基本ACL 2001并配置ACL规则,允许研发部和市场部经理主机(IP地址为10.1.1.11和10.1.2.12)在任意时间访问外网的报文通过,拒绝其他用户在周六和周日时间范围内访问外网的报文通过,即周六和周日仅允许研发部和市场部经理上网。
[Switch] acl 2001
[Switch-acl-basic-2001] rule permit source 10.1.1.11 0 //允许研发部经理任意时间访问外网
[Switch-acl-basic-2001] rule permit source 10.1.2.12 0 //允许市场部经理任意时间访问外网
[Switch-acl-basic-2001] rule deny time-range rest-time //禁止其他用户在周六和周日时间访问外网
[Switch-acl-basic-2001] quit
配置基于基本ACL的流分类
# 配置流分类tc1,对匹配ACL 2001的报文进行分类。
[Switch] traffic classifier tc1 //创建流分类
[Switch-classifier-tc1] if-match acl 2001 //将ACL与流分类关联
[Switch-classifier-tc1] quit
配置流行为
# 配置流行为tb1,动作为允许报文通过(缺省值,不需配置)。
说明:
对于ACL规则中的动作permit、deny以及流行为中的动作permit、deny,只要存在一个是deny,匹配报文的最终处理结果就是deny,即丢弃报文。
[Switch] traffic behavior tb1 //创建流行为
[Switch-behavior-tb1] quit
配置流策略
# 定义流策略,将流分类与流行为关联。
[Switch] traffic policy tp1 //创建流策略
[Switch-trafficpolicy-tp1] classifier tc1 behavior tb1 //将流分类tc1与流行为tb1关联
[Switch-trafficpolicy-tp1] quit
在接口下应用流策略
# 由于内网主机访问外网的流量均从接口GE2/0/1出口流向Internet,所以可以在接口GE2/0/1的出方向应用流策略tp1。
[Switch] interface gigabitethernet 2/0/1
[Switch-GigabitEthernet2/0/1] traffic-policy tp1 outbound //流策略应用在接口出方向
[Switch-GigabitEthernet2/0/1] quit
使用ACL限制不同网段的用户互访示例
组网需求如图5所示,某公司通过Switch实现各部门之间的互连。为方便管理网络,管理员为公司的研发部和市场部规划了两个网段的IP地址。同时为了隔离广播域,又将两个部门划分在不同VLAN之中。现要求Switch能够限制两个网段之间互访,防止公司机密泄露。图5使用高级ACL限制不同网段的用户互访示例
配置思路
采用如下的思路在Switch上进行配置:
配置高级ACL和基于ACL的流分类,使设备可以对研发部与市场部互访的报文进行过滤。
配置流行为,拒绝匹配上ACL的报文通过。
配置并应用流策略,使ACL和流行为生效。
操作步骤
配置接口所属的VLAN以及接口的IP地址
# 创建VLAN10和VLAN20。
<HUAWEI> system-view
[HUAWEI] sysname Switch
[Switch] vlan batch 10 20
# 配置Switch的接口GE1/0/1和GE1/0/2为trunk类型接口,并分别加入VLAN10和VLAN20。
[Switch] interface gigabitethernet 1/0/1
[Switch-GigabitEthernet1/0/1] port link-type trunk
[Switch-GigabitEthernet1/0/1] port trunk allow-pass vlan 10
[Switch-GigabitEthernet1/0/1] quit
[Switch] interface gigabitethernet 1/0/2
[Switch-GigabitEthernet1/0/2] port link-type trunk
[Switch-GigabitEthernet1/0/2] port trunk allow-pass vlan 20
[Switch-GigabitEthernet1/0/2] quit# 创建VLANIF10和VLANIF20,并配置各VLANIF接口的IP地址。
[Switch] interface vlanif 10
[Switch-Vlanif10] ip address 10.1.1.1 24
[Switch-Vlanif10] quit
[Switch] interface vlanif 20
[Switch-Vlanif20] ip address 10.1.2.1 24
[Switch-Vlanif20] quit
配置ACL
# 创建高级ACL 3001并配置ACL规则,拒绝研发部访问市场部的报文通过。
[Switch] acl 3001
[Switch-acl-adv-3001] rule deny ip source 10.1.1.0 0.0.0.255 destination 10.1.2.0 0.0.0.255 //禁止研发部访问市场部
[Switch-acl-adv-3001] quit# 创建高级ACL 3002并配置ACL规则,拒绝市场部访问研发部的报文通过。
[Switch] acl 3002
[Switch-acl-adv-3002] rule deny ip source 10.1.2.0 0.0.0.255 destination 10.1.1.0 0.0.0.255 //禁止市场部访问研发部
[Switch-acl-adv-3002] quit
配置基于高级ACL的流分类
# 配置流分类tc1,对匹配ACL 3001和ACL 3002的报文进行分类。
[Switch] traffic classifier tc1 //创建流分类
[Switch-classifier-tc1] if-match acl 3001 //将ACL与流分类关联
[Switch-classifier-tc1] if-match acl 3002 //将ACL与流分类关联
[Switch-classifier-tc1] quit
配置流行为
# 配置流行为tb1,动作为拒绝报文通过。
[Switch] traffic behavior tb1 //创建流行为
[Switch-behavior-tb1] deny //配置流行为动作为拒绝报文通过
[Switch-behavior-tb1] quit
配置流策略
# 定义流策略,将流分类与流行为关联。
[Switch] traffic policy tp1 //创建流策略
[Switch-trafficpolicy-tp1] classifier tc1 behavior tb1 //将流分类tc1与流行为tb1关联
[Switch-trafficpolicy-tp1] quit
在接口下应用流策略
# 由于研发部和市场部互访的流量分别从接口GE1/0/1和GE1/0/2进入Switch,所以在接口GE1/0/1和GE1/0/2的入方向应用流策略。
[Switch] interface gigabitethernet 1/0/1
[Switch-GigabitEthernet1/0/1] traffic-policy tp1 inbound //流策略应用在接口入方向
[Switch-GigabitEthernet1/0/1] quit
[Switch] interface gigabitethernet 1/0/2
[Switch-GigabitEthernet1/0/2] traffic-policy tp1 inbound //流策略应用在接口入方向
[Switch-GigabitEthernet1/0/2] quit
验证配置结果
# 查看ACL规则的配置信息。
[Switch] display acl 3001
Advanced ACL 3001, 1 rule
Acl's step is 5
rule 5 deny ip source 10.1.1.0 0.0.0.255 destination 10.1.2.0 0.0.0.255 (match-counter 0)
[Switch] display acl 3002
Advanced ACL 3002, 1 rule
Acl's step is 5
rule 5 deny ip source 10.1.2.0 0.0.0.255 destination 10.1.1.0 0.0.0.255 (match-counter 0) # 查看流分类的配置信息。
[Switch] display traffic classifier user-defined
User Defined Classifier Information:
Classifier: tc1
Precedence: 5
Operator: OR
Rule(s) : if-match acl 3001
if-match acl 3002
Total classifier number is 1 # 查看流策略的配置信息。
[Switch] display traffic policy user-defined tp1
User Defined Traffic Policy Information:
Policy: tp1
Classifier: tc1
Operator: OR
Behavior: tb1
Deny # 研发部和市场部所在的两个网段之间不能互访。
|