一、端口安全
1、端口隔离
1.1 简介
以太交换网络中为了实现报文之间的二层隔离,用户通常将*不同的端口*加入*不同的VLAN*,实现二层广播域的隔离。
只通过VLAN实现报文二层隔离,会浪费有限的VLAN资源,同时也只能实现基础的隔离操作。
如下图所示,由于某种业务需求,要求VLAN内主机不可互访 ,但允许三层互通,即PC3可以访问VLAN 3里的主机。
由于PC1~PC3之间都处于一个VLAN中,并不能通过继续划分VLAN的方式进行隔离VLAN内主机互访。
为此就需要通过"端口隔离"技术,实现这种需求。
1.2 原理
用户只需要将端口加入到隔离组中,就可以实现隔离组内端口之间二层数据的隔离。
默认情况下,隔离组中的接口互相二层隔离,即组中接口A发送的广播报文不会转发到组中接口B。
能够三层互通的原因是,接口与网关并未做隔离。故网关作为中介实现了隔离组中的接口用户三层互通。
1.3 案例1(二层隔离组)
需求:
- Switch属于二层交换机,所有PC所属于192.168.1.0/24网络。
- 要求实现VLAN2中的PC1、PC2二层隔离。PC3与PC4三层隔离。
配置思路:
- PC1、PC2加入隔离组1,隔离模式为二层隔离。
- PC3、PC4无需操作,因为主机之间同网段,且VLAN之间互相隔离了。
LSW1
-
创建VLAN,绑定VLAN后。
-
修改端口隔离模式,并将接口加入隔离组。
[SW1]port-isolate mode l2
[SW1]int g0/0/1
[SW1-GigabitEthernet0/0/1]port-isolate enable group 1
[SW1-GigabitEthernet0/0/1]int g0/0/2
[SW1-GigabitEthernet0/0/2]port-isolate enable group 1 -
查看端口隔离组成员
<SW1>display port-isolate group 1
The ports in isolate group 1:
GigabitEthernet0/0/1 GigabitEthernet0/0/2 -
PC1上进行测试访问PC2、PC3
-
因为PC1、PC2处于同一隔离组中,故无法互通。
-
PC3不处于隔离组中,故可以正常访问。
- PC3上访问PC2、PC4
- PC3可以访问PC2,虽然PC2在隔离组中,但PC3不在,故可以访问。
- PC3无法访问PC4,因为不同VLAN间相互隔离网络。
1.4 案例2(单向隔离)
需求:
- 环境基于上一个实验,PC1、PC2处于同一个二层隔离组中。
- 目前PC2与PC3可以互访,现在需要实现PC2不能访问PC3,但PC3可以访问PC2(单向隔离)。
配置思路:
-
PC2到PC3即g0/0/2------G0/0/3,故在G0/0/2口上配置AM单向隔离功能。
[SW1]int g0/0/2
[SW1-GigabitEthernet0/0/2]am isolate g0/0/3 -
为了直观对比,通过抓包分析。
-
当PC2访问PC3时,由于单向隔离了PC2到PC3,故PC3无法收到ARP报文。
- 当PC3访问PC2时,虽然PC2收到ARP并回复,但由于做了单向隔离,PC3无法收到PC2的报文。
2、端口安全
2.1 简介
端口安全(Port Security)通过将接口学习到 的动态MAC 地址转换为安全MAC地址 (包括安全动态MAC和Sticky MAC),阻止除安全MAC和静态MAC之外的主机通过本接口和设备通信,从而增强设备的安全性。
通过端口安全技术可以实现:接入层交换机上每个连接终端设备的接口均只允许一台PC接入网络(限制MAC地址接入数量),如果有员工试图在某个接口下级联一台小交换机或集线器从而扩展上网接口,那么这种行为应该被端口安全感知,并做出相应的"惩罚"。
2.2 原理
端口案例实现只有安全MAC地址的主机才能进行通信,非安全MAC地址无法通信。
而安全MAC地址分为:安全动态MAC地址 、安全静态MAC 、Sticky MAC地址。
- 默认情况下,启用 了端口安全的端口学习到的第一个MAC地址 即刻记录为安全动态MAC地址。
- 设备重启后表项会丢失,需要重新学习,因为它属于"动态"。
- 缺省情况下不会被老化,只有在配置安全MAC的老化时间后才可以被老化。
- 默认情况下,启用了端口安全的端口并手动绑定MAC地址,即为安全静态MAC。
- 静态MAC不会被老化,手动保存配置后重启设备不会丢失。
- 启用了端口安全 且启用Sticky MAC功能 绑定MAC地址后,该绑定的MAC地址为Sticky MAC地址。
- Sticky MAC属于静态MAC,不会被老化,手动保存配置后重启设备不会丢失。
安全动态MAC地址的老化类型分为:绝对时间老化 和相对时间老化:
如设置绝对老化时间为5分钟:系统每隔1分钟计算一次每个MAC的存活时间,若大于等于5分钟,则立即将该安全动态MAC地址老化。否则,等待下1分钟再检测计算。
如设置相对老化时间为5分钟:系统每隔1分钟检测一次是否有该MAC的流量。若没有流量,则经过5分钟后将该安全动态MAC地址老化。
绝对时间:不考虑MAC是否正在转发流量,只要MAC地址存在时间≥5分钟,则直接老化。
相对老化时间:只要在5分钟内该MAC地址存活时间有更新,将不会老化。
关于端口安全的惩罚机制: Restrict丢弃、Protect保护、Shutdown关闭。
- Restrict,丢弃非安全MAC的报文并告警。
- Protect,丢弃非安全MAC的报文,不告警。
- Shutdown,丢弃非安全MAC的报文,告警并将端口定义为error-down。
默认情况下,接口关闭(error-down)后不会自动恢复,只能由网络管理人员重启接口。
如果用户希望被关闭的接口可以自动恢复,则可在系统视图下执行:
error-down auto-recovery cause port-security interval 恢复时间(秒)
使能接口状态自动恢复为Up的功能,并设置接口自动恢复为Up的延时时间,使被关闭的接口经过延时时间后能够自动恢复。
2.3 案例1(安全动态MAC)
需求:
- 要求Switch1上所有端口能够学习到的MAC地址的数量限制为1,违规则自动关闭接口,自动恢复时间为30分钟,绝对老化时间为5分钟。
Switch1
ENSP中并没有error-down auto-recovery cause port-security选项命令(但真机存在)
[SW1]int g0/0/1
[SW1-GigabitEthernet0/0/1]port-security enable
[SW1-GigabitEthernet0/0/1]port-security protect-action shutdown
[SW1-GigabitEthernet0/0/1]port-security aging-time 5 type absolute
[SW1-GigabitEthernet0/0/1]quit
[SW1]error-down auto-recovery cause port-security interval 1800
-
此时使用PC1去ping PC2,让交换机将主机MAC地址转换成安全动态MAC地址。
-
在交换机上查看安全MAC地址
<SW1>display mac-address
MAC address table of slot 0:MAC Address VLAN/ PEVLAN CEVLAN Port Type LSP/LSR-ID
VSI/SI MAC-Tunnel5489-980c-7106 1 - - GE0/0/2 security -
5489-9859-4884 1 - - GE0/0/1 security -Total matching items on slot 0 displayed = 2
#这是普通交换机的Switch2学习到的MAC地址
<Huawei>dis mac-address
MAC address table of slot 0:MAC Address VLAN/ PEVLAN CEVLAN Port Type LSP/LSR-ID
VSI/SI MAC-Tunnel5489-9859-4884 1 - - GE0/0/1 dynamic 0/-
Total matching items on slot 0 displayed = 1
-
此时使用PC3、PC4去pingPC1观察现象:
- PC3访问PC1,正常
- PC4访问PC1,失败。此时PC3再访问PC1也失败,因为接口学习到了两个MAC地址,端口安全违规自动关闭接口。
-
此时在Switch1交换机上查看端口状态:(Administratively Down)
<SW1>dis interface g0/0/3
GigabitEthernet0/0/3 current state : Administratively DOWN
Line protocol current state : DOWN -
重启接口,使得接口快速恢复正常。(真机上)也可等待30分钟后自动恢复。
[SW1-GigabitEthernet0/0/3]shutdown
[SW1-GigabitEthernet0/0/3]undo shutdown
2.4 案例2(安全静态MAC)
需求:
- 要求使用安全静态MAC实现LSW1的G0/0/3口只能由PC3进行通信,其它主机无法通过G0/0/3口通信。
- 无需设置违规动作。
Switch1
port-security mac-address 无法在ENSP中输入,但真机可以。
[SW1]int g0/0/3
[SW1-GigabitEthernet0/0/3]port-security enable
[SW1-GigabitEthernet0/0/3]port-security max-mac-num 1
[SW1-GigabitEthernet0/0/3]port-security mac-address 5489-9817-4AFF vlan 1
- 此时使用PC3访问PC1
- 能够成功访问。
- 此时使用PC4访问PC1
- 源MAC地址与安全静态MAC地址不匹配,无法访问。
2.5 案例3(Sticky MAC)
需求:
- 要求使用Sticky MAC功能实现LSW1的G0/0/3口只能由PC4进行通信,其它主机无法通过G0/0/3口通信。
- 无需设置违规动作。
Switch1
[SW1]int g0/0/3
[SW1-GigabitEthernet0/0/3]port-security enable
[SW1-GigabitEthernet0/0/3]port-security max-mac-num 1
[SW1-GigabitEthernet0/0/3]port-security mac-address sticky
[SW1-GigabitEthernet0/0/3]port-security mac-address sticky 5489-987B-35FA vlan 1
如果遇到这种报错:
Error: Security MAC number or Sticky MAC number reach the upper limit.
说明原接口已经学习到某个MAC地址,当敲下port-security mac-address sticky之后,会自动将该MAC地址转换为Sticky MAC地址。
故需要先取消Sticky命令再重新输入。
[SW1-GigabitEthernet0/0/3]undo port-security mac-address sticky
[SW1-GigabitEthernet0/0/3]port-security mac-address sticky
[SW1-GigabitEthernet0/0/3]port-security mac-address sticky 5489-987B-35FA vlan 1
-
此时使用PC4访问PC1
- 能够成功访问。
-
此时使用PC3访问PC1
- 源MAC地址与Sticky MAC地址不匹配,无法访问。
-
查看Switch的安全MAC表项
<SW1>display mac-address
MAC address table of slot 0:MAC Address VLAN/ PEVLAN CEVLAN Port Type LSP/LSR-ID
VSI/SI MAC-Tunnel5489-980c-7106 1 - - GE0/0/2 security -
5489-9859-4884 1 - - GE0/0/1 sticky -Total matching items on slot 0 displayed = 2
3、MAC地址表安全
3.1 简介
MAC地址作为交换机中重要的数据转发中枢,许多攻击均可通过对MAC地址表进行恶意更改来让网络瘫痪。
为了对MAC地址表项进行保护,需要先了解下MAC地址表项的类型:
- 动态MAC地址表项 :由接口通过报文中的源MAC地址学习获得,表项可老化。
- 在系统复位、接口板热插拔或接口板复位后,动态表项会丢失。
- 静态MAC地址表项 :由用户手工配置并下发到各接口板,表项不老化。
- 在系统复位、接口板热插拔或接口板复位后,保存的表项不会丢失。
- 接口和MAC地址静态绑定后,其他接口收到源MAC是该MAC地址的报文将会被丢弃。
- 黑洞MAC地址表项 :由用户手工配置,并下发到各接口板,表项不可老化。
- 配置黑洞MAC地址后,源MAC地址或目的MAC地址是该MAC的报文将会被丢弃。
3.2 原理
为了防止恶意用户对交换设备MAC地址表项进行修改,通过设置以下五种限制来实现有效的保护。
3.3 配置命令及案例
实验拓扑:
-
静态MAC地址表项:(全局)静态绑定PC1的MAC地址于LSW1的G0/0/1接口。
[LSW1]mac-address static 5489-9859-4884 g0/0/1 vlan 1
-
再次查看MAC地址表项
[LSW1]dis mac-address
MAC address table of slot 0:MAC Address VLAN/ PEVLAN CEVLAN Port Type LSP/LSR-ID
VSI/SI MAC-Tunnel5489-9859-4884 1 - - GE0/0/1 static -
Total matching items on slot 0 displayed = 1
-
黑洞MAC地址表项:禁止PC4通过LSW1的G0/0/3接口。
[LSW1]mac-address blackhole 5489-987B-35FA vlan 1
[LSW1]dis mac-address
MAC address table of slot 0:MAC Address VLAN/ PEVLAN CEVLAN Port Type LSP/LSR-ID
VSI/SI MAC-Tunnel5489-987b-35fa 1 - - - blackhole -
5489-9859-4884 1 - - GE0/0/1 static -Total matching items on slot 0 displayed = 2
-
动态MAC地址表项:(全局)设置动态MAC地址老化时间为10秒。
-
配置之后,使用PC3访问PC1,观察MAC地址表。
-
等待10秒之后,再观察MAC地址表。
[LSW1]mac-address aging-time 10
[LSW1]dis mac-address aging-time
Aging time: 10 seconds
-
-
禁止MAC地址学习功能:
-
关闭基于接口的MAC地址学习功能(该PC2将因为接口无法学习到MAC地址而无法通信)
[LSW1]int g0/0/2
[LSW1-GigabitEthernet0/0/2]mac-address learning disable -
需要实现PC2通信,则需要进行手动将接口与MAC地址绑定。
[LSW1]mac-address static 5489-980C-7106 g0/0/2 vlan 1
-
-
关闭基于VLAN的MAC地址学习功能(该VLAN下所有接口将无法学习新的MAC地址)
[LSW1]vlan 2 [LSW1-vlan2]mac-address learning disable
关于MAC地址学习的动作
1、关闭MAC地址学习功能的缺省动作为forward ,不管咋样都对发来的报文进行转发,但不记录报文的源MAC地址。
2、当配置动作为discard时,会对报文的源MAC地址进行匹配,当报文的源MAC地址与MAC地址表项匹配时,则对该报文进行转发。当报文的源MAC地址与MAC地址表项不匹配时,则丢弃该报文。
[LSW1-GigabitEthernet0/0/2]
mac-address learning disable action discard
[LSW1-GigabitEthernet0/0/2]
mac-address learning disable action forward
-
限制MAC地址学习数量(可使用端口安全,也能使用mac-limit)
-
接口视图中,使用
mac-limit maximum 1
,设置接口最多学习到1个MAC地址。[LSW1-GigabitEthernet0/0/3]mac-limit maximum 1
-
接口视图中,使用
mac-limit action discard|forward
,可以设置违规动作。 -
discard :达到限制后,源MAC为新MAC地址的报文将被丢弃。
-
forward :达到限制后,源MAC为新MAC地址的报文继续转发,但是MAC地址表项不记录。
[LSW1-GigabitEthernet0/0/3]mac-limit action discard
-
接口视图中,使用
mac-limit alarm enable
,开启违规告警。[LSW1-GigabitEthernet0/0/3]mac-limit alarm enable
-
查看mac-limit配置情况
[LSW1]dis mac-limit
MAC Limit is enabled
Total MAC Limit rule count : 1PORT VLAN/VSI/SI SLOT Maximum Rate(ms) Action Alarm
GE0/0/3 - - 1 - forward enable
-
4、MAC漂移
4.1 简介
当一个MAC地址在两个端口之间频繁发生迁移时,即会产生MAC地址漂移现象。
正常情况下,网络中不会在短时间内出现大量MAC地址漂移的情况。出现这种现象一般都意味着网络中存在环路,或者存在网络攻击行为。
4.2 原理
如果是环路引发MAC地址漂移,治本的方法是部署防环技术,例如STP,消除二层环路。
如果由于网络攻击等其他原因引起,则可使用如下:
MAC地址防漂移特性
-
MAC地址学习优先级
-
默认所有接口的优先级为0,数值越大越优先。
-
高优先可以漂移到低优先接口上,反之不可以。
# 设置接口MAC地址学习优先级为100 [Huawei-GigabitEthernet0/0/1] mac-learning priority 100
-
-
不允许相同的MAC地址学习优先级接口进行漂移
-
默认允许相同优先级接口发生漂移。
-
当关闭该功能之后,相同接口优先级接口之间不能出现MAC地址漂移。
默认情况下全局开启了相同接口优先级可以飘移
[Huawei] mac-learning priority 0 allow-flapping
全局关闭相同优先级接口发生漂移
[Huawei] undo mac-learning priority 0 allow-flapping
-
MAC地址漂移检测机制
- 基于VLAN的MAC地址漂移检测
- 检测指定VLAN下的所有的MAC地址是否发生漂移。
- 当MAC地址发生漂移后,可以配置指定的动作,例如告警、阻断接口或阻断MAC地址。
- 检测到VLAN内产生MAC地址漂移时,将产生漂移后的接口直接阻塞。
- 接口将被阻塞10秒
(该时长使用block-time关键字指定)
,接口被阻塞时无法正常收发数据。 - 10秒后解除阻塞 并重新进行检测 ,此时该接口可以正常收发数据,如果20秒内没有再检测到MAC地址漂移,则接口的阻塞将被彻底解除,反之则接口继续阻塞。如此重复2次
(该次数使用retry-times关键字指定)
,如果交换机依然能检测到该接口发生MAC地址漂移,则永久阻塞该接口。
- 全局MAC地址漂移检测
- 检测设备上的所有的MAC地址是否发生了漂移。
- 当MAC地址发生漂移后,可以配置指定的动作,例如告警、关闭接口或让接口退出原VLAN。
- error-down:当配置了MAC地址漂移检测的端口检测到有MAC地址漂移时,将对应接口状态置为error-down,不再转发数据。
- quit-vlan:当配置了MAC地址漂移检测的端口检测到有MAC地址漂移时,将退出当前接口所属的VLAN。
4.3 基于VLAN的MAC地址漂移检测
缺省情况下,已经配置了对交换机上所有VLAN进行MAC地址漂移检测的功能。
在VLAN10上配置MAC地址漂移检测,动作为阻塞。阻塞时间为10s,重试次数为3次。
目前ENSP模拟器未支持该命令
[HUAWEI] vlan 10
[HUAWEI-vlan10] loop-detect eth-loop block-time 10 retry-times 3
4.4 全局MAC地址漂移检测
-
全局开启MAC地址漂移检测。
[LSW1]mac-address flapping detection
-
设置白名单,允许白名单的VLAN进行MAC地址漂移。
[LSW1]mac-address flapping detection exclude vlan 1
-
配置发生漂移后接口的处理动作。
[LSW1]mac-address flapping action quit-vlan
[LSW1]mac-address flapping action error-down -
配置端口漂移之后触发error-down时,500秒后自动恢复端口。
[LSW1]error-down auto-recovery cause mac-address-flapping interval 500
-
配置MAC地址漂移表项的老化时间。
[LSW1]mac-address flapping aging-time 300
-
查看到漂移记录
[LSW3]dis mac-address flapping record
S : start time
E : end time
(Q) : quit vlan
(D) : error down
-------------------------------------------------------------------------------
Move-Time VLAN MAC-Address Original-Port Move-Ports MoveNum
-------------------------------------------------------------------------------
S:2024-01-09 15:19:25 1 5489-98d5-14ea GE0/0/2 GE0/0/1 7
E:2024-01-09 15:21:31
-------------------------------------------------------------------------------
Total items on slot 0: 1
二、流量限制
流量抑制和风暴控制是两种用于控制**广播**、**未知组播**以及**未知单播报文**,防止这三类报文引起广播风暴的安全技术。
流量抑制主要通过配置阈值来限制流量,而风暴控制则主要通过关闭端口来阻断流量。
当设备某个二层以太接口收到广播、未知组播或未知单播报文时,如果根据报文的目的MAC地址设备不能明确报文的出接口,设备会向同一VLAN内的其他二层以太接口转发这些报文,这样可能导致广播风暴,降低设备转发性能,引入流量抑制和风暴控制特性,可以控制这三类报文流量,防范广播风暴。
1、流量抑制
流量抑制特性按以下三种形式来限制广播、未知组播以及未知单播报文产生的广播风暴。
- 在接口视图下,入方向上,设备支持分别对三类报文按百分比、包速率和比特速率进行流量抑制。设备监控接口下的三类报文速率并和配置的阈值相比较,当入口流量超过配置的阈值时,设备会丢弃超额的流量。
- 在接口视图下,出方向上,设备支持对三类报文的阻塞(Block)。
- 在VLAN视图下,设备支持对广播报文按比特速率进行流量抑制。设备监控同一VLAN内广播报文的速率并和配置的阈值相比较,当VLAN内流量超过配置的阈值时,设备会丢弃超额的流量。
1.1 配置命令
# 配置流量抑制模式
# 缺省的抑制模式为packets,在bits模式下,流量抑制的粒度更小、抑制更精确。
[Switch] suppression mode by-packets
[Switch] suppression mode by-bits
[Switch] interface GigabitEthernet 0/0/1
# 配置【未知单播】流量抑制,按百分比抑制,百分比值为80%
[Switch-GigabitEthernet0/0/1] unicast-suppression 80
# 配置【未知组播】流量抑制,按百分比抑制,百分比值为70%
[Switch-GigabitEthernet0/0/1] multicast-suppression 70
# 配置【广播】流量抑制,按百分比抑制,百分比值为60%
[Switch-GigabitEthernet0/0/1] broadcast-suppression 60
2、报文风暴控制
2.1 配置命令
# 配置流量抑制及风暴控制白名单
[Switch] storm-control whitelist protocol arp-request 【协议】
协议:arp-request | bpdu | dhcp | igmp | ospf
# 三种类型报文的风暴速率控制
[Switch] interface gigabitethernet0/0/1
[Switch-GigabitEthernet0/0/1] storm-control broadcast min-rate 1000 max-rate 2000
[Switch-GigabitEthernet0/0/1] storm-control multicast min-rate 1000 max-rate 2000
[Switch-GigabitEthernet0/0/1] storm-control unicast min-rate 1000 max-rate 2000
# 检测间隔
[Switch-GigabitEthernet0/0/1] storm-control interval 90
# 惩罚动作
[Switch-GigabitEthernet0/0/1] storm-control action block
# 告警到网管
[Switch-GigabitEthernet0/0/1] storm-control enable trap
三、功能安全
1、DHCP 安全
1.1 简介
DHCP Snooping的信任功能,能够保证DHCP客户端从合法的DHCP服务器获取IP地址。
1.2 原理
DHCP Snooping功能
- DHCP Snooping信任功能,将接口分为信任接口 和非信任接口 :
- 信任接口正常接收DHCP服务器响应的DHCP ACK 、DHCP NAK 和DHCP Offer报文。
- 设备只将DHCP客户端的DHCP请求报文通过信任接口发送给合法的DHCP服务器,不会向非信任接口转发。
- 非信任接口 收到的DHCP Server发送的DHCP OFFER、DHCP ACK、DHCP NAK报文会被直接丢弃。
# 全局开启DHCP Snooping功能
[HUAWEI] dhcp snooping enable
# 接口/VLAN 视图下开启Snooping功能
[HUAWEI] int g0/0/1
[HUAWEI-GigabitEthernet0/0/1] dhcp snooping enable
[HUAWEI] vlan 2
[HUAWEI-vlan2] dhcp snooping enable
# 仅对某个接口设置为信任接口(缺省情况下,设备接口为非信任状态)。
[HUAWEI]int g0/0/1
[HUAWEI-GigabitEthernet0/0/1] dhcp snooping trusted
# 仅对VLAN中某个接口设置为信任接口
[HUAWEI] vlan 2
[HUAWEI-vlan2] dhcp snooping trusted interface g0/0/2
- DHCP Snooping绑定表
-
记录了DHCP客户端IP地址 与MAC地址等参数的对应关系,故通过对报文与DHCP Snooping绑定表进行匹配检查,能够有效防范非法用户的攻击。
对VLAN2的DHCP客户端进行参数匹配
[Huawei] dhcp snooping check dhcp-request enable vlan 2
-
DHCP 饿死攻击
- 攻击者持续大量地向DHCP Server申请IP地址,直到耗尽DHCP Server地址池中的IP地址,导致DHCP Server不能给正常的用户进行分配。
- 主要原因是DHCP Server向申请者分配IP地址时,无法区分正常的申请者与恶意的申请者
-
对于饿死攻击,可以通过DHCP Snooping的MAC地址限制功能来防止。
- 限制交换机接口上允许学习到的最多MAC地址数目,防止通过变换MAC地址,大量发送DHCP请求。
- 如下图,通过限制MAC地址数量虽然能有效防止。
-
但高级一点的攻击者,可能会设置报文中的MAC地址不变,只改变CHADDR字段从而继续进行DHCP饿死攻击。
-
为此,单纯的限制MAC地址数量并不能根本解决问题。
-
需要配置DHCP Snooping功能,检查DHCP Request报文中CHADDR字段 ,如果该字段跟数据帧头部的源MAC相匹配,转发报文;否则,丢弃报文。
-
注解:CHADDR(客户端硬件地址)字段是指客户端设备的物理地址,通常与源MAC地址相对应。
开启检查DHCP Request中的CHADDR与SMAC信息匹配
[HUAWEI] dhcp snooping check dhcp-chaddr enable vlan
设置接口最多绑定1个DHCP客户端
[HUAWEI] dhcp snooping enable
[HUAWEI] interface gigabitethernet 0/0/1
[HUAWEI-GigabitEthernet0/0/1] dhcp snooping enable
[HUAWEI-GigabitEthernet0/0/1] dhcp snooping max-user-number 1
关于CHADDR的解释,看以下DHCP的报文字段和抓包信息即可理解:
- CIADD:DHCP客户端地址
- YIADDR:源地址
- SIADDR:服务器的IP地址
- GIADDR:中继地址(一般是客户端所在网络的网关)
- CHADDR:客户端MAC地址
DHCP中间人攻击
- 利用ARP机制,让Client学习到DHCP Server IP与攻击者MAC的映射关系,又让Server学习到Client
IP与攻击者Mac的映射关系。
-
为防御中间人攻击与IP/MAC Spoofing攻击,可使用DHCP Snooping的绑定表工作模式 ,当接口接收到ARP或者IP报文,使用ARP 或者IP报文中的"源IP+源MAC"匹配DHCP Snooping绑定表。如果匹配就进行转发,如果不匹配就丢弃。
交换机的系统视图下执行配置命令:
[Huawei] arp dhcp-snooping-detect enable
查看DHCP Snooping
-
可跳转到官网命令手册查看更详细的介绍:display dhcp snooping - FIT AP V200R010C00 命令参考 - 华为 (huawei.com)
[Huawei]dis dhcp snooping
DHCP snooping global running information :DHCP Snooping基础信息
DHCP snooping : Enable
Static user max number : 1024
Current static user number : 0
Dhcp user max number : 1024 (default)
Current dhcp user number : 0防ARP中间人攻击防护是否开启
Arp dhcp-snooping detect : Disable (default)
丢弃报文告警阈值,当Snooping丢弃100个包之后告警。
Alarm threshold : 100 (default)
报文上送速率检测,速率过快将影响DHCP报文的处理效率。
默认允许 100包/秒,超过这个速率的DHCP报文将会被丢弃
Check dhcp-rate : Disable (default)
Dhcp-rate limit(pps) : 100 (default)当上送速率超过阈值之后丢包次数超过默认的100将进行告警
目前该功能处于关闭
Alarm dhcp-rate : Disable (default)
Alarm dhcp-rate threshold : 100 (default)因速率限制而丢弃的dhcp报文数量
Discarded dhcp packets for rate limit : 0
是否自动保护DHCP Snooping绑定表
Bind-table autosave : Disable (default)
客户端下线之后,是否马上删除其MAC信息。
开启删除:dhcp snooping user-offline remove mac-address
功能关闭时,客户端下线后,只要在MAC老化前重新上线就能重新实现通信。
Offline remove mac-address : Disable (default)
是否允许用户迁移。
Client position transfer allowed : Enable (default)
2、源地址检测
2.1 简介
IPSG是IP Source Guard的简称。IPSG可以防范针对源IP地址进行欺骗的攻击行为。
2.2 原理
IPSG功能是基于绑定表 (DHCP动态和静态绑定表)对IP报文进行匹配检查。当设备在转发IP报文时,将此IP报文中的源IP、源MAC、接口、VLAN信息和绑定表的信息进行比较,如果信息匹配,表明是合法用户,则允许此报文正常转发,否则认为是攻击报文,并丢弃该IP报文。
2.3 配置命令
-
由于需要先进行配置DHCP绑定表,故需要使用到DHCP Snooping功能作为辅助。
-
全局开启
dhcp enable
与dhcp snooping enable
。 -
给DHCP服务器端口设置为
dhcp snooping trusted
。 -
如果部分安全IP通过静态绑定的,也需要及时补上DHCP静态绑定表:
# 如0001-0001-0001用户使用地址10.0.0.1接入g0/0/1口 [Switch] user-bind static ip-address 10.0.0.1 mac-address 0001-0001-0001 interface gigabitethernet 0/0/1
-
-
配置IPSG功能
-
基于VLAN的IPSG
[Huawei]vlan 1 [Huawei-vlan1]ip source check user-bind enable # 默认IPSG需要检测IP、MAC、接口对应信息,也可自定义检测某些项。 ip source check user-bind check-item { ip-address | mac-address | interface }
-
基于接口的IPSG
[Huawei]interface g0/0/1 [Huawei-GigabitEthernet0/0/1]ip source check user-bind enable
-
-
配置IPSG告警功能
[Huawei]interface g0/0/1 # 开启告警功能 ip source check user-bind alarm enable # 默认丢包数量达到100个时,将发出告警。 ip source check user-bind alarm threshold 100
3、攻击防范
4.1 简介
目前,网络的攻击日益增多,而通信协议本身的缺陷以及网络部署问题,导致网络攻击造成的影响越来越大。特别是对网络设备的攻击,将会导致设备或者网络瘫痪等严重后果。
攻击防范主要分为畸形报文攻击 防范、分片报文攻击 防范和泛洪攻击防范。
4.2 原理
攻击防范针对上送CPU的不同类型攻击报文 ,采用丢弃 或者限速的手段,以保障设备不受攻击的影响,使业务正常运行。
- 畸形报文攻击防范
- 向目标设备发送有缺陷 的IP报文,使得目标设备在处理这样的IP报文时出错和崩溃,给目标设备带来损失。
- 畸形报文攻击防范是指设备实时检测出畸形报文并予以丢弃,实现对本设备的保护。
- 分片报文攻击防范
- 分片报文攻击是通过向目标设备发送分片出错的报文,使得目标设备在处理分片错误的报文时崩溃、重启或消耗大量的CPU资源,给目标设备带来损失。
- 分片报文攻击防范是指设备实时检测出分片报文并予以丢弃 或者限速处理,实现对本设备的保护。
- 泛洪攻击防范
- 泛洪攻击是指攻击者在短时间内向目标设备发送大量的虚假报文 ,导致目标设备忙于应付无用报文,而无法为用户提供正常服务。
- 泛洪攻击防范是指设备实时检测出泛洪报文并予以丢弃 或者限速处理,实现对本设备的保护。
- 泛洪攻击主要分为TCP SYN泛洪攻击 、UDP泛洪攻击 和ICMP泛洪攻击。
4.3 配置命令
默认情况下,攻击防范功能已经是开启的了:
参数 | 缺省值 |
---|---|
畸形报文攻击防范功能 | 已使能 |
分片报文攻击防范功能 | 已使能 |
分片报文发送速率 | 155000000bit/s |
TCP Syn攻击防范功能 | 已使能 |
TCP Syn泛洪报文发送速率 | 155000000bit/s |
UDP泛洪攻击防范功能 | 已使能 |
ICMP泛洪攻击防范功能 | 已使能 |
ICMP泛洪报文发送速率 | 155000000bit/s |
关于相应攻击防范开启命令:
# 开启攻击防范(默认开启)
[Huawei]anti-attack enable
# 畸形报文攻击防范
[Huawei]anti-attack abnormal enable
# 分片报文攻击防范
[Huawei]anti-attack fragment enable
# ICMP泛洪攻击防范
[Huawei]anti-attack icmp-flood enable
# TCP SYN泛洪攻击防范
[Huawei]anti-attack tcp-syn enable
# UDP泛洪攻击防范
[Huawei]anti-attack udp-flood enable