附件下载
99-整本手册.pdf(325.71 KB)
DHCP安全特性技术白皮书
关键词:DHCP,DHCP Server,DHCP Relay, DHCP Client,DHCP Snooping。
摘 要:本文主要介绍了基于DHCP Snooping的DHCP安全特性,包括其产生背景、应用及其在杭州华三通信技术有限公司(以下简称“H3C公司”)低端以太网交换机上的实现。并对比了基于DHCP中继和DHCP Snooping的安全机制的异同,有利于用户理解和选择不同的产品和功能。
缩略语清单:
缩略语 | 英文全名 | 中文解释 |
DHCP | Dynamic Host Configuration Protocol | 动态主机配置协议 |
BOOTP | Bootstrap Protocol | 自举协议 |
ARP | Address Resolution Protocol | 地址解析协议 |
目 录
3.3.1 DHCP Snooping表项的建立与老化... 8
3.3.2 DHCP Snooping信任端口功能... 8
3.4 DHCP Snooping与DHCP Relay安全机制比较... 12
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是在BOOTP协议基础上进行了优化和扩展而产生的一种网络配置协议。

图1 DHCP典型组网示意图
本文主要介绍基于DHCP Snooping技术的DHCP安全特性,主要包括其产生背景、应用及其在H3C低端以太网交换机的实现。并对比了基于DHCP中继和DHCP Snooping安全机制的异同,有利于用户理解和选择不同的产品和功能。
关于DHCP“客户/服务器”通信模式的实现原理,DHCP报文格式,以及H3C低端以太网交换机作为DHCP客户端、DHCP服务器和DHCP中继代理的工作过程请参见《DHCP基础实现技术白皮书》。
DHCP协议是在UDP和IP协议的基础上运行,有很多不安全因素。而且DHCP的运作机制中,通常服务器和客户端没有认证机制,如果网络上存在多台DHCP服务器将会给网络照成混乱。例如,恶意用户冒充DHCP服务器,发放错误的IP地址、DNS服务器信息或默认网关信息,来实现流量的截取等等。
针对网络中DHCP的不安全因素,杭州华三通信技术有限公司(以下简称“H3C公司”)开发了DHCP中继和DHCP Snooping的安全特性。交换机可以通过运行在网络层的DHCP中继的安全功能,或运行在数据链路层的DHCP Snooping功能来监听DHCP报文,记录服务器分配给客户端的IP地址等配置信息,并通过与交换机上其它功能模块的配合,提高整体网络的安全性。
DHCP Snooping是运行在二层接入设备上的一种DHCP安全特性。设备通过监听DHCP报文,过滤不可信任的DHCP信息;建立和维护DHCP Snooping表项,记录用户从DHCP服务器获取的IP地址和用户主机的MAC地址的对应关系,一般可以与其它功能模块配合使用,提高网络的安全性。
DHCP中继运行在网络层,其安全功能与DHCP Snooping类似,同样是记录用户的MAC地址与IP地址的信息,一般与ARP功能模块配合使用,提高网络的安全性。
DHCP中继和DHCP Snooping的安全特性主要应用于接入层交换机上,实现常见二层网络攻击的防范。
攻击类型 | 防范方法 |
DHCP服务欺骗攻击 | DHCP Snooping功能、DHCP Snooping信任端口功能 |
ARP“中间人攻击 | DHCP Snooping功能、ARP入侵检测功能 |
IP/MAC欺骗攻击 | DHCP Snooping功能、IP过滤功能 |
DHCP报文泛洪攻击 | DHCP报文限速功能 |
在DHCP工作过程中,通常服务器和客户端没有认证机制,如果网络上存在多台DHCP服务器,不仅会给网络造成混乱,也对网络安全造成很大威胁。这种网络中出现非法的DHCP服务器,通常分为两种情况:
l 用户不小心配置的DHCP服务器,由此引起的网络混乱非常常见。
l 黑客将正常的DHCP服务器中的IP地址耗尽,然后冒充合法的DHCP服务器,为客户端分配IP地址等配置参数。例如黑客利用冒充的DHCP服务器,为用户分配一个经过修改的DNS服务器地址,在用户毫无察觉的情况下被引导至预先配置好的假的金融网站或电子商务网站,骗取用户的帐户和密码,这种攻击的危害是很大。

图2 DHCP服务欺骗攻击示意图
为了防止DHCP服务欺骗攻击,H3C低端以太网交换机提供了“DHCP Snooping信任端口”特性,对DHCP服务器信息来源进行控制。只允许处理信任端口接收的DHCP响应报文,而非信任端口接收到的DHCP响应报文被交换机丢弃,防止DHCP客户端从网络中不可信任的DHCP服务器获取IP地址。
按照ARP协议的设计,一个主机即使收到的ARP应答并非自身请求得到的,也会将其IP地址和MAC地址的对应关系添加到自身的ARP映射表中。这样可以减少网络上过多的ARP数据通信,但也为“ARP欺骗”创造了条件。
如图3 所示,Host A和Host C通过Switch进行通信。此时,如果有黑客(Host B)想探听Host A和Host C之间的通信,它可以分别给这两台主机发送伪造的ARP应答报文,使Host A和Host C用MAC_B更新自身ARP映射表中与对方IP地址相应的表项。此后,Host A 和Host C之间看似“直接”的通信,实际上都是通过黑客所在的主机间接进行的,即Host B担当了“中间人”的角色,可以对信息进行了窃取和篡改。这种攻击方式就称作“中间人(Man-In-The-Middle)攻击”。

为了防止ARP中间人攻击,H3C低端以太网交换机提供了“ARP入侵检测”特性,根据动态获取的DHCP Snooping表项或静态配置的IP与MAC绑定表项,对非法ARP报文进行过滤,保证接入交换机只传递合法的ARP请求和应答信息。
常见的欺骗种类有MAC欺骗、IP欺骗、IP/MAC欺骗,黑客可以伪造报文的源地址进行攻击,其目的一般为伪造身份或者获取针对IP/MAC的特权,另外此方法也被应用于DoS( Deny of Service,拒绝服务)攻击,严重的危害了网络安全。
为了防止IP/MAC欺骗攻击,H3C低端以太网交换机提供了IP过滤特性,开启该功能后,交换机可以强制经过某一端口流量的源地址符合动态获取的DHCP Snooping表项或静态配置的IP与MAC绑定表项的记录,防止攻击者通过伪造源地址来实施攻击。此外,该功能也可以防止用户随便指定IP地址,造成的网络地址冲突等现象。
DHCP报文泛洪攻击是指:恶意用户利用工具伪造大量DHCP请求报文发送到服务器,一方面恶意耗尽了IP资源,使得合法用户无法获得IP资源;另一方面,如果交换机上开启了DHCP Snooping功能,会将接收到的DHCP报文上送到CPU。因此大量的DHCP报文攻击设备会使DHCP服务器高负荷运行,甚至会导致设备瘫痪。
为了防止上述DHCP报文泛洪攻击,H3C低端以太网交换机提供了“DHCP报文限速”特性,使受到攻击的端口暂时关闭,来避免此类攻击对网络和服务器的冲击。
l DHCP中继和DHCP Snooping的安全特性运行于不同的网络环境中,因此两者只需选择其一应用。在同一交换机上,DHCP Snooping的启动需以关闭DHCP中继为前提。
l 为了使DHCP客户端通过DHCP Snooping设备从合法的DHCP服务器获取IP地址,必须将DHCP Snooping设备上与合法DHCP服务器相连的端口设置为信任端口,设置的信任端口和与DHCP客户端相连的端口必须在同一个VLAN内。
l 建议用户不要在交换机上同时配置DHCP Snooping功能和灵活QinQ功能,否则可能导致DHCP Snooping功能无法正常使用。
l 配置IP过滤功能之前,需要先开启交换机的DHCP Snooping功能,并配置信任端口。
l 建议用户不要在汇聚组中的端口上配置IP过滤功能。
l 如果交换机支持IRF功能,建议用户不要在Fabric端口上配置IP过滤功能。
l DHCP Server:DHCP服务器,为用户提供可用的IP地址等配置信息。
l DHCP Client:DHCP客户端,通过DHCP动态申请IP地址的用户。
l DHCP Relay:DHCP中继,用户跨网段申请IP地址时,实现DHCP报文的中继转发功能。
l DHCP Snooping:DHCP监听,记录通过二层设备申请到IP地址的用户信息。
l DCHP Security:DHCP安全特性,实现合法用户IP地址表的管理功能。
l RFC 951:Bootstrap Protocol (BOOTP)
l RFC 1497:BOOTP Vendor Information Extensions
l RFC 1542:Clarifications and Extensions for the Bootstrap Protocol
l RFC 2131:Dynamic Host Configuration Protocol
l RFC 2132:DHCP Options and BOOTP Vendor Extensions
l RFC 3046:DHCP Relay Agent Information Option
开启DHCP Snooping功能后,H3C低端以太网交换机根据设备的不同特点可以分别采取监听DHCP-REQUEST广播报文和DHCP-ACK单播报文的方法来记录用户获取的IP地址等信息。目前,H3C低端以太网交换机的DHCP Snooping表项主要记录的信息包括:分配给客户端的IP地址、客户端的MAC地址、VLAN信息、端口信息、租约信息,如图4 所示。

图4 DHCP Snooping表项示意图
为了对已经无用的DHCP Snooping动态表项进行定期进行老化删除,以节省系统的资源,和减少安全隐患,H3C低端以太网交换机支持根据客户端IP地址的租约对DHCP Snooping表项进行老化。具体实现过程为:当DHCP Snooping至少记录了一条正式表项时,交换机会启动20秒的租约定时器,即每隔20秒轮询一次DHCP Snooping表项,通过表项记录的租约时间、系统当前时间与表项添加时间的差值来判断该表项是否已经过期。若记录的表项租约时间小于系统当前时间与表项添加时间的差值,则说明该表项已经过期,将删除该条表项,从而实现DHCP Snooping动态表项的老化。
需要注意的是:DHCP Snooping表项的老化功能有一定的局限性,当DHCP服务器端的租约设置为无限期或者很长时,会出现老化不及时的现象。
DHCP Snooping的信任端口功能所提供的是对于DHCP服务器信息来源的控制,此功能通过将不信任端口接收的DHCP响应报文丢弃,防止DHCP客户端从网络中不可信任的DHCP服务器获取IP地址。
l 信任端口是与合法的DHCP服务器直接或间接连接的端口。信任端口对接收到的DHCP报文正常转发,从而保证了DHCP客户端获取正确的IP地址。
l 不信任端口是不与合法的DHCP服务器连接的端口。如果从不信任端口接收到DHCP服务器响应的DHCP-ACK和DHCP-OFFER报文则会丢弃,从而防止了DHCP客户端获得错误的IP地址。

图5 DHCP Snooping信任端口功能示意图
开启DHCP Snooping功能后,交换机上的所有端口默认被配置为非信任端口,此时从非信任端口接收的DHCP-ACK、DHCP-NAK、DHCP-OFFER报文都不会被交换机转发、也不会上送CPU处理;当某端口被配置为信任端口时,从该端口传入的DHCP-ACK、DHCP-NAK及DHCP-OFFER报文将被镜像至CPU处理。
需要注意的是:目前H3C低端以太网交换机实现的DHCP Snooping功能是需要和DHCP Snooping信任端口功能配合使用的。启动DHCP Snooping功能后,为了使DHCP客户端能从合法的DHCP服务器获取IP地址,必须将与合法DHCP服务器相连的端口设置为信任端口,设置的信任端口和与DHCP客户端相连的端口必须在同一个VLAN内。
为了防止ARP中间人攻击,H3C低端以太网交换机支持将收到的ARP(请求与回应)报文重定向到CPU,结合DHCP Snooping安全特性来判断ARP报文的合法性并进行处理,具体如下。
l 当ARP报文中的源IP地址及源MAC地址的绑定关系与DHCP Snooping表项或者手工配置的IP静态绑定表项匹配,且ARP报文的入端口及其所属VLAN与DHCP Snooping表项或者手工配置的IP静态绑定表项一致,则为合法ARP报文,进行转发处理。
l 当ARP报文中的源IP地址及源MAC地址的绑定关系与DHCP Snooping表项或者手工配置的IP静态绑定表项不匹配,或ARP报文的入端口,入端口所属VLAN与DHCP Snooping表项或者手工配置的IP静态绑定表项不一致,则为非法ARP报文,直接丢弃,并通过Debug打印出丢弃信息提示用户。

图6 ARP入侵检测功能示意图
DHCP Snooping表只记录了通过DHCP方式动态获取IP地址的客户端信息,如果用户手工配置了固定IP地址,其IP地址、MAC地址等信息将不会被DHCP Snooping表记录,因此不能通过基于DHCP Snooping表项的ARP入侵检测,导致用户无法正常访问外部网络。
为了能够让这些拥有合法固定IP地址的用户访问网络,交换机支持手工配置IP静态绑定表的表项,即:用户的IP地址、MAC地址及连接该用户的端口之间的绑定关系。以便正常处理该用户的报文。
由于实际组网中,交换机的上行口会接收其他设备的请求和应答的ARP报文,这些ARP报文的源IP地址和源MAC地址并没有在DHCP Snooping表项或者静态绑定表中。为了解决上行端口接收的ARP请求和应答报文能够通过ARP入侵检测问题,交换机支持通过配置ARP信任端口,灵活控制ARP报文检测功能。对于来自信任端口的所有ARP报文不进行检测,对其它端口的ARP报文通过查看DHCP Snooping表或手工配置的IP静态绑定表进行检测。
IP过滤功能是指交换机可以通过DHCP Snooping表项和手工配置的IP静态绑定表,对非法IP报文进行过滤的功能。
在端口上开启该功能后,交换机首先下发ACL规则,丢弃除DHCP报文以外的所有IP报文。(同时,需要考虑DHCP Snooping信任端口功能是否启动。如果没有启动,则丢弃DHCP应答报文,否则,允许DHCP应答报文通过。)接着,下发ACL规则,允许源IP地址为DHCP Snooping表项或已经配置的IP静态绑定表项中的IP地址的报文通过。
交换机对IP报文有两种过滤方式:
l 根据报文中的源IP地址进行过滤。如果报文的源IP地址、接收报文的交换机端口号与DHCP Snooping动态表项或手工配置的IP静态绑定表项一致,则认为该报文是合法的报文,允许其通过;否则认为是非法报文,直接丢弃。
l 根据报文中的源IP地址和源MAC地址进行过滤。如果报文的源IP地址、源MAC地址、接收报文的交换机端口号,与DHCP Snooping动态表项或手工配置的IP静态绑定表项一致,则认为该报文是合法的报文,允许其通过;否则认为是非法报文,直接丢弃。
为了防止DHCP报文泛洪攻击,H3C低端以太网交换机支持配置端口上对DHCP报文的限速功能。开启该功能后,交换机对每秒内该端口接收的DHCP报文数量进行统计,如果每秒收到的DHCP报文数量超过设定值,则认为该端口处于超速状态(即受到DHCP报文攻击)。此时,交换机将关闭该端口,使其不再接收任何报文,从而避免设备受到大量DHCP报文攻击而瘫痪。
同时,设备支持配置端口状态自动恢复功能,对于配置了报文限速功能的端口,在其因超速而被交换机关闭后,经过一段时间可以自动恢复为开启状态。
表2 DHCP Snooping与DHCP Relay安全机制对照表
特性 | DHCP Relay | DHCP Snooping |
防DHCP服务欺骗攻击 | 通过“伪服务器检测”功能在日志中记录DHCP服务器的信息,协助管理员发现伪DHCP服务器 | 通过“DHCP Snooping信任端口”功能,自动丢弃非信任端口的DHCP响应报文,防止伪DHCP服务器攻击 |
防止非法用户(或用户随意更换IP地址)访问网络 | 通过“DHCP中继安全地址检查”功能与ARP模块的配合,防止局域网中的非法用户访问外网 | 通过“ARP入侵检测”、“IP过滤”功能防止局域网中的非法用户访问外网 |
表项老化机制 | 通过“握手机制”进行DHCP 中继用户地址表项的定时老化 | 通过“租约定时器”实现根据客户端IP地址的租约对DHCP Snooping表项进行老化 |
关于DHCP Relay安全机制的具体介绍请参考《DHCP基础实现技术白皮书》中的相关介绍。
如图7 所示,客户端分布在不同的区域,通过DHCP Snooping设备连接到DHCP 中继设备,实现跨网段申请IP地址。为了提高安全性,在多台DHCP Snooping设备上开启DHCP Snooping信任端口、ARP入侵检测、IP过滤等功能,防范常见的二层网络攻击;同时为保证局域网内拥有固定IP地址的Host A、Host B可以正常访问外网,需要在DHCP Snooping设备上配置IP静态绑定表项。
图7 DHCP Snooping安全功能组网示意图
随着网络规模的扩大化和网络环境的复杂化,DHCP服务被应用到越来越多的网络环境中,H3C公司的DHCP特性解决方案不仅具有完整的产品系列,可以为客户提供完善、灵活、便捷的组网。同时,基于DHCP中继和DHCP Snooping的安全特性也为接入层设备防止常见的二层攻击提供了解决方案。随着新的网络威胁不断涌现,我们需要加强对威胁DHCP安全的因素进行研究,设计出更好的防范与消除威胁的方案。
请参考《DHCP基础实现技术白皮书》。
请参考《DHCP基础实现技术白皮书》。
99-整本手册.pdf(325.71 KB)