用访问控制列表(ACL)实现包过滤
一.ACL概述
1.ACL(Access Control List,访问控制列表)是用来实现数据包识别功能的
2.ACL可以应用于诸多方面
a>.b包过滤防火墙功能;
b>.NAT(Network Address Translation,网络地址转换);
c>.QoS(Quality of Service,服务质量)的数据分类;
d>.路由策略和过滤
e>.按需拨号
二.ACL包过滤原理
1.基于ACL的包过滤技术
a>.对进入的数据包逐个过滤,丢弃或允许通过;
b>.ACL应用于接口上,每个接口的出入双向分别过滤;
c>.仅当数据包过滤经过一个接口是时,才会被此接口的此方向的ACL过滤;
2.入站包过滤工作流程
3.出站包过滤工作流程
4.通配符掩码
a>.通配符掩码和IP地址结合使用以描述一个地址范围;
b>.通配符和子网掩码相思,但含义不同:0表示对应位需要比较,1表示对应为不需要比较。
5. 通配符掩码的应用示例
三.ACL分类
1.ACL的标识
a>.利用数字需要标识访问控制列表;
详细介绍:
1>.标准2000-2999:检查数据包的源,根据数据包的源IP指定规则,允许或拒绝的是整个数据包的IP;(属于基本ACL)
2>.扩展3000-3999:根据报文的源IP地址信息,目的IP地址信息,IP承载的协议类型,协议的特性等三,四层信息指定规则;(属于高级ACL)
3>.二层ACL 4000-4999:根据报文的源MAC地址,目的MAC地址,VLAN优先级,二层协议类型等二层信息指定规则。
4>.用户自定义ACL 5000-5999:可以以报文头,IP头等位基准,指定从第几个字节开始于掩码进行“与”操作,将报文提取出来的字符串和用户定义的字符串进行比较,找到匹配的报文。
b>.可以给访问控制列表指定名称,便于维护;
四.配置ACL包过滤
在做实验之前,需要将以下拓扑图两个机房配置通:
准备环境:要求亦庄机房的PC可以ping同高碑店的pc,我们可以用OSPF来做,配置过程如下:
1 "亦庄出口路由"配置如下: 2 [Huawei]sysname yizhuang 3 [yizhuang]interface Ethernet 0/0/0 4 [yizhuang-Ethernet0/0/1]ip address 172.30.1.254 24 5 [yizhuang-Ethernet0/0/1]undo shutdown 6 [yizhuang-Ethernet0/0/1]quit 7 [yizhuang]interface Ethernet 0/0/1 8 [yizhuang-Ethernet0/0/1]ip address 10.10.10.1 24 9 [yizhuang-Ethernet0/0/1]undo shutdown 10 [yizhuang-Ethernet0/0/1]quit 11 [yizhuang]ospf 200 12 [yizhuang-ospf-200]area 0 13 [yizhuang-ospf-200-area-0.0.0.0]network 10.10.10.1 0.0.0.0 14 [yizhuang-ospf-200-area-0.0.0.0]network 172.30.1.0 0.0.0.255 15 [yizhuang-ospf-200-area-0.0.0.0]quit 16 [yizhuang-ospf-200]quit 17 18 "高碑店出口路由"配置如下: 19 [Huawei]sysname gaobeidian 20 [gaobeidian]interface Ethernet 0/0/0 21 [gaobeidian-Ethernet0/0/0]ip address 192.168.1.254 24 22 [gaobeidian-Ethernet0/0/0]undo shutdown 23 [gaobeidian]interface Ethernet 0/0/1 24 [gaobeidian-Ethernet0/0/1]ip address 10.10.10.2 24 25 [gaobeidian-Ethernet0/0/1]undo shutdown 26 [gaobeidian-Ethernet0/0/1]quit 27 [gaobeidian]ospf 100 28 [gaobeidian-ospf-100]area 0 29 [gaobeidian-ospf-100-area-0.0.0.0]network 10.10.10.2 0.0.0.0 30 [gaobeidian-ospf-100-area-0.0.0.0]network 192.168.1.0 0.0.0.255 31 [gaobeidian-ospf-100-area-0.0.0.0]quit
1 PC>ipconfig 2 3 Link local IPv6 address...........: fe80::5689:98ff:fe15:18c0 4 IPv6 address......................: :: / 128 5 IPv6 gateway......................: :: 6 IPv4 address......................: 172.30.1.1 7 Subnet mask.......................: 255.255.255.0 8 Gateway...........................: 172.30.1.254 9 Physical address..................: 54-89-98-15-18-C0 10 DNS server........................: 11 12 PC> 13 PC>ping 192.168.1.1 14 15 Ping 192.168.1.1: 32 data bytes, Press Ctrl_C to break 16 From 192.168.1.1: bytes=32 seq=1 ttl=126 time=62 ms 17 From 192.168.1.1: bytes=32 seq=2 ttl=126 time=62 ms 18 From 192.168.1.1: bytes=32 seq=3 ttl=126 time=32 ms 19 From 192.168.1.1: bytes=32 seq=4 ttl=126 time=62 ms 20 From 192.168.1.1: bytes=32 seq=5 ttl=126 time=31 ms 21 22 --- 192.168.1.1 ping statistics --- 23 5 packet(s) transmitted 24 5 packet(s) received 25 0.00% packet loss 26 round-trip min/avg/max = 31/49/62 ms 27 28 PC>
需求一:要求亦庄机房pc无法ping通高碑店机房pc.
我们在离高碑店机房pc的上联路由或者交换机上做配置即可:
华为机器配置如下:
1 [gaobeidian]acl 2000 #定义基本策略 2 [gaobeidian-acl-basic-2000]rule 0 deny source 172.30.1.1 0.0.0.0 #写一条拒绝的规则 3 [gaobeidian-acl-basic-2000]quit 4 [gaobeidian]traffic classifier deny_icmp #创建策略 5 [gaobeidian-classifier-deny_icmp]if-match acl 2000 #和条件绑定 6 [gaobeidian-classifier-deny_icmp]quit 7 [gaobeidian]traffic behavior deny #创建一个策略的动作, 8 [gaobeidian-behavior-deny]quit 9 [gaobeidian]traffic policy xianzhi #创建一个策略组 10 [gaobeidian-trafficpolicy-xianzhi]classifier deny_icmp behavior deny #关联策略和动作 11 [gaobeidian-trafficpolicy-xianzhi]quit 12 [gaobeidian]interface Ethernet 0/0/1 13 [gaobeidian-Ethernet0/0/1]traffic-policy xianzhi inbound #在相应的如接口调用策略组
H3C配置如下:(你会发现这2个差距并不是很大,原理都是一样的)
1 firewall enable #启用防火墙 2 firewall default permit #设置默认规则为允许 3 acl number 2000 4 rule 0 deny source 172.30.1.1 0.0.0.0 5 quit 6 interface Ethenet 0/0/1 7 firewall packer-filter 2000 inbound #绑定策略
实验测试结果如下:
1 PC>ping 192.168.1.1 2 3 Ping 192.168.1.1: 32 data bytes, Press Ctrl_C to break 4 From 192.168.1.1: bytes=32 seq=1 ttl=126 time=93 ms 5 From 192.168.1.1: bytes=32 seq=2 ttl=126 time=109 ms 6 From 192.168.1.1: bytes=32 seq=3 ttl=126 time=93 ms 7 From 192.168.1.1: bytes=32 seq=4 ttl=126 time=62 ms 8 From 192.168.1.1: bytes=32 seq=5 ttl=126 time=78 ms 9 10 --- 192.168.1.1 ping statistics --- 11 5 packet(s) transmitted 12 5 packet(s) received 13 0.00% packet loss 14 round-trip min/avg/max = 62/87/109 ms 15 16 PC>ping 192.168.1.1 17 18 Ping 192.168.1.1: 32 data bytes, Press Ctrl_C to break 19 Request timeout! 20 Request timeout! 21 Request timeout! 22 Request timeout! 23 Request timeout! 24 25 --- 192.168.1.1 ping statistics --- 26 5 packet(s) transmitted 27 0 packet(s) received 28 100.00% packet loss 29 30 PC>ipconfig 31 32 Link local IPv6 address...........: fe80::5689:98ff:fe80:32ad 33 IPv6 address......................: :: / 128 34 IPv6 gateway......................: :: 35 IPv4 address......................: 172.30.1.1 36 Subnet mask.......................: 255.255.255.0 37 Gateway...........................: 172.30.1.254 38 Physical address..................: 54-89-98-80-32-AD 39 DNS server........................: 40 41 PC>
注意:
可能ENSP模拟的路由器在写ACL上存在BUG,我这里建议更换交换机测试,或者在路由器和电脑之前加个交换机,在交换机上做策略也好使,已经实测。
需求二.使得亦庄路由器无法telnet高碑店路由器.
拓扑图如下:
配置过程如下:
1 #高碑店路由器配置: 2 [gaobeidain]telnet server enable 3 [gaobeidain]user-interface vty 0 4 4 [gaobeidain-ui-vty0-4]authentication-mode none 5 [gaobeidain-ui-vty0-4]user privilege level 3 6 7 8 #亦庄路由器测试: 9 <Huawei>telnet 10.10.10.2 10 Trying 10.10.10.2 ... 11 Press CTRL+K to abort 12 Connected to 10.10.10.2 ... 13 14 Info: The max number of VTY users is 10, and the number 15 of current VTY users on line is 1. 16 The current login time is 2017-04-19 00:15:06. 17 <gaobeidain> 18 19 “三层交换机”配置如下: 20 [Huawei]acl number 3000 21 [Huawei-acl-adv-3000]rule 0 deny tcp source 10.10.10.1 0 destination 10.10.10.2 0 destination-port eq 22 telnet #拒绝访问10.10.10.2的路由器的telnet功能 23 [Huawei-acl-adv-3000]quit 24 [Huawei]traffic classifier deny_telnet 25 [Huawei-classifier-deny_telnet]if-match acl 3000 26 [Huawei-classifier-deny_telnet]quit 27 [Huawei]traffic behavior deny #定义一个动作 28 [Huawei-behavior-deny]quit #动作内容为空,直接退出即可 29 [Huawei]traffic policy xianzhi 30 [Huawei-trafficpolicy-xianzhi]classifier deny_telnet behavior deny 31 [Huawei-trafficpolicy-xianzhi]quit
拓扑图如下:
准备环境:
1 “鲁谷机房”配置如下: 2 [Huawei]sysname lugu 3 [lugu]interface Ethernet 0/0/1 4 [lugu-Ethernet0/0/1]ip address 10.10.10.2 24 5 [lugu-Ethernet0/0/1]quit 6 [lugu]interface LoopBack 1 7 [lugu-LoopBack1]ip address 192.168.1.1 24 8 [lugu-LoopBack1]quit 9 [lugu]ip route-static 0.0.0.0 0.0.0.0 10.10.10.1 10 [lugu]user-interface vty 0 4 11 [lugu-ui-vty0-4]authentication-mode none 12 [lugu-ui-vty0-4]user privilege level 3 13 14 15 "策略交换机"配置如下: 16 [Huawei]sysname celue 17 [celue]interface Ethernet 0/0/1 18 [celue-Ethernet0/0/1]port link-type trunk 19 [celue-Ethernet0/0/1]quit 20 21 22 “兆维机房”配置如下: 23 [Huawei]sysname zhaowei 24 [zhaowei]interface LoopBack 1 25 [zhaowei-LoopBack1]ip address 172.30.1.1 24 26 [zhaowei-LoopBack1]quit 27 [zhaowei]interface Ethernet 0/0/1 28 [zhaowei-Ethernet0/0/1]ip address 10.10.10.1 24 29 [zhaowei-Ethernet0/0/1]undo shutdown 30 [zhaowei-Ethernet0/0/1]quit 31 [zhaowei]ip route-static 0.0.0.0 0.0.0.0 10.10.10.2 32 <zhaowei>telnet 192.168.1.1 #链接鲁谷机房pc 33 Trying 192.168.1.1 ... 34 Press CTRL+K to abort 35 Connected to 192.168.1.1 ... 36 37 Info: The max number of VTY users is 10, and the number 38 of current VTY users on line is 1. 39 The current login time is 2017-04-19 11:11:19. 40 <lugu>
策略限制如下:
1 “鲁谷机房”配置如下: 2 3 [lugu]acl 3000 4 [lugu-acl-adv-3000]rule 0 deny tcp source 172.30.1.1 0 5 6 destination 192.168.1.1 0 destination-port eq 7 telnet #定义一条拒绝telnet的策略 8 [lugu]user-interface vty 0 4 9 [lugu-ui-vty0-4]authentication-mode none #验证方式为空 10 [lugu-ui-vty0-4]acl 3000 inbound #绑定策略
测试结果如下:
1 <zhaowei>telnet 192.168.1.1 2 Trying 192.168.1.1 ... 3 Press CTRL+K to abort 4 Error: Failed to connect to the remote host. 5 <zhaowei>
以上操作用的是ENSP配置,如果要配置H3C的话请参考:
实验十 配置ACL包过滤
【实验目的】
l 掌握访问控制列表的简单的工作原理
l 掌握访问控制列表的基本配置方法
l 掌握访问控制列表的常用配置命令
【实验要求】
分别使用ACL禁止PC1访问PC2和禁止从PC1到网络192.168.3.0/24的FTP数据流。
【实验设备】
路由器两台、PC机两台、网线三根、console
【实验拓扑】
【实验过程】
实验过程一、配置基本的ACL
1、路由器接口IP地址以及PC机的IP地址规划
设备名称 |
接口 |
IP地址 |
网关 |
RT1 |
G0/0/1 |
192.168.1.1 |
-- |
G0/0/0 |
192.168.2.1 |
-- |
|
looback |
1.1.1.1.1/32 |
|
|
RT2 |
G0/0/0 |
192.168.2.2 |
-- |
G0/0/1 |
192.168.3.1 |
-- |
|
looback |
2.2.2.2./32 |
|
|
PC1 |
-- |
192.168.1.2 |
192.168.1.1 |
PC2 |
-- |
192.168.3.2 |
192.168.3.1 |
2、使用RIP协议使全网互通(也可以使用OSPF以及静态路由)
RT1
[RT1]rip
[RT1-rip-1]network 192.168.1.0
[RT1-rip-1]network 192.168.2.0
[RT1-rip-1]quit
[RT1]
RT2
[RT2]rip
[RT2-rip-1]network 192.168.2.0
[RT2-rip-1]network 192.168.3.0
[RT2-rip-1]quit
[RT2]
3、PC1 ping PC2验证网络的连通性
4、配置ACL并且应用
防火墙功能需要在路由器上启动后才能生效
[RT1]firewall enable
设置防火墙的默认过滤方式是Permit
[RT1]firewall default permit
配置基本ACL,并指定ACL序号
[RT1]acl number 2000
定义ACL定义规则
[RT1-acl-basic-2000]rule deny source 192.168.1.2 0.0.0.0[w1]
[RT1-acl-basic-2000]quit
进入接口并在接口上应用接口上
[RT1]interface g0/0/1
[RT1-GigabitEthernet0/0/1]firewall packet-filter 2000 inbound[w2]
[RT1-GigabitEthernet0/0/1]qu
[RT1]
5、PC1 ping PC2测试主机间的连通性,测试结果应该是不可达,如下
6、查看ACL以及防火墙的状态和统计
可以看到,有数据报文命中了ACL中定义的额规则。
实验过程二 配置扩展的ACL
1、PC组网图和IP地址规划同实验一基本的ACL
2、配置ACL规则
[RT1]acl number 3000
[RT1-acl-adv-3000]rule deny tcp source 192.168.1.2 0.0.0.0 destination 192.168.3.0 0.0.0.255 destination-port eq ftp
[RT1-acl-adv-3000]rule permit ip source 192.168.1.2 0.0.0.0 destination 192.168.2.0 0.0.0.255
[RT1-acl-adv-3000]quit
[RT1]interface g0/0/1
[RT1-GigabitEthernet0/0/1]firewall packet-filter 3000 inbound
[RT1-GigabitEthernet0/0/1]quit
[RT1]
3、做完之后铜须门可以自己试一下PC1 ping PC2能否ping通,如果能ping通过则说明什么?
4、在PC2上开启FTP服务,然后再PC1上使用FTP客户端软件连接到PC2,看一下结果是被拒绝还是允许?
【思考拓展】
在实验二高级ACL应用中,可以把ACL应用在RTB上吗?
指定动作是Permit挥着Deny
制定要匹配的源IP地址范围
Inbound:过滤接口接收的数据包
Outbound :过滤接口转发的数据包
五.ACL包过滤的注意事项