DHCP 协议:它是如何工作的以及配置它的示例

DHCP 协议:它是如何工作的以及配置它的示例

这个协议是什么,它的用途是什么?

DHCP 协议(​​动态主机配置协议) ) 或也称为“动态主机配置协议”,是一种使用客户端-服务器架构的网络协议。 因此,我们将有一个或多个 DHCP 服务器以及一个或多个客户端,它们必须相互正确通信,以便 DHCP 服务器向不同的连接客户端提供信息。 该协议负责动态和自动分配 IP 地址,可以是从路由器到本地网络计算机的私有 IP 地址,也可以是运营商使用此类协议建立连接的公共 IP。

当我们有一台 DHCP 服务器运行时,它提供给不同客户端的所有 IP 地址都存储在一个列表中,其中列出了已提供的 IP(逻辑地址)和 MAC 地址(网卡的物理地址)。 . 由于此列表,DHCP 服务器确保不会提供具有相同 IP 地址的两台不同计算机,这会导致本地网络混乱。 当服务器分配 IP 地址时,它还会考虑到某个时间过去和它们何时到期,从而使另一个客户端可以免费获得相同的 IP 地址。 DHCP 服务器将始终知道谁拥有 IP 地址、已拥有多长时间以及何时将其分配给另一个客户端。

DHCP 协议包括几种分配IP地址的形式,根据我们所做的配置和场景,我们可以使用一种或另一种分配形式:

手动或静态 :DHCP 服务器将允许我们配置 IP-MAC 对列表,以便始终向客户端提供特定的 IP 地址,并且该地址永远不会改变。

自动表 : DHCP 服务器负责向发出请求的客户端提供 IP 地址,该 IP 地址将对该客户端可用,直到它被释放。 有些路由器在内部配置为按顺序提供私有 IP 地址,但是,有些固件旨在根据内部算法和使用的 MAC 地址提供范围内的特定 IP 地址,并且不是按顺序提供的。 已经连接。

动态 : 这种方法允许动态重用 IP 地址。

虽然 DHCP 协议以提供 IP 地址、子网掩码和网关这三个基本和基本参数而闻名,但它也能够为客户端提供其他信息,例如以下可配置和可选的参数:

主要和次要 DNS 服务器。

DNS 名称。

接口的 MTU。

NIS 域和服务器。

NTP 服务器。

Windows 的 WINS 名称服务器。

其他高级选项,所有这些都在 RFC2132 .

一个非常重要的方面是,如果一个 Windows 如果系统无法通过网络上的 DHCP 客户端获取 IP 地址,则会启动一个称为 APIPA(自动专用 Internet 协议寻址)的进程。 操作系统在DHCP无法获取IP地址时使用的APIPA进程,该协议负责在169.254.0.0/16范围内分配一个B类私有IP地址,其对应的子网掩码为255.255.0.0。 对于 IPv4 网络,此寻址块称为“本地链路”。 尽管操作系统会自行配置此私有 IP 地址,但它们会每 5 分钟再次检查网络上是否有 DHCP 服务器,以便为它们提供典型的 A、B 或 C 类私有 IP 地址。 当 DHCP 服务器不工作或我们没有配置它时,如果我们查询我们计算机上的私有 IP,您可以检查自动配置的 IP 地址。

一旦我们知道了 DHCP 协议是什么以及它的主要特性,我们就会看到它是如何工作的以及交换了哪些消息。

操作和交换消息

DHCP 服务器和我们连接到网络的 DHCP 客户端之间的通信是通过 UDP 协议完成的,UDP 协议是我们在其他文章中已经知道的一种非面向连接的协议。 对于 DHCP 服务器,我们在端口 67 上使用 UDP 协议,对于客户端,我们在端口 68 上使用 UDP 协议。如果我们有 火墙 阻止这些端口,无论是在服务器上还是在客户端,我们必须检查它并添加一个规则来接受这些端口作为源和/或目的地,否则服务将无法工作,我们将无法获得 IP 地址自动地。

当我们第一次将计算机连接到网络时,它没有IP寻址,因此我们将不得不在整个网络中“搜索”DHCP服务器,因为我们一开始没有关于ARP协议的信息。 出于这个原因,客户端要做的第一件事就是发送一个 DHCP 发现 源IP地址为0.0.0.0,目的IP地址为255.255.255.255,即全局广播IP。 当然,UDP 数据报发送,源端口 68(客户端)和目标端口 67(服务器)。 这种通信在网络中是广播的,在内部它可以配置为通过广播或单播接收OFFER,尽管它在OFFER中通常是单播的。

如果服务器存在并且工作正常,它将向您发送一个名为 DHCP 提供 . 这是在请求通过协议获取参数之前从服务器到客户端的响应数据报。 在这种情况下,源IP地址将是服务器本身的IP地址,它通常也充当路由器,目的IP也将是255.255.255.255,源端口67和目的端口68。在这个包中我们将有可以提供并链接到计算机的 MAC 地址的私有 IP 地址。 这种通信通常是单播的,尽管它可以选择广播。

客户端收到 OFFER 后,将发送一个 DHCP请求 背部。 在这种情况下,客户端选择由 OFFER 接收的配置,并且客户端再次请求服务器先前指示的 IP。 此通信也是广播的,因为它还没有有效的私有 IP 地址。

最后,服务器将发送一个 DHCP确认 给客户端,告诉它已经正确接收了,包括我们在服务器上配置的所有信息,比如连接的持续时间,关于连接的信息 DNS 服务器等等。 通过这最后一个过程,该过程的所有步骤都完成了,协议也会等待一段时间,直到 DHCP 客户端使用协商的参数正确配置其接口。 一旦客户端获得IP地址,客户端将开始与本地网络上的所有计算机从ARP协议接收信息,以防止可能的IP地址冲突或来自DHCP服务器的地址组重叠。 如果遇到问题,客户端会向服务器发送 DHCPDECLINE 消息,表明该地址已被使用。

一旦我们了解了 DHCP 协议的工作原理,我们将解释存在哪些攻击以及如何避免它们。

存在于 DHCP 上的攻击

DHCP 协议不使用任何类型的身份验证,因此它很容易受到攻击,我们可以执行不同类型的攻击。

一种非常常见的攻击是配置流氓 DHCP 服务器以向客户端提供“虚假”或“恶意”信息。 当我们在已经拥有合法 DHCP 服务器的本地网络上连接流氓 DHCP 服务器时,客户端将在第一次响应时获得 IP 地址、DNS 和其他信息。 因此,恶意用户可以设置“ 流氓 DHCP 服务器 ”在网络上,以控制各种客户端的地址。 当网络犯罪分子安装 Rogue DHCP 时,他们这样做有以下几个原因:

对网络进行拒绝服务攻击 :如果一个或多个客户端获得了这个地址,他们就可以“切断”互联网连接。 这样,客户端将无法访问 Internet 或本地网络。

中间人攻击 : 完全控制寻址和 DNS 服务器,甚至不需要进行 ARP 欺骗攻击,因为我们将完全控制整个网络,并且我们将能够通过修改服务器 DNS 来将客户端转发到恶意网站我们刚刚安装的我们自己的 DHCP 服务器。 非法的 DHCP 服务器可以向不同的客户端提供虚假的 DNS 服务器信息。 当然,他们不仅会访问恶意网站,而且您还可以轻松监视连接,因为我们将成为网关。

为了减轻这种攻击,必须确保我们的本地网络中没有恶意 DHCP,这就是交换机内置的“DHCP Snooping”发挥作用的地方。 该技术允许阻止来自不允许的端口的 DHCP Offer 和 DHCP Ack 消息,即合法服务器不被允许的端口。 这样,即使虚假的 DHCP 服务器收到消息,它也永远无法回复,本地网络上的客户端将保持安全。 在下图中,您可以看到 DHCP 侦听的工作原理:

由于我们没有任何类型的客户端身份验证机制,对 DHCP 服务器的另一种非常常见的攻击是向 IP 地址发出数十次请求,以耗尽服务器的 IP 地址存储,通过呈现新的客户标识符每个提出请求的时间。 这会导致服务器“崩溃”并且无法提供进一步的寻址。 有一些缓解机制,特别是在使用DHCP的互联网运营商层面,例如使用标签作为授权令牌的RFC3046,我们还有RFC3118用于验证消息但尚未广泛使用。 随着用于验证有线客户端的 802.1X 协议的发布,这些 RFC 被推到了后台。

对于本地网络,最重要的是配置好 DHCP Snooping 以避免 Rogue DHCP,这样我们就会得到保护。

什么是静态 DHCP 或“静态 DHCP”

静态 DHCP 功能,也称为“静态 DHCP”或“静态映射”,是根据特定客户端的 MAC 地址或其“客户端标识符”专门配置特定客户端的可能性。 多亏了这个功能,我们可以为这个特定的客户端设置特定的参数,例如,始终使用相同的私有 IP 地址,这样它就永远不会改变。 我们可以配置的其他选项是主机名、配置 DNS 和 WINS 服务器、域名、NTP、TFTP、LDAP 服务器以及 DHCP 服务器也可以提供的其他信息。

静态DHCP的操作很简单,我们必须把MAC或客户端标识符放在相应的部分,然后我们将配置一个特定的IP地址和我们希望客户端拥有的其余参数。 下面,您可以看到 pfSense 操作系统中可用的所有配置选项。

一旦我们了解了如何配置静态 DHCP,我们将看到 DHCP 服务器的全局配置。

DHCP 服务器全局设置

我们以 pfSense 操作系统的 DHCP 服务器为例。 这个操作系统和许多路由器允许我们为我们配置的每个子网设置一个 DHCP 服务器。 根据固件的不同,我们会有更多的配置选项或更少的配置选项,所以我们必须考虑到这一点。

在pfSense的情况下,我们可以启用或禁用DHCP服务器,忽略或不忽略BOOTP协议的请求,我们也可以制作一个访问控制列表,让客户端可以或不可以获取地址,我们还可以配置IP范围实际上,在我们配置的子网中,我们可以毫无问题地创建额外的“池”。 当然,如果需要,我们还必须填写 DNS 和 WINS 服务器的信息,以及其他高级选项。

在前面的截图中你可以看到我们有可能以非常高级的方式在 pfSense 中配置 DHCP 服务器,一般专业路由器都有所有这些配置选项,不像家庭路由器更基础,没有那么多配置选项。 例如,我们可以根据需要配置 NTP、TFTP 甚至 LDAP,此外,我们还可以显示这些选项以进行详细配置。

如您所见,我们所有人都广泛使用 DHCP 协议来获取本地网络正常运行所需的 IP 地址和其他信息,此外,我们绝不能忘记攻击以及如何保护自己免受攻击最后,请记住我们有静态 DHCP 功能,以便服务器始终为我们提供相同的 IP 地址。

相关文章

多少岁破处才是最佳时期?
bt365在线

多少岁破处才是最佳时期?

📅 06-27 👁️ 1531
日本队官推晒高桥阳一手绘大空翼海报:我们的梦想是世界杯冠军!
c++中boost库的优缺点是什么
365速度发国际大厅

c++中boost库的优缺点是什么

📅 08-28 👁️ 525