
什么是端口安全?端口安全是如何防止攻击的?
为什么需要端口安全? 非法用户获取到设备某端口的MAC地址以后,企图以该端口的MAC地址为目的MAC地址与设备通信,从而发起攻击。比如非法用...
为什么需要端口安全?
非法用户获取到设备某端口的MAC地址以后,企图以该端口的MAC地址为目的MAC地址与设备通信,从而发起攻击。比如非法用户构造大量源MAC地址变化的报文并发送给交换机后,交换机的MAC表项资源就可能被耗尽。当MAC表资源被耗尽后,即使交换机再收到正常的报文,也无法学习到报文中的源MAC地址。再比如,在对接入用户的安全性要求较高的网络中,外来人员使用自己带来的电脑访问公司网络,会给网络带来极大的安全隐患。
为避免这种攻击及隐患,设备可以使能端口安全功能,将端口学习到的动态MAC地址转换为安全MAC地址。此时,端口上之前学习到的动态MAC地址表项将被删除,端口重新学习的MAC数量达到上限后不再学习新的MAC地址。对于端口收到的报文,如果其中的源MAC地址在安全MAC地址表项中,则放通该报文进来;如果其中的源MAC地址在安全MAC地址表项中不存在,均视为非法用户攻击,并实施丢弃报文、告警上报、或者关闭端口的保护动作。
端口安全如何工作?
MAC地址表中的表项可以分为动态表项、静态表项和黑洞表项。而安全MAC是一种业务类型的MAC地址表项,是通过动态表项转换来的。
使能端口安全后,并实施丢弃报文、告警上报、或者关闭端口的保护动作。
安全MAC地址的分类
安全MAC地址分为安全动态MAC、安全静态MAC与Sticky MAC,详细情况请参见下表。
表1-1 安全MAC地址的说明
类型
定义
特点
安全动态MAC地址
使能端口安全而未使能Sticky MAC功能时转换的MAC地址。
设备重启后表项会丢失,需要重新学习。
缺省情况下不会被老化,只有在配置安全MAC的老化时间后才可以被老化。
安全动态MAC地址的老化类型分为:绝对时间老化和相对时间老化。
如设置绝对老化时间为5分钟:系统每隔1分钟计算一次每个MAC的存在时间,若大于等于5分钟,则立即将该安全动态MAC地址老化。否则,等待下1分钟再检测计算。
如设置相对老化时间为5分钟:系统每隔1分钟检测一次是否有该MAC的流量。若没有流量,则经过5分钟后将该安全动态MAC地址老化。
安全静态MAC地址
使能端口安全时手工配置的静态MAC地址。
不会被老化,手动保存配置后重启设备不会丢失。
使能安全静态MAC需要事先知道终端的MAC,然后手工配置端口、MAC和VLAN的对应关系。
Sticky MAC地址
使能端口安全后又同时使能Sticky MAC功能后转换到的MAC地址。
不会被老化,手动保存配置后重启设备不会丢失。
使能Sticky MAC功能不需要事先知道终端的MAC,使能Sticky MAC功能后端口自动实现端口、MAC、VLAN的对应关系。
MAC地址变化情况
当端口安全功能或者Sticky MAC功能使能/去使能时,端口上的MAC地址会变化或者被删除,详细情况请参见下表。
功能
使能
去使能
端口安全功能
端口上之前学习到的动态MAC地址表项将被删除,之后学习到的MAC地址将变为安全动态MAC地址。
端口上的安全动态MAC地址将被删除,重新学习动态MAC地址。
Sticky MAC功能
端口上的安全动态MAC地址表项将转化为Sticky MAC地址,之后学习到的MAC地址也变为Sticky MAC地址。
端口上的Sticky MAC地址,会转换为安全动态MAC地址。
超过安全MAC地址限制数后的动作
使能端口安全后,端口默认只能学习一个安全MAC,可以手工设置端口学习安全MAC数目。端口上安全MAC地址数达到限制后,如果收到源MAC地址是安全MAC列表里不存在的MAC地址,无论目的MAC地址是否存在,交换机即认为有非法用户攻击,就会根据配置的动作对端口做保护处理。端口安全保护动作有restrict、protect和shutdown三种。端口安全的保护动作请参见下表,缺省情况下,保护动作是丢弃该报文并上报告警。
表1-2 超过安全MAC地址限制的端口保护动作
动作
说明
restrict
丢弃源MAC地址不在安全MAC地址列表里的报文并上报告警。推荐使用restrict动作。
protect
只丢弃源MAC地址不在安全MAC地址列表里的报文,不上报告警。
shutdown
端口状态被置为error-down,并上报告警。
出现静态MAC地址漂移时的动作
安全MAC地址也属于静态MAC地址,端口上配置静态MAC地址漂移的检测功能后,如果收到报文的源MAC地址已经存在在其他端口的静态MAC表中,交换机则认为存在安全静态MAC地址漂移,就会根据配置的动作对端口做保护处理。端口安全保护动作有restrict、protect和shutdown三种。
表1-3 静态MAC地址漂移的端口保护动作
动作
说明
restrict
丢弃触发静态MAC地址漂移的报文并上报告警。推荐使用restrict动作。
protect
只丢弃触发静态MAC地址漂移的报文,不上报告警。
shutdown
端口状态被置为error-down,并上报告警。
网络中如何应用端口安全?
端口安全经常使用在以下几种场景:
应用在接入层设备,通过配置端口安全可以防止仿冒用户从其他端口攻击。
应用在汇聚层设备,通过配置端口安全可以控制接入用户的数量。
接入层使用场景
如下图所示,用户PC1和PC3通过IP Phone接入SwitchA设备,用户PC2直接接入设备SwitchA,为了保证接入设备SwitchA的安全性,防止非法用户攻击,可以在接入设备SwitchA连接终端的端口上配置端口安全功能,限定交换机端口下所连接的主机MAC。组网中的终端MAC都确定后,如果接入设备SwitchA收到源MAC地址不在安全MAC列表里的报文,无论目的MAC地址是否存在,接入交换机即认为有非法用户攻击,就会根据配置的动作对端口做保护处理。在接入交换机配置端口安全功能,可以防止以下两点:
防止外来人员使用自己带来的电脑访问公司网络。
防止本公司员工私下更换位置。
端口安全使用在接入设备的组网场景
如果接入用户变动比较频繁,可以通过端口安全把动态MAC地址转换为安全动态MAC地址。这样可以在用户变动时,及时清除绑定的MAC地址表项。
如果接入用户变动较少,可以通过端口安全把动态MAC地址转换为Sticky MAC地址。这样在保存配置重启后,绑定的MAC地址表项不会丢失。
如果接入用户变动较少,且数量较少的情况下,可以通过配置为安全静态MAC地址,实现MAC地址表项的绑定。
汇聚层使用场景
如下图所示,树状组网中,多个用户通过SwitchA和汇聚层设备Switch进行通信。为了保证汇聚设备的安全性,控制接入用户的数量,可以在汇聚Switch设备配置端口安全功能,同时指定安全MAC地址的限制数,防止MAC地址泛洪造成汇聚Switch设备MAC地址表填满。
端口安全使用在汇聚层设备的组网场景