以太网交换安全

端口隔离

以太网中为了实现报文之间的二层隔离,通常使用 VLAN 技术实现二层广播域的隔离。 其实 VLAN 也有二层流量隔离的技术( MUX VLAN ),但 MUX VLAN 只有一个 Separate VLAN ,无法满足更加灵活的应用场景。例如:

在该场景中,要求:

  1. PC1与PC2之间二层隔离三层互通
  2. PC1和PC3之间二三层都隔离
  3. VLAN3 的主机可以访问 VLAN2 的主机

此时,针对端口隔离,可以实现 同一VLAN 内端口之间的隔离,端口。

具体功能

端口隔离包括隔离类型隔离模式

隔离类型又分为:

  • 双向隔离:同一端口隔离组的接口之间互相隔离,不同端口隔离组的接口不隔离。端口隔离只是针对同一台设备的端口隔离组成员,对于不同设备的接口无法实现。
  • 单向隔离:顾名思义,充分不必要或必要不充分。

隔离模式分为:

  • L2:二层隔离三层互通,隔离同一VLAN内的广播报文,不同端口下的用户还可以进行三层通信。缺省情况下,端口隔离模式为L2。
  • ALL:二层三层彻底隔离无法通信。

其中采用 L2 隔离模式时,类似于 VLAN 聚合技术 ,需要在 VLANIF 接口上使能 Proxy ARP 功能。

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 地址表项,可以选择关闭设备上指定接口或指定VLAN中所有接口的MAC地址学习功能,这样设备将不再从这些接口上学习新的MAC地址。

  • 配置限制MAC地址学习数,当超过限制数时不再学习MAC地址,同时可以配置当MAC地址数达到限制后对报文采取的动作,从而防止MAC地址表资源耗尽,提高网络安全性。

配置注意事项
  • 组播和广播不能作为静态 MAC 表项

  • 关闭基于接口的 MAC 地址学习功能时,有两个可选动作:forwarddiscard ,其中缺省为 Forward,即对报文进行转发;discard则会对报文的源MAC进行匹配,当接口和MAC地址与MAC地址表项匹配时,对该报文进行转发,否则丢弃。

  • 当同时配置基于接口和基于VLAN的禁止MAC地址学习功能时,基于VLAN的优先级更高。

端口安全

正常来说,每个连接终端设备的接口应该只接入一台PC(也就是限制MAC地址接入数量),如果在接口下级联一台交换机或集线器从而扩展上网接口,这种不利于网络稳定的做法应该被禁止。

通过部署端口安全,一方面限制接口学习MAC数量,同时配置越限的惩罚措施,另一方面将接口学习到的MAC地址转换为安全的MAC地址(包括安全动态MAC,安全静态MAC和Sticky MAC),来组织非法用户通过本接口与交换机通信,增强设备安全性。

安全MAC包括:

  • 安全动态MAC地址:使能端口安全但未使能 Sticky MAC 功能时转换的MAC地址。设备重启后会丢失,需要重新学习,缺省情况下不会老化,只有配置了安全MAC的老化时间后才会被老化。

  • 安全静态MAC地址:使能端口安全时手工配置的静态MAC地址。重启设备不会丢失,且不会被老化。

  • Sticky MAC地址:使能端口安全同时使能 Sticky MAC 功能后转换的MAC地址。重启设备不会丢失,且不会被老化。

Sticky MAC
  • 端口安全功能:

    • 使能之后,接口上之前学习到的动态MAC地址表项将被删除,之后学习到的 MAC地址将变为安全动态MAC地址。

    • 去使能之后,接口上的安全动态MAC地址将被删除,重新学习动态MAC地址。

  • Sticky MAC功能:

    • 使能之后,接口上的安全动态MAC地址表项将转化为Sticky MAC地址,之后学 习到的MAC地址也变为Sticky MAC地址。

    • 去使能之后,接口上的Sticky MAC地址,会转换为安全动态MAC地址。

例如设置了接口的最大学习MAC数量以后,那么需要学习连接接口的设备的MAC,可以使用动态学习或者静态配置,但动态学习的MAC在接口Up/Down后会丢失,而手动静态配置又太麻烦,因此先动态学习,接着转为Sticky,将该MAC”粘"在该接口上,可以理解为“动态学习的静态MAC”。

安全动态MAC的老化时间

假设老化时间为5分钟

  • 绝对老化时间:系统每隔一分钟计算一次每个MAC的存在时间,如果超过5分钟,则立即老化该安全动态MAC地址。

  • 相对老化时间:系统每隔一分钟检测一次是否有该MAC的流量,如果没有流量,则经过五分钟后将该安全动态MAC地址老化。

安全MAC与安全保护动作结合使用,包括:

  • Restrict:丢弃源MAC地址不存在的报文并上报告警

  • Protect:只丢弃源MAC地址不存在的报文,不上报告警

  • Shutdown:接口状态被置为error-down,并上报告警

实际应用中,设置不同的安全MAC来适应不同的应用场景:

MAC地址漂移防止与检测

MAC地址漂移:交换机上一个VLAN内有两个端口学习到同一个MAC地址,后学习到的MAC地址表项覆盖原MAC地址表项的现象。

一般出现MAC地址漂移意味着网络中存在环路,或存在网络攻击行为。

环路导致的MAC漂移只需要部署防环技术,例如STP消除二层环路,而如果是攻击行为,则要使用MAC地址防漂移特性。

防止MAC漂移

给接口MAC地址学习配置优先级,数值越高优先级越高。当同一个MAC地址被两个接口学习到后,优先级高的会保留,优先级低的则被覆盖。

配置不允许相同优先级接口MAC地址漂移,后学习到的伪造网络设备MAC地址表项不会覆盖之前正确的表项。但该特性有缺陷,当安全网络设备(正常设备)下电,交换机会学习攻击者的MAC,那么当安全网络设备上电时,交换机就不能学习到正常的MAC地址了。

MAC地址漂移检测

包括基于VLAN和全局检测两种方式

基于VLAN的MAC地址漂移

检测指定VLAN下的所有MAC地址是否发生漂移,当MAC地址发生漂移之后,可以配置指定的动作,例如告警、阻断接口或阻断MAC地址。

  • 发送告警:只发送告警给网管

  • 接口阻断:根据设置的阻塞时间对接口进行阻塞,并关闭接口收发报文的能力

  • MAC地址阻断:只阻塞当前MCA地址,而不对物理接口进行阻塞,当前接口下的其他MAC不受影响。

  • 当接口被阻塞时:

    • 检测到VLAN2内产生MAC地址漂移时,将产生漂移后的接口直接阻塞。

    • 接口将被阻塞10秒(该时长使用block-time关键字指定),接口被阻塞时是无法正常收发数据的。

    • 10秒之后接口会被放开并重新进行检测,此时该接口可以正常收发数据,如果20秒内没有再检测到MAC地址漂移,则接口的阻塞将被彻底解除;而如果20秒内再次检测到MAC地址漂移,则再次将该接口阻塞,如此重复2次(该次数使用retry-times关键 字指定),如果交换机依然能检测到该接口发生MAC地址漂移,则永久阻塞该接口。

全局MAC地址漂移

检测设备上的所有MAC地址是否发生漂移,若发生漂移,设备会上报告警到网关系统,用户也可以指定发生漂移后的处理动作,例如将接口关闭退出VLAN

MACsec

大部分数据在链路上以明文形式传输,MACsec定义了基于以太网的数据安全通信的方法,通过逐跳设备之间数据加密,保证数据传输安全性,对应的标准为802.1 AE.

在设备运行点到点MACsec时,在两台设备上预配置相同的CAK,两台设备通过MKA协议选举出一个Key Server,Key Server决定加密方案,Key Server会根据CAK等参数使用某种加密算法生成SAK数据密钥,由Key Server将SAK分发给对端设备,这样两台设备拥有相同的SAK数据密钥,可以进行后续MACsec数据报文加解密收发。

相关概念
  • CAK(Secure Connectivity Association Key,安全连接关联密钥):不直接用于数据报文的加密,由它和其他参数派生出数据报文的加密密钥。CAK可以在802.1X认证过程中下发, 也可以由用户直接静态配置。

  • MKA(MACsec Key Agreement protocol):用于MACsec 数据加密密钥的协商协议。

  • SAK(Secure Association Key,安全关联密钥):由CAK根据算法推导产生,用于加密安全通道间传输的数据。MKA对每一个SAK可加密的报文数目有所限制,当使用某SAK加密的PN耗尽,该SAK会被刷新。例如,在10Gbps 的链路上,SAK最快4.8分钟刷新一次。

  • Key Server:决定加密方案和进行密钥分发的MKA实体。

交换机流量控制

DHCP Snooping

IP Source Guard

参考文章