以太网交换安全:DHCP Snooping
一、DHCP Snooping的概念及功能
DHCP Snooping是一种用于增强网络中DHCP服务安全性的技术。以下是对以太网交换安全中的DHCP Snooping进行详细的介绍:
- 基本概述
- 定义目的:DHCP Snooping是一种网络安全技术,旨在防止未经授权的DHCP服务器在网络中分配IP地址,从而保护网络不受中间人攻击和其他相关威胁。
- 工作原理:通过监控DHCP交互过程中的报文,DHCP Snooping能够区分合法与非法的DHCP服务器,并确保只有经过验证的DHCP服务器才能为客户端分配IP地址。它通过建立和维护一个包含MAC地址、IP地址和VLAN信息的绑定表来实现这一目标。当设备收到来自非信任端口的DHCP响应时,会检查这些信息是否与绑定表中的记录匹配,如果不匹配则丢弃该报文。
- 主要功能
- 过滤非法DHCP服务器:DHCP Snooping能够识别并阻止非法DHCP服务器发出的响应,确保网络中的设备只能从管理员指定的合法DHCP服务器获取IP地址。
- 信任接口功能:DHCP Snooping的信任功能能够保证客户端从合法的服务器获取IP地址。网络如果存在私自架设的DHCP服务器仿冒者,则可能导致DHCP客户端获取错误的IP地址和网络配置参数,无法正常通信。DHCP Snooping信任功能可以控制DHCP服务器应答报文的来源,以防止网络中可能存在的DHCP服务器仿冒者为DHCP客户端分配IP地址及其他配置信息 DHCP Snooping信任功能将接口分为信任接口和非信任接口
- 生成并维护绑定表:开启DHCP Snooping功能的交换机会从收到的DHCP ACK报文中提取关键信息,如客户端的MAC地址、分配的IP地址等,并与接口编号和VLAN等信息一起组成DHCP Snooping绑定表。这张表记录了DHCP客户端与服务器之间的各种关系,可以用于防范非法用户的攻击。
- 源MAC校验:除了基本的绑定表功能外,DHCP Snooping还支持源MAC地址校验。这意味着交换机会检查收到的DHCP请求报文中的二层源MAC地址是否与CHADDR字段中的硬件地址一致,如果不一致则丢弃该报文,以防止仿冒DHCP报文攻击。
- 应用场景
- 防止DHCP Server仿冒者攻击:由于DHCP协议本身缺乏认证机制,网络上可能存在伪造的DHCP服务器。DHCP Snooping可以通过配置信任和非信任接口来防止这种情况的发生,从而保证客户端只能从合法的DHCP服务器获取IP地址。
- 防止非DHCP用户攻击:静态获取IP地址的用户(非DHCP用户)可能对网络造成多种攻击。通过开启根据DHCP Snooping绑定表生成接口静态MAC表项的功能,可以有效防止这类攻击。
- 防止DHCP报文泛洪攻击:如果攻击者短时间内向设备发送大量的DHCP报文,可能会对设备的性能造成冲击。DHCP Snooping可以通过检测DHCP报文的上送速率来防止这种攻击。
- 防止仿冒DHCP报文攻击:已获取到IP地址的合法用户可能通过发送伪造的DHCP Request或Release报文来进行续租或释放IP地址。DHCP Snooping可以通过匹配操作来判别这些报文是否合法,从而防止仿冒攻击。
- 防止DHCP Server饿死攻击和更改CHADDR值的Dos攻击:如果设备接口下存在大量攻击者恶意申请IP地址,可能会导致DHCP Server中的IP地址快速耗尽。通过配置允许接入的最大DHCP用户数和检测Request报文中的CHADDR字段与帧头MAC地址是否一致,可以有效防止这种攻击。
二、 实验
命令配置
合法服务器
[dhcp server]dhcp enable //打开DHCP
[dhcp server]int g0/0/0
[dhcp server-GigabitEthernet0/0/0]ip add 10.1.1.254 24
[dhcp server-GigabitEthernet0/0/0]dhcp select interface //基于接口的DHCP
非法服务器
[Attacker]dhcp enable
[Attacker]int g0/0/0
[Attacker-GigabitEthernet0/0/0]ip add 192.168.1.254 24
[Attacker-GigabitEthernet0/0/0]dhcp select interface
LSW1
[SW1]dhcp enable
[SW1]dhcp snooping enable //开启DHCP snooping功能
[SW1]vlan 1 //进入VLAN1
[SW1-vlan1]dhcp snooping enable
[SW1-vlan1]dhcp snooping trusted interface g0/0/1 //将G0/0/1的接口设为信任接口
[SW1]int g0/0/3
[SW1-GigabitEthernet0/0/3]dhcp snooping max-user-number 1 //将接口的最大MAC地址学习数为1
[SW1]dis dhcp snooping user-bind all //查看DHCP snooping的绑定表
DHCP Dynamic Bind-table:
Flags:O - outer vlan ,I - inner vlan ,P - map vlan
IP Address MAC Address VSI/VLAN(O/I/P) Interface Lease
--------------------------------------------------------------------------------
10.1.1.251 5489-98f4-648d 1 /-- /-- GE0/0/3 2024.10.17-15:25
10.1.1.250 5489-98b7-5bb8 1 /-- /-- GE0/0/4 2024.10.17-15:06
10.1.1.249 5489-982c-5138 1 /-- /-- GE0/0/5 2024.10.17-15:11
10.1.1.252 5489-98b7-5bb9 1 /-- /-- GE0/0/4 2024.10.17-15:25
10.1.1.248 5489-98b2-2984 1 /-- /-- GE0/0/6 2024.10.17-15:33
--------------------------------------------------------------------------------
print count: 5 total count: 5
[dhcp server-GigabitEthernet0/0/0] dhcp select interface
这个意思是使用接口的ip作为网关,例如你vlanif的ip是192.168.100.1,那么下面的pc获取的地址就是192.168.100.254,网关就是192.168.100.1
[dhcp server-GigabitEthernet0/0/0]dhcp select global
这个是dhcp选择全局地址池,这个你要定义dhcp pool,具体的网关啥的需要你自己配置
三、测试
我们可以修改一个PC的MAC地址来达成实验的目的,首先查看一下PC1的IP地址,然后将PC1的MAC地址修改就可以看到,PC1获取不到IP地址了,这是因为我们限制PC1与交换机连接的接口最大学习数为1,所以我们PC1的MAC地址修改后它就获取不到了
PC2因为没有限制学习数所以可以更改MAC地址获取IP地址
四、总结
总的来说,DHCP Snooping是提升网络中DHCP服务安全性的重要技术手段之一。它通过监控和管理DHCP交互过程,确保只有经过验证的DHCP服务器才能为客户端分配IP地址,从而有效防止了多种针对DHCP的攻击行为