服务器之家:专注于服务器技术及软件下载分享
分类导航

云服务器|WEB服务器|FTP服务器|邮件服务器|虚拟主机|服务器安全|DNS服务器|服务器知识|Nginx|IIS|Tomcat|

服务器之家 - 服务器技术 - 服务器安全 - 别让黑客悄悄侵入你的网络:深入解析DHCP Snooping

别让黑客悄悄侵入你的网络:深入解析DHCP Snooping

2023-09-29 05:57未知服务器之家 服务器安全

一、DHCP工作原理概述 在学习DHCP Snooping之前,我们需要先回顾一下DHCP的工作原理。下面从两个场景分析DHCP工作原理 1.DHCP无中继场景 DHCP无中继场景 (1) 发现阶段 DHCP客户端通过广播DHCP Discover报文来向局域网内的DHCP服务器请求服务

一、DHCP工作原理概述

在学习DHCP Snooping之前,我们需要先回顾一下DHCP的工作原理。下面从两个场景分析DHCP工作原理

1.DHCP无中继场景

别让黑客悄悄侵入你的网络:深入解析DHCP Snooping

DHCP无中继场景

(1) 发现阶段

DHCP客户端通过广播DHCP Discover报文来向局域网内的DHCP服务器请求服务。

(2) 提供阶段

DHCP服务器根据自身配置的IP地址池、相应的子网掩码和网关等信息,通过DHCP Offer报文应答客户端。

(3) 请求阶段

若接受DHCP Offer报文中的配置,DHCP客户端则广播DHCP Request报文以通告DHCP服务器和局域网内其他主机其生效的IP地址。

() 确认阶段

DHCP客户端收到DHCP ACK报文,会广播发送免费ARP报文,探测本网段是否有其他终端使用服务器分配的IP地址。

2.DHCP有中继场景

别让黑客悄悄侵入你的网络:深入解析DHCP Snooping

DHCP有中继场景

(1) 发现阶段

DHCP中继接收到DHCP客户端广播发送的DHCP DISCOVER报文后,进行如下处理:

  • 第1步:检查DHCP报文中的hops字段,如果大于16,则丢弃DHCP报文;否则,将hops字段加1(表明经过一次DHCP中继),并继续第2步的操作。
  • 第2步:检查DHCP报文中的giaddr字段。如果是0,将giaddr字段设置为接收DHCP DISCOVER报文的接口IP地址。如果不是0,则不修改该字段,继续第3步的操作。
  • 第3步:将DHCP报文的目的IP地址改为DHCP服务器或下一跳中继的IP地址,源地址改为中继连接客户端的接口地址,通过路由转发将DHCP报文单播发送到DHCP服务器或下一跳中继。

(2) 提供阶段

DHCP服务器接收到DHCP DISCOVER报文后,选择与报文中giaddr字段为同一网段的地址池,并为客户端分配IP地址等参数,然后向giaddr字段标识的DHCP中继单播发送DHCP OFFER报文。

DHCP中继收到DHCP OFFER报文后,会进行如下处理:

  • 第1步:检查报文中的giaddr字段,如果不是接口的地址,则丢弃该报文;否则,继续下面的操作。
  • 第2步:DHCP中继检查报文的广播标志位。如果广播标志位为1,则将DHCP OFFER报文广播发送给DHCP客户端;否则将DHCP OFFER报文单播发送给DHCP客户端。

(3) 请求阶段

中继接收到来自客户端的DHCP REQUEST报文的处理过程同"发现阶段"。

(4) 确认阶段

中继接收到来自服务器的DHCP ACK报文的处理过程同"提供阶段"。

二、DHCP Snooping概述

为了保证网络通信业务的安全性,引入了DHCP Snooping技术,在DHCP Client和DHCP Server之间建立一道防火墙,以抵御网络中针对DHCP的各种攻击。

DHCP Snooping是DHCP的一种安全特性,用于保证DHCP客户端从合法的DHCP服务器获取IP地址。DHCP 服务器记录DHCP客户端IP地址与MAC地址等参数的对应关系,防止网络上针对DHCP攻击。

目前DHCP协议在应用的过程中遇到很多安全方面的问题,网络中存在一些针对DHCP的攻击,如DHCP Server仿冒者攻击、DHCP Server的拒绝服务攻击、仿冒DHCP报文攻击等。

DHCP Snooping主要是通过DHCP Snooping信任功能和DHCP Snooping绑定表实现DHCP网络安全。

DHCP Snooping信任功能

DHCP Snooping的信任功能,能够保证客户端从合法的服务器获取IP(Internet Protocol)地址。

如下图所示,网络中如果存在私自架设的DHCP Server仿冒者,则可能导致DHCP客户端获取错误的IP地址和网络配置参数,无法正常通信。DHCP Snooping信任功能可以控制DHCP服务器应答报文的来源,以防止网络中可能存在的DHCP Server仿冒者为DHCP客户端分配IP地址及其他配置信息。

别让黑客悄悄侵入你的网络:深入解析DHCP Snooping

DHCP Snooping信任功能示意图

DHCP Snooping信任功能将接口分为信任接口和非信任接口:

  • 信任接口正常接收DHCP服务器响应的DHCP ACK、DHCP NAK和DHCP Offer报文。
  • 非信任接口收到的DHCP Server发送的DHCP OFFER、DHCP ACK、DHCP NAK报文会被直接丢弃。
  • 配置dhcp snooping enable命令的接口,收到DHCP请求报文后,转发给所有的信任接口;收到DHCP响应报文后丢弃。
  • 配置dhcp snooping trusted命令的接口,收到DHCP请求报文后,转发给所有的信任接口,如果没有其他信任接口,则丢弃该DHCP请求报文;收到DHCP响应报文后,只转发给连接对应客户端的并且配置命令dhcp snooping enable的接口,如果查不到上述接口,则丢弃该DHCP响应报文。

三、DHCP Snooping绑定表

别让黑客悄悄侵入你的网络:深入解析DHCP Snooping

DHCP Snooping绑定表功能示意图

二层接入设备使能了DHCP Snooping功能后,从收到DHCP ACK报文中提取关键信息(包括PC的MAC地址以及获取到的IP地址、地址租期),并获取与PC连接的使能了DHCP Snooping功能的接口信息(包括接口编号及该接口所属的VLAN),根据这些信息生成DHCP Snooping绑定表。

由于DHCP Snooping绑定表记录了DHCP客户端IP地址与MAC地址等参数的对应关系,故通过对报文与DHCP Snooping绑定表进行匹配检查,能够有效防范非法用户的攻击。

DHCP Snooping绑定表根据DHCP租期进行老化或根据用户释放IP地址时发出的DHCP Release报文自动删除对应表项。

四、DHCP Snooping 的作用

DHCP Snooping功能用于防止:

  • DHCP Server仿冒者攻击
  • 中间人攻击与IP/MAC Spooping攻击
  • 改变CHADDR值的DoS攻击

根据不同的攻击类型,DHCP Snooping提供不同的工作模式,如下表:

别让黑客悄悄侵入你的网络:深入解析DHCP Snooping

1.DHCP Server仿冒者攻击

(1) 攻击原理:

由于DHCP请求报文以广播形式发送,所以DHCP Server仿冒者可以侦听到此报文。DHCP Server仿冒者回应给DHCP Client仿冒信息,如错误的网关地址、错误的DNS服务器、错误的IP等,达到DoS(Deny of Service)的目的。

别让黑客悄悄侵入你的网络:深入解析DHCP Snooping

(2) 解决方法:

  • 为防止DHCP Server仿冒者攻击,可使用DHCP Snooping的“信任(Trusted)/不信任(Untrusted)”工作模式。
  • 把某个物理接口或者VLAN的接口设置为“信任(Trusted)”或者“不信任(Untrusted)”。
  • 凡是从“不信任(Untrusted)”接口上收到的DHCP Reply(Offer、ACK、NAK)报文直接丢弃,这样可以隔离DHCP Server仿冒者攻击。

别让黑客悄悄侵入你的网络:深入解析DHCP Snooping

2.改变CHADDR值的DoS攻击

(1) 攻击原理:

攻击者持续大量地向DHCP Server申请IP地址,直到耗尽DHCP Server地址池中的IP地址,导致DHCP Server不能给正常的用户进行分配。

别让黑客悄悄侵入你的网络:深入解析DHCP Snooping

(2) 解决方法:

为了避免受到攻击者改变CHADDR值的攻击,可以在设备上配置DHCP Snooping功能,检查DHCP Request报文中CHADDR字段。如果该字段跟数据帧头部的源MAC相匹配,转发报文;否则,丢弃报文。从而保证合法用户可以正常使用网络服务。

别让黑客悄悄侵入你的网络:深入解析DHCP Snooping

3.DHCP中间人攻击

(1) 攻击原理:

攻击者利用ARP机制,让Client学习到DHCP Server IP与Attacker MAC的映射关系,又让Server学习到Client IP与Attacker Mac的映射关系。如此一来,Client与Server之间交互的IP报文都会经过攻击者中转。从本质上讲,中间人攻击是一种Spoofing IP/MAC攻击,中间人利用了虚假的IP地址与MAC地址之间的映射关系来同时欺骗DHCP的客户端和服务器。

别让黑客悄悄侵入你的网络:深入解析DHCP Snooping

(2) 解决方法:

为防御中间人攻击与IP/MAC Spoofing攻击,可使用DHCP Snooping的绑定表工作模式,当接口接收到ARP或者IP报文,使用ARP或者IP报文中的“源IP+源MAC”匹配DHCP Snooping绑定表。如果匹配就进行转发,如果不匹配就丢弃。

别让黑客悄悄侵入你的网络:深入解析DHCP Snooping

五、DHCP Snooping配置命令介绍

(1) 全局使能DHCP Snooping功能:

[Huawei] dhcp snooping enable [ ipv4 | ipv6 ]

(2) VLAN视图下使能DHCP Snooping功能:

[Huawei-vlan2] dhcp snooping enable

在VLAN视图下执行此命令,则对设备所有接口接收到的属于该VLAN的DHCP报文命令功能生效。

(3) VLAN视图下配置接口为“信任”状态\

[Huawei-vlan2] dhcp snooping trusted interface interface-type interface-number

在VLAN视图下执行此命令,则命令功能仅对加入该VLAN的接口收到的属于此VLAN的DHCP报文生效。

(4) 接口视图下使能DHCP Snooping功能

[Huawei-GigabitEthernet0/0/1] dhcp snooping enable

(5) 接口视图下配置接口为“信任”状态

[Huawei-GigabitEthernet0/0/1] dhcp snooping trusted

缺省情况下,设备接口为非信任状态。

(6)(可选)配置丢弃GIADDR字段非零的DHCP报文

[Huawei] dhcp snooping check dhcp-giaddr enable vlan { vlan-id1 [ to vlan-id2 ] }

使能检测DHCP Request报文中GIADDR字段是否非零的功能。此命令同时可以在VLAN视图或接口视图下进行配置。在VLAN视图下执行此命令,则对设备所有接口接收到的属于该VLAN的DHCP报文命令功能生效;在接口下执行该命令,则对该接口下的所有DHCP报文命令功能生效。

六、DHCP Snooping配置举例

别让黑客悄悄侵入你的网络:深入解析DHCP Snooping

如图所示,DHCP和VLAN基础配置已完成,在Switch配置DHCP Snooping功能。

(1) 配置方式一:接口视图

[Switch] dhcp snooping enable ipv4
[Switch] interface GigabitEthernet 0/0/1
[Switch-GigabitEthernet0/0/1] dhcp snooping enable
[Switch] interface GigabitEthernet 0/0/2
[Switch-GigabitEthernet0/0/2] dhcp snooping enable
[Switch] interface GigabitEthernet 0/0/3
[Switch-GigabitEthernet0/0/3] dhcp snooping enable
[Switch-GigabitEthernet0/0/3] dhcp snooping trusted

(2) 配置方式二:VLAN视图

[Switch] dhcp snooping enable ipv4	
[Switch] vlan 2
[Switch-vlan2] dhcp snooping enable	
[Switch] interface GigabitEthernet 0/0/3
[Switch-GigabitEthernet0/0/3] dhcp snooping trusted	

配置验证执行命令display dhcp snooping interface,查看接口下的DHCP Snooping运行信息。

[Switch]display dhcp snooping interface GigabitEthernet 0/0/3
 DHCP snooping running information for interface GigabitEthernet0/0/3 :
 DHCP snooping                            	: Enable   
 Trusted interface                        	: Yes     
 Dhcp user max number                     	: 1024     (default)
 Current dhcp user number                 	: 0       
 Check dhcp-giaddr                        	: Disable  (default)
 Check dhcp-chaddr                        	: Disable  (default)
 Alarm dhcp-chaddr                        	: Disable  (default)
 Check dhcp-request                       	: Disable  (default)
 Alarm dhcp-request                       	: Disable  (default)
-----  more ------

延伸 · 阅读

精彩推荐