1、ACL第9章ACL随着大规模开放式网络的开发,网络面临的威胁也就越来越多。网络安全问题成为网络管理员最为头疼的问题。一方面,为了业务的发展,必须允许对网络资源的开发访问,另一方面,又必须确保数据和资源的尽可能安全。网络安全采用的技术很多,而通过访问控制列表(ACL)可以对数据流进行过滤,是实现基本的网络安全手段之一。本章只研究基于 IP的 ACL。9.1ACL 概述访问控制列表简称为 ACL,它使用包过滤技术,在路由器上读取第三层及第四层包头中的信息如源地址、目的地址、源端口、目的端口等,根据预先定义好的规则对包进行过滤,从而达到访问控制的目的。ACL 分很多种,不同场合应用不同种类的 ACL
2、。1. 标准 ACL标准 ACL 最简单,是通过使用 IP 包中的源 IP 地址进行过滤,表号范围 1-99 或1300-1999;2. 扩展 ACL扩展 ACL 比标准 ACL 具有更多的匹配项,功能更加强大和细化,可以针对包括协议类型、源地址、目的地址、源端口、目的端口、TCP 连接建立等进行过滤,表号范围 100-199 或2000-2699;3. 命名 ACL以列表名称代替列表编号来定义 ACL,同样包括标准和扩展两种列表。在访问控制列表的学习中,要特别注意以下两个术语。1. 通配符掩码:一个 32 比特位的数字字符串,它规定了当一个 IP 地址与其他的 IP 地址进行比较时,该 IP
3、 地址中哪些位应该被忽略。通配符掩码中的“1”表示忽略 IP 地址中对应的位,而“0”则表示该位必须匹配。两种特殊的通配符掩码是“255.255.255.255”和“0.0.0.0”,前者等价于关键字“any”,而后者等价于关键字“host”;2. Inbound 和 outbound:当在接口上应用访问控制列表时,用户要指明访问控制列表是应用于流入数据还是流出数据。总之,ACL 的应用非常广泛,它可以实现如下的功能:1. 拒绝或允许流入(或流出)的数据流通过特定的接口;2. 为 DDR 应用定义感兴趣的数据流;3. 过滤路由更新的内容;4. 控制对虚拟终端的访问;5. 提供流量控制。9.2
4、实验 1:标准 ACL1.实验目的通过本实验可以掌握:(1)ACL 设计原则和工作过程(2)定义标准 ACL(3)应用 ACL(4)标准 ACL 调试2.拓扑结构实验拓扑如图 9-1 所示。图 9-1 标准 ACL 配置本实验拒绝 PC2 所在网段访问路由器 R2,同时只允许主机 PC3 访问路由器 R2 的 TELNET服务。整个网络配置 EIGRP 保证 IP 的连通性。3.实验步骤(1)步骤 1:配置路由器 R1R1(config)#router eigrp 1R1(config-router)#network 10.1.1.0 0.0.0.255R1(config-router)#ne
5、twork 172.16.1.0 0.0.0.255R1(config-router)#network 192.168.12.0R1(config-router)#no auto-summary(2)步骤 2:配置路由器 R2R2(config)#router eigrp 1R2(config-router)#network 2.2.2.0 0.0.0.255R2(config-router)#network 192.168.12.0R2(config-router)#network 192.168.23.0R2(config-router)#no auto-summaryR2(config)
6、#access-list 1 deny 172.16.1.0 0.0.0.255 /定义 ACLR2(config)#access-list 1 permit anyR2(config)#interface Serial0/0/0R2(config-if)#ip access-group 1 in/在接口下应用 ACLR2(config)#access-list 2 permit 172.16.3.1R2(config-if)#line vty 0 4R2(config-line)#access-class 2 in/在 vty 下应用 ACLR2(config-line)#password
7、ciscoR2(config-line)#login(3)步骤 3:配置路由器 R3R3(config)#router eigrp 1R3(config-router)#network 172.16.3.0 0.0.0.255R3(config-router)#network 192.168.23.0R3(config-router)#no auto-summary【技术要点】(1)ACL 定义好,可以在很多地方应用,接口上应用只是其中之一,其它的常用应用包括在 route map 中的 match 应用(21 章介绍)和在 vty 下用“access-class”命令调用,来控制 telne
8、t 的访问;(2)访问控制列表表项的检查按自上而下的顺序进行,并且从第一个表项开始,所以必须考虑在访问控制列表中定义语句的次序;(3)路由器不对自身产生的 IP 数据包进行过滤;(4)访问控制列表最后一条是隐含的拒绝所有;(5)每一个路由器接口的每一个方向,每一种协议只能创建一个 ACL;(6)“access-class”命令只对标准 ACL 有效。4.实验调试在 PC1 网络所在的主机上 ping 2.2.2.2,应该通,在 PC2 网络所在的主机上 ping2.2.2.2,应该不通,在主机 PC3 上 TELNET 2.2.2.2,应该成功。(1)show ip access-lists该
9、命令用来查看所定义的 IP 访问控制列表。R2#show ip access-listsStandard IP access list 110 deny172.16.1.0, wildcard bits 0.0.0.255 (11 matches)20 permit any (405 matches)Standard IP access list 210 permit 172.16.3.1 (2 matches)以上输出表明路由器 R2 上定义的标准访问控制列表为“1”和“2”,括号中的数字表示匹配条件的数据包的个数,可以用“clear access-list counters”将访问控制列表
10、计数器清零。(2)show ip interfaceR2#show ip interface s0/0/0Serial0/0/0 is up, line protocol is upInternet address is 192.168.12.2/24Broadcast address is 255.255.255.255Address determined by setup commandMTU is 1500 bytesHelper address is not setDirected broadcast forwarding is disabledMulticast reserved g
11、roups joined: 224.0.0.10Outgoing access list is not setInboundaccess list is 1.以上输出表明在接口 s0/0/0 的入方向应用了访问控制列表 1。9.3 实验 2:扩展 ACL1.实验目的通过本实验可以掌握:(1)定义扩展 ACL(2)应用扩展 ACL(3)扩展 ACL 调试2.拓扑结构实验拓扑如图 9-1 所示。本实验要求只允许 PC2 所在网段的主机访问路由器 R2 的 WWW 和 TELNET 服务,并拒绝PC3 所在网段 PING 路由器 R2。删除实验 1 中定义的 ACL,保留 EIGRP 的配置。3.实
12、验步骤(1)步骤 1:配置路由器 R1R1(config)#access-list 100 permit tcp 172.16.1.0 0.0.0.255 host 2.2.2.2 eq wwwR1(config)#access-list 100 permit tcp 172.16.1.0 0.0.0.255 host 192.168.12.2eq wwwR1(config)#access-list 100 permit tcp 172.16.1.0 0.0.0.255 host 192.168.23.2eq wwwR1(config)#access-list 100 permit tcp 1
13、72.16.1.0 0.0.0.255 host 2.2.2.2 eqtelnetR1(config)#access-list 100 permit tcp 172.16.1.0 0.0.0.255 host 192.168.12.2eq telnetR1(config)#access-list 100 permit tcp 172.16.1.0 0.0.0.255 host 192.168.23.2eq telnetR1(config)#interface g0/0R1(config-if)#ip access-group 100 in(2)步骤 2:配置路由器 R2R2(config)#n
14、o access-list 1R2(config)#no access-list 2R2(config)#ip http server/删除 ACL/将路由器配置成 WEB 服务器R2(config)#line vty 0 4R2(config-line)#password ciscoR2(config-line)#login(3)步骤 3:配置路由器 R3R3(config)#access-list 101 deny icmp 172.16.3.0 0.0.0.255 host 2.2.2.2 logR3(config)#access-list 101 deny icmp 172.16.3.
15、0 0.0.0.255 host 192.168.12.2logR3(config)#access-list 101 deny icmp 172.16.3.0 0.0.0.255 host 192.168.23.2logR3(config)#access-list 101 permit ip any anyR3(config)#interface g0/0R3(config-if)#ip access-group 101 in【技术要点】(1)参数“log”会生成相应的日志信息,用来记录经过 ACL 入口的数据包的情况;(2)尽量考虑将扩展的访问控制列表放在靠近过滤源的位置上,这样创建的过滤器
16、就不会反过来影响其它接口上的数据流。另外,尽量使标准的访问控制列表靠近目的,由于标准访问控制列表只使用源地址,如果将其靠近源会阻止数据包流向其他端口。4.实验调试(1)分别在 PC2 上访问路由器 R2 的 TELNET 和 WWW 服务,然后查看访问控制列表 100:R1#show ip access-listsExtended IP access list 10010 permit tcp 172.16.1.0 0.0.0.255 host 2.2.2.2 eq www (8 matches)20 permit tcp 172.16.1.0 0.0.0.255 host 192.168.1
17、2.2 eq www30 permit tcp 172.16.1.0 0.0.0.255 host 192.168.23.2 eq www40 permit tcp 172.16.1.0 0.0.0.255 host 2.2.2.2 eq telnet (20 matches)50 permit tcp 172.16.1.0 0.0.0.255 host 12.12.12.2 eq telnet (4 matches)60 permit tcp 172.16.1.0 0.0.0.255 host 23.23.23.2 eq telnet (4 matches)(2)在 PC3 所在网段的主机
18、ping 路由器 R2, 路由器 R3 会出现下面的日志信息:*Feb 25 17:35:46.383: %SEC-6-IPACCESSLOGDP: list 101 denied icmp 172.16.3.1 - 2.2.2.2(0/0), 1 packet*Feb 25 17:41:08.959: %SEC-6-IPACCESSLOGDP: list 101 denied icmp 172.16.3.1 - 2.2.2.2(0/0), 4 packets*Feb 25 17:42:46.919: %SEC-6-IPACCESSLOGDP: list 101 denied icmp 172
19、.16.3.1 -192.168.12.2 (0/0), 1 packet*Feb 25 17:42:56.803: %SEC-6-IPACCESSLOGDP: list 101 denied icmp 172.16.3.1 -192.168.23.2 (0/0), 1 packet以上输出说明在访问控制列表 101 在有匹配数据包的时候,系统作了日志。(3)在路由器 R3 上查看访问控制列表 101:R3#show access-listsExtended IP access list 10110 deny icmp 172.16.3.0 0.0.0.255 host 2.2.2.2 log
20、 (5 matches)20 deny icmp 172.16.3.0 0.0.0.255 host 192.168.12.2 log (5 matches)30 deny icmp 172.16.3.0 0.0.0.255 host 192.168.23.2 log (5 matches)40 permit ip any any (6 matches)9.4 实验 3:命名 ACL命名 ACL 允许在标准 ACL 和扩展 ACL 中,使用字符串代替前面所使用的数字来表示 ACL。命名 ACL 还可以被用来从某一特定的 ACL 中删除个别的控制条目,这样可以让网络管理员方便地修改 ACL。1.
21、实验目的通过本实验可以掌握:(1)定义命名 ACL(2)应用命名 ACL2.拓扑结构实验拓扑如图 9-1 所示。3.实验步骤本实验给出如何用命名 ACL 来实现 9.2 实验 1 中和 9.3 实验 2 中的要求。(1)在路由器 R2 上配置命名的标准 ACL 实现 9.2 实验 1 的要求R2(config)#ip access-list standard standR2(config-std-nacl)#deny 172.16.1.0 0.0.0.255R2(config-std-nacl)#permit anyR2(config)#interface Serial0/0/0R2(conf
22、ig-if)#ip access-group stand inR2(config)#ip access-list standard classR2(config-std-nacl)#permit 172.16.3.1R2(config-if)#line vty 0 4R2(config-line)#access-class class in(2)在路由器 R2 上查看命名访问控制列表R2#show access-listsStandard IP access list class10 permit 172.16.3.1Standard IP access list stand10 deny17
23、2.16.1.0, wildcard bits 0.0.0.25520 permit any (42 matches)(3)在路由器 R1 和 R3 上配置命名的扩展 ACL 实现 9.3 实验 2 的要求R1(config)#ip access-list extended ext1R1(config-ext-nacl)#permit tcp 172.16.1.0 0.0.0.255 host 2.2.2.2 eq wwwR1(config-ext-nacl)#permit tcp 172.16.1.0 0.0.0.255 host 192.168.12.2 eq wwwR1(config-e
24、xt-nacl)#permit tcp 172.16.1.0 0.0.0.255 host 192.168.23.2 eq wwwR1(config-ext-nacl)#permit tcp 172.16.1.0 0.0.0.255 host 2.2.2.2 eq telnetR1(config-ext-nacl)#permit tcp 172.16.1.0 0.0.0.255 host 192.168.12.2 eqtelnetR1(config-ext-nacl)#permit tcp 172.16.1.0 0.0.0.255 host 192.168.23.2 eqtelnetR1(co
25、nfig)#interface g0/0R1(config-if)#ip access-group ext1 inR3(config)#ip access-list extended ext3R3(config-ext-nacl)#deny icmp 172.16.3.0 0.0.0.255 host 2.2.2.2 logR3(config-ext-nacl)#deny icmp 172.16.3.0 0.0.0.255 host 192.168.12.2 logR3(config-ext-nacl)#deny icmp 172.16.3.0 0.0.0.255 host 192.168.2
26、3.2 logR3(config-ext-nacl)#permit ip any anyR3(config)#interface g0/0R3(config-if)#ip access-group ext3 in(4)在路由器 R1 和 R3 上查看命名访问控制列表R1#show access-listsExtended IP access list ext110 permit tcp 172.16.1.0 0.0.0.255 host 2.2.2.2 eq www20 permit tcp 172.16.1.0 0.0.0.255 host 192.168.12.2 eq www30 per
27、mit tcp 172.16.1.0 0.0.0.255 host 192.168.23.2 eq www40 permit tcp 172.16.1.0 0.0.0.255 host 2.2.2.2 eq telnet50 permit tcp 172.16.1.0 0.0.0.255 host 192.168.12.2 eq telnet60 permit tcp 172.16.1.0 0.0.0.255 host 192.168.23.2 eq telnetR3#show access-listsExtended IP access list ext310 deny icmp 172.1
28、6.3.0 0.0.0.255 host 2.2.2.2 log20 deny icmp 172.16.3.0 0.0.0.255 host 192.168.12.2 log30 deny icmp 172.16.3.0 0.0.0.255 host 192.168.23.2 log40 permit ip any any9.5 实验 4:基于时间 ACL1.实验目的通过本实验可以掌握:(1)定义 time-range(2)配置基于时间 ACL(3)基于时间 ACL 调试2.拓扑结构实验拓扑如图 9-1 所示。本实验要求只允许 PC3 主机在周一到周五的每天的 8:00-18:00 访问路由器
29、 R2 的 TELNET服务。3.实验步骤R3(config)#time-range time/定义时间范围R3(config-time-range)#periodic weekdays 8:00 to 18:00R3(config)#access-list 111 permit tcp host 172.16.3.1 host 2.2.2.2 eq telnettime-range time /在访问控制列表中调用 time-rangeR3(config)#access-list 111 permit tcp host 172.16.3.1 host 192.168.12.2 eqtelne
30、t time-range timeR3(config)#access-list 111 permit tcp host 172.16.3.1 host 192.168.23.2 eqtelnet time-range timeR3(config)#interface g0/0R3(config-if)#ip access-group 111 in4.实验调试(1)用“clock”命令将系统时间调整到周一至周五的 8:00-18:00 范围内,然后在 PC3上 TELNET 路由器 R2,此时可以成功,然后查看访问控制列表 111:R3#show access-listsExtended IP
31、access list 11110 permit tcp host 172.16.3.1 host 2.2.2.2 eq telnet time-range time (active) (15 matches)20 permit tcp host 172.16.3.1 host 192.168.12.2 eq telnet time-range time (active)30 permit tcp host 172.16.3.1 host 192.168.23.2 eq telnet time-range time (active)(2)用“clock”命令将系统时间调整到 8:00-18:00 范围之外,然后在 PC3 上 TELNET路由器 R2,此时不可以成功,然后查看
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1