交换机安全(2)- MAC地址泛洪
MAC层攻击 – MAC地址泛洪
常见的二层攻击或交换机攻击是MAC泛洪,入侵者使用大量无效的源MAC地址,这会导致交换机的CAM表溢出,由于交换机在MAC地址表中找不到目的MAC地址对应的端口,从而导致交换机向其它所有端口定期泛洪数据帧、交换机不会再接收新的合法条目,这会影响到网络中的所有用户的传输速度。
攻击者可通过MAC泛洪实现DOS攻击,也可能会获取全网的数据包。
CAM表的容量依据交换机的型号有所不同,常用的Catalyst 接入层交换机为8192,可通过以下的命令查看。
Switch #show mac-address-table count
MAC地址的老化时间默认为300秒,可通过如下命令查看
Switch #show mac-address-table aging-time
攻击步骤
1、 攻击者以不同的源MAC地址发送多个数据包。
2、 在短时间内,交换机的CAM表被填满,无法再接受新的条目。攻击的行为需要持续不断,否则MAC地址老化后会清空CAM表。
3、 交换机开始把它接收到的所有数据包,向所有端口泛洪。因此,攻击者可能在任何端口获取网络中的所有数据包。
防御措施
在交换机端口上限定一个具体的MAC地址或限定MAC地址的数量。可以让交换机自动学习,也可以手动配置MAC地址。
步骤1:启用端口安全,注意,动态端口不能设置,需要将端口模式设置为Access.
Switch#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)#int fa0/1
Switch(config-if)#switchport mode access
Switch(config-if)#switchport port-security
步骤2:设置接口允许接入的最大MAC地址数量为4,默认为1
Switch(config-if)#switchport port-security maximum 4
步骤3:指定该接口允许接入的具体MAC地址,该配置为可选项,如不指定,交换机端口会自动学习任意4个MAC地址,并只为这4个MAC地址提供服务。
Switch(config-if)#switchport port-security mac-address H.H.H
步骤4:使静态配置在端口上的安全地址老化。当交换机端口启用了端口安全后,默认情况下,端口学到地MAC地址不会老化过期。
Switch(config-if)#switchport port-security aging static
步骤5:当不允许的MAC地址尝试接入时,定义该接口采取的行为。
Switch(config-if)#switchport port-security violation {protect | restrict | shutdown}
Protect 保护:丢弃未授权地址发来的数据帧,但不会为这个违规行为创建日志消息。
Restrict 限制:丢弃未授权地址发来的数据帧,创建日志消息并发送SNMP Trap消息。
Shutdown 关闭:这是默认的模式。交换机从一个端口收到未授权地址发来的数据帧后,就会把这个端口置为err-disabled状态,记录日志并发送SNMP Trap消息,必须要管理员手动开启或使用errdisable recovery特性来重新启用该端口。
检查端口安全配置
管理员可使用命令“Show port-security”来查看哪些端口启用了端口安全特性。
加入Interface参数查看特定接口的输出信息:
还可以使用address变量参数来查看MAC地址表的安全信息。注意:剩余时间(Remaining Age)一项没有信息,因为当交换机端口启用了端口安全后,默认情况下,端口学到地MAC地址不会老化过期。该项只有在为接口配置了过期时间后才会显示出来,相关命令为:switchport port-security aging time 300
可以使用以下命令查看端口当前连接的MAC地址信息:
使用粘性MAC地址的端口安全
前面我们讲的端口安全可以通过限制每个交换机端口只允许设置数量的MAC地址,来缓解MAC地址欺骗攻击。但这并没有指定具体的MAC地址。
最严格的端口安全实施方案是在每个端口上,只允许指定的MAC地址接入。当然这样会带来很多接入问题,管理员的工作负担也需要考虑。但粘性MAC地址特性能够很好地解决这一问题。
当使用粘性MAC地址时,交换机端口会自动学习MAC地址,它既可以限制交换机端口,使其只接受单个具体的MAC地址,又无需管理员收集所有合法设备的MAC地址,再手动关联到交换机端口上,有效地减轻了管理员工作负担。
命令:Switch(config-if)#switchport port-security mac-address sticky
原理:使用粘性MAC地址时,交换机端口自动学习MAC地址,然后记住这个MAC地址并将其以静态条目的形式存入运行配置(Running configuration)中,并把这个MAC地址当作端口安全特性允许接入的唯一MAC地址。如果交换机重启用,需要重新学习MAC地址。
注意:
1、接口会把所有动态安全MAC地址,转换为粘性安全MAC地址,包括在粘性学习特性启用前,动态学习到的地址。
2、交会机把粘性安全MAC地址添加到运行配置中,并不会添加到启动配置中,除非管理员将运行配置复制到启动配置中。如果存入了启动配置中,重新交换机后无需重新学习MAC地址。
3、该命令不能用于语音VLAN接口。
下图所示,Type项由原来的“SecureDynamic”变为“SecureSticky”.
下图所示,交换机端口学习到的MAC地址以静态条目形式存入到了运行配置中。
在必要的端口上阻塞单播泛洪
默认情况下,交换机若不知道所收数据包的目的MAC地址,它就会向接收端口所属VLAN中的所有端口进行泛洪。
但有一些端口不需要泛洪。如端口手动配置了MAC地址,或启用端口安全的端口上,配置了安全MAC地址或学习到了足够的MAC地址。从而减少不必要的流量。
既可以限制未知目的MAC地址的单播泛洪,也可以限制未知目的MAC地址的组播泛洪。
语法:
本文出自 “海纳百川” 博客,转载请与作者联系!
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。