1、第八章访问控制列表与端口安全 第1页,共49页。本章课题 8.1 访问控制列表简介 8.2 编号访问控制列表配置 8.3 命名访问控制列表 8.4 基于时间访问的控制列表 8.5 端口安全第2页,共49页。网络安全隐患 (1)非人为的或自然力造成的故障、事故等。(2)人为但属于操作人员无意的失误造成的数据丢失或损坏。(3)来自园区网外部和内部人员的恶意攻击和破坏。第3页,共49页。现有网络安全现有网络安全防御体制防御体制IDS68%杀毒软件杀毒软件99%防火墙防火墙98%ACL71%现有网络安全体制第4页,共49页。第5页,共49页。什么是访问列表ISPIP Access-list:IP访问列
2、表或访问控制列表,简称IP ACLIP ACL就是对经过网络设备的数据包根据一定的规则进行数据包的过滤。第6页,共49页。访问列表的作用 访问控制列表可以限制网络流量、提高网络性能、控制网络通信流量等,同时ACL也是网络访问控制的基本安全手段。在路由器或交换机的接口上配置访问控制列表后,可以对进出接口及通过接口中继的数据包进行安全检测。配置访问控制列表的目的主要基于以下两点。(1)限制路由更新。(2)限制网络访问。第7页,共49页。访问控制列表类型 标准IP访问控制列表 编号的标准IP访问控制列表 命名的标准IP访问控制列表 扩展IP访问控制列表 编号的扩展IP访问控制列表 命名的扩展IP访问
3、控制列表第8页,共49页。ACL的一些相关特性(1)每一个接口可以在进入(Inbound)和离开(Outbound)两个方向上分别应用一个ACL,且每个方向上只能应用一个ACL。(2)ACL语句包括两个动作,一个是拒绝(Deny),一个是允许(Permit)。(3)在路由器或交换机接口接收到报文时,应用在接口进入方向的ACL(内向ACL)起作用。(4)在路由选择决定以后,数据准备从某一个接口输出报文时,应用在接口离开方向的ACL(外向ACL)起作用。(5)每个ACL的结尾有一个隐含的deny all(拒绝的所有数据包)语句。因此,如果包不匹配ACL中的任何语句,将被拒绝。第9页,共49页。AC
4、L的内向匹配过程 路由器取出内向ACL的数据包进入路由器数据包进入路由器路由器取出内向ACL的第一条语句允许还是拒绝?匹配项与数据包中的各项进行比较是否匹配匹配项与数据包是否匹配?允许还是拒绝?取出内向ACL下一条语句最后一条?允许进行路由选择拒绝决定转发接口丢弃结束第10页,共49页。ACL的外向匹配过程 路由器取出外向ACL的第一条语句选择离开接口是否匹配?匹配项与数据包中的各项进行比较取出外向ACL下一条语句最后一条?允许还是拒绝?允许数据包从离开接口送出结束丢弃拒绝第11页,共49页。通配符掩码 通配符掩码掩码的二进制形式描 述0.0.0.000000000.00000000.0000
5、0000.00000000整个lP地址必须匹配0.0.0.25500000000.00000000.00000000.11111111只有前24位需要匹配0.0.255.25500000000.00000000.11111111.11111111只有前16位需要匹配0.255.255.25500000000.11111111.11111111.11111111只有前8位需要匹配255.255.255.25511111111.11111111.11111111.11111111全部不需要匹配0.0.15.25500000000.00000000.00001111.11111111只有前20位需要
6、匹配0.0.3.25500000000.00000000.00000011.11111111只有前22位需要匹配第12页,共49页。IP地址与通配符掩码的作用规则 IP地址与通配符掩码的作用规则是:32位的IP地址与32位的通配符掩码逐位进行比较,通配符掩码为0的位要求IP地址的对应位必须匹配,通配符掩码为1的位所对应的IP地址位不必匹配,例如,IP地址192.168.1.0(相应的二进制为11000000 10101000 00000001 00000000)通配符掩码0.0.0.255(相应的二进制为00000000 00000000 00000000 11111111)该通配符掩码的前2
7、4位为0,对应的IP地址位必须匹配,即必须保持原数不变,该通配符掩码的后8位为1,对应的IP地址位不必匹配,即IP地址的后8位可以为任意值。也就是说IP地址192.168.1.0和通配符掩码0.0.0.255匹配的结果是192.168.1.0这个网段内的所有主机。第13页,共49页。两个特殊的关键字 Host:表示一种精确匹配,是通配符掩码0.0.0.0的简写形式。例如,只检查IP地址为192.168.1.10的数据包,可使用以下两种ACL语句。access-list 10 permit 192.168.1.10 0.0.0.0 或 access-list 10 permit host 192
8、.168.1.10Any:表示全部不进行匹配,是通配符掩码255.255.255.255的简写形式。例如,允许所有的IP地址的数据都通过,可使用以下两种ACL语句。access-list 10 permit 192.168.1.10 255.255.255.255或 access-list 10 permit any第14页,共49页。配置访问控制列表的步骤 第一步是配置访问控制列表语句 第二步是把配置好的访问控制列表应用到某个端口上。第15页,共49页。访问控制列表配置的注意事项(1)注意访问控制列表中语句的次序,尽量把作用范围小的语句放在前面。(2)新的表项只能被添加到访问表的末尾,这意味
9、着不可能改变已有访问表的功能。如果必须要改变,只有先删除已存在的访问控制列表,然后创建一个新访问控制列表,将新访问控制列表用到相应的接口上。(3)标准的IP访问控制列表只匹配源地址,一般都使用扩展的IP访问控制列表以达到精确的要求。(4)标准的访问控制列表尽量靠近目的,扩展的访问控制列表尽量靠近过滤源的位置,以免访问控制列表影响其他接口上的数据流。(5)在应用访问控制列表时,要特别注意过滤的方向。(6)在编号ACL中所有未被允许的都是被拒绝的,所以允许的内容一定要写全面。第16页,共49页。配置标准IP访问控制列表 access-list access-list-number denylper
10、mit source-address source-wildcard-mask access-list-number的范围是199 访问控制列表的动作:denylpermit第17页,共49页。应用访问控制列表到接口 Ip access-group access-list-number in|out 访问控制列表只有被应用到某个接口才能达到报文过滤的目的。接口上通过的报文有两个方向,一个是通过接口进入路由器的报文,即in方向的报文,一个是通过接口离开路由器的报文,即out方向的报文,out也是访问控制列表的默认方向。第18页,共49页。显示访问控制列表配置 Show access-list a
11、ccess-list-number 其中,access-list-number是可选参数,如果指定则显示指定编号的访问控制列表配置细节,如果不指定则显示所有访问控制列表的配置细节。第19页,共49页。例8-1 请在如图8-3所示的路由器上配置ACL,实现PC1不能访问172.16.10.0网段,而PC2能访问(假设各路由器各接口已配置好,并全网已连通)。第20页,共49页。扩展IP访问控制列表的配置 access-list access-list-number permit|deny protocol source-address source-wildcard-mask source-por
12、t destination-address destination-wildcard-mask destination-port log options 扩展IP访问控制列表的编号范围为100199 访问控制列表的动作:permit或deny 协议:IP、TCP、UDP、ICMP、EIGRP、GRE等。源端口号:端口号的范围是065535 第21页,共49页。端口范围运算符 运算符及其语法描 述例eq portnumber等于,用于指定单个的端口eq 21或eq ftpgt portnumber大于,用于指定大于某个端口的一个端口范围gt 1024lt portnumber小于,用于指定小于某
13、个端口的一个端口范围lt 1024neq portnumber不等于,用于指定除了某个端口以外的所有端口neq 21range portnumber1 portnumber2指位于两个端口号间的一个端口范围range 135 145第22页,共49页。命名访问控制列表的引入 不管是标准IP访问控制列表,还是扩展的IP访问控制列表,其编号的范围都不超过100个,这样,就可能出现编号不够用的情况;还有就是仅用编号区分的访问控制列表不便于网络管理员对访问控制列表作用的识别。命名IP访问控制列表是通过一个名称而不是一个编号来引用的。命名的访问控制列表可用于标准的和扩展的访问表中。名称的使用是区分大小写
14、的,并且必须以字母开头。在名称的中间可以包含任何字母数字混合使用的字符,名称的最大长度为100个字符。第23页,共49页。编号IP访问控制列表和命名IP访问控制列表的主要区别(1)名字能更直观地反映出访问控制列表完成的功能。(2)命名访问控制列表突破了99个标准访问控制列表和100个扩展访问控制列表的数目限制,能够定义更多的访问控制列表。(3)单个路由器上命名访问控制列表的名称在所有协议和类型的命名访问控制列表中必须是唯一的,而不同路由器上的命名访问控制列表名称可以相同。(4)命名访问控制列表是一个全局命令,它将使用者进入到命名IP列表的子模式,在该子模式下建立匹配和允许拒绝动作的相关语句。(
15、5)命名IP访问控制列表允许删除个别语句,当一个命名访问控制列表中的语句要被删除时,只需将该语句删除即可,而编号访问控制列表中则需要将访问控制列表中的所有语句删除后再重新输入。(6)命名访问控制列表的命令为ip access-list,在命令中用standard和extended来区别标准访问控制列表和扩展访问控制列表,而编号访问控制列表的配置命令为access-list,并用编号来区别标准和扩展。第24页,共49页。创建标准命名IP ACL的步骤(1)configure terminal 进入全局配置模式。(2)ip access-list standard name用数字或名字来定义一条S
16、tandard IP ACL并进入access-list配置模式。(3)deny source source-wildcard|host source|any或permit source source-wildcard|host source|any在access-list 配置模式声明一个或多个的允许通过(permit)或丢弃(deny)的条件以用于决定报文是转发或还是丢弃。host source代表一台源主机,any 代表任意主机。(4)end 退回到特权模式。(5)show access-lists name显示该接入控制列表,如果不指定access-list及name参数,则显示所有接
17、入控制列表。第25页,共49页。例8-3 在三层交换机上进行ACL设置,以实现VLAN10的主机不能与VLAN30内的主机进行通信,能与VLAN20内的主机进行通信,而VLAN20可以和VLAN30的主机进行通信。第26页,共49页。命名扩展IP访问控制列表配置(1)configure terminal进入全局配置模式。(2)ip access-list extended name用数字或名字来定义一条Extended IP ACL 并进入access-list配置模式。(3)deny|permit protocol source source-wildcard|host source|any
18、 operatorport destination destination-wildcard|host destination|any operator port 在access-list配置模式,声明一个或多个的允许通过(permit)或丢弃(deny)的条件以用于决定匹配条件的报文是转发或还是丢弃。以如下方式定义TCP或UDP的目的或源端口。操作符(operator)只能为eq。如果操作符在source source-wildcard 之后,则报文的源端口匹配指定值条件生效。如果操作符在destination destination-wildcard之后,则报文的目的端口匹配指定值条件生效
19、。port为十进制值,它代表TCP或UDP的端口号,值范围为065535。protocol可以为IP、TCP、UDP、IGMP、ICMP等协议。(4)end退回到特权模式。(5)show access-lists name显示该接入访问控制列表,如果不指定name参数,则显示所有接入访问控制列表。第27页,共49页。基于时间的访问控制列表 基于时间的访问控制列表能够应用于编号访问控制列表和命名访问控制列表。为了实现基于时间的ACL功能,首先应定义一个Time-range接口来指明日期时间范围,与其他接口一样,Time-range接口通过名称来标识。然后,将Time-range接口与对应的ACL
20、关联起来,这是通过在ACL中用Time-range引用时间范围实现的。第28页,共49页。路由器时钟设置 路由器时钟设置在特权模式下进行,分为两步:首先设置系统日期时间,然后用当前系统时钟更新路由器实时时钟。配置命令为:Clock set hh:mm:ss day month year/设置系统日期时间 Clock update-calender/更新路由器实时时钟第29页,共49页。定义Time-range接口 time-range time-range-name 此命令的作用是定义Time-range接口的名称,参数time-range-name为Time-range接口的名称,接口名称长
21、度为132个字符,中间不能有空格。Time-range接口命名后,就进入了时间定义模式,在此模式中还要使用absolute和periodic两个命令定义具体的时间范围。值得注意的是,一个时间范围只能包括一个absolute绝对时间范围和多个周期时间范围。第30页,共49页。定义绝对时间范围 Absolute start start-ttme start-date end end-time end-datestar-time、end-time分别用于指定开始和结束时间,使用24小时表示,其格式为“小时:分钟”,start-date和end-date分别用于指定开始的日期和结束的日期,使用日/月/
22、年的时间格式,而不是通常采用的月/日/年格式,这一点必须注意。命令中的start和end关键字都是可选的。当省略start及其后面的时间、日期时,表示与之相联系的ACL语句立即生效,并一直作用到end处的时间、日期为止;当省略end及其后面的时间,表示与之相联系的ACL语句在start处表示的时间、日期开始生效,并且永远发生作用,当然把访问控制列表删除了的话就不会起作用了。第31页,共49页。常用的时间定义形式 时 间 定 义描 述Absolute start 17:00Absolute start 17:00 1 decemdber 2000Absolute end 17:00Absolut
23、e end 17:00 l decemdber 2000Absolute start 8:00 end 20:00Absolute start 17:00 1 decemdber 2000 end 5:00 31 decemdber 2000从配置的当天17:00开始直到永远从2000年12月1日17:00开始直到永远从配置时开始直到当天的17:00结束从配置时开始直到2000年12月1日17:00结束从8点开始到20点结束从2000年12月1日17:00开始直到2000年12月31日5:00结束第32页,共49页。定义周期、重复使用的时间范围 Periodic days-of-the-wee
24、k hh:mm to days-of-the-week hh:mm periodic是以星期为参数来定义时间范围的一个命令。它可以使用大量的参数,其范围可以是一个星期中的某一天、某几天的组合,或者使用关键字daily、weekdays、weekend等。第33页,共49页。periodic中的参数 参 数描 述Monday,Tuesday,Wednesday,Thursday,Friday,Staturday,SundayDailyWeekdayWeekend某一天或某几天的结合每天从星期一到星期五星期六和星期日第34页,共49页。常用的时间范围定义形式 时间范围定义描 述Periodic w
25、eekend 7:00 to 19:00Periodic weekday 8:00 to 17:00Periodic daily 7:00 to 17:00Periodic staturday 17:00 to Monday 7:00Periodic Monday Friday 7:00 to 20:00星期六早上7:00到星期日晚上7:00星期一早上8:00到星期五下午5:00每天的早上7:00到下午5:00星期六下午5:00到星期一早上7:00星期一和星期五的早上7:00到晚上8:00第35页,共49页。应用时间访问控制列表的注意事项 由于使用带时间范围的访问控制列表依赖于路由器的系统时钟
26、,所以要保证路由器时钟设置的准确性。在time-range范围命令中同时使用absolute和periodic语句 第36页,共49页。例8-5 要求从2019年1月1日起在每周工作时间段8:00到18:00内禁止172.16.10.0网段的主机访问HTTP的数据流。第37页,共49页。交换机端口安全 利用交换机的端口安全功能可以防止局域网大部分的内部攻击对用户、网络设备造成的破坏。如MAC地址攻击、ARP攻击、IP/MAC地址欺骗等。交换机端口安全的基本功能 限制交换机端口的最大连接数 端口的安全地址绑定第38页,共49页。交换机端口安全如果一个端口被配置为一个安全端口,当其安全地址的数目已
27、经达到允许的最大个数后;如果该端口收到一个源地址不属于端口上的安全地址的包时,一个安全违例将产生。一个安全违例将产生。当安全违例产生时,你可以选择多种方式来处理违例:Protect:当安全地址个数满后,安全端口将丢弃未知名地址(不是该端口的安全地址中的任何一个)的包。RestrictTrap:当违例产生时,将发送一个Trap通知。Shutdown:当违例产生时,将关闭端口并发送一个Trap通知。第39页,共49页。配置安全端口 端口安全最大连接数配置 switchport port-security打开该接口的端口安全功能switchport port-security maximum val
28、ue设置接口上安全地址的最大个数,范围是1128,缺省值为128。switchport port-security violationprotect|restrict|shutdown设置处理违例的方式第40页,共49页。配置安全端口端口的安全地址绑定 switchport port-security 打开该接口的端口安全功能 switchport port-security mac-address mac-address ip-address ip-address手工配置接口上的安全地址。第41页,共49页。端口安全的限制(1)一个安全端口不能是一个Aggregate Port。(2)一个安
29、全端口只能是一个Access Port。(3)在端口上声明的安全地址的数量限制。一个静态模块上的百兆端口(Fast Ethernet,固定在交换机上)上最多支持20个同时声明IP地址和MAC地址的安全地址,一个动态模块(可插拔模块)上的端口最多支持110个同时声明IP地址和MAC地址的安全地址。另外,由于这种同时声明IP地址和MAC地址的安全地址占用的硬件资源与ACLs所占用的系统硬件资源共享,因此在某一个端口上应用了ACLs,则相应地该端口上所能设置的声明IP地址的安全地址个数将会减少。(4)一个安全端口上的安全地址的格式保持一致,即一个端口上的安全地址要么全是绑定了IP地址的安全地址,要么
30、都是绑定MAC地址的安全地址。第42页,共49页。例8-6 在一个交换机上的端口fastethernet 0/3上应用端口安全功能,设置最大地址个数为2,设置违例方式为protect。第43页,共49页。例8-7 为接口fastethernet 0/3配置一个安全地址:00d0.f800.075c,并为其绑定一个IP地址:192.168.12.2。第44页,共49页。安全地址的老化时间 在没有为一个接口上的所有安全地址配置老化时间时,所有的安全地址永远不失效。但由于有的安全地址很长时间未访问端口,这个安全地址由于没有失效还是要占用一安全端口的个数。如果设置了老化时间,在一个老化时间允许的时间内
31、,一个安全地址没有访问端口,则从安全地址表中将这个安全地址删除,空出一个安全地址位置,以让其他地址成为安全地址。当设置安全地址的最大个数后,可以让交换机自动地增加和删除接口上的安全地址了。第45页,共49页。设置老化时间 Static:表示老化时间将同时应用于手工配置的安全地址和自动学习的地址,否则只应用于自动学习的地址。Time:表示这个端口上安全地址的老化时间,范围是01440,单位是分钟。如果老化时间被设置为0,则老化功能实际上被关闭。老化时间按照绝对的方式的计时,也就是一个地址成为一个端口的安全地址后,经过Time指定的时间后,这个地址就将被自动删除。Time的默认值为0。第46页,共
32、49页。关闭安全地址老化功能 在接口配置模式下使用如下命令来关闭一个接口的安全地址老化功能(老化时间为0)。no switchport port-security aging time 使用命令来使老化时间仅应用于动态学习到的安全地址。no switchport port-security aging static第47页,共49页。查看端口安全信息 (1)查看接口的端口安全配置信息。show port-security interface interface-id (2)查看安全地址信息。show port-security address (3)显示某个接口上的安全地址信息。show port-security interface-id address(4)显示所有安全端口的统计信息,包括最大安全地址数、当前安全地址数以及违例处理方式等。show port-security第48页,共49页。第49页,共49页。