DHCP Snooping各种场景实验案例

一、概述


DHCP Snooping的基本功能能够保证客户端从合法的服务器获取IP地址,而且能够记录DHCP客户端IP地址与MAC地址等参数的对应关系,进而生成绑定表。

DHCP Snooping的基本功能的配置任务如下(只有前面两个是必选的)。

  • 使能DHCP Snooping功能。
  • 配置接口信任状态。
  • (可选)使能DHCP Snooping用户位置迁移功能。
  • (可选)配置ARP与DHCP Snooping的联动功能。
  • (可选)配置丢弃GIADDR字段非零的DHCP Request报文。

使能DHCP Snooping功能

在配置DHCP Snooping各安全功能之前,需首先使能DHCP Snooping功能。使能DHCP Snooping功能的配置顺序是先使能全局下的DHCP Snooping功能,再使能接口或VLAN下的DHCP Snooping功能。

注意:对于AR120&AR150&AR160&AR200系列产品以及AR120系列产品,为使设备能够获取到用户的绑定表项,在接口或VLAN下是使能DHCP Snooping功能之前,需确保已在该接口或VLAN对应的VLANIF口上使能了DHCP中继或DHCP服务器功能。其他AR系列路由器没有这方面要求。


二、实验

1、防止DHCP服务器仿冒者攻击

由于DHCP服务器和DHCP客户端之间没有认证机制,所以如果在网络上随意添加一台DHCP服务器,它就可以为客户端分配IP地址以及其他网络参数。如果该DHCP服务器为用户分配了错误的IP地址和其他网络参数,将会对网络造成非常大的危害。

DHCP客户端发送的DHCP Discover报文是以广播的形式发送的,无论是合法的DHCP服务器,还是非法的DHCP服务器都可以接收到。如果此时DHCP服务器仿冒者回应给DHCP客户端仿冒信息,如错误的网关地址、错误的DNS服务器、错误的IP等信息,如下图2所示,DHCP客户端将无法获取正确的IP地址和相关信息,导致合法客户无法正常访问网络或信息安全受到严重威胁。

拓扑

(1)基础配置

复制代码
false DHCP Server
system
sysname falseServer
interface g0/0/0
ip add 10.1.11.1 24

DHCP Server
system
sysname DHCPServer
interface g0/0/0
ip add 10.0.11.1 24

(2)DHCP服务器配置

复制代码
false DHCP Server
dhcp enable
ip pool 1
gateway-list 10.1.11.1
network 10.1.11.0 mask 255.255.255.0
dns-list 10.10.10.10
q
interface g0/0/0
dhcp select global

DHCP Server
dhcp enable
ip pool 1
gateway-list 10.0.11.1
network 10.0.11.0 mask 255.255.255.0
dns-list 8.8.8.8
q
interface g0/0/0
dhcp select global

false DHCP Server

DHCP Server

可以看到如果客户端先收到非法服务器发送的Offer响应报文,则直接使用非法服务器分配的IP地址,这样就会有安全隐患

这张拓扑当中我们想要解决这个问题很简单只需要在交换机上使能DHCP Snooping功能并把连接合法DHCP Server的接口设置为信任端口,把非法服务器连接的接口设置为非信任接口,这样客户端发送的请求报文就不会发送给除信任端口以外的任何接口

复制代码
SW1
system
sysname SW1
dhcp enable
dhcp snooping enable
int g 0/0/1
dhcp snooping enable
int g 0/0/2
dhcp snooping enable
int g 0/0/3
dhcp snooping enable
dhcp snooping trusted

DHCP Server

false DHCP Server

配置完我们可以看到客户端发送的请求报文不会从交换机的2号端口在转发出去而是直接丢弃并且可以看到非法服务器的接口上并没有接收到来自客户端的请求报文

配置完DHCP Snooping后我们也可以在交换机上查看响应表项


2、防止DHCP报文泛洪攻击

在DHCP网络环境中,若攻击者短时间内向设备发送大量的DHCP报文,将会对设备的性能造成巨大的冲击,可能会导致设备无法正常工作。

拓扑

(1)基础配置

复制代码
DHCPServer
system
sysname DHCPServer
interface g0/0/0
ip add 10.0.1.1 24

(2)DHCP服务器配置

复制代码
DHCPServer
dhcp enable
ip pool 1
gateway-list 10.0.1.1
network 10.0.1.0 mask 255.255.255.0
dns-list 8.8.8.8
q
interface g0/0/0
dhcp select global

(3)DHCP Snooping配置

复制代码
SW
system
sysname SW1
dhcp enable
dhcp snooping enable
interface g0/0/3
dhcp snooping enable
dhcp snooping check dhcp-rate enable
dhcp snooping check dhcp-rate 10

配置完后交换机的3号端口的DHCP报文发送速率超过规定速率后就会将其丢弃

当然我们也可以配置丢弃报文告警和报文限速告警

复制代码
SW
interface g0/0/3
dhcp snooping alarm dhcp-rate enable
dhcp snooping alarm dhcp-rate threshold 100

3、防止仿冒DHCP报文攻击

在DHCP服务提供过程中,已获取到IP地址的合法用户通过向服务器发送DHCP Request或DHCP Release报文续租或释放IP地址。如果攻击者冒充合法用户不断向DHCP服务器发送DHCP Request报文来续租IP地址,会导致这些到期的IP地址无法正常回收,以致一些合法用户不能获得IP地址;而若攻击者仿冒合法用户的DHCP Release报文发往DHCP服务器,会导致用户异常下线。

拓扑

基础配置和DHCP服务器配置与上实验相同这里不过多赘述

在这张拓扑当中攻击者可能会不间断的发送DHCP Request报文导致这些到期的IP地址无法正常回收或不间断地发送DHCP Release报文,导致合法用户异常下线

我们可以配置DHCP Snooping包检查功能来防止这种情况产生

复制代码
SW
system
sysnanme SW1
dhcp enable
dhcp snooping enable
dhcp snooping check dhcp-rate enable vlan 1

配置完后交换机会对VLAN1下收到的所有DHCP的相关报文进行检查

使能DHCP Snooping检查功能后对DHCP报文的检查流程

在DHCP网络环境中,如果攻击者仿冒合法用户的DHCP Request报文并发往DHCP服务器,将导致合法用户的IP地址租约到期之后不能及时释放,也无法使用该IP地址;如果攻击者仿冒合法用户的DHCP Release报文发往DHCP服务器,又将导致合法用户异常下线。

使能了DHCP Snooping功能后,设备可根据生成的DHCP Snooping绑定表项,对DHCP Request报文或DHCP Release报文进行匹配检查,只有匹配成功的报文设备才将其转发,否则将丢弃。这可有效地防止非法用户通过发送伪造DHCP Request或DHCP Release报文冒充合法用户续租或释放IP地址。

DHCP Snooping设备对DHCP Request报文或DHCP Release报文的匹配检查规则如下。

对DHCP Request报文检查

  1. 首先检查报文的目的MAC是否为全F(也就是广播报文),如果是,则认为是第一次上线的DHCP Request广播报文,直接通过;如果报文的目的MAC地址不是全F,则认为是续租报文,将根据绑定表项中的VLAN、IP地址、接口信息进行匹配检查,完全匹配才通过。
  2. 检查报文中的Chaddr字段值是否与绑定表中的网关地址匹配,如果不匹配,则认为是用户第一次上线,直接通过;如果匹配,则继续检查报文中的VLAN、IP地址、接口信息是否均和绑定表匹配,完全匹配通过,否则丢弃。

对DHCP Release报文检查

  1. 将直接检查报文中的VLAN、IP地址、MAC地址、接口信息是否匹配绑定表,匹配则通过,不匹配则丢弃。

4、防止DHCP服务器拒绝服务攻击

如果设备某接口下存在大量攻击者恶意申请IP地址,会导致DHCP服务器中IP地址快速耗尽而不能为其他合法用户提供IP地址分配服务。另一方面,DHCP服务器通常仅根据DHCP Request报文中的Chaddr字段来确认客户端的MAC地址。如果某一攻击者通过不断改变Chaddr字段向DHCP服务器申请IP地址,同样会导致DHCP服务器上的地址池被消耗殆尽,从而无法为其他正常用户提供IP地址。

拓扑

基础配置和DHCP服务器配置与上实验相同这里不过多赘述

在这张拓扑当中攻击者会通过发送大量的请求报文来申请我们服务器的IP地址,导致我们服务器地址枯竭无法正常给合法用户分配IP地址

情况一、源MAC与Chaddr字段中的值不相同时(攻击者只改变报文中的Chaddr字段,不改变MAC)

解决办法一:我们可以通过配置DHCP Snooping限制最大DHCP用户数量来解决

(3)DHCP Snooping配置

复制代码
SW1
system
sysname SW1
dhcp enable
dhcp snooping enable
interface g0/0/1
dhcp snooping max-user-number 10
interface g0/0/2
dhcp snooping max-user-number 10
interface g0/0/3
dhcp snooping max-user-number 10

配置完后交换机会根据DHCP Snooping表项中的参数信息,如果接口下的用户数超过规定数的话,后续报文则丢弃。


解决办法二:因为攻击者是通过不同的MAC来发送不同的请求报文实现泛洪攻击的,但不会去更改Chaddr中的内容,所以我们可以开启Chaddr字段检查来解决

(3)DHCP Snooping配置

复制代码
SW1
system
sysname SW1
dhcp enable
dhcp snooping enable
dhcp snooping check dhcp-chaddr enable vlan 1

配置完后交换机会对VLAN1中接收到的DHCP报文中的Chaddr字段进行检查,如果该值与MAC不相等则丢弃。

当然我们也可以在接口配置告警信息

复制代码
interface g0/0/1
dhcp snooping enable
dhcp snooping alarm dhcp-chaddr enable
dhcp snooping alarm dhcp-chaddr threshold 120
interface g0/0/2
dhcp snooping enable
dhcp snooping alarm dhcp-chaddr enable
dhcp snooping alarm dhcp-chaddr threshold 120
interface g0/0/3
dhcp snooping enable
dhcp snooping alarm dhcp-chaddr enable
dhcp snooping alarm dhcp-chaddr threshold 120

情况二、源MAC与Chaddr字段中的值相同时(攻击者改变MAC和Chaddr字段中的值)

解决办法一:同样我们可以限制DHCP Snooping最用DHCP用户数来解决

解决办法二:通过端口安全来限制MAC,因为攻击者会同时更改MAC和Chaddr字段,所以我们限制接口的最大MAC数也可以解决,但这张解决办法只能使用在情况二,无法解决情况一。

解决办法三:通过端口安全来限制MAC,在使用DCHP Snooping来检查Chaddr字段中的数值。

复制代码
SW1
dhcp enable
dhcp snooping enable
dhcp snooping check dhcp-chaddr enable vlan 1
interface g0/0/1
port-security enable
port-security max-mac-num 10
dhcp snooping enable
dhcp snooping alarm dhcp-chaddr enable
dhcp snooping alarm dhcp-chaddr threshold 120
interface g0/0/2
port-security enable
port-security max-mac-num 10
dhcp snooping enable
dhcp snooping alarm dhcp-chaddr enable
dhcp snooping alarm dhcp-chaddr threshold 120
interface g0/0/3
port-security enable
port-security max-mac-num 10
dhcp snooping enable
dhcp snooping alarm dhcp-chaddr enable
dhcp snooping alarm dhcp-chaddr threshold 120

到这里就是本章节的全部内容了,其中可能有部分内容与教材雷同,如有冲突可联系博主删除,谢谢大家的浏览观看

相关推荐
计算机学无涯几秒前
Docker 命令简写配置
运维·docker·容器
sniper_fandc9 分钟前
网络编程—Socket套接字(TCP)
网络·tcp/ip·javaee
the_nov10 分钟前
19.TCP相关实验
linux·服务器·网络·c++·tcp/ip
kk小源17 分钟前
Docker常用操作教程
运维·docker·容器
林中伊人34 分钟前
家庭路由器wifi设置LAN2LAN和LAN2WAN
网络·路由器
鸿蒙布道师1 小时前
鸿蒙NEXT开发数值工具类(TS)
android·ios·华为·harmonyos·arkts·鸿蒙系统·huawei
Y淑滢潇潇1 小时前
RHCSA Linux 系统创建文件
linux·运维·服务器
XYN611 小时前
【嵌入式学习3】基于python的tcp客户端、服务器
服务器·开发语言·网络·笔记·python·学习·tcp/ip
the_nov1 小时前
20.IP协议
linux·服务器·网络·c++·tcp/ip
奔跑的废柴2 小时前
Jenkins学习(B站教程)
运维·学习·jenkins