访问控制列表(ACL) Version 1.0
目标 理解访问控制列表的工作原理(访问控制列表的作用,路由器对访问控制列表的处理过程),访问控制列表的反码,访问控制列表的种类 掌握标准和扩展访问控制列表的配置方法 能够利用访问控制列表对网络进行控制 2/47
访问控制列表概述 访问控制列表(ACL)是应用在路由器接口的指令列表 ,用来告诉路由器哪些数据包可以接收转发,哪些数据包需要拒绝 3/47
访问控制列表概述(Cont.) IP数据包(这里IP所承载的上层协议为TCP) IP报头 TCP报头 数据 源地址 源端口 目的地址 源端口 目的端口 访问控制列表利用这4个元素定义的规则 4/47
访问控制列表概述(Cont.) 使用ACL实现网络控制:实现访问控制列表的核心技术是包过滤 内部网络 访问控制列表 Internet 办事处 公司总部 未授权用户 5/47
访问控制列表概述(Cont.) ACL的两种基本类型 标准访问控制列表 扩展访问控制列表 6/47
访问控制列表的作用 提供网络访问的基本安全手段 可用于Qos,控制数据流量 控制通信量 7/47
使用ACL阻止某指定网络访问另一指定网络 访问控制列表的作用(Cont.) 主机A 主机B 人力资源网络 研发网络 使用ACL阻止某指定网络访问另一指定网络 8/47
路由器对访问控制列表的处理过程 到达访问控制组接口的数据包 匹配 第一步 Y Y N 拒绝 允许 匹配 下一步 Y Y 允许 拒绝 目的接口 隐含的 拒绝 拒绝 数据包 垃圾桶 9/47
访问控制列表入与出 否 是 是 否 是 否 Icmp消息 转发数据包 进入数据包 接口上有访问 控制列表吗? 列表中的 下一个条目 源地址 匹配吗? 查找路由表 是 否 是 有更多 条目吗? 应用条件 否 路由到接口 拒绝 允许 10/47 Icmp消息 转发数据包
访问控制列表入与出(Cont.) 否 是 源地址匹配吗? 否 是 是 有更多条目吗? 否 Icmp消息 转发数据包 外出数据包 查找路由表 接口上有访问 控制列表吗? 否 是 列表中的 下一个条目 源地址匹配吗? 否 是 是 有更多条目吗? 应用条件 否 拒绝 允许 11/47 Icmp消息 转发数据包
Deny和permit命令 允许数据包通过应用了访问控制列表的接口 路由器拒绝数据包通过 router(config)#access-list access-list-number {permit|deny} {test conditions} 允许数据包通过应用了访问控制列表的接口 路由器拒绝数据包通过 12/47
Deny和permit命令(Cont.) 第一步,创建访问控制列表 第二步,应用到接口e0的入方向上 Router(config)#access-list 1 deny 172.16.4.13 0.0.0.0 Router(config)#access-list 1 permit 172.16.0.0 0.0.255.255 Router(config)#access-list 1 permit 0.0.0.0 255.255.255.255 Router(config)#interface ethernet 0 Router(config-if)#ip access-group 1 in 13/47
应用访问控制列表 路由器B 路由器C S0 S0 E0 E0 S1 S1 E0 路由器A 路由器D 扩展acl E0 E1 E1 标准acl 14/47
使用反码 反掩码和子网掩码相似,但写法不同 0表示需要比较 1表示忽略比较 反掩码和IP地址结合使用,可以描述一个地址范围 15/47
使用反码(Cont.) 128 64 32 16 8 4 2 1 字节位的位置和对应的地址值 例子 检查所有的地址位 匹配所有 0 0 0 0 0 0 0 0 = 忽略最后6个地址位 0 0 1 1 1 1 1 1 = 忽略最后4个地址位 0 0 0 0 1 1 1 1 = 检查最后2个地址位 1 1 1 1 1 1 0 0 = 不检查地址位 忽略字节中的所有位 1 1 1 1 1 1 1 1 = 16/47
使用反码(Cont.) Ip访问控制列表检测条件:检查ip子网 从172.30.16.0到172.30.31.0 网络 172.30.16 主机 0 0 0 1 0 0 0 0 与位匹配的掩码:0000 检查 1111 忽略 地址和反码:172.30.16.0 0.0.15.255 第三个8位组=00001111=15 17/47
使用通配符any和host 通配符any可代替0.0.0.0 255.255.255.255 Router(config)#access-list 1 permit 0.0.0.0 255.255.255.255 Router(config)#access-list 1 permit any 18/47
使用通配符any和host(Cont.) host表示与整个IP主机地址的所有位相匹配 Router(config)#access-list 1 permit 172.30.16.29 0.0.0.0 Router(config)#access-list 1 permit host 172.30.16.29 19/47
访问控制列表的种类 基本类型的访问控制列表 标准访问控制列表 扩展访问控制列表 20/47
标准访问控制列表 标准访问控制列表根据数据包的源IP地址来允许或拒绝数据包 标准IP访问控制列表的访问控制列表号从1到99 21/47
标准访问控制列表(Cont.) 标准访问控制列表只使用源地址描述数据,表明是允许还是拒绝 从172.16.4.0/24来的数据包可以通过! 从172.16.3.0/24来的数据包不能通过! 路由器 22/47
标准访问访问控制列表 否 有访问控制列表吗? 是 匹配 不匹配 源地址 否 更多条目? 应用条件 是 列表中的下一个条目 拒绝 允许 如果在访问控制列表中有的话 Icmp消息 转发数据包 23/47
标准访问控制列表的配置 第一步,使用access-list命令创建访问控制列表 Router(config)#access-list access-list-number { permit | deny } source [source- wildcard-mask ] [log] 第二步,使用ip access-group命令把访问控制列表应用到某接口 Router(config-if)#ip access-group access-list-number { in | out } 24/47
标准ACL应用1:允许特定源的流量 示例的网络拓扑 Non-172.16.0.0 172.16.3.0 172.16.4.0 S0 E0 172.16.4.13 示例的网络拓扑 25/47
标准ACL应用:允许特定源的流量(Cont.) 第二步,应用到接口E0和E1的出方向上 Router(config)#access-list 1 permit 172.16.0.0 0.0.255.255 Router(config)#interface Ethernet 0 Router(config-if)#ip access-group 1 out Router(config)#interface Ethernet 1 26/47
标准ACL应用:拒绝特定主机的通信流量 any 第一步,创建拒绝来自172.16.4.13的流量的ACL 第二步,应用到接口E0的出方向 Router(config)#access-list 1 deny host 172.16.4.13 Router(config)#access-list 1 permit 0.0.0.0 255.255.255.255 any Router(config)#interface Ethernet 0 Router(config-if)#ip access-group 1 out 27/47
标准ACL应用:拒绝特定子网的流量 第一步,创建拒绝来自子网172.16.4.0的流量的ACL 第二步,应用到接口E0的出方向 Router(config)#access-list 1 deny 172.16.4.0 0.0.0.255 Router(config)#access—list 1 permit any 0.0.0.0 255.255.255.255 Router(config)#interface Ethernet 0 Router(config-if)#ip access-group 1 out 28/47
扩展访问控制列表 扩展访问控制列表通过启用基于源和目的地址、传输层协议和应用端口号的过虑来提供更高程度的控制 扩展访问控制列表行中的每个条件都必须匹配,才认为该行被匹配,才会施加允许或拒绝条件 使用扩展ACL可以实现更加精确的流量控制 使用的数字号在100到199之间 29/47
扩展访问控制列表(Cont.) 扩展访问控制列表使用除源地址外更多的信息描述数据包,表明是允许还是拒绝 从172.16.3.0/24来的,到172.16.4.13的, 使用TCP协议, 利用HTTP访问的 数据包可以通过! 路由器 30/47
扩展访问访问控制列表(Cont.) 否 有访问控制列表吗? 是 不匹配 匹配 源地址 不匹配 匹配 目的地址 不匹配 匹配 协议 不匹配 协议任选项 否 应用条件 更多条目? 是 拒绝 允许 列表中的下一个条目 31/47 如果在访问控制列表中有的话 Icmp消息 转发数据包
扩展访问访问控制列表(Cont.) 常见端口号 端口号 (十进制) 关键字 描述 TCP/UDP 20 FTP-DATA 21 FTP (文件传输协议)FTP 23 TELNET 终端连接 25 SMTP 简单邮件传输协议 42 NAMESERVER 主机名字服务器 UDP 53 DOMAIN 域名服务器(DNS) 69 TFTP 普通文件传输协议(TFTP) 80 WWW 常见端口号 32/47
扩展访问控制列表的配置 第一步,使用access-list命令创建一个扩展访问控制列表 Router(config)#access-list access-list-number { permit | deny } protocol [source source-wildcard destination destination-wildcard ] [operator port][established][log] 33/47
扩展访问控制列表的配置(Cont.) 操作符及语法 意义 扩展访问控制列表操作符的含义 eq portnumber gt portnumber 大于端口号portnumber lt portnumber 小于端口号portnumber neq portnumber 不等于端口号portnumber 扩展访问控制列表操作符的含义 34/47
扩展访问控制列表的配置(Cont.) 第二步,使用ip access-group命令把一个扩展访问控制列表应用到某接口 Router(config-if)#ip access-group access-list-number { in | out } 35/47
扩展ACL应用1:拒绝ftp流量通过E0 第一步,创建拒绝来自172.16.4.0去往172.16.3.0的ftp流量的ACL Router(config)#access-list 101 deny tcp 172.16.4.0 0.0.0.255 172.16.3.0 0.0.0.255 eq 21 Router(config)#access-list 101 permit ip any any Router(config)#interface Ethernet 0 Router(config-if)#ip access-group 101 out 36/47
扩展ACL应用2: 第一步,创建拒绝来自172.16.4.0去往172.16.3.0的telnet流量的ACL Router(config)#access-list 101 deny tcp 172.16.4.0 0.0.0.255 172.16.3.0 0.0.0.255 eq 23 Router(config)#access-list 101 permit ip any any Router(config)#interface Ethernet 0 Router(config-if)#ip access-group 101 out 37/47
命名的访问控制列表 可以在标准ACL和扩展ACL中,使用一个字母数字组合的字符串(名字)代替来表示ACL的表号 命名IP访问列表允许从指定的访问列表删除单个条目。但如果添加一个条目到列表中,那么该条目被添加到列表末尾 不能以同一个名字命名多个ACL 在命名的访问控制列表下 ,permit和deny命令的语法格式与前述有所不同 38/47
命名的访问控制列表(Cont.) 第一步,创建名为cisco的命名访问控制列表 第二步,指定一个或多个permit(允许)及deny(拒绝)条件 第三步,应用到接口E0的出方向 Router(config)#ip access-list extended cisco Router(config ext-nacl)# deny tcp 172.16.4.0 0.0.0.255 172.16.3.0 0.0.0.255 eq 23 Router(config ext-nacl)# permit ip any any Router(config)#interface Ethernet 0 Router(config-if)#ip access-group cisco out 39/47
总结 访问控制列表(ACL)是应用在路由器接口的指令列表(即规则) 40/47
总结(Cont.) ACL可以分为两种基本类型 标准访问控制列表:检查被路由的数据包的源地址。其结果基于源网络/子网/主机IP地址来决定是允许还是拒绝转发数据包。它使用1到99之间的数字作为表号 扩展访问控制列表:对数据包的原地址与目标地址均进行检查。它也能检查特定的协议、端口号以及其它参数。它使用100到199之间的数字作为表号 41/47
总结(Cont.) 应用访问控制列表首先使用access-list命令创建访问控制列表,再用ip access-group命令把该访问控制列表应用到某一接口 可以使用一个字母数字组合的字符串(名字)代替前面所使用的数字(1~199)来表示ACL的表号 42/47
实验目标 掌握标准访问控制列表的配置和检验 掌握扩展访问控制列表的配置和检验 43/47
实验拓扑 网段1的测试PC 网段2的测试PC 10.10.1.10/24 10.10.2.10/24 网段1 网段2 E 1/0 10.10.1.1/24 E 1/1 10.10.2.1/24 公共外部路由器 Fa0/1 192.168.1.10/24 Fa0/1 192.168.1.1/24 Fa0/1 192.168.1.5/24 实验路由器1 实验路由器5 一共5组 Fa0/0 172.16.1.1/24 Fa0/0 172.16.5.1/24 测试服务器 172.16.1.10/24 测试服务器 172.16.5.10/24 44/47
实验完成标准 标准访问控制列表:按照要求,配置相应访问控制列表,实现要求中相应的访问控制 在网段1上的PC上,ping 172.16.1.10,测试结果是网络连通 在网段2上的PC上,ping 172.16.1.10,测试结果是网络不能到达 45/47
实验完成标准 扩展访问控制列表: 按要求配置相应的访问控制列表,实现要求中相应的访问控制 在网段1的PC上ping 172.16.1.10,测试结果是网络连通 在网段1的PC上访问内部服务器的WWW服务,成功 在网段1的PC上访问内部服务器的tenet服务,不成功 在网段2的PC上ping 172.16.1.10,测试结果是网络连通 在网段2的PC上访问内部服务器的WWW服务,不成功 在网段2的PC上访问内部服务器的tenet服务,成功 46/47