ACL简介
访问控制列表ACL(Access Control List)是由一条或多条规则组成的集合。所谓规则,是指描述报文匹配条件的判断语句,这些条件可以是报文的源地址、目的地址、端口号等。
ACL本质上是一种报文过滤器,规则是过滤器的滤芯。设备基于这些规则进行报文匹配,可以过滤出特定的报文,并根据应用ACL的业务模块的处理策略来允许或阻止该报文通过。
基于ACL规则定义方式,可以将ACL分为基本ACL、高级ACL、二层ACL等种类。基本ACL根据源IP地址、分片信息和生效时间段等信息来定义规则,对IPv4报文进行过滤。如果只需要根据源IP地址对报文进行过滤,可以配置基本ACL。
使用ACL限制FTP访问控制示例
组网需求
本例,就是将基本ACL应用在FTP模块中,实现只允许指定的客户端访问FTP服务器,以提高安全性。
如图3-237所示,Switch作为FTP服务器,对网络中的不同用户开放不同的访问权限:
1、子网1(172.16.105.0/24)的所有用户在任意时间都可以访问FTP服务器。
2、子网2(172.16.107.0/24)的所有用户只能在某一个时间范围内访问FTP服务器。
3、其他用户不可以访问FTP服务器。
已知Switch与各个子网之间路由可达,要求在Switch上进行配置,实现FTP服务器对客户端访问权限的设置。
操作步骤
1、配置时间段
<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生效时间段,该时间段是一个周期时间段,表示每个休息日下午14:00到18:00,ftp-access最终生效的时间范围为以上两个时间段的交集
2、配置基本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
3、配置FTP基本功能
[Switch] ftp server enable //开启设备的FTP服务器功能,允许FTP用户登录。
[Switch] ftp server-source -i Vlanif 10 //配置服务器端的源接口为172.16.104.110对应的接口,假设该接口为Vlanif 10。
[Switch] aaa
[Switch-aaa] local-user huawei password irreversible-cipher SetUserPassword@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
4、配置FTP服务器访问权限
[Switch] ftp acl 2001 //在FTP模块中应用ACL
5、验证配置结果
在子网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服务器。
配置文件
Switch的配置文件
#
sysname Switch
#
FTP server enable
FTP server-source -i Vlanif 10
FTP acl 2001
#
time-range ftp-access 14:00 to 18:00 off-day
time-range ftp-access from 00:00 2014/1/1 to 23:59 2014/12/31
#
acl number 2001
rule 5 permit source 172.16.105.0 0.0.0.255
rule 10 permit source 172.16.107.0 0.0.0.255 time-range ftp-access
rule 15 deny
#
aaa
local-user huawei password irreversible-cipher %^%#uM-!TkAaGB5=$$6SQuw$#batog!R7M_d^!o{*@N9g'e0baw#%^%#
local-user huawei privilege level 15
local-user huawei ftp-directory cfcard:/
local-user huawei service-type ftp
#
return
使用ACL限制用户在特定时间访问特定服务器的权限示例
组网需求
本例,就是将高级ACL应用在流策略模块,使设备可以对用户在特定时间访问特定服务器的报文进行过滤,达到基于时间限制用户访问该服务器权限的目的。
如图3-238所示,某公司通过Switch实现各部门之间的互连。公司要求禁止研发部门和市场部门在上班时间(8:00至17:30)访问工资查询服务器(IP地址为10.164.9.9),总裁办公室不受限制,可以随时访问。
配置思路
采用如下的思路在Switch上进行配置:
1、配置时间段、高级ACL和基于ACL的流分类,使设备可以基于时间的ACL,对用户访问服务器的报文进行过滤,从而限制不同用户在特定时间访问特定服务器的权限。
2、配置流行为,拒绝匹配上ACL的报文通过。
3、配置并应用流策略,使ACL和流行为生效。
操作步骤
1、配置接口加入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
2、配置时间段
# 配置8:00至17:30的周期时间段。
[Switch] time-range satime 8:00 to 17:30 working-day //配置ACL生效时间段,该时间段是一个周期时间段
3、配置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
4、配置基于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
5、配置流行为
# 配置流行为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
6、配置流策略
# 配置流策略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
7、应用流策略
# 由于市场部访问服务器的流量从接口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
8、验证配置结果
# 查看ACL规则的配置信息。
[Switch] display acl all
Total nonempty ACL number is 2
Advanced ACL 3002, 1 rule
Acl's step is 5
rule 5 deny ip source 10.164.2.0 0.0.0.255 destination 10.164.9.9 0 time-range satime (match-counter 0)(Active)
Advanced ACL 3003, 1 rule
Acl's step is 5
rule 5 deny ip source 10.164.3.0 0.0.0.255 destination 10.164.9.9 0 time-range satime (match-counter 0)(Active)
# 查看流分类的配置信息。
[Switch] display traffic classifier user-defined
User Defined Classifier Information:
Classifier: c_market
Precedence: 5
Operator: OR
Rule(s) : if-match acl 3002
Classifier: c_rd
Precedence: 10
Operator: OR
Rule(s) : if-match acl 3003
Total classifier number is 2
# 查看流策略的配置信息。
[Switch] display traffic policy user-defined
User Defined Traffic Policy Information:
Policy: p_market
Classifier: c_market
Operator: OR
Behavior: b_market
Deny
Policy: p_rd
Classifier: c_rd
Operator: OR
Behavior: b_rd
Deny
Total policy number is 2
# 查看流策略的应用信息。
[Switch] display traffic-policy applied-record
#
-------------------------------------------------
Policy Name: p_market
Policy Index: 0
Classifier:c_market Behavior:b_market
-------------------------------------------------
*interface GigabitEthernet1/0/2
traffic-policy p_market inbound
slot 1 : success
-------------------------------------------------
Policy total applied times: 1.
#
-------------------------------------------------
Policy Name: p_rd
Policy Index: 1
Classifier:c_rd Behavior:b_rd
-------------------------------------------------
*interface GigabitEthernet1/0/3
traffic-policy p_rd inbound
slot 1 : success
-------------------------------------------------
Policy total applied times: 1.
#
# 研发部门和市场部门在上班时间(8:00至17:30)无法访问工资查询服务器。
配置文件
Switch的配置文件
#
sysname Switch
#
vlan batch 10 20 30 100
#
time-range satime 08:00 to 17:30 working-day
#
acl number 3002
rule 5 deny ip source 10.164.2.0 0.0.0.255 destination 10.164.9.9 0 time-range satime
acl number 3003
rule 5 deny ip source 10.164.3.0 0.0.0.255 destination 10.164.9.9 0 time-range satime
#
traffic classifier c_market operator or precedence 5
if-match acl 3002
traffic classifier c_rd operator or precedence 10
if-match acl 3003
#
traffic behavior b_market
deny
traffic behavior b_rd
deny
#
traffic policy p_market match-order config
classifier c_market behavior b_market
traffic policy p_rd match-order config
classifier c_rd behavior b_rd
#
interface Vlanif10
ip address 10.164.1.1 255.255.255.0
#
interface Vlanif20
ip address 10.164.2.1 255.255.255.0
#
interface Vlanif30
ip address 10.164.3.1 255.255.255.0
#
interface Vlanif100
ip address 10.164.9.1 255.255.255.0
#
interface GigabitEthernet1/0/1
port link-type trunk
port trunk allow-pass vlan 10
#
interface GigabitEthernet1/0/2
port link-type trunk
port trunk allow-pass vlan 20
traffic-policy p_market inbound
#
interface GigabitEthernet1/0/3
port link-type trunk
port trunk allow-pass vlan 30
traffic-policy p_rd inbound
#
interface GigabitEthernet2/0/1
port link-type trunk
port trunk allow-pass vlan 100
#
return