前面我们学习了DHCP技术,如何通过服务器来动态获取IP地址,但这种技术也有安全风险所以我们来介绍一下预防DHCP安全风险的技术DHCP Snooping
DHCP Snooping概述
DHCP Snooping是一种DHCP安全技术,通过设置非信任接口,能够有效防止网络中仿冒DHCP服务器的攻击,保证客户端从合法的服务器获取IP地址。
另外,DHCP Snooping功能可通过DHCP应答报文信息,记录DHCP客户端IP地址与MAC地址等参数的对应关系,进而生成绑定表,然后通过对接收的DHCP报文中的IP地址和MAC地址与绑定表的比较,可以防范各种基于DHCP、ARP服务的攻击。
注意:AR G3系列路由器中的DHCP Snooping功能只能在LAN接口卡上实现,即如果不安装LAN接口就无法配置DHCP Snooping功能。但在S系列交换机中,可以随意实现。
通过DHCP Snooping记录表可以预防ARP中间人攻击,所采用的技术是DAI(Dynamic ARP Inspection,动态ARP检测)。
在局域网呢,经常使用DHCP服务器为用户分配IP地址。如下图所示。
DHCP服务是一个没有认证的服务,即客户端和服务器端无法互相进行合法的验证。在DHCP服务中,客户端以广播的方式来寻找服务器,并且采用第一个到达的网络配置参数。如果在网络中存在多台DHCP服务器(有一台或更多的是非授权的DHCP服务器或非法的服务器),则谁先应答,客户端就采用谁提供的网络配置参数。如非授权的DHCP服务器先应答,则客户端最后获得的网络参数就是非授权的,可能导致客户端获取到不正确的IP地址、网关、DNS等信息。
攻击者通过会向授权的DHCP服务器中反复申请IP地址,导致授权的DHCP服务器消耗了全波的IP地址、无法正常工作(称为DHCP服务器耗竭),再冒充授权的DHCP服务器,为客户端分配错误的网络配置参数(称为DHCP欺骗)。
DHCP Snooping 可以防止DHCP耗竭和DHCP欺骗攻击。如下图所示。DHCP客户端接入到交换机的接口G0/0/1上,DHCP服务器接入到交换机的接口G0/0/2上,客户端和服务器的DHCP通信需要经过交换机,交换机就能截获它们之间的DHCP数据报文。
下面是交换机的DHCP Snooping功能截获接口的DHCP应答报文,建立一张表,其中包含用户IP地址、MAC地址、VLAN ID、交换机接口、租用期等信息
DHCP Snooping配置将交换机的接口分为可信任端口(如上图交换机的G0/0/2端口)和不可信任端口(如上图交换机的G0/0/1端口)。
上图中,交换机的接口G0/0/1连接的是DHCP客户端,DHCP客户端不会发送DHCP Offer报文、DHCP ACK报文、DHCP NAK报文,当交换机从一个不可信任接口收到只有DHCP服务器才会发送的报文时,如DHCP Offer、DHCP ACK、DHCP NAK等报文,交换机将认为其是非法报文并将其丢弃。对于从信任接口收到的DHCP报文,交换机将不检查而直接转发。
一般而言,将与客户端相连的接口定义为不可信任接口,而将与DHCP服务器或者上层网络相连的接口定义为可信任接口。也就是说,当一个不可信任接口连接DHCP服务器时,该服务器发出的报文将不能通过可信任接口。因此,只要将用户接口设置为不可信任接口,就可以有效地防止非授权用户私自设置DHCP服务而引起的DHCP欺骗。
1、信任接口
DHCP Snooping的信任功能能够保证客户端从合法的服务器获取IP地址。
网络中如果存在私自架设的伪DHCP服务器,则可能导致DHCP客户端获取错误的IP地址和网络配置参数,无法正常通信。DHCP Snooping的信任功能可以控制DHCP服务器应答报文的来源,防止网络中可能存在的伪造或非法DHCP服务器为其他主机分配IP地址及其他配置信息。
DHCP Snooping信任功能允许将设备端口分为信任接口和非信任接口。
信任接口 | 信任接口正常接收DHCP服务器响应的DHCP ACK、DHCP NAK和DHCP Offer报文。 |
非信任接口 | 非信任接口在接收到DHCP服务器响应的DHCP ACK、DHCP NAK和DHCP Offer报文后,丢弃该报文。 |
管理员在部署网络时,一般将直接或间接连接合法DHCP服务器的端口设置为信任端口,其他端口设置为非信任端口,从而保证DHCP客户端只能从合法的DHCP服务器获取IP地址,而私自假设的伪DHCP服务器无法为DHCP客户端分配IP地址。
2、分析功能
开启DHCP Snooping功能后,设备能够通过分析DHCP的报文交互过程,生成DHCP Snooping绑定表,绑定表项包括客户端的MAC地址、获取到的IP地址、与DHCP客户端连接的接口及该接口所属的VLAN等信息。DHCP Snooping绑定表根据DHCP租期进行老化或根据用户释放IP地址时发出的DHCP Release报文自动删除对应表项。
在设备通过DHCP Snooping功能生成绑定表后,管理员可以方便地记录DHCP用申请的IP地址与所用主机的MAC地址之间的对应关系,这样就可以通过对报文与DHCP Snooping绑定表进行匹配检查,有效防范非法用户的攻击,但为了保证设备在生成DHCP Snooping绑定表时能够获取到用户MAC等参数,DHCP Snooping功能需应用于二层网络中的接入设备或第一个DHCP中继上。
DHCP Snooping支持的Option82功能
在传统的DHCP动态分配IP地址过程中,DHCP服务不能根据DHCP请求报文感知到用户的具体物理位置,以致同一VLAN的用户得到的IP地址所拥有的权限是完全相同的,这就不能1对同一VLAN中特定的用户进行有效的控制。
RFC3046定义的DHCP Option82记录了DHCP客户端的位置信息。DHCP Snooping设备或DHCP中继通过在DHCP请求报文中添加Option82选项,就可以将DHCP客户端的精确物理位置信息传递给DHCP服务器,从而使得DHCP服务器能够为主机分配合适的IP地址和其他配置信息,实现对客户端的安全控制。
DHCP Snooping的典型应用场景
DHCP Snooping功能的主要应用体现在以下几个方面。
- 防止DHCP服务器仿冒者攻击
- 防止非DHCP用户攻击
- 防止DHCP报文泛洪攻击
- 防止仿冒DHCP报文攻击
- 防止DHCP服务器拒绝服务攻击
- 通过Option82的支持实现对DHCP客户端的安全控制
下面分别介绍这几种应用
1、防止DHCP服务器仿冒者攻击
由于DHCP服务器和DHCP客户端之间没有认证机制,所以如果在网络上随意添加一台DHCP服务器,它就可以为客户端分配IP地址以及其他网络参数。如果该DHCP服务器为用户分配了错误的IP地址和其他网络参数,将会对网络造成非常大的危害。
如下图1所示,DHCP客户端发送的DHCP Discover报文是以广播的形式发送的,无论是合法的DHCP服务器,还是非法的DHCP服务器都可以接收到。如果此时DHCP服务器仿冒者回应给DHCP客户端仿冒信息,如错误的网关地址、错误的DNS服务器、错误的IP等信息,如下图2所示,DHCP客户端将无法获取正确的IP地址和相关信息,导致合法客户无法正常访问网络或信息安全受到严重威胁。
图-1 DHCP客户端发送DHCP Discover报文
图2 DHCP服务器仿冒者攻击
为了防止这种DHCP服务器仿冒者攻击,可配置设备接口的"信任(Trusted)/非信任(Untrusted)"工作模式,将与合法DHCP服务器直接或间接连接的接口设置为信任接口,其他端口设置为非信任接口,此后,从"非信任"接口上收到的DHCP回应报文将被丢弃,这样可以有效防止DHCP服务器仿冒者攻击。
2、防止非DHCP用户攻击
在DHCP网络中,静态获取IP地址的用户(非DHCP用户)对网络可能存在多种攻击,譬如仿冒DHCP服务器、构造虚假DHCP Request报文等。这将给合法DHCP用户正常使用网络带来一定的安全隐患。
为了有效地防止这种非DHCP用户攻击,可开启设备根据DHCP Snooping绑定表生成接口的静态MAC表项功能。之后,设备将根据接口下所有的DHCP用户对应的DHCP Snooping绑定表项,自动执行命令生成这些用户的静态MAC表项,并同时关闭接口学习动态MAC表项的能力。这样,只有源MAC地址与静态MAC表项匹配的报文才能够通过该接口,否则报文会被丢弃。因此对于该接口下的非DHCP用户,只有管理员手动配置了此类用户的静态MAC表项,其报文才能通过,否则报文将被丢弃。
3、防止DHCP报文泛洪攻击
在DHCP网络环境中,若攻击者短时间内向设备发送大量的DHCP报文,将会对设备的性能造成巨大的冲击,可能会导致设备无法正常工作。
为了有效地防止这种DHCP报文泛洪攻击,在使能设备的DHCP Snooping功能时,可同时使能设备对DHCP报文上送DHCP报文处理单元的速率进行检查的功能。此后,设备将会检查DHCP报文的上送速率,并仅允许在规定的速率内的报文上送至DHCP报文处理单元,而超过规定速率的报文将会被丢弃。
4、防止仿冒DHCP报文攻击
在DHCP服务提供过程中,已获取到IP地址的合法用户通过向服务器发送DHCP Request或DHCP Release报文续租或释放IP地址。如果攻击者冒充合法用户不断向DHCP服务器发送DHCP Request报文来续租IP地址,会导致这些到期的IP地址无法正常回收,以致一些合法用户不能获得IP地址;而若攻击者仿冒合法用户的DHCP Release报文发往DHCP服务器,会导致用户异常下线。
为了有效防止这种仿冒DHCP报文攻击,可使用DHCP Snooping绑定表的功能。设备通过将DHCP Request续租报文和DHCP Release报文与绑定表进行匹配操作,能够有效地判别报文是否合法,若匹配成功则转发该报文,匹配不成功则丢弃。
5、防止DHCP服务拒绝服务攻击
如果设备某接口下存在大量攻击者恶意申请IP地址,会导致DHCP服务器中IP地址快速耗尽而不能为其他合法用户提供IP地址分配服务。另一方面,DHCP服务器通常仅根据DHCP Request报文中的Chaddr字段来确认客户端的MAC地址。如果某一攻击者通过不断改变Chaddr字段向DHCP服务器申请IP地址,同样会导致DHCP服务器上的地址池被消耗殆尽,从而无法为其他正常用户提供IP地址。
为了抑制大量DHCP用户恶意申请IP地址,在使能设备的DHCP Snooping功能后,可配置设备或接口允许接入的最大DHCP用户数,当接入的用户数达到该值时,则不再允许任何用户通过此设备或接口成功申请到IP地址。
情况一Chaddr字段与源MAC不一致、
通过改变DHCP Request中的Chaddr字段方式的攻击,可使能设备检查DHCP Request报文帧头MAC地址与DHCP报文中的Chaddr字段是否一致,此后设备将检查上送的DHCP Request报文中的帧头MAC地址是否与Chaddr值相同,相同则转发,不相同则丢弃。
情况二Chaddr字段与源MAC一致、
解决办法1:通过改变DHCP Request中的Chaddr字段方式的攻击并且MAC地址与该字段中的值一致,可使能DHCP Snooping限制接口允许接入的最大DHCP用户数
解决办法2:通过使用端口安全来限制MAC地址数量,此方法不能解决情况一
解决办法3:使能DHCP Snooping报文中Chaddr字段检查,再用端口安全来限制MAC数量
6、通过支持的Option82实现对客户端的安全控制
Option82称为中继代理信息选项,该选项记录了DHCP客户端的位置信息。DHCP Snooping设备或DHCP中继通过再DHCP请求报文中添加Option82选项,将DHCP客户端的位置信息传递给DCHP服务器,从而使得DHCP服务器能够为主机分配合适的IP地址和其他配置信息,并实现对客户端的安全控制。
如下图1所示,用户通过DHCP方式获取IP地址。在管理员组建该网络时需要控制接口interface g0/0/0下用户对网络资源的访问以提高网络的安全性。在传统的DHCP动态分配IP地址过程中,DHCP服务无法区分同一VLAN内的不同用户,以致同一VLAN内的用户得到的IP地址所拥有的权限是相同的。
为实现上述目的,管理员在使能AR3的DHCP Snooping功能之后可使能其Option82功能。之后AR3在接收到用户申请IP地址发送的DHCP Request报文时,会在报文中插入Option82选项,以标注用户的精确位置信息,譬如MAC地址、所属VLAN、所连接的端口号等参数。DHCP服务器在接收到携带有Option82选项的DHCP请求报文后,即可通过Option82选项的内容获悉用户的精确物理位置,进而根据其上已部署的IP地址分配策略或其他安全策略为用户分配合适的IP地址和其他配置信息。
图1
DHCP Snooping具体的配置过程及相关命令在下一章与大家介绍,到这里就是本章节的全部内容了,其中可能有部分内容与教程雷同,如有冲突可联系博主删除,谢谢大家的浏览观看