目录访问控制列表概述标准访问控制列表实验扩展访问控制列表实验2020/3/28访问控制列表的基本概念访问控制列表(ACL,AccessControlList)也称为访问列表(ACcessList),是应用在网络设备接口的有序指令序列,通过指令定义一些规则,依据规则对经过该接口上的数据包进行转发(接受)或丢弃(拒绝)控制访问控制列表主要有标准访问控制列表和扩展访问控制列表标准访问控制列表只能针对源地址来定义规则,即定义规则接受(permit)或拒绝(deny)某个地址发出的数据分组(包括主动发出的分组和应答分组)扩展访问控制列表可以针对数据流的源地址/目的地址、源端口/目的端口、协议或其他信息来定义规则注意:访问控制列表不能对网络设备自身产生的数据分组进行控制2020/3/28定义ACL访问控制列表定义示例定义标准访问控制列表,列表号为1,拒绝所有来源于主机172.16.14.11的数据分组通过,允许其他来源的数据分组通过router(config)#access-list1deny172.16.14.110.0.0.0router(config)#access-list1permit0.0.0.0255.255.255.255//或者access-listpermitany2020/3/28定义ACL访问控制列表定义示例定义标准访问控制列表,列表号为2,拒绝所有来源于172.16.14.0/24子网的数据分组通过,允许其他来源的数据分组通过router(config)#access-list2deny172.16.14.00.0.0.255router(config)#access-list2permitany//或者access-list2permit0.0.0.0255.255.255.2552020/3/28定义ACL访问控制列表定义示例定义扩展访问控制列表,列表号为101,拒绝子网172.16.14.0/24的设备通过HTTP访问主机172.16.14.1,允许其他使用TCP协议的数据分组通过router(config)#access-list101denytcp172.16.14.00.0.0.255192.168.1.10.0.0.0eq80router(config)#access-list101permittcpanyany//access-list101permitipanyany则是允许所有使用IP协议的数据分组通过2020/3/28应用ACLipaccess-group标识号码{in│out}:对进入或流出网络设备特定端口的数据分组应用指定的访问控制列表例如:router(config)#interfacefastethernet0/0router(config-if)#ipaccess-group3in//对f0/0的入站数据应用标准访问控制列表3的规则处理router(config-if)#ipaccess-group109out//对f0/0的出站数据应用扩展访问控制列表109的规则处理2020/3/28ACL的执行流程对于一个到达网络设备的数据分组来说,一旦它与访问控制列表中的某个表项的规则匹配,就执行该表项相应的操作,而对此数据分组的检测就结束,不再匹配该分组与后面的表项访问控制列表的隐含规则是拒绝所有数据包。即,如果所有的ACL判断语句都检测完毕,仍没有匹配的语句出口,则该数据分组将视为被拒绝而丢弃。因此,在实战中,标准访问控制列表往往在最后加上一条permitany规则(表示不符合前面规则的分组全部允许通过);而扩展访问控制列表则在最后加上一条permitipanyany(表示不符合前面规则的IP分组全部允许通过)或者permittcpanyany(表示不符合前面规则的并且使用TCP的IP分组全部允许通过)等规则2020/3/28ACL常用命令汇总Access-list:定义一个访问控制列表标准访问控制列表的建立:access-list标识号码或名字deny│permit源地址通配符标识号码范围为1-99扩展访问控制列表的建立:access-list标识号码或名字deny│permit协议标识源地址通配符源端口目的地址通配符目的端口标识号码范围为100-199协议标识如ip、tcp、udp、icmp等说明:通配符用反掩码表示,路由器只检查通配符(以二进制表示)中“0”对应的地址位2020/3/28ACL常用命令汇总应用访问控制列表ipaccess-group标识号码{in│out}:对进入或流出特定端口的数据分组应用指定的访问控制列表例如:router(config)#interfacefastethernet0/0router(config-if)#ipaccess-group3in//对f0/0的入站数据应用标准访问控制列表3的规则处理router(config-if)#ipaccess-group109out//对f0/0的出站数据应用扩展访问控制列表109的规则处理2020/3/28ACL常用命令汇总查看访问控制列表的定义:showipaccess-list2020/3/28ACL常用命令汇总查看接口的访问控制列表绑定情况:showipinterface接口类型接口编号2020/3/28目录访问控制列表概述标准访问控制列表实验扩展访问控制列表实验2020/3/28标准访问控制列表实验配置相关实验环境WebServer地址:192.168.1.1/24,PC0地址:172.16.14.11/24,PC1地址:172.16.14.12/24路由器地址:f0/0:192.168.1.254/24,F0/1:172.16.14.254/24测试:经过上述简单配置,PC与WebServer间能否ping通2020/3/28标准访问控制列表实验建立访问控制列表Router(config)#access-list1deny172.16.14.110.0.0.0Router(config)#access-list1permit0.0.0.0255.255.255.255//或Router(config)#access-list1permitany2020/3/28标准访问控制列表实验在路由器的F0/1端口启用访问控制列表Router(config)#interfacef0/1Router(config-if)#ipaccess-group1in//对入站数据应用access-list12020/3/28标准访问控制列表实验可用以下几条命令查看访问控制列表的定义及其绑定情况Router#showipaccess-lists//查看访问控制列表的定义StandardIPaccesslist1denyhost172.16.14.11permitany2020/3/28标准访问控制列表实验可用以下几条命令查看访问控制列表的定义及其绑定情况Router#showipinterfacefastethernet1/0//查看指定端口的访问控制列表绑定情况FastEthernet0/1isup,lineprotocolisup(connected)Internetaddressis172.16.14.254/23Broadcastaddressis255.255.255.255……Outgoingaccesslistisnotset//没设置对f0/1口的出站绑定Inboundaccesslistis1//已设置对f0/1口的入站数据应用标准访问控制列表1……2020/3/28标准访问控制列表实验可用以下几条命令查看访问控制列表的定义及其绑定情况Router#showrunning-config//可查看访问控制列表的定义及绑定情况……interfaceFastEthernet0/1ipaddress172.16.14.254255.255.254.0ipaccess-group1in//已设置对f0/1口的入站数据应用标准访问控制列表1……!access-list1denyhost172.16.14.11//标准访问控制列表1的定义access-list1permitany!……2020/3/28标准访问控制列表实验测试效果(建议在CPT的仿真模式下观察效果)从PC0pingWebServer,通否?为什么?从PC1pingWebServer,通否?为什么?从WebServerpingPC0,通否?为什么?从WebServerpingPC1,通否?为什么?2020/3/28标准访问控制列表实验在路由器的f0/1端口上改变启用access-list1的模式(由in改为out),再次进行前述的四项测试并分析结果Router(config-if)#noipaccess-group1in//删除对入站数据的绑定设置Router(config-if)#ipaccess-group1out//对出站数据应用access-list12020/3/28标准访问控制列表实验将前述access-list1的最后一条规则删除,再次进行前述的四项测试并分析结果Router(config)#noaccess-list1说明:用前述方法建立的访问控制列表,无法只删除其中的一条命令,例如,命令“noaccess-list1”删除的是整个标准访问控制列表1。要想能够单独删除访问控制列表中的某条或某几条命令,参阅接下来的2张幻灯片2020/3/28标准访问控制列表实验问题:无法单独删除访问控制列表的某条或某几条规则键入以下配置router(config)#access-list1deny172.16.14.100.0.0.0router(config)#access-list1permit0.0.0.0255.255.255.255然后用showrunning-config查看的配置结果:……access-list1denyhost172.16.14.10access-list1permitany……这样建立的ACL不能只删除其中某条或某几条规则,只能将编号相同的整个ACL列表删除,如用命令“noaccess-list1”删除整个access-list12020/3/28标准访问控制列表实验解决方法:用ipaccess-list命令代替access-list命令建立ACL:router(config)#ipaccess-liststandard1//如果是扩展ACL则用ipaccess-listextended101等命令router(config-std-nacl)#deny172.16.14.100.0.0.0router(config-std-nacl)#permit0.0.0.0255.255.255.255//或router(config-std-nacl)#permitany用showrunning-config查看的配置结果:……access-list1denyhost172.16.14.10access-list1permitany……可用以下方法单独删除第2条规则:router(config)#ipaccess-liststandard1router(config-std-nacl)#nopermit0.0.0.0255.255.255.2552020/3/28目录访问控制列表概述标准访问控制列表实验扩展访问控制列表实验2020/3/28扩展访问控制列表实验可利用前一个实验建立的实验环境注意:为免受第一个实验的影响,可删除第一个实验建立的访问控制列表access-list1及其在路由器f0/1端口上的绑定2020/3/28扩展访问控制列表实验建立扩展访问控制列表Router(c