01-H3C_ACL典型配置举例
本章节下载: 01-H3C_ACL典型配置举例 (242.80 KB)
H3C ACL典型配置举例
资料版本:6W100-20190330
产品版本:Release 7577P04
Copyright © 2019 新华三技术有限公司 版权所有,保留一切权利。 非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。 除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。 本文档中的信息可能变动,恕不另行通知。 |
目 录
本文档介绍了ACL(Access Control List,访问控制列表)的配置举例。
本文档中的配置均是在实验室环境下进行的配置和验证,配置前设备的所有参数均采用出厂时的缺省配置。如果您已经对设备进行了配置,为了保证配置效果,请确认现有配置和以下举例中的配置不冲突。
本文假设您已了解ACL特性。
如图1所示,研发部和管理部中均部署了网络视频设备,这些视频设备的MAC地址为000f-e2xx-xxxx,现要求限制这些设备仅每天的8:30到18:00才能够向外网发送数据。
图1 通过MAC地址过滤流量配置组网图
在受限设备的IP地址不定时,可以通过MAC地址来进行匹配;而对于具有相同MAC地址前缀的多台设备,也可以通过MAC地址掩码的方式来进行同时匹配。
# 配置时间段time1,时间范围为每天的8:30~18:00。
<Device> system-view
[Device] time-range time1 8:30 to 18:00 daily
# 创建二层ACL 4000,定义规则为在time1时间段内允许源MAC地址前缀为000f-e2的所有报文通过,其他时间拒绝。
[Device] acl mac 4000
[Device-acl-mac-4000] rule permit source-mac 000f-e200-0000 ffff-ff00-0000 time-range time1
[Device-acl-mac-4000] rule deny source-mac 000f-e200-0000 ffff-ff00-0000
[Device-acl-mac-4000] quit
# 配置包过滤功能,应用二层ACL 4000对端口Ten-GigabitEthernet1/0/1和Ten-GigabitEthernet1/0/2收到的报文进行过滤。
[Device] interface ten-gigabitethernet 1/0/1
[Device-Ten-GigabitEthernet1/0/1] packet-filter mac 4000 inbound
[Device-Ten-GigabitEthernet1/0/1] quit
[Device] interface ten-gigabitethernet 1/0/2
[Device-Ten-GigabitEthernet1/0/2] packet-filter mac 4000 inbound
[Device-Ten-GigabitEthernet1/0/2] quit
# 执行display packet-filter命令查看包过滤功能的应用状态。
[Device] display packet-filter interface inbound
Interface: Ten-GigabitEthernet1/0/1
In-bound policy:
MAC ACL 4000
Interface: Ten-GigabitEthernet1/0/2
In-bound policy:
MAC ACL 4000
上述信息显示Ten-GigabitEthernet1/0/1和Ten-GigabitEthernet1/0/2端口上已经正确应用了包过滤功能。
在每天的8:30到18:00时间段内,视频设备可以正常与外网中的设备进行通信;在其它时间段内,视频设备无法与外网中的设备进行通信。
#
interface Ten-GigabitEthernet1/0/1
port link-mode bridge
packet-filter mac 4000 inbound
#
interface Ten-GigabitEthernet1/0/2
port link-mode bridge
packet-filter mac 4000 inbound
#
time-range time1 08:30 to 18:00 daily
#
acl mac 4000
rule 0 permit source-mac 000f-e200-0000 ffff-ff00-0000 time-range time1
rule 5 deny source-mac 000f-e200-0000 ffff-ff00-0000
如5.1 图3所示,当设备作为FTP服务器时,需要为网络中的不同用户设置不同的FTP访问权限:
· 10.1.2.0/24网段的用户任意时间都可以访问FTP服务器;
· 10.1.1.0/24网段的用户只能在工作时间(周一至周五的8:30~18:00)访问FTP服务器;
· 符合访问条件的用户可以获得level-15的用户访问权限,不符合条件的用户不能访问FTP服务器。
图2 配置设备的FTP访问权限组网图
· 为了根据FTP用户的IP地址来区分不同的访问权限,需要创建ACL配置规则只允许源地址为10.1.2.0/24和10.1.1.0/24的报文通过,并指定10.1.1.0/24网段的生效时间段;
· 为实现FTP服务器区分用户权限,需要将ACL规则与FTP服务功能关联。
# 配置时间段ftp,时间范围为周一至周五的8:30~18:00。
<Device> system-view
[Device] time-range ftp 8:30 to 18:00 working-day
# 创建IPv4基本ACL 2000,定义规则允许源IP地址为10.1.2.0/24的报文通过。
[Device] acl basic 2000
[Device-acl-ipv4-basic-2000] rule permit source 10.1.2.0 0.0.0.255
# 定义规则为在ftp时间段内允许源IP地址为10.1.1.0/24的报文通过。
[Device-acl-ipv4-basic-2000] rule permit source 10.1.1.0 0.0.0.255 time-range ftp
[Device-acl-ipv4-basic-2000] quit
# 开启设备的FTP服务器功能。
[Device] ftp server enable
# 新增FTP用户。
[Device] local-user ftp
[Device-luser-manage-ftp] service-type ftp
# 配置FTP用户密码。
[Device-luser-manage-ftp] password simple 123456
# 配置FTP用户的访问权限为level-15。
[Device-luser-manage-ftp] authorization-attribute user-role level-15
[Device-luser-manage-ftp] quit
# 配置FTP服务器关联ACL 2000设置FTP用户的访问权限。
[Device] ftp server acl 2000
# 工作时间,在IP地址为10.1.2.100的主机上尝试登录FTP服务器:
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\>ftp 10.1.2.1
Connected to 10.1.2.1.
220 FTP service ready.
User (10.1.2.1:(none)): ftp
331 Password required for ftp.
Password:
230 User logged in.
在根据提示信息正确输入FTP用户名和密码后,提示登入成功。
# 工作时间,在IP地址为10.1.1.100的主机上尝试登录FTP服务器:
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\>ftp 10.1.2.1
Connected to 10.1.2.1.
220 FTP service ready.
User (10.1.2.1:(none)): ftp
331 Password required for ftp.
Password:
230 User logged in.
在根据提示信息正确输入FTP用户名和密码后,提示登入成功。
# 非工作时间,在IP地址为10.1.2.100的主机上尝试登录FTP服务器:
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\>ftp 10.1.2.1
Connected to 10.1.2.1.
220 FTP service ready.
User (10.1.2.1:(none)): ftp
331 Password required for ftp.
Password:
230 User logged in.
在根据提示信息正确输入FTP用户名和密码后,提示登入成功。
# 非工作时间,在IP地址为10.1.1.100的主机上尝试登录FTP服务器:
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\>ftp 10.1.2.1
ftp>
ftp> ls
Not connected.
没有提示要求输入用户名和密码,执行FTP命令后,提示没有FTP连接成功。
#
time-range ftp 08:30 to 18:00 working-day
#
acl basic 2000
rule 0 permit source 10.1.2.0 0.0.0.255
rule 5 permit source 10.1.1.0 0.0.0.255 time-range ftp
#
local-user ftp class manage
password hash $h$6$mPMcl6yG5Z9SBNvp$S/On95b937VsmJ4uJ/JbSPvLDR8Xt6eHKhpbsW3jbJL
7kACF5wBHNTnZITswaxOjVuKw5J+SmI7qIdOC6IE+Lw==
service-type ftp
authorization-attribute user-role level-15
authorization-attribute user-role network-operator
#
ftp server enable
ftp server acl 2000
如图3所示,某公司的网络分成管理部、研发部和服务器三个区域,通过Device设备与Internet连接。现要求通过ACL实现:
· 管理部任意时间都可以访问Internet和服务器,但不能访问研发部;
· 研发部在工作时间(周一至周五的8:30~18:00)只能访问服务器,不能访问Internet和管理部;非工作时间可以访问Internet和服务器,但不能访问管理部。
图3 通过IP地址过滤流量配置组网图
· 为实现管理部不能访问研发部,需要创建ACL配置规则拒绝目的地址为10.1.2.0/24的报文,在Device的Ten-GigabitEthernet1/0/4的入方向进行过滤;
· 为实现研发部在工作时间只能访问服务器,需要创建ACL配置规则只允许目的地址为10.2.1.0/24的报文通过,并指定规则的生效时间段,在Device的Ten-GigabitEthernet1/0/3的入方向上进行过滤;
· 为实现研发部在非工作时间不能访问管理部,需要创建ACL配置规则拒绝目的地址为10.1.1.0/24的报文,在Device的Ten-GigabitEthernet1/0/3的入方向上进行过滤;
· 缺省情况下,ACL规则的匹配顺序为配置顺序,因此在此例中,需要先创建指定时间段内只允许目的地址为10.2.1.0/24报文通过的规则,再创建指定时间段内拒绝其他报文通过的规则。
# 创建IPv4高级ACL 3000。
<Device> system-view
[Device] acl advanced 3000
# 创建规则,过滤目的地址为10.1.2.0/24网段的报文。
[Device-acl-ipv4-adv-3000] rule deny ip destination 10.1.2.0 0.0.0.255
[Device-acl-ipv4-adv-3000] quit
# 配置包过滤功能,应用IPv4高级ACL 3000对端口Ten-GigabitEthernet1/0/4收到的IP报文进行过滤。
[Device] interface ten-gigabitethernet 1/0/4
[Device-Ten-GigabitEthernet1/0/4] packet-filter 3000 inbound
[Device-Ten-GigabitEthernet1/0/4] quit
(2) 配置研发部的网络权限
# 配置时间段worktime,指定周一至周五的8:30~18:00为工作时间。
[Device] time-range worktime 8:30 to 18:00 working-day
# 创建IPv4高级ACL 3001。
[Device] acl advanced 3001
# 创建规则,允许时间段内目的地址为10.2.1.0/24网段的报文通过。
[Device-acl-ipv4-adv-3001] rule permit ip destination 10.2.1.0 0.0.0.255 time-range worktime
# 创建规则,过滤时间段内其他的报文。
[Device-acl-ipv4-adv-3001] rule deny ip time-range worktime
# 创建规则,过滤目的地址为10.1.1.0/24网段的报文。
[Device-acl-ipv4-adv-3001] rule deny ip destination 10.1.1.0 0.0.0.255
[Device-acl-ipv4-adv-3001] quit
# 配置包过滤功能,应用IPv4高级ACL 3001对端口Ten-GigabitEthernet1/0/3收到的IP报文进行过滤。
[Device] interface ten-gigabitethernet 1/0/3
[Device-Ten-GigabitEthernet1/0/3] packet-filter 3001 inbound
[Device-Ten-GigabitEthernet1/0/3] quit
# 执行display packet-filter命令查看包过滤功能的应用状态。
[Device] display packet-filter interface inbound
Interface: Ten-GigabitEthernet1/0/3
In-bound policy:
IPv4 ACL 3001
Interface: Ten-GigabitEthernet1/0/4
In-bound policy:
IPv4 ACL 3000
上述信息显示Ten-GigabitEthernet1/0/3和Ten-GigabitEthernet1/0/4端口上已经正确应用了包过滤功能。
# 在周一的上午9:30,从研发部的某台电脑上ping Internet上某个网站,结果无法ping通。
C:\>ping www.google.com
Pinging www.google.com [173.194.127.242] with 32 bytes of data:
Reply from 173.194.127.242: bytes=32 time=30ms TTL=50
Reply from 173.194.127.242: bytes=32 time=30ms TTL=50
Reply from 173.194.127.242: bytes=32 time=30ms TTL=50
Reply from 173.194.127.242: bytes=32 time=30ms TTL=50
Ping statistics for 173.194.127.242:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 30ms, Maximum = 30ms, Average = 30ms
C:\>
# 在周一的上午9:30,从管理部的某台电脑上ping Internet上某个网站,结果可以ping通。
C:\>ping www.google.com
Pinging www.google.com [173.194.127.242] with 32 bytes of data:
Reply from 173.194.127.242: bytes=32 time=30ms TTL=50
Reply from 173.194.127.242: bytes=32 time=30ms TTL=50
Reply from 173.194.127.242: bytes=32 time=30ms TTL=50
Reply from 173.194.127.242: bytes=32 time=30ms TTL=50
Ping statistics for 173.194.127.242:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 30ms, Maximum = 30ms, Average = 30ms
C:\>
# 在周一的晚上19:30,从研发部的某台电脑上ping Internet上某个网站,结果可以ping通。
C:\>ping www.google.com
Pinging www.google.com [173.194.127.242] with 32 bytes of data:
Reply from 173.194.127.242: bytes=32 time=30ms TTL=50
Reply from 173.194.127.242: bytes=32 time=30ms TTL=50
Reply from 173.194.127.242: bytes=32 time=30ms TTL=50
Reply from 173.194.127.242: bytes=32 time=30ms TTL=50
Ping statistics for 173.194.127.242:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 30ms, Maximum = 30ms, Average = 30ms
C:\>
#
interface Ten-GigabitEthernet1/0/3
port link-mode bridge
packet-filter 3001 inbound
#
interface Ten-GigabitEthernet1/0/4
port link-mode bridge
packet-filter 3000 inbound
#
time-range worktime 08:30 to 18:00 working-day
#
acl advanced 3000
rule 0 deny ip destination 10.1.2.0 0.0.0.255
#
acl advanced 3001
rule 0 permit ip destination 10.2.1.0 0.0.0.255 time-range worktime
rule 5 deny ip time-range worktime
rule 10 deny ip destination 10.1.1.0 0.0.0.255
如图4所示,某公司的网络分成管理部、研发部和服务器三个区域,通过Device设备互相连接。现要求通过ACL实现:
· Web服务器只能向管理部的主机提供HTTP服务;
· FTP服务器只能向研发部的主机提供FTP服务;
· 在主机与Web服务器之间进行通信时,仅允许由主机向服务器发起和建立TCP连接,不允许由服务器向主机发起TCP连接;在主机与FTP服务器之间进行通信时,不对TCP连接发起方进行限制。
图4 通过IP地址过滤流量配置组网图
· 为了实现主机与Web服务器之间进行通信时,仅允许由主机向Web服务器发起和建立TCP连接,需要在高级ACL的规则中,指定established参数,用于匹配TCP报文头中ACK或RST置位的报文,即在已建立的TCP连接上传输的报文。
· 由于TCP连接发起方一般使用大于1023的TCP端口号,因此,由Web服务器向主机发送的端口号大于1023、且ACK或RST位置位的报文,应视作已经存在的TCP连接,应该允许通过。其余的由Web服务器向主机发送的TCP报文都应拒绝通过。
· 要过滤FTP报文,需要同时拒绝FTP数据报文(TCP端口号20)和控制报文(TCP端口号21)通过。
· 要过滤HTTP服务,需要配置拒绝TCP目的端口号为80的报文(HTTP)通过的规则。
(1) 配置管理部的网络权限
# 创建IPv4高级ACL 3000。
<Device> system-view
[Device] acl advanced 3000
# 创建规则,允许源地址为100.1.1.1/32、目的地址为10.1.1.0/24网段、目的TCP端口号大于1023、且ACK或RST位置位的报文通过。
[Device-acl-ipv4-adv-3000] rule permit tcp established source 100.1.1.1 0 destination 10.1.1.0 0.0.0.255 destination-port gt 1023
# 创建规则,拒绝源地址为100.1.1.1/32、目的地址为10.1.1.0/24网段的TCP报文通过。
[Device-acl-ipv4-adv-3000] rule deny tcp source 100.1.1.1 0 destination 10.1.1.0 0.0.0.255
# 创建规则,拒绝源地址为101.1.1.1/32的FTP报文通过。
[Device-acl-ipv4-adv-3000] rule deny tcp source 101.1.1.1 0 source-port range 20 21
[Device-acl-ipv4-adv-3000] quit
# 配置包过滤功能,应用IPv4高级ACL 3000对端口Ten-GigabitEthernet1/0/3发出的报文进行过滤。
[Device] interface ten-gigabitethernet 1/0/3
[Device-Ten-GigabitEthernet1/0/3] packet-filter 3000 outbound
[Device-Ten-GigabitEthernet1/0/3] quit
(2) 配置研发部的网络权限
# 创建IPv4高级ACL 3001,配置规则拒绝源地址为100.1.1.1/32的HTTP报文通过。
[Device] acl advanced 3001
[Device-acl-ipv4-adv-3001] rule deny tcp source 100.1.1.1 0 source-port eq 80
[Device-acl-ipv4-adv-3001] quit
# 配置包过滤功能,应用IPv4高级ACL 3001对端口Ten-GigabitEthernet1/0/2发出的报文进行过滤。
[Device] interface ten-gigabitethernet 1/0/2
[Device-Ten-GigabitEthernet1/0/2] packet-filter 3001 outbound
[Device-Ten-GigabitEthernet1/0/2] quit
# 执行display packet-filter命令查看包过滤功能的应用状态。
[Device] display packet-filter interface outbound
Interface: Ten-GigabitEthernet1/0/2
Out-bound policy:
IPv4 ACL 3001
Interface: Ten-GigabitEthernet1/0/3
Out-bound policy:
IPv4 ACL 3000
上述信息显示Ten-GigabitEthernet1/0/2和Ten-GigabitEthernet1/0/3端口上已经正确应用了包过滤功能。
# 在管理部的主机执行telnet 101.1.1.1 21命令测试是否可以访问FTP服务器的21端口。
C:\>telnet 101.1.1.1 21
Connecting To 101.1.1.1...Could not open connection to the host, on port 21:
Connect failed
C:\>
上述信息显示管理部的主机无法访问FTP服务器的21端口。
# 在管理部某台主机上设置共享文件夹,然后从Web服务器上ping该主机,可以ping通,但是无法访问共享文件夹。
C:\>ping 10.1.1.110
Pinging 10.1.1.110 with 32 bytes of data:
Reply from 10.1.1.110: bytes=32 time=2ms TTL=128
Reply from 10.1.1.110: bytes=32 time=14ms TTL=128
Reply from 10.1.1.110: bytes=32 time=1ms TTL=128
Reply from 10.1.1.110: bytes=32 time=1ms TTL=128
Ping statistics for 10.1.1.110:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 1ms, Maximum = 14ms, Average = 4ms
C:\>
# 在研发部的主机执行telnet 100.1.1.1 80命令测试是否可以访问Web服务器的80端口。
C:\>telnet 100.1.1.1 80
Connecting To 100.1.1.1...Could not open connection to the host, on port 80:
Connect failed
C:\>
上述信息显示管理部的主机无法访问FTP服务器的21端口。
#
interface Ten-GigabitEthernet1/0/2
port link-mode bridge
packet-filter 3001 outbound
#
interface Ten-GigabitEthernet1/0/3
port link-mode bridge
packet-filter 3000 outbound
#
acl advanced 3000
rule 0 permit tcp source 100.1.1.1 0 destination 10.1.1.0 0.0.0.255 destination
-port gt 1023 established
rule 5 deny tcp source 100.1.1.1 0 destination 10.1.1.0 0.0.0.255
rule 10 deny tcp source 101.1.1.1 0 source-port range ftp-data ftp
#
acl advanced 3001
rule 0 deny tcp source 100.1.1.1 0 source-port eq www
某公司的网络组网如图5所示,现要求在网关Device上配置用户自定义ACL过滤所有从客户区收到的ARP请求报文,客户区的设备只能通过手工添加静态ARP表项的方式接入Device。
图5 用户自定义ACL配置组网图
与其他类型ACL不同,用户自定义使用rule命令创建规则时,如果指定编号的规则已存在,不会在旧规则原有内容的基础上叠加新的内容,而是直接对旧规则进行覆盖,即重新创建了该编号的规则,原有该编号的旧规则被删除。
# 创建用户自定义ACL 5000并进入相应视图。
<Device> system-view
[Device] acl user-defined 5000
# 配置ACL规则:为匹配ARP请求报文,需要从L3报文头-2字节开始偏移(对应关键字l2)。ARP请求报文的以太网协议类型字段取值为0x0806,操作类型字段(OP)取值为0x0001。从以太网首部的协议类型字段开始计算,以太网协议类型字段的偏移量为0字节,操作类型字段的偏移量为8字节。
[Device-acl-user-5000] rule deny l2 0806 ffff 0 l2 0001 ffff 8
[Device-acl-user-5000] quit
# 在端口Ten-GigabitEthernet1/0/1的入方向过滤匹配ACL 5000的报文。
[Device] interface ten-gigabitethernet 1/0/1
[Device-Ten-GigabitEthernet1/0/1] undo shutdown
[Device-Ten-GigabitEthernet1/0/1] packet-filter user-defined 5000 inbound
[Device-Ten-GigabitEthernet1/0/1] quit
# 执行display packet-filter命令查看包过滤功能的应用状态。
[Device] display packet-filter interface inbound
Interface: Ten-GigabitEthernet1/0/1
In-bound policy:
User-defined ACL 5000
上述信息显示Ten-GigabitEthernet1/0/1端口上已经正确应用了包过滤功能。
# 在客户区新接入一台PC,在PC上指定网关(网关的IP地址为10.0.0.1)后未手工添加网关的ARP表项,不能ping通网关。
C:\>ping 10.0.0.1
Pinging 10.0.0.1 with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.
Ping statistics for 10.0.0.1:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
C:\>
# 在该PC上手工添加网关的ARP表项,可以ping通网关。
C:\>ping 10.0.0.1
Pinging 10.0.0.1 with 32 bytes of data:
Reply from 10.0.0.1: bytes=32 time=1ms TTL=255
Reply from 10.0.0.1: bytes=32 time=37ms TTL=255
Reply from 10.0.0.1: bytes=32 time=1ms TTL=255
Reply from 10.0.0.1: bytes=32 time=1ms TTL=255
Ping statistics for 10.0.0.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 1ms, Maximum = 37ms, Average = 10ms
C:\>
#
interface Ten-GigabitEthernet1/0/1
port link-mode bridge
packet-filter 5000 inbound
#
acl user-defined 5000
rule 0 deny l2 08060000000000000001 ffff000000000000ffff 0
· H3C S12500-S系列交换机 ACL和QoS配置指导-R757X
· H3C S12500-S系列交换机 ACL和QoS命令参考-R757X
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!