《[互联网]第5章 网络安全技术》由会员分享,可在线阅读,更多相关《[互联网]第5章 网络安全技术(40页珍藏版)》请在金锄头文库上搜索。
1、第5章 网络安全技术,张书源,5.5 访问控制列表,访问控制列表(ACL)是一种包过滤防火墙,它可以对通过设备的数据包进行过滤,从而实现对网络中的资源进行访问的访问控制。 ACL是一张规则检查表,通过设备的数据包会逐条检查这些规则,有些数据包可以通过,有些则被拒绝。 ACL有两种:标准访问控制列表、扩展访问控制列表。 三层交换机和路由器都支持访问控制列表。,访问控制列表的使用: 访问控制列表(ACL) 由多条判断语句组成。每条语句给出一个条件和处理方式(允许或拒绝)。 设备对收到的数据包按照判断语句的书写次序进行检查,当遇到相匹配的条件时,就按照指定的处理方式进行处理。 ACL中各语句的书写次
2、序非常重要,如果一个数据包和某判断语句的条件相匹配时,该数据包的匹配过程就结束了,剩下的条件语句被忽略。,ACL语句: 一个访问控制列表(ACL)可由多条语句组成,每条ACL语句的形式为: access-list 表号 处理方式 条件 1、表号:用于区分各访问控制列表。 一台设备中可定义多个ACL,每个ACL使用一个表号。 其中针对IP数据报的ACL可使用的表号为: 标准访问控制列表:199。 扩展访问控制列表:100199。 同一个ACL中各语句的表号相同。,2、处理方式:取值有permit(允许)和deny(拒绝)两种。当数据包与该语句的条件相匹配时,用给定的处理方式进行处理。 3、条件:
3、每条ACL语句只能定义一个条件。,例: access-list 1 permit 10.0.0.0 0.255.255.255 这是ACL 1中的一条语句; 条件为:10.0.0.0 0.255.255.255 当数据包符合此条件时被允许通过。,5.5.1 标准访问控制列表,标准ACL的表号为199。 标准ACL的条件为源地址条件,格式为:地址 通配符掩码 检查时,用数据包中的源IP地址与条件相匹配,如果匹配成功,则用语句中指定的处理方式处理;如果匹配不成功,则检查下一条语句。,通配符掩码:,通配符掩码决定了地址中的哪些位需要精确匹配,哪些位不需要匹配。 通配符掩码是一个32位数,采用点分十进
4、制方式书写。匹配时,“0”表示检查的位,“1”表示不检查的位。 如:192.168.1.1 0.0.255.255 表示检查前16位,忽略后16位,所以这个条件表示的地址是 192.168.*.*。,标准ACL语句:,access-list 199 permit | deny 地址 通配符掩码 如: access-list 1 permet 192.168.1.0 0.0.0.255 access-list 1 deny 172.16.0.0 0.0.255.255 第1句表示:允许源IP地址为192.168.1.*的数据包。 第2句表示:拒绝源IP地址为172.16.*.*的数据包。,any
5、条件:,当条件为:0.0.0.0 255.255.255.255 它表示任意地址,这个条件可以用any代替。 如: access-list 1 permet any 表示允许源IP地址为任意值的数据包。,host关键字:,当条件为:IP地址 0.0.0.0 它表示某单一的IP地址,这个条件可以写作为:host IP地址 如: access-list 1 permet host 192.168.1.1 表示允许源IP地址为192.168.1.1的数据包。,隐含语句:,在每个访问控制列表的最后都隐含一条语句: access-list 表号 deny any 它表示拒绝所有。 所以任何一个与前面各语
6、句都不匹配的数据包都会被拒绝。,使用ACL:,定义ACL后,它还不会发生作用。需要把ACL应用在一个指定接口上才能起作用。 使用ACL: Router(config)# interface 接口号 Router(config-if)# ip access-group 表号 in | out in:表示在数据包进入设备时使用ACL进行过滤。 out:表示在数据包离开设备时使用ACL进行过滤。 如果没有指定此参数,默认为out。,标准ACL配置举例1,要求:只有172.16.1.0/24和172.16.2.0/24中的客户机可以访问192.168.1.0/24中的主机,其它网络中的主机不能访问。,
7、192.168.1.0/24,172.16.1.0/24,172.16.2.0/24,10.1.1.0/24,F0/1,配置交换机接口:略。 配置完成后,各网络间都可以通信。,定义ACL:,Switch(config)#access-list 1 permit 172.16.1.0 0.0.0.255 Switch(config)#access-list 1 permit 172.16.2.0 0.0.0.255,应用ACL:,Switch(config)#interface f0/1 Switch(config-if)#ip access-group 1 out,说明: 1、查看ACL: S
8、witch#show access-lists 2、删除ACL: Switch(config)#no access-list 表号 如果配置一个ACL时写错了条件或语句顺序有错,只能删除整个ACL再重新配置。 3、在每个接口、每个方向上只能应用一个ACL。 4、一个ACL可以应用到多个接口上。,标准ACL配置举例2,要求:拒绝源地址为10.*.*.*的主机访问192.168.1.0/24中的主机,其它网络中的主机不受限制。,192.168.1.0/24,172.16.1.0/24,172.16.2.0/24,10.1.1.0/24,F0/1,配置交换机接口:略。 配置完成后,各网络间都可以通信
9、。,定义ACL:,Switch(config)#access-list 1 deny 10.0.0.0 0.255.255.255 Switch(config)#access-list 1 permit any,应用ACL:,Switch(config)#interface f0/1 Switch(config-if)#ip access-group 1 out,说明: 不能省略:access-list 1 permit any 如果省略该语句,则所有和语句1不匹配的数据包都会被隐含的access-list 1 deny any语句拒绝。,5.5.2 扩展访问控制列表,扩展ACL的表号为100
10、199。 扩展ACL可以使用地址作为条件,也可以用协议作为条件。 扩展ACL既可以测试数据包的源地址,也可以测试数据包的目的地址。,扩展ACL的语句: access-list 表号 处理方式 条件 表号:取值100199。 处理方式:permit(允许)或deny(拒绝)。 条件:协议 源地址 目的地址 运算符 端口号 (1) 协议:用于匹配数据包使用的网络层或传输层协议,如IP、TCP、UDP、ICMP等。 (2) 源地址、目的地址:使用“地址 通配符掩码”的形式,也可以使用any、host关键字。 (3) 运算符 端口号:用于匹配TCP、UDP数据包中的端口号。,运算符包括lt(小于)、g
11、t(大于)、eq(等于)、neq(不等于)。 端口号用于对应一种应用,如21FTP、23Telnet、25SMTP、53DNS、80HTTP等。 “运算符 端口号”可匹配数据包的用途。如:“eq 80”可匹配那些访问Web网站的数据包。 在条件中,协议、源地址、目的地址是必需的, “运算符 端口号”可以没有。,例:access-list 100 permit ip 192.168.0.0 0.0.255.255 10.0.0.0 0.255.255.255 eq 80 表示允许来自192.168.*.*的IP数据报访问位于10.*.*.*的Web站点。,扩展ACL定义后,也需要使用 ip ac
12、cess-group 命令应用在指定接口上才能起作用。 如: Router(config)# interface e0 Router(config-if)# ip access-group 100 out,在每个扩展ACL末尾也有一条默认语句: access-list 表号 deny ip any any 它会拒绝所有与前面语句不匹配的数据包。,扩展ACL配置举例1,要求:禁止192.168.1.0/24网络和10.1.1.0/24网络间的通信,其它通信不受影响。,192.168.1.0/24,172.16.1.0/24,172.16.2.0/24,10.1.1.0/24,F0/1,F0/4,
13、方案1: Switch(config)#access-list 100 deny ip 192.168.1.0 0.0.0.255 10.1.1.0 0.0.0.255 Switch(config)#access-list 100 permit ip any any Switch(config)#interface f0/1 Switch(config-if)#ip access-group 100 in,本方案在f0/1口的入栈方向进行过滤,它可以滤除那些从192.168.1.0/24网络发出的,目的地为10.1.1.0/24网络的IP数据报。但不会阻止从10.1.1.0/24网络发往192
14、.168.1.0/24网络的数据报。,方案2: Switch(config)#access-list 100 deny ip 192.168.1.0 0.0.0.255 10.1.1.0 0.0.0.255 Switch(config)#access-list 100 permit ip any any Switch(config)#interface f0/4 Switch(config-if)#ip access-group 100 out,本方案在f0/4口的出栈方向进行过滤,它与方案1的效果相同。 显然,定义ACL时,需要事先考虑应用的接口和传输的方向。,扩展ACL配置举例2,S0:2
15、00.1.1.1/24,E0:192.168.1.1/24,R1,F0:172.16.1.1/16,R2,PC1: .10,PC2: .2.2,S0:200.1.1.2/24,DCE,要求:禁止对192.168.1.1接口的ping操作,其它操作不受影响。,分析: Ping 操作使用ICMP协议传输数据包,所以,可以用以下ACL语句禁止ping 192.168.1.1: access-list 100 deny icmp any host 192.168.1.1 access-list 100 permit ip any any 第1句:禁止源自任意地址的ICMP数据报到达192.168.1.
16、1。 把以上ACL应用在R1的接口上可过滤对E0口的ping操作。,R1(config)# access-list 100 deny icmp any host 192.168.1.1 R1(config)#access-list 100 permit ip any any R1(config)#interface e0 R1(config-if)#ip access-group 100 in R1(config-if)#interface s0 R1(config-if)#ip access-group 100 in,把ACL100分别应用在e0口和s0口上,用于过滤来自不同方向的ping信号。 说明:由于ICMP协议除了用于传输ping命令数据包外,还用于传输错误消息,所以,此举实际上扩大了过滤范围,不推荐使用。,扩展ACL配置举例3,S0:200.1.1.1/24,E0:192.168.1.1/24,R1,F0:172.16.1.1/16,