DHCP

DHCP具体在这里不会赘述,主要讲DHCP原理、部署、安全。

DHCP原理

可以称为DHCP租约过程,分为四个步骤

  1. 客户机发生DHCP Discovery(发现)广播包

客户机广播请求IP地址(包含客户机的MAC地址)

  1. 服务器响应DHCP Offer广播包

服务器响应提供IP地址(无子网掩码、网关等参数)

  1. 客户机发送DHCP Request广播包

客户机选择IP(也可认为确认使用哪个IP)

  1. 发送DHCP ACK(确认)广播包

服务器确定租约,并提供网卡详细参数IP、掩码、网关、DNS、租期等

DHCP续约

当50%过后,客户机会再次发送DHCP Request包进行续约;

若服务器未响应,则会继续使用且在87.5%再次发送进行续约,如果仍然无响应,则释放IP地址,重新进行DHCP租约过程获取IP地址。

当无任何服务器响应时,会自动给自己分配一个169.254.x.x/16(无效IP地址)。

部署DHCP服务器

使用的服务器版本:Windows Server 2022

首先我们打开设置,找到应用,选择程序与功能(相关设置)

我们选择启用或关闭Windows功能,按步骤选择DHCP服务器,完成功能的安装。接着我们对虚拟机进行设置,将其设置为内部网络,并创建一个虚拟网络

然后我们进入到WindowsServer的网络连接设置,打开TCP/IP设置

我们需要设置我们的网段,这里我们使用10.1.1.x网段,子网掩码选择255.255.255.0。设置完成后,我们使用netstat -an查看我们服务器的网络状况

发现存在这两个端口,这两个端口就是我们提供DHCP协议服务的端口。

接下来我们要设置我们的地址池/作用域。我们通过管理工具,选择工具,打开DHCP,出现一个这样的界面

首先我们需要右键IPv4,选择新建作用域,我们可以按照我们的需求分配地址池,我一般习惯从11开始,并且预留结束,即250结束。然后长度选择24

排除ip和租期可以根据自己需求分配。DNS和网关地址都由具体情况而修改。WINS服务器可以直接跳过。即可完成部署。

接着我们进入客户机,同样修改网络到同一个虚拟网下,开启自动获取IP地址

已成功获取到DHCP分配的地址。

常见的客户机上关于获取DHCP相关的命令:

1
2
ipconfig /release 释放IP(取消租约)
ipconfig /renew 重新获取IP(有IP时,发送Request续约,无IP时,发送Discovery重新获取IP)

除了通过命令取消租约,我们还可以通过改成手动配置IP,也可以释放租约。

地址保留

当客户机上需要使用动态获取IP地址时,而又需要为他在这个网段固定一个IP地址时,我们会用到地址保留。

在作用域中,找到保留,右键可以新建一个保留,填入固定的IP地址和MAC地址,即可为对应MAC的地址的在此网段分配固定的IP地址。

选项优先级

首先我们来介绍服务器选项,假设我们在这台DHCP服务器上需要部署多个网段的分配,我们之前提及,我们需要为作用域分配作用域选项,包括DNS服务器、路由器等。

我们为了简化创建流程我们可以在创建时,把部分设置都留空,然后在作用域的同一层里面我们发现有一个服务器选项。

这个服务器选项会默认继承给作用域内。

但是我们发现网关这个选项,是没有办法通过在服务器选项中继承下来的,因为每个网段他们的网关都不相同,因此我们要给每个作用域自行设置网关。

跟面向对象语言中继承的关系很相同,作用域可以重写继承下来的服务器选项,这个就是选项优先级。

DHCP攻击与防御

  1. 攻击DHCP服务器:频繁的发送伪造的DHCP请求,直到耗尽地址池
    防御:在交换机上(管理型)的端口上做动态MAC地址绑定
  2. 伪装DHCP服务器攻击:Hack通过将自己部署为DHCP服务器,为客户机提供非法IP地址
    防御:在交换机上(管理型),除合法的DHCP服务器所在接口外,全部设置为禁止发送DHCP Offer包