以太网交换安全

1.前言:
 太网交换安全技术,包括端口隔离、端口安全、MAC地址漂移检测、风暴控制、端口限速、MAC地址表安全、DHCP Snooping及IP Source Guard等常见技术,以提高对以太网交换安全的理解和认识

2.目标:
 阐明端口隔离的类型及配置
 阐明端口安全的技术原理
 实现MAC地址漂移检测
 阐明交换机流量抑制与风暴控制功能
 阐明DHCP Snooping技术应用场景
 阐明IP Source Guard工作原理

3.端口隔离
 以太交换网络中为了实现报文之间的二层隔离,用户通常将不同的端口加入不同的VLAN,实现二层广播域的隔离。
 大型网络中,业务需求种类繁多,只通过VLAN实现报文二层隔离,会浪费有限的VLAN资源。
 如下图所示,由于某种业务需求,PC1与PC2虽然属于同一个VLAN ,但是要求它们在二层不能互通(但允许三层互通),PC1与PC3在任何情况下都不能互通,但是VLAN 3里的主机可以访问VLAN 2里的主机。 那么该如何解决这个问题呢?


 3.1 端口隔离技术原理


 3.2 端口隔离配置命令
 1.使能端口隔离功能:缺省情况下,未使能端口隔离功能。如果不指定group-id参数时,默认加入的端口隔离组为1
 [Huawei-GigabitEthernet0/0/1] port-isolate enable [ group group-id ]
 2.配置端口隔离模式
 缺省情况下,端口隔离模式为L2。
 L2 端口隔离模式为二层隔离三层互通。
 all 端口隔离模式为二层三层都隔离。
 [Huawei] port-isolate mode { l2 | all }
 3.3 案例配置:


 [Switch] vlan 2
 [Switch] port-isolate mode all
 [Switch] interface GigabitEthernet 0/0/1
 [Switch-GigabitEthernet0/0/1] port link-type access
 [Switch-GigabitEthernet0/0/1] port default vlan 2
 [Switch-GigabitEthernet0/0/1] port-isolate enable group 2
 [Switch] interface GigabitEthernet 0/0/2
 [Switch-GigabitEthernet0/0/2] port link-type access
 [Switch-GigabitEthernet0/0/2] port default vlan 2
 [Switch-GigabitEthernet0/0/2] port-isolate enable group 2
 [Switch] interface GigabitEthernet 0/0/3
 [Switch-GigabitEthernet0/0/3] port link-type access
 [Switch-GigabitEthernet0/0/3] port default vlan 2

4.MAC地址表安全
 4.1 MAC地址表项类型
 动态MAC地址表项:由接口通过报文中的源MAC地址学习获得,表项可老化。在系统复位、接口板热插拔或接口板复位后,动态表项会丢失。
 静态MAC地址表项:由用户手工配置并下发到各接口板,表项不老化。在系统复位、接口板热插拔或接口板复位后,保存的表项不会丢失。接口和MAC地址静态绑定后,其他接口收到源MAC是该MAC地址的报文将会被丢弃。
 黑洞MAC地址表项:由用户手工配置,并下发到各接口板,表项不可老化。配置黑洞MAC地址后,源MAC地址或目的MAC地址是该MAC的报文将会被丢弃。
 4.2 MAC地址表安全功能


 4.3 MAC地址表项配置
 1.配置静态MAC表项
 [Huawei] mac-address static mac-address interface-type interface-number vlan vlan-id
 2.配置黑洞MAC表项
 [Huawei] mac-address blackhole mac-address [ vlan vlan-id ]
 3.配置动态MAC表项的老化时间
 [Huawei] mac-address aging-time aging-time
 4.关闭基于接口的MAC地址学习功能
 [Huawei-GigabitEthernet0/0/1] mac-address learning disable [ action { discard | forward } ]
 5.关闭基于VLAN的MAC地址学习功能
 [Huawei-vlan2] mac-address learning disable
 6.配置基于接口限制MAC地址学习数
 [Huawei-GigabitEthernet0/0/1] mac-limit maximum max-num
 7.配置当MAC地址数达到限制后,对报文应采取的动作
 [Huawei-GigabitEthernet0/0/1] mac-limit action { discard | forward }

5.端口安全
 5.1 背景
 企业要求接入层交换机上每个连接终端设备的接口均只允许一台PC接入网络(限制MAC地址接入数量)。如果有员工试图在某个接口下级联一台小交换机或集线器从而扩展上网接口,那么这种行为应该被发现或被禁止,如左图所示。
 另一些企业还可能会要求只有MAC地址为可信任的终端发送的数据帧才允许被交换机转发到上层网络,员工不能私自更换位置(变更交换机的接入端口),如右图所示。
 通过交换机的端口安全(port security)特性可以解决这些问题


 5.2 端口安全概述
 通过在交换机的特定接口上部署端口安全,可以限制接口的MAC地址学习数量,并且配置出现越限时的惩罚措施。
 端口安全通过将接口学习到的动态MAC地址转换为安全MAC地址(包括安全动态MAC,安全静态MAC和Sticky MAC),阻止非法用户通过本接口和交换机通信,从而增强设备的安全性
 5.3 端口安全技术原理
 安全动态MAC地址:使能端口安全而未使能Sticky MAC功能时转换的MAC地址。
 安全静态MAC地址:使能端口安全时手工配置的静态MAC地址。
 Sticky MAC地址:使能端口安全后又同时使能Sticky MAC功能后转换到的MAC地址
 1.安全MAC地址通常与安全保护动作结合使用,常见的安全保护动作有:
 Restrict:丢弃源MAC地址不存在的报文并上报告警。
 Protect:只丢弃源MAC地址不存在的报文,不上报告警。
 Shutdown:接口状态被置为error-down,并上报告警。
 5.4 命令配置:
 使能端口安全功能
 [Huawei-GigabitEthernet0/0/1] port-security enable
 配置端口安全动态MAC学习限制数量
 [Huawei-GigabitEthernet0/0/1] port-security max-mac-num max-number
 手工配置安全静态MAC地址表项
 [Huawei-GigabitEthernet0/0/1] port-security mac-address mac-address vlan vlan-id
 配置端口安全保护动作
 [Huawei-GigabitEthernet0/0/1] port-security protect-action { protect | restrict | shutdown }
 使能接口Sticky MAC功能
 [Huawei-GigabitEthernet0/0/1] port-security mac-address sticky
 配置接口Sticky MAC学习限制数量
 [Huawei-GigabitEthernet0/0/1] port-security max-mac-num max-number
 手动配置一条sticky-mac表项
 [Huawei-GigabitEthernet0/0/1] port-security mac-address sticky mac-address vlan vlan-id
 5.5 端口安全配置举例 - 安全动态MAC


 [Switch1] interface GigabitEthernet 0/0/1
 [Switch1-GigabitEthernet 0/0/1] port-security enable
 [Switch1-GigabitEthernet 0/0/1] port-security max-mac-num 1
 [Switch1-GigabitEthernet 0/0/1] port-security protect-action restrict
 [Switch1] interface GigabitEthernet 0/0/2
 [Switch1-GigabitEthernet 0/0/2] port-security enable
 [Switch1-GigabitEthernet 0/0/2] port-security max-mac-num 1
 [Switch1-GigabitEthernet 0/0/2] port-security protect-action restrict
 [Switch1] interface GigabitEthernet 0/0/3
 [Switch1-GigabitEthernet 0/0/3] port-security enable
 [Switch1-GigabitEthernet 0/0/3] port-security max-mac-num 2
 [Switch1-GigabitEthernet 0/0/3] port-security protect-action shutdown
 5.6 端口安全配置举例 - Sticky MAC


 [Switch] interface GigabitEthernet 0/0/1
 [Switch-GigabitEthernet 0/0/1] port-security enable
 [Switch-GigabitEthernet 0/0/1] port-security max-mac-num 1
 [Switch-GigabitEthernet 0/0/1] port-security mac-address sticky
 [Switch] interface GigabitEthernet 0/0/2
 [Switch-GigabitEthernet 0/0/2] port-security enable
 [Switch-GigabitEthernet 0/0/2] port-security max-mac-num 1
 [Switch-GigabitEthernet 0/0/2] port-security mac-address sticky
 [Switch] interface GigabitEthernet 0/0/3
 [Switch-GigabitEthernet 0/0/3] port-security enable
 [Switch-GigabitEthernet 0/0/3] port-security max-mac-num 1
 [Switch-GigabitEthernet 0/0/3] port-security mac-address sticky
 [Switch-GigabitEthernet 0/0/3] port-security mac-address sticky 5489-98ac-71a9 vlan 1


6.MAC地址漂移
 6.1 概述
 MAC地址漂移是指交换机上一个VLAN内有两个端口学习到同一个MAC地址,后学习到的MAC地址表项覆盖原MAC地址表项的现象。
 当一个MAC地址在两个端口之间频繁发生迁移时,即会产生MAC地址漂移现象。
 正常情况下,网络中不会在短时间内出现大量MAC地址漂移的情况。出现这种现象一般都意味着网络中存在环路,或者存在网络攻击行为


 6.2 防止MAC地址漂移
 如果是环路引发MAC地址漂移,治本的方法是部署防环技术,例如STP,消除二层环路。如果由于网络攻击等其他原因引起,则可使用如下MAC地址防漂移特性
 1.配置接口MAC地址学习优先级
 2.配置不允许相同优先级接口MAC地址漂移
 6.3 MAC地址漂移检测
 交换机支持MAC地址漂移检测机制,分为以下两种方式:
 1.基于VLAN的MAC地址漂移检测
 配置VLAN的MAC地址漂移检测功能可以检测指定VLAN下的所有的MAC地址是否发生漂移。
 当MAC地址发生漂移后,可以配置指定的动作,例如告警、阻断接口或阻断MAC地址。
 2.全局MAC地址漂移检测
 该功能可以检测设备上的所有的MAC地址是否发生了漂移。
 若发生漂移,设备会上报告警到网管系统。
 用户也可以指定发生漂移后的处理动作,例如将接口关闭或退出VLAN。

7.MACsec
 7.1 背景
 绝大部分数据在局域网链路中都是以明文形式传输的,在某些安全性要求较高的场景下存在安全隐患。


 7.2 MACsec概述
 MACsec定义了基于以太网的数据安全通信的方法,通过逐跳设备之间数据加密,保证数据传输安全性,对应的标准为802.1AE。
 在交换机之间部署MACsec保护数据安全,例如在接入交换机与上联的汇聚或核心交换机之间部署 。
 当交换机之间存在传输设备时可部署MACsec保护数据安全。
 7.3 MACsec工作机制
 在设备运行点到点MACsec时,网络管理员在两台设备上通过命令行预配置相同的CAK,两台设备会通过MKA协议选举出一个Key Server,Key Server决定加密方案,Key Server会根据CAK等参数使用某种加密算法生成SAK数据密钥,由Key Server将SAK分发给对端设备,这样两台设备拥有相同的SAK数据密钥,可以进行后续MACsec数据报文加解密收发。



8.交换机流量控制
 8.1 流量抑制概述
 流量抑制可以通过配置阈值来限制广播、未知组播、未知单播、已知组播和已知单播报文的速率,防止广播、未知组播报文和未知单播报文产生流量泛洪,阻止已知组播报文和已知单播报文的大流量冲击。
 在接口入方向上,设备支持对广播、未知组播、未知单播、已知组播和已知单播报文按百分比、包速率和比特速率进行流量抑制。设备监控接口下的各类报文速率并和配置的阈值相比较,当入口流量超过配置的阈值时,设备会丢弃超额的流量。
 在VLAN视图下,设备支持对广播报文按比特速率进行流量抑制。设备监控同一VLAN内广播报文的速率并和配置的阈值相比较,当VLAN内流量超过配置的阈值时,设备会丢弃超额的流量


 8.2 流量抑制配置命令:
 配置流量抑制模式,缺省情况下,缺省的抑制模式为packets,在bits模式下,流量抑制的粒度更小、抑制更精确。
 [Huawei] suppression mode { by-packets | by-bits }
 配置流量抑制
 [Huawei-GigabitEthernet0/0/1] { broadcast-suppression | multicast-suppression | unicast-suppression} { percent-value | cir cir-value [ cbs cbs-value ] | packets packets-per-second }
 配置在接口出方向上阻塞报文
 [Huawei-GigabitEthernet0/0/1] { broadcast-suppression | multicast-suppression | unicast-suppression } block outbound
 8.3 案例


 [Switch]suppression mode by-packets
 [Switch-GigabitEthernet0/0/1] unicast-suppression 80
 [Switch-GigabitEthernet0/0/1] multicast-suppression 70
 [Switch-GigabitEthernet0/0/1] broadcast-suppression 60 

 8.4 风暴控制概述
 网络中存在的问题:
 正常情况下,当设备某个二层以太接口收到广播、未知组播或未知单播报文时,会向同一VLAN内的其他二层以太接口转发这些报文,如果网络存在环路,则会导致广播风暴,严重降低设备转发性能。
 可用的解决方案:
 风暴控制可以通过阻塞报文或关闭端口来阻断广播、未知组播和未知单播报文的流量。


 8.5 风暴控制工作原理
 风暴控制可以用来防止广播、未知组播以及未知单播报文产生广播风暴。在风暴控制检测时间间隔内,设备监控接口下接收的三类报文的包平均速率与配置的最大阈值相比较。当报文速率大于配置的最大阈值时,风暴控制将根据配置的动作来对接口进行阻塞报文或关闭接口的处理
 8.6 风暴控制配置命令
 配置接口对报文的风暴控制
 [Huawei-GigabitEthernet0/0/1] storm-control { broadcast | multicast | unicast } min-rate min-rate-value max-rate max-rate-value
 配置风暴控制的动作
 [Huawei-GigabitEthernet0/0/1] storm-control action { block | error-down }
 配置使能接口状态自动恢复
 [Huawei-GigabitEthernet0/0/1] error-down auto-recovery cause storm-control interval interval-value

9.DHCP Snooping
 9.1 概述
 为了保证网络通信业务的安全性,引入了DHCP Snooping技术,在DHCP Client和DHCP Server之间建立一道防火墙,以抵御网络中针对DHCP的各种攻击。
 DHCP Snooping是DHCP的一种安全特性,用于保证DHCP客户端从合法的DHCP服务器获取IP地址。DHCP 服务器记录DHCP客户端IP地址与MAC地址等参数的对应关系,防止网络上针对DHCP攻击。
 目前DHCP协议在应用的过程中遇到很多安全方面的问题,网络中存在一些针对DHCP的攻击,如DHCP Server仿冒者攻击、DHCP Server的拒绝服务攻击、仿冒DHCP报文攻击等。
 DHCP Snooping主要是通过DHCP Snooping信任功能和DHCP Snooping绑定表实现DHCP网络安全
 9.2 DHCP Snooping绑定表
 二层接入设备使能了DHCP Snooping功能后,从收到DHCP ACK报文中提取关键信息(包括PC的MAC地址以及获取到的IP地址、地址租期),并获取与PC连接的使能了DHCP Snooping功能的接口信息(包括接口编号及该接口所属的VLAN),根据这些信息生成DHCP Snooping绑定表。
 由于DHCP Snooping绑定表记录了DHCP客户端IP地址与MAC地址等参数的对应关系,故通过对报文与DHCP Snooping绑定表进行匹配检查,能够有效防范非法用户的攻击
 9.3 DHCP饿死攻击
 攻击原理:攻击者持续大量地向DHCP Server申请IP地址,直到耗尽DHCP Server地址池中的IP地址,导致DHCP Server不能给正常的用户进行分配。
 漏洞分析:DHCP Server向申请者分配IP地址时,无法区分正常的申请者与恶意的申请者
 DHCP Snooping防饿死攻击:
 解决方法:对于饿死攻击,可以通过DHCP Snooping的MAC地址限制功能来防止。该功能通过限制交换机接口上允许学习到的最多MAC地址数目,防止通过变换MAC地址,大量发送DHCP请求
 9.4 改变CHADDR值的DoS攻击
 攻击原理:攻击者持续大量地向DHCP Server申请IP地址,直到耗尽DHCP Server地址池中的IP地址,导致DHCP Server不能给正常的用户进行分配。
 漏洞分析:DHCP Server向申请者分配IP地址时,无法区分正常的申请者与恶意的申请者。
 DHCP Snooping防改变CHADDR值的DoS攻击
 解决方法:为了避免受到攻击者改变CHADDR值的攻击,可以在设备上配置DHCP Snooping功能,检查DHCP Request报文中CHADDR字段。如果该字段跟数据帧头部的源MAC相匹配,转发报文;否则,丢弃报文。从而保证合法用户可以正常使用网络服务。
 9.5 DHCP中间人攻击
 攻击原理:攻击者利用ARP机制,让Client学习到DHCP Server IP与Attacker MAC的映射关系,又让Server学习到Client IP与Attacker Mac的映射关系。如此一来,Client与Server之间交互的IP报文都会经过攻击者中转。
 漏洞分析:从本质上讲,中间人攻击是一种Spoofing IP/MAC攻击,中间人利用了虚假的IP地址与MAC地址之间的映射关系来同时欺骗DHCP的客户端和服务器。
 DHCP Snooping防DHCP中间人攻击:
 解决方法:为防御中间人攻击与IP/MAC Spoofing攻击,可使用DHCP Snooping的绑定表工作模式,当接口接收到ARP或者IP报文,使用ARP或者IP报文中的“源IP+源MAC”匹配DHCP Snooping绑定表。如果匹配就进行转发,如果不匹配就丢弃


 9.6 DHCP Snooping配置举例


 配置方式一:接口视图
 [Switch] dhcp snooping enable ipv4
 [Switch] interface GigabitEthernet 0/0/1
 [Switch-GigabitEthernet0/0/1] dhcp snooping enable
 [Switch] interface GigabitEthernet 0/0/2
 [Switch-GigabitEthernet0/0/2] dhcp snooping enable
 [Switch] interface GigabitEthernet 0/0/3
 [Switch-GigabitEthernet0/0/3] dhcp snooping enable
 [Switch-GigabitEthernet0/0/3] dhcp snooping trusted
 配置方式二:VLAN视图
 [Switch] dhcp snooping enable ipv4
 [Switch] vlan 2
 [Switch-vlan2] dhcp snooping enable
 [Switch] interface GigabitEthernet 0/0/3
 [Switch-GigabitEthernet0/0/3] dhcp snooping trusted

10.IP Source Guard
 10.1 IPSG技术概述
 IP地址欺骗攻击中,攻击者通过伪造合法用户的IP地址获取网络访问权限,非法访问网络,甚至造成合法用户无法访问网络,或者信息泄露。IPSG针对IP地址欺骗攻击提供了一种防御机制,可以有效阻止此类网络攻击行为。
 IP源防攻击(IPSG,IP Source Guard)是一种基于二层接口的源IP地址过滤技术。它能够防止恶意主机伪造合法主机的IP地址来仿冒合法主机,还能确保非授权主机不能通过自己指定IP地址的方式来访问网络或攻击网络。
 10.2 IPSG工作原理
 IPSG利用绑定表(源IP地址、源MAC地址、所属VLAN、入接口的绑定关系)去匹配检查二层接口上收到的IP报文,只有匹配绑定表的报文才允许通过,其他报文将被丢弃。常见的绑定表有静态绑定表和DHCP Snooping动态绑定表
 10.3 IPSG应用场景
 通过IPSG防止PC私自更改IP地址。
 PC只能使用DHCP Server分配的IP地址或者管理员配置的静态地址,随意更改IP地址后无法访问网络,防止PC非法取得上网权限。
 小型网络IP地址是静态分配时,通过IPSG限制非法PC接入。
 外来人员自带电脑不能随意接入内网,防止内网资源泄露。
 10.4 IPSG配置命令
 配置静态用户绑定表项
 [Huawei] user-bind static { { { ip-address | ipv6-address } { start-ip [ to end-ip ] } &<1-10> | ipv6-prefix prefix/prefix-length } | mac-address mac-address } * [ interface interface-type interface-number ] [ vlan vlan-id [ ce-vlan ce-vlan-id ] ]
 使能IPSG功能
 [Huawei-GigabitEthernet0/0/1] ip source check user-bind enable