诡秘的“端口安全”功能

我们经常听说“端口安全”功能是如何强大,应用如何灵活,但我们很少人系统地对“端口安全”功能有一个比较系统的了解。Cisco IOS交换机中的端口安全(Port security)功能可以使你限制在端口上使用的MAC地址(称之为“安全MAC地址”),或者MAC地址范围,或者最大安全地址数,以实现阻止未授权MAC地址的用户访问,当然它的应用方式很灵活。本篇仅介绍其基本简介,详细的介绍参见《Cisco/H3C交换机高级醘与管理技术手册》一书。

    【说明】以下内容摘自笔者编著的,新市的《Cisco/H3C交换机高级配置与管理技术手册》一书。其姊妹篇《Cisco/H3C交换机配置与管理完全手册》(第二版)(目前当当网卓越网上最低为震撼的63折)实际时间仅用了三个多月就已实现重印,感谢各位的大力支持!!


15.3.1 端口安全功能简介
     Cisco IOS交换机的端口安全功能允许你通过配置静态安全MAC地址实现仅允许固定设备连接,也允许你在一个端口上配置一个最大的安全MAC地址数,仅允许在此数之前识别到的设备连接在该端口上。当超过了所设置的最大安全端口数,将触发一个安全违例事件,在端口上配置的一个基于违例行为模式的违例行为将被执行。如果你在某个端口上配置的最大安全MAC地址数为1,则设备上的该安全端口仅允许与固定设备连接。如果一个安全MAC地址在一个端口上进行了安全绑定,则这个MAC地址不能进入该端口加入的VLAN以外的任何其他端口,否则包将在硬件层被悄悄地丢弃。
1.    端口安全功能支持的安全MAC地址类型
Cisco IOS交换机端口安全功能支持以下几种安全MAC地址类型:
l  动态或者学习类型:动态安全MAC地址是在接收到连接在安全端口上主机发来的包时学习到的。在用户的MAC地址不固定时(如网络用户使用的经常移动的便携式电脑,如笔记本电脑),你可以使用此种类型。
l  静态或配置类型:静态安全MAC地址是用户通过CLI或者SNMP配置的MAC地址。在你的MAC地址保持固定时(如用户使用的是PC机),可以使用这种类型。
l  粘性(Sticky)类型:粘性安全MAC地址也是像动态安全MAC地址一样,是通过学习得到的,但是它是交换机重启后仍然有效,又有点像静态安全MAC地址那样。在存在大量固定MAC地址,而且你又不想手动配置这些安全MAC地址时,就可以使用这种类型。
    如果一个端口已达到了它最大的安全MAC地址数,而你又想配置一个静态安全MAC地址,此时会被拒绝的,并显示一个错误提示。如果一个端口已达到了它最大的安全MAC地址数,而又添加了一个新的动态安全MAC地址,则会触发一个违例行为。
    你可以使用clear port-security命令清除动态安全MAC地址,你可以使用no switchport port-security mac-address命令一次性清除粘性和静态安全MAC地址。
2.    安全MAC地址的最大数
    一个安全端口默认有一个安全MAC地址。你可以改变这个默认值在1~3000之间。当你在一个端口上设置最大安全MAC数后,你可以以下任一方式在地址表中包括这些安全MAC地址:
l  你可以使用switchport port-security mac-address mac_address接口配置模式命令配置安全MAC地址。
l  你可以通过port-security mac-address VLAN范围配置命令在中继端口上一个范围VLAN中配置所有安全MAC地址。
l  你可以允许端口用所连接设备的MAC地址动态配置安全MAC地址。
l  你可以静态配置一些安全MAC地址,而允许其余的安全MAC地址动态配置(如果端口链路关闭,则该端口上所有动态安全MAC地址将不再是安全的)。
l  你可以MAC地址为粘性的(sticky)。这些安全MAC地址可以动态学习,也可以手动配置,然后保存在MAC地址表中,并添加到运行配置文件中。然后这些地址会保存在交换机的启动配置文件中,在交换机重启后,接口不用再重新学习。虽然你可以手动配置粘性安全MAC地址,但这种做法是不建议的。
    【经验之谈】在一个中继端口上,最大的安全MAC地址数可以基于端口和基于端口VLAN来配置。端口上配置的最大安全MAC地址数可以大于或等于(不能小于)端口VLAN上配置的最大安全MAC地址数。如果端口上配置的最大安全MAC地址数小于端口VLAN上配置的最大安全MAC地址数(例如VLAN 10上设置的最大安全MAC地址为3,而端口的最大安全MAC地址数采用默认的1),则在端口VLAN上的安全MAC地址数超过端口上设置的最大安全MAC地址数时,端口就将被关闭。
3.安全MAC地址老化
    在接收超过3000MAC地址时,你可能想要老化安全MAC地址,以便对一些长时间没有连接的安全MAC地址从MAC地址表中除去。但是粘性(sticky)安全MAC地址不支持老化过程。
    默认情况下,端口安全不会对安全地址进行老化的,学习到后,这个MAC地址将一直在端口上保留,直到交换机重启或才链路断开(当然这是在没有启用粘性MAC地址功能时)。端口安全允许你基于绝对(absolute)或者静止(inactivity)模式配置MAC地址老化和老化时间。绝对模式的老化周期是n~n+1分钟之间;静止模式的老化周期是在n+1~n+2分钟之间(时间增量为1分钟)。
    使用安全MAC地址老化功能可以还没达到端口上配置的最大安全MAC地址数之前,在安全端口上删除和添加PC,无需手动删除现有的安全MAC地址。
    除非明确地使用switchport port-security aging static命令静态配置MAC地址老化时间,静态安全MAC地址是不会进行老化进程的,即使在在该端口上配置了老化进程。
4.端口上的粘性MAC地址
    通过启用粘性端口安全功能,你可以配置一个接口去转换动态MAC地址为粘性安全MAC地址,并添加他们到交换机的运行配置文件中。在你不需要用户移动到其他端口时,你可以使用这种功能,这样你就无需要在每个端口上手动配置大量的安全MAC地址。
    要启用粘性端口安全功能,可键入switchport port-security mac-address sticky接口配置模式命令。此时,接口将转换所有动态安全MAC地址为粘性安全MAC地址,包括在启用粘性安全MAC地址功能前动态学习到的所有MAC地址。
    粘性安全MAC地址不会自动成为交换机启动配置文件的一部分,如果你保存了运行配置文件,则在交换机重启后,接口也不用再重新学习MAC地址了,但是如果你不保存运行配置文件,则以前自动转换的粘性安全MAC地址表将丢失。
    如果禁止粘性端口安全功能,则粘性安全MAC地址将自动转换为动态安全MAC地址,并自动从交换机的运行配置文件中删除。在配置了最大安全MAC地址数后,这些粘性安全MAC地址将以表的形式存储。要使某设备成为某端口唯一的连接者,则可以在该端口上配置最大的安全MAC地址数为1。如果添加到某端口的安全MAC地址数超过配置的最大安全MAC地址数将发生违例事件。
5. 违例行为模式
你可以配置发生违例事件后所采取的行为模式:
l  保护(protect):当安全MAC地址数超过端口上配置的最大安全MAC地址数时,未知源MAC地址的包将被丢弃,直到MAC地址表中的安全MAC地址数降到所配置的最大安全MAC地址数以内,或者增加最大安全MAC地址数。而且这种行为没有安全违例行为发生通知。建议不要在中继端口上配置保护行为,因为在中继端口上某个VLAN达到该VLAN中所配置的最大安全MAC地址数时端口将被禁止,即使端口上的安全MAC地址数并未达到端口上配置的最大安全MAC地址数。
l  限制(Restrict):与前面的保护模式差不多,也是在安全MAC地址数达到端口上配置的最大安全MAC地址数时,未知源MAC地址的包将被丢弃,直到MAC地址表中的安全MAC地址数降到所配置的最大安全MAC地址数以内,或者增加最大安全MAC地址数。但这种行为模式会有一个SNMP捕获消息发送,并记录系统日志,违例计数器增加1SNMP捕获通知发送的频率可以通过snmp-server enable traps port-security trap-rate命令来控制,默认值为0,表示在发生任何安全违例事件时发送SNMP捕获通知。
l  关闭(Shutdown):发生安全违例事件时,端口立即呈现错误(error-disabled)状态,关闭端口(端口指示灯熄灭)。同时也会发送一个SNMP捕获消息并记录系统日志,违例计数器增加1在想禁止非MAC地址,需要安全安全环境下,你可以使用这种模式。
l  关闭VLANShutdown VLAN):适用于VLAN的安全违例模式。在这种模式下,在发生安全违者罚款例事件时,该端口对应的VLAN都将呈错误禁止状态,关闭对应VLAN,而不关闭对应的端口。
     表15-1列出了各种违例模式和对应采取的行为。
15-1    端口安全下的各种违例模式和对应采取的行为
违例模式
违例通信转发
发送SNMP trap消息
发送系统日志消息
显示错误消息
违例计数器递增
关闭端口
保护(protect
No
No
No
No
No
No
限制(restrict
No
Yes
Yes
No
Yes
No
关闭(shutdown
No
No
No
No
Yes
Yes
关闭VLANshutdown vlan
No
No
Yes
No
Yes
No
    当一个安全端口处于错误禁止(error-disabled)状态,你可以通过errdisable recovery causepsecure-violation全局配置模式命令进行恢复,或者你可以通过shutdownno shut down接口配置模式命令重启。如果端口是处于每VLAN错误禁止(per-VLAN errdisable)状态,则你可以使用clear errdisable interface name vlan range命令在端口上重启这个VLAN。你也可以使用errdisable recovery interval interval命令自定义从指定的错误禁止状态恢复的时间,默认为300秒。
    【经验之谈】如果你可以预见有非法安全MAC地址包将在某端口上发送,你可能想要在安全端口上对非法安全MAC地址包进行传输速率限制。端口安全认为MAC地址为0的包为组播或广播源MAC地址,认为是非法包。你可以选择限制这些包的传输速率,在超过速率时将在端口上捕获一个违例事件。也就为像组播或广播包传输留有一定的空间。
本文转自王达博客51CTO博客,原文链接http://blog.51cto.com/winda/865543如需转载请自行联系原作者

茶乡浪子
上一篇:脱欧不打紧 IBM英国新建4座云数据中心


下一篇:Zabbix之生产经典操作案例集