ACL.docx
《ACL.docx》由会员分享,可在线阅读,更多相关《ACL.docx(22页珍藏版)》请在冰点文库上搜索。
ACL
第9章
ACL
随着大规模开放式网络的开发,网络面临的威胁也就越来越多。
网络安全问题成为网络
管理员最为头疼的问题。
一方面,为了业务的发展,必须允许对网络资源的开发访问,另一
方面,又必须确保数据和资源的尽可能安全。
网络安全采用的技术很多,而通过访问控制列
表(ACL)可以对数据流进行过滤,是实现基本的网络安全手段之一。
本章只研究基于IP
的ACL。
9.1
ACL概述
访问控制列表简称为ACL,它使用包过滤技术,在路由器上读取第三层及第四层包头中
的信息如源地址、目的地址、源端口、目的端口等,根据预先定义好的规则对包进行过滤,
从而达到访问控制的目的。
ACL分很多种,不同场合应用不同种类的ACL。
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地址中哪些位应该被忽略。
通配符掩码中的“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实验1:
标准ACL
1.实验目的
通过本实验可以掌握:
(1)ACL设计原则和工作过程
(2)定义标准ACL
(3)应用ACL
(4)标准ACL调试
2.拓扑结构
实验拓扑如图9-1所示。
图9-1标准ACL配置
本实验拒绝PC2所在网段访问路由器R2,同时只允许主机PC3访问路由器R2的TELNET
服务。
整个网络配置EIGRP保证IP的连通性。
3.实验步骤
(1)步骤1:
配置路由器R1
R1(config)#routereigrp1
R1(config-router)#network10.1.1.00.0.0.255
R1(config-router)#network172.16.1.00.0.0.255
R1(config-router)#network192.168.12.0
R1(config-router)#noauto-summary
(2)步骤2:
配置路由器R2
R2(config)#routereigrp1
R2(config-router)#network2.2.2.00.0.0.255
R2(config-router)#network192.168.12.0
R2(config-router)#network192.168.23.0
R2(config-router)#noauto-summary
R2(config)#access-list1deny172.16.1.00.0.0.255//定义ACL
R2(config)#access-list1permitany
R2(config)#interfaceSerial0/0/0
R2(config-if)#ipaccess-group1in
//在接口下应用ACL
R2(config)#access-list2permit172.16.3.1
R2(config-if)#linevty04
R2(config-line)#access-class2in
//在vty下应用ACL
R2(config-line)#passwordcisco
R2(config-line)#login
(3)步骤3:
配置路由器R3
R3(config)#routereigrp1
R3(config-router)#network172.16.3.00.0.0.255
R3(config-router)#network192.168.23.0
R3(config-router)#noauto-summary
【技术要点】
(1)ACL定义好,可以在很多地方应用,接口上应用只是其中之一,其它的常用应用
包括在routemap中的match应用(21章介绍)和在vty下用“access-class”命令调用,
来控制telnet的访问;
(2)访问控制列表表项的检查按自上而下的顺序进行,并且从第一个表项开始,所以
必须考虑在访问控制列表中定义语句的次序;
(3)路由器不对自身产生的IP数据包进行过滤;
(4)访问控制列表最后一条是隐含的拒绝所有;
(5)每一个路由器接口的每一个方向,每一种协议只能创建一个ACL;
(6)“access-class”命令只对标准ACL有效。
4.实验调试
在PC1网络所在的主机上ping2.2.2.2,应该通,在PC2网络所在的主机上ping
2.2.2.2,应该不通,在主机PC3上TELNET2.2.2.2,应该成功。
(1)showipaccess-lists
该命令用来查看所定义的IP访问控制列表。
R2#showipaccess-lists
StandardIPaccesslist1
10deny
172.16.1.0,wildcardbits0.0.0.255(11matches)
20permitany(405matches)
StandardIPaccesslist2
10permit172.16.3.1(2matches)
以上输出表明路由器R2上定义的标准访问控制列表为“1”和“2”,括号中的数字表示
匹配条件的数据包的个数,可以用“clearaccess-listcounters”将访问控制列表计数
器清零。
(2)showipinterface
R2#showipinterfaces0/0/0
Serial0/0/0isup,lineprotocolisup
Internetaddressis192.168.12.2/24
Broadcastaddressis255.255.255.255
Addressdeterminedbysetupcommand
MTUis1500bytes
Helperaddressisnotset
Directedbroadcastforwardingisdisabled
Multicastreservedgroupsjoined:
224.0.0.10
Outgoingaccesslistisnotset
Inbound
accesslistis1
......
以上输出表明在接口s0/0/0的入方向应用了访问控制列表1。
9.3实验2:
扩展ACL
1.实验目的
通过本实验可以掌握:
(1)定义扩展ACL
(2)应用扩展ACL
(3)扩展ACL调试
2.拓扑结构
实验拓扑如图9-1所示。
本实验要求只允许PC2所在网段的主机访问路由器R2的WWW和TELNET服务,并拒绝
PC3所在网段PING路由器R2。
删除实验1中定义的ACL,保留EIGRP的配置。
3.实验步骤
(1)步骤1:
配置路由器R1
R1(config)#access-list100permittcp172.16.1.00.0.0.255host2.2.2.2eqwww
R1(config)#access-list100permittcp172.16.1.00.0.0.255host192.168.12.2
eqwww
R1(config)#access-list100permittcp172.16.1.00.0.0.255host192.168.23.2
eqwww
R1(config)#access-list100permittcp172.16.1.00.0.0.255host2.2.2.2eq
telnet
R1(config)#access-list100permittcp172.16.1.00.0.0.255host192.168.12.2
eqtelnet
R1(config)#access-list100permittcp172.16.1.00.0.0.255host192.168.23.2
eqtelnet
R1(config)#interfaceg0/0
R1(config-if)#ipaccess-group100in
(2)步骤2:
配置路由器R2
R2(config)#noaccess-list1
R2(config)#noaccess-list2
R2(config)#iphttpserver
//删除ACL
//将路由器配置成WEB服务器
R2(config)#linevty04
R2(config-line)#passwordcisco
R2(config-line)#login
(3)步骤3:
配置路由器R3
R3(config)#access-list101denyicmp172.16.3.00.0.0.255host2.2.2.2log
R3(config)#access-list101denyicmp172.16.3.00.0.0.255host192.168.12.2
log
R3(config)#access-list101denyicmp172.16.3.00.0.0.255host192.168.23.2
log
R3(config)#access-list101permitipanyany
R3(config)#interfaceg0/0
R3(config-if)#ipaccess-group101in
【技术要点】
(1)参数“log”会生成相应的日志信息,用来记录经过ACL入口的数据包的情况;
(2)尽量考虑将扩展的访问控制列表放在靠近过滤源的位置上,这样创建的过滤器就
不会反过来影响其它接口上的数据流。
另外,尽量使标准的访问控制列表靠近目的,由于标
准访问控制列表只使用源地址,如果将其靠近源会阻止数据包流向其他端口。
4.实验调试
(1)分别在PC2上访问路由器R2的TELNET和WWW服务,然后查看访问控制列表100:
R1#showipaccess-lists
ExtendedIPaccesslist100
10permittcp172.16.1.00.0.0.255host2.2.2.2eqwww(8matches)
20permittcp172.16.1.00.0.0.255host192.168.12.2eqwww
30permittcp172.16.1.00.0.0.255host192.168.23.2eqwww
40permittcp172.16.1.00.0.0.255host2.2.2.2eqtelnet(20matches)
50permittcp172.16.1.00.0.0.255host12.12.12.2eqtelnet(4matches)
60permittcp172.16.1.00.0.0.255host23.23.23.2eqtelnet(4matches)
(2)在PC3所在网段的主机ping路由器R2,路由器R3会出现下面的日志信息:
*Feb2517:
35:
46.383:
%SEC-6-IPACCESSLOGDP:
list101deniedicmp172.16.3.1->2.2.2.2
(0/0),1packet
*Feb2517:
41:
08.959:
%SEC-6-IPACCESSLOGDP:
list101deniedicmp172.16.3.1->2.2.2.2
(0/0),4packets
*Feb2517:
42:
46.919:
%SEC-6-IPACCESSLOGDP:
list101deniedicmp172.16.3.1->
192.168.12.2(0/0),1packet
*Feb2517:
42:
56.803:
%SEC-6-IPACCESSLOGDP:
list101deniedicmp172.16.3.1->
192.168.23.2(0/0),1packet
以上输出说明在访问控制列表101在有匹配数据包的时候,系统作了日志。
(3)在路由器R3上查看访问控制列表101:
R3#showaccess-lists
ExtendedIPaccesslist101
10denyicmp172.16.3.00.0.0.255host2.2.2.2log(5matches)
20denyicmp172.16.3.00.0.0.255host192.168.12.2log(5matches)
30denyicmp172.16.3.00.0.0.255host192.168.23.2log(5matches)
40permitipanyany(6matches)
9.4实验3:
命名ACL
命名ACL允许在标准ACL和扩展ACL中,使用字符串代替前面所使用的数字来表示ACL。
命名ACL还可以被用来从某一特定的ACL中删除个别的控制条目,这样可以让网络管理员方
便地修改ACL。
1.实验目的
通过本实验可以掌握:
(1)定义命名ACL
(2)应用命名ACL
2.拓扑结构
实验拓扑如图9-1所示。
3.实验步骤
本实验给出如何用命名ACL来实现9.2实验1中和9.3实验2中的要求。
(1)在路由器R2上配置命名的标准ACL实现9.2实验1的要求
R2(config)#ipaccess-liststandardstand
R2(config-std-nacl)#deny172.16.1.00.0.0.255
R2(config-std-nacl)#permitany
R2(config)#interfaceSerial0/0/0
R2(config-if)#ipaccess-groupstandin
R2(config)#ipaccess-liststandardclass
R2(config-std-nacl)#permit172.16.3.1
R2(config-if)#linevty04
R2(config-line)#access-classclassin
(2)在路由器R2上查看命名访问控制列表
R2#showaccess-lists
StandardIPaccesslistclass
10permit172.16.3.1
StandardIPaccessliststand
10deny
172.16.1.0,wildcardbits0.0.0.255
20permitany(42matches)
(3)在路由器R1和R3上配置命名的扩展ACL实现9.3实验2的要求
R1(config)#ipaccess-listextendedext1
R1(config-ext-nacl)#permittcp172.16.1.00.0.0.255host2.2.2.2eqwww
R1(config-ext-nacl)#permittcp172.16.1.00.0.0.255host192.168.12.2eqwww
R1(config-ext-nacl)#permittcp172.16.1.00.0.0.255host192.168.23.2eqwww
R1(config-ext-nacl)#permittcp172.16.1.00.0.0.255host2.2.2.2eqtelnet
R1(config-ext-nacl)#permittcp172.16.1.00.0.0.255host192.168.12.2eq
telnet
R1(config-ext-nacl)#permittcp172.16.1.00.0.0.255host192.168.23.2eq
telnet
R1(config)#interfaceg0/0
R1(config-if)#ipaccess-groupext1in
R3(config)#ipaccess-listextendedext3
R3(config-ext-nacl)#denyicmp172.16.3.00.0.0.255host2.2.2.2log
R3(config-ext-nacl)#denyicmp172.16.3.00.0.0.255host192.168.12.2log
R3(config-ext-nacl)#denyicmp172.16.3.00.0.0.255host192.168.23.2log
R3(config-ext-nacl)#permitipanyany
R3(config)#interfaceg0/0
R3(config-if)#ipaccess-groupext3in
(4)在路由器R1和R3上查看命名访问控制列表
R1#showaccess-lists
ExtendedIPaccesslistext1
10permittcp172.16.1.00.0.0.255host2.2.2.2eqwww
20permittcp172.16.1.00.0.0.255host192.168.12.2eqwww
30permittcp172.16.1.00.0.0.255host192.168.23.2eqwww
40permittcp172.16.1.00.0.0.255host2.2.2.2eqtelnet
50permittcp172.16.1.00.0.0.255host192.168.12.2eqtelnet
60permittcp172.16.1.00.0.0.255host192.168.23.2eqtelnet
R3#showaccess-lists
ExtendedIPaccesslistext3
10denyicmp172.16.3.00.0.0.255host2.2.2.2log
20denyicmp172.16.3.00.0.0.255host192.168.12.2log
30denyicmp172.16.3.00.0.0.255host192.168.23.2log
40permitipanyany
9.5实验4:
基于时间ACL
1.实验目的
通过本实验可以掌握:
(1)定义time-range
(2)配置基于时间ACL
(3)基于时间ACL调试
2.拓扑结构
实验拓扑如图9-1所示。
本实验要求只允许PC3主机在周一到周五的每天的8:
00-18:
00访问路由器R2的TELNET
服务。
3.实验步骤
R3(config)#time-rangetime
//定义时间范围
R3(config-time-range)#periodicweekdays8:
00to18:
00
R3(config)#access-list111permittcphost172.16.3.1host2.2.2.2eqtelnet
time-rangetime//在访问控制列表中调用time-range
R3(config)#access-list111permittcphost172.16.3.1host192.168.12.2eq
telnettime-rangetime
R3(config)#access-list111permittcphost172.16.3.1host192.168.23.2eq
telnettime-rangetime
R3(config)#interfaceg0/0
R3(config-if)#ipaccess-group111in
4.实验调试
(1)用“clock”命令将系统时间调整到周一至周五的8:
00-18:
00范围内,然后在PC3
上TELNET路由器R2,此时可以成功,然后查看访问控制列表111:
R3#showaccess-lists
ExtendedIPaccesslist111
10permittcphost172.16.3.1host2.2.2.2eqtelnettime-rangetime(active)(15matches)
20permittcphost172.16.3.1host192.168.12.2eqtelnettime-rangetime(active)
30permittcphost172.16.3.1host192.168.23.2eqtelnettime-rangetime(active)
(2)用“clock”命令将系统时间调整到8:
00-18:
00范围之外,然后在PC3上TELNET
路由器R2,此时不可以成功,然后查看