1. DHCP Snooping概述
DHCP Snooping是DHCP的一种安全特性,用于保证DHCP客户端从合法的DHCP服务器获取IP地址。
DHCP 服务器记录DHCP客户端IP地址与MAC地址等参数的对应关系,防止网络上针对DHCP攻击。
DHCP安全问题:DHCP Server仿冒者攻击、DHCP Server的拒绝服务攻击、仿冒DHCP报文攻击等
DHCP Snooping主要是通过DHCP Snooping信任功能和DHCP Snooping绑定表实现DHCP网络安全。
2. DHCP Snooping信任功能
作用:保证DHCP客户端从合法的DHCP服务器获取IP地址。
接口分类:
信任接口:正常接收DHCP服务器响应的DHCP ACK、DHCP NAK和DHCP Offer报文,设备只将DHCP客户端的请求报文通过信任接口发送给合法的服务器。
非信任接口:非信任接口收到的DHCP Server发送的DHCP OFFER、DHCP ACK、DHCP NAK报文会被直接丢弃。
3. DHCP Snooping绑定表
由于DHCP Snooping绑定表记录了DHCP客户端IP地址与MAC地址等参数的对应关系,
故通过对报文与DHCP Snooping绑定表进行匹配检查,
能够有效防范非法用户的攻击。
4. 常见攻击及防御
(1)DHCP饿死攻击
攻击原理:攻击者持续大量地向DHCP Server申请IP地址,直到耗尽DHCP Server地址池中的IP地址,导致DHCP Server不能给正常的用户进行分配。
漏洞分析:DHCP Server向申请者分配IP地址时,无法区分正常的申请者与恶意的申请者。
解决方法:对于饿死攻击,可以通过DHCP Snooping的MAC地址限制功能来防止。
该功能通过限制交换机接口上允许学习到的最多MAC地址数目,防止通过变换MAC地址,大量发送DHCP请求。
(2)改变CHADDR值的DoS攻击
攻击原理:攻击者持续大量地向DHCP Server申请IP地址,直到耗尽DHCP Server地址池中的IP地址,
导致DHCP Server不能给正常的用户进行分配。
漏洞分析:DHCP Server向申请者分配IP地址时,无法区分正常的申请者与恶意的申请者。
解决方法:为了避免受到攻击者改变CHADDR值的攻击,可以在设备上配置DHCP Snooping功能,
检查DHCP Request报文中CHADDR字段。如果该字段跟数据帧头部的源MAC相匹配,转发报文;
否则,丢弃报文。从而保证合法用户可以正常使用网络服务。
(3)DHCP中间人攻击
攻击原理:攻击者利用ARP机制,让Client学习到DHCP Server IP与Attacker MAC的映射关系,
又让Server学习到Client IP与Attacker Mac的映射关系。
Client与Server之间交互的IP报文都会经过攻击者中转。
漏洞分析:从本质上讲,中间人攻击是一种Spoofing IP/MAC攻击,
中间人利用了虚假的IP地址与MAC地址之间的映射关系来同时欺骗DHCP的客户端和服务器。
解决方法:为防御中间人攻击与IP/MAC Spoofing攻击,可使用DHCP Snooping的绑定表工作模式,
当接口接收到ARP或者IP报文,使用ARP或者IP报文中的“源IP+源MAC”匹配DHCP Snooping绑定表。
如果匹配就进行转发,如果不匹配就丢弃。
5. 配置命令
(1)全局使能DHCP Snooping功能
[S1]dhcp snooping enable ?
ipv4 DHCPv4 Snooping
ipv6 DHCPv6 Snooping
vlan Virtual LAN
<cr>
(2)VLAN视图下使能DHCP Snooping功能
[S1-vlan2]dhcp snooping enable
(3)VLAN视图下配置接口为“信息”状态
[S1-vlan2]dhcp snooping trusted interface g0/0/1
(4)接口视图下使能DHCP Snooping功能
[S1-GigabitEthernet0/0/1]dhcp snooping enable
(5)接口视图下配置接口为“信任”状态
[S1-GigabitEthernet0/0/1]dhcp snooping trusted
(6)配置丢弃GIADDR字段非零的DHCP报文
[S1]dhcp snooping check dhcp-giaddr enable vlan ?
INTEGER<1-4094> Virtual LAN ID