详解DHCP部署与安全方案:保护你的网络免受攻击

2023-11-02

数据来源 

这篇文章涉及一些IP地址的基础知识,不熟悉的可以先看这一篇--IP地址详解

1、DHCP作用

        DHCP(动态主机配置协议是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址子网掩码。默认情况下,DHCP作为Windows Server的一个服务组件不会被系统自动安装,还需要管理员手动安装并进行必要的配置。

2、DHCP相关的概念

        地址池/作用域:(IP、子网掩码、网关、DNS、租期),DHCP协议端口是UDP 67/68

3、DHCP优点 

        减少工作量、避免IP冲突、提高地址利用率

4、DHCP原理

也成为DHCP租约过程,分为4个步骤:

1)客户机发送DHCP Discovery(发现)广播包(目的:寻求服务器)

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

        详细解析:发送DHCP Discovery(发现)广播包,询问谁是DHCP服务器(服务器可能有多个),我需要一个IP地址并把本机的MAC地址放到Discovery(发现)包里面发送出去(MAC地址是计算机网卡的唯一标识,全球唯一)。

 2)服务器响应DHCP offer(提供)广播包(目的:提供IP地址)

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

        详细解析:服务器发现有人在请求IP地址(可能是多个服务器发现了),然后在地址池里面找个没有人用的IP拿出来放到offer(提供)包里面响应回去。

 3)客户机发送DHCP Request(请求)广播包(目的:选择IP地址,并请求IP地址相关参数)

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

        详细解析:可能多个服务器都发现客户机的请求,那就有多个IP响应回来,所以要做出选择(不过这里是自动选择,哪个IP地址先到就用哪个)

 4)服务器发送DHCP ACK(确认)广播包(目的:确认IP地址等参数包括租约)

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

       详细解析:服务器确定了租约就是确定IP地址的使用时间比如:10h 只能使用10个小时服务器具会收回ip地址,但是一台计算机先要上网必须具备IP地址、子网掩码、DNS(域名解析服务器)和网关,所以服务器会把这些都放到ACK(确认)包内一起响应给客户端,然后服务器就会把客户机的MAC和IP地址之类的数据放到租赁列表内保存起来,以此判断对应IP地址是否被使用。

 5)客户机DHCP续约

       当租用IP时间50%过后,客户机会再次发送DHCP Request(请求)广播包,进行续约,如服务器无响应,则继续使用并在87.5%再次发送DHCP Request(请求)广播包,进行续约,如仍然无响应,释放IP地址,及重新发送DHCP Discovery(发现)广播包来获取IP地址。

当无任何服务器响应时,客户机的网卡会自动给自己分配一个IP地址169.254.X.X/16,属于全球统一的无效地址,用于临时内网通信!

续约规则:比如服务器设置的租约时间是1小时,客户机是在12:00,获取了IP地址,那么过期时间就是13:00,这期间12:30客户端就会发起续约,成功后的获取租约时间是12:30,过期时间是13:30,也就是说续约时长是服务器设置的租约时间,不会叠加,而且客户机获取到的IP只要是在租约时间内,自己又不放弃IP输入ipconfig /release # 释放IP 那无论是客户机停用网络还是关机重启,最后客户机的IP还是之前的IP。

额外知识:IP/16中的16就是子网掩码的二进制数 从前往后16个1 即:11111111 11111111 00000000 00000000 即:225.255.0.0

5、部署DHCP服务器

路由器和PC主机都可以用来部署,少于1000台PC直接路由器配置DHCP就足够了

        0)服务器的防火墙要关闭

        1)IP地址固定(服务器必须固定IP地址)

        2)安装DHCP服务插件

        3)新建作用域及作用域选项

        4)激活

        5)客户机验证:

                ipconfig /release              # 释放IP(取消租约,或者改为手动配置IP也可以释放租约)

                ipconfig /renew               #  重新获取IP(有IP时,发送request续约,没有IP时发送Discovery重新获取IP)

案例:使用winXP当作客户机,把win2003部署为 DHCP服务器

win2003虚拟机为例 

步骤:

        1.IP地址固定(服务器必须固定IP地址)

        

        在命令提示符输入:netstat -an   # 查看开放可用的端口

      仔细看这里面没有67/68端口,之前在第2点写了DHPC服务器使用的是UDP 67/68,两个端口        我们安装了DHPC组件就会自动开放,我们就可以通过 67/68 端口,向外提供服务,但也意味        着别人也能通过这两个端口攻击服务器

        

        2. 让两台虚拟机出于同一局域网下winXP和win2003都要设置,虚拟机 -- 虚拟机设置 -- 网络适配器 -- 自定义特定虚拟网络设置

        这里选V几都可以,但是要保证两台虚拟机是选同一个虚拟网络

         3. 把winXP的IP地址和DNS改为自动获取,网上邻居鼠标右键 -- 属性 -- 本地连接鼠标右键 --属性 -- 双击Internet  (不同的操作系统步骤可能不一样,不过都大同小异)

         

        这个169.254.24.220 ,就是客户机自动给自己分配的 

         

        4. 安装DHCP服务组件,虚拟机 -- 设置 -- 设备状态 -- 选择已连接

                 就会自动弹出这个窗口

         如果没有弹出上面这个窗口,双击我的电脑 -- 双击手动打开驱动器

         选择安装Windows组件

         双击打开网络服务

        

        选择DHCP -- 确定 -- 下一步

        

         安装中

        

         安装完成 ,再次输入:netstat -an   # 查看开放可用的端口

        仔细看会发现开放的端口中多出了 UDP 67/68 端口,意味着这两端口开放了,这两个是对外服务的端口 ,上面写的服务器offer ACK请求都是从这两个端口出去的,客户机DiscoveryRequest 请求也是从这两个端口进来的,所以以后服务器出现问题我们应第一时间检查这两个端口

      

         5. 组件安装完之后,就可以打开DHCP服务器进行配置,点击开始 -- 管理工具 --DHCP

        

         

         如果把服务器关掉,对应的端口UDP 67/68 也会关闭,对准服务器右键 -- 所有任务 -- 停止

         如果你的停止按钮是灰色的被禁用,那可能是你以前把 Server 服务给关了,开启就好。

        

        

        关闭服务器开放端口就找不到 67/68 端口了 

        

         6. 新建作用域

        

         

        填完下一步 

         

        设置IP范围和子网掩码 

         

        设置要排除的地址或范围(就是不想分配给别人的IP地址,这个看个人需求也可以不作排                 除) 

         

         设置租约期限(就是一个IP地址分配给用户的默认使用时间)

         

        是否现在要配置网关那些东西,我选了是,下一步

         

         设置路由器的默认网关,这个网关要和你公司的网关一致,我这里是用IP地址最后一位作为网关

        

       填写DNS服务器的IP地址,这个IP地址一般是写你公司所在区域的IP地址,公司买网时有文档记录,我这里填了WLAN(wifi)的DNS的IP,在命令行输入:ipconfig  /all

        找到这个链接打开,路由状态就能找到WLAN的DNS的IP

        

        

        直接下一步 

         

        我这是虚拟机我直接激活,现实中建议选否,检查完作用域没问题了,在自行激活,配置是保存的。 

         

         作用域配置成功

        

        7. 回到winXP虚拟机就会发现已经连接成功,如果没有可以先禁用网络再启用

         

         

       然后禁用网络再启用只要在租约时间内客户机拿到的IP地址是不变的,这就验证了上面的说法

        在DHPC服务器内可以看到谁租用了IP地址

         

        注意:如果你XP系统连接到的IP地址不是你配置的IP,那可能是连接到虚拟机的DHPC服务器了

         解决方法如下:编译 -- 虚拟机编辑器 --更改设置

        

        

         

        windows7/2008 操作系统部署DHCP服务器

        安装DHCO

        1. 开始 -- 管理工具 -- 服务器管理

         2. 角色 -- 添加角色                               

 3. 下一步

4. 选择DHCP 服务器,本机要设置为静态ip,和上面的设置方法一样,之后的步骤,自己看着来就行 

6、IP地址保留

        这对指定的MAC地址,固定动态分配IP地址

        场景:比如你老板跟你提个要求说张三啊,你给我电脑配个专门的IP地址要好听一点的来个66吧。

        实现:不能配静态地址,要不然老板那台电脑离开公司,他自己又不会配IP的话就上不了网了,这时我们要动态配置,记录老板电脑的MAC地址以后只要是该MAC地址获取IP时DHCP服务器就把对应的IP地址分配给他。

        步骤:

        1. 首先我们要知道老板电脑的MAC地址,在命令行输入:ipconfig  /all

        

        2. 然后打开DHCP服务器(win2003内),选择保留 -- 新建保留

        

         填完选择添加

        

         

         验证:

        来到winXP(老板的电脑)

        先释放IP:ipconfig /release   

        再重新获取: ipconfig /renew

7、选项优先级

        作用域选项 > 服务器选项

        当服务器上有多个作用域时,可以在服务器选项上设置DNS服务器,作用域会从服务器上继承过来。

        比如:一个公司有多部门IT、财务、UI之类的,一般是需要多个作用域,每个部门都有属于自己的作用域,IT部用的IP地址是 10.1.1.x   , 财务是 20.1.1.x 这种情况下我们创建作用域时就没有必要每一次创建都配置DHCP选项(DNS这些),因为这些作用域都是在同一个地方使用,像DNS这些肯定是相同的,所以我们直接跳过,最后再给服务器配置需要的选项其他作用域继承服务器的选项,如果作用域自己也配置了该选项哪就优先使用作用域自己配置的选项

        图示:

        创建作用域时这里选否

        

        我这里就创建了IT部和财务部用作演示,现在的IT和财务的作用域选项都是空的

        

        现在给服务器配置 DNS 服务器

         

        

        给IT和财务这两个作用域的作用域选项都刷新一下

         

        在这里单独给IT作用域配置DNS 服务器的话,会覆盖从服务器继承过来的选项 

         

 

8、DHCP备份

        备份

        

         还原

        

这里有一点需要注意,如果你不小心把服务器给删除了,不用慌,那只是不显示而已,后台还是在运行,把作用域删除了那才是真正的删除了,不过有提前备份作用域好,还原就行了,下面演示删除服务器,恢复教程:

        

         

                 

然后可以测试一下服务器是不是还在后台运行,命令行输入:netstat -an   # 查看开放可用的端口

        开始恢复服务器列表

        

         

         

         

        选择自己的服务器 -- 确定 

         

         

         最后确定添加

        

        恢复成功

         

9、DHCP攻击与防御

1)攻击DHCP服务器:频繁的发送DHCP请求,直到将DHCP地址池耗尽

     防御:在交换机(管理型)的端口上做动态MAC地址绑定

2)伪装DHCP服务器攻击:黑客通过将自己部署为DHCP服务器,为客户机提供非法ip地址

     防御:在交换机上,除合法的DHCP服务器所在接口外,全部设置为禁止发送DHCP offer包

10、常见小问题解决 

  • 服务器的IP地址必须是静态的
  • 删除备份的时候,不要删除服务器,删除作用域
  • 把虚拟机自带的DHCP服务关掉
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

详解DHCP部署与安全方案:保护你的网络免受攻击 的相关文章

  • Android 上的 UDP 视频流

    我有一个 Android 项目 需要构建一个客户端应用程序来接收 UDP 或 RTP 单播视频流并播放它们 不幸的是 我似乎无法使其正常工作 并且已经广泛搜索了解决方案 我已经在 Xoom Android 3 2 和 Nexus S And
  • 简单的udp代理解决方案

    我正在寻找可以代理我的 udp 数据包的解决方案 我有一个客户端向服务器发送 udp 数据包 它们之间的连接非常糟糕 导致大量数据包丢失 一种解决方案是使用一个新的代理服务器 它将所有数据包从客户端重定向到目标服务器 新的代理服务器与这两个
  • Java:使用多个 DatagramSocket 接收 UDP 数据报包

    我正在尝试实现一种将 UDP 数据包发送到多个接收者的方法 我认为这应该是可行的设置setReuseAddress true 在接收 DatagramSocket 实例上 我的问题是 在某些情况下 我需要限制与本地计算机的通信 因此限制本地
  • udp数据包被tcpdump捕获,但没有被套接字接收[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我编写了一个 rawudp 程序 通过原始套接字发送 udp 数据包 按照网页http www tenouk com Module43a html h
  • 移动提供商无法进行 UDP 打洞

    实际上 我正在编写一个 Android 应用程序 该应用程序接收连接到 PC 的网络摄像头的图片 为了获得更多的 fps 我使用 udp 协议而不是 tcp 这个想法是 电脑将图片发送到手机的 IP 和端口 但电话提供商有不同的公共端口 所
  • 用于接收 UDP 数据包的可变大小缓冲区

    我有一个 UDP 套接字 它将接收一些可能不同大小的数据包 并且我异步处理它 socket async receive from boost asio buffer buffer 65536 senderEndpoint handler 这
  • 接收来自 N 个客户端的响应,以回复通过 UDP 的广播请求

    我正在为特定类型的网络多媒体设备实现一种 IP 查找器 我想找出 LAN 中该类型的所有活动设备及其 IP 地址和其他详细信息 设备有自己的设备发现方式 其工作原理如下 客户端通过 UDP 通过 LAN 发送广播请求 目的端口号是固定的 作
  • 如何监听任意端口的广播包?

    使用 NET 如何在任何端口上侦听发送到 255的udp广播数据包 而不需要绑定到特定端口 我自己找到了办法 它是这样工作的 mainSocket new Socket AddressFamily InterNetwork SocketTy
  • 致命错误:netinet/in.h:没有这样的文件或目录

    套接字编程 UDP 服务器 我正在尝试使用 UDP 服务器进行消息加密和解密 代码在这里 https www geeksforgeeks org message encryption decryption using udp server
  • netty 4.x.x 中的 UDP 广播

    我们需要使用 Netty 4 0 0 二进制文件通过 UDP 通道广播对象 Pojo 在 Netty 4 0 0 中 它允许我们仅使用 DatagramPacket 类来发送 UDP 数据包 此类仅接受 ByteBuf 作为参数 还有其他方
  • 在 Perl 中如何接受多个 TCP 连接?

    我对 Linux 的 Perl 脚本有疑问 它的主要目的是成为 3 个应用程序之间的中间人 它应该做什么 它应该能够等待 UDP 文本 不带空格 udp port 当它收到 UDP 文本时 它应该将其转发到连接的 TCP 客户端 问题是我的
  • 为什么通过UdpClient发送会导致后续接收失败?

    我正在尝试创建一个 UDP 服务器 它可以向所有向其发送消息的客户端发送消息 真实情况要复杂一些 但最简单的方法是将其想象为一个聊天服务器 之前发送过消息的每个人都会收到其他客户端发送的所有消息 所有这一切都是通过UdpClient 在单独
  • Rails 是否支持侦听 UDP 套接字的简洁方式?

    在 Rails 中 集成更新模型某些元素的 UDP 侦听过程的最佳方式是什么 特别是向其中一个表添加行 简单的答案似乎是在同一进程中使用 UDP 套接字对象启动一个线程 但不清楚我应该在哪里执行适合 Rails 方式的操作 有没有一种巧妙的
  • 视频流上的 TCP 与 UDP

    我刚从网络编程考试回来 他们问我们的问题之一是 如果您要传输视频 您会使用 TCP 还是 UDP 请解释一下存储视频和实时视频流 对于这个问题 他们只是希望得到一个简短的答案 TCP 用于存储视频 UDP 用于实时视频 但我在回家的路上想到
  • 为什么 SNMP 通常在 UDP 上运行而不是 TCP/IP 上?

    今天早上 工作中出现了大问题 因为 SNMP 陷阱没有 通过 因为 SNMP 是通过 UDP 运行的 我记得在大学网络课上 UDP 不能像 TCP IP 那样保证传输 维基百科说 SNMP 可以在 TCP IP 上运行 但 UDP 更常见
  • P2P网络游戏/应用程序:类似“战网”匹配服务器的不错选择

    我正在制作一个网络游戏 1v1 游戏中是 p2p 不需要游戏服务器 然而 为了让玩家能够 找到彼此 而不需要在另一种媒介中协调并输入IP地址 类似于网络游戏的现代时代 我需要有一个协调 匹配服务器 我无法使用常规网络托管 因为 客户端将使用
  • 为什么SOCKS5需要通过UDP中继UDP?

    The SOCKS5 https en wikipedia org wiki SOCKS SOCKS5协议 描述为RFC1928 https www rfc editor org rfc rfc1928提供对 UDP 的支持 总而言之 希望
  • 如何从 DatagramPacket 中检索字符串[重复]

    这个问题在这里已经有答案了 下面的代码打印 B 40545a60 B 40545a60abc exp 但我想打印abc 以便我可以从接收系统检索正确的消息 public class Operation InetAddress ip Data
  • 跨 NAT 的 UDP 客户端无法从服务器接收数据

    我正在尝试在服务器 在公共 IP 上 和客户端 跨 NAT 之间使用 UDP 进行双向通信 我的逻辑是 如果服务器将一些数据发送到 IP 和它接收数据包的端口 客户端仍然应该收到它 因为 NAT 将具有最终将数据包发送到客户端的映射 客户端
  • UDP SocketException - 通常只允许每个套接字地址使用一次

    尽管这里有很多非常相似的问题 但提供的答案都没有帮助我 这让我很难过 我有一个非常大的管理系统 我的任务是为其编写一些 UDP 数据包发送 接收 我已经编写了一个原型 一切都很好 所以我开始将我的代码合并到所述系统中 然而 我现在弹出了一个

随机推荐

  • Vuex学习总结

    Vuex学习总结 1 概述 说说我的理解 不一定对 由于前端的组件化开发常常难免涉及到组件之间的通信 对于一个小型项目来说 通过父子组件通信就够用了 但是 可能随着项目扩大 存在兄弟组件或者祖孙组件通信的通信 其解决方法通常有两种 中央bu
  • QML VideoOutput填充模式引发的问题

    QML Camera显示不全问题 BUG记录 QML使用Camera组件获取摄像头中的视频 使用VideoOutput显示 显示没有问题 但在Capture时 生成的图片明显比显示的东西多 真实生成的图片 在VideoOutput显示的部分
  • JMJS系统总结系列----JMJS中接口使用的技术(六)

    三同时接口 调用外部的webService A 添加WebService引用 using JMJS BusinessLogic IsSupervisionsServiceReference B 具体调用 public class IsSup
  • MySQL表操作:提高数据处理效率的秘诀(进阶)(1)

    生命不在于相信奇迹 而在于创造奇迹 朱学恒 作者 不能再留遗憾了 专栏 MySQL学习 本文章主要内容 MySQL对表操作进阶 数据库约束 表的设计 新增 后续会更新进阶表的查询 文章目录 前言 1 数据库约束 NULL约束 UNIQUE
  • VTK 测量类Widget的应用 与 vtkDistanceWidget 3D测试 问题

    vtkDistanceWidget 用于在二维平面上测量两点之间的距离 vtkAngleWidget 用于在平面的角度测量 AngleWidget 感觉这都是 2D控件 include
  • nvm use 无法切换npm的解决办法

    nvm正常的安装目录结构 没有正常切换时对应的文件结构 3 解决方法 nvm use 无效 即 nvm use 后执行nvm ls 当前使用的版本前正常是会有 标注 可是nvm use 所有版本前都没有 我当前使用的版本是 6 10 0 我
  • 编写一个类实现银行账户Account的概念

    编写一个类实现银行账户Account的概念 包含的属性有 帐号 密码 存款余额 利率rate 最小余额 定义封装这些属性的方法 账号要自动生成 编写主类 使用银行账户类 输入 输出3个储户的上述信息 考虑 哪些属性可以设计成static属性
  • 【APP自动化测试必知必会】Appium之微信小程序自动化测试

    本节大纲 H5 与小程序介绍 混合 App 元素定位环境部署 混合 App 元素操作 Airtest 测试 App 01 H5与小程序介绍 H5概述 H5 是指第 5 代 HTML 也指用 H5 语言制作的一切数字产品 所谓 HTML 是
  • springboot2整合redis超简单

    依赖
  • [开发

    同时支持中国手机和固定电话号码的正则表达式 const pattern 1 3 9 d 9 0 d 2 3 d 7 8 d 1 5 说明 表示字符串的开始 1 3 9 d 9 0 d 2 3 d 7 8 d 1 5 使用逻辑或 将两个正则表
  • 分布式任务调度框架xxljob2.2.0详细安装使用教程

    分布式任务调度框架xxljob2 2 0详细安装使用教程 简介 概述 特性 总体设计 源码目录介绍 调度数据库 配置 架构设计 设计思想 系统组成 架构图 安装 环境 创建目录 下载 解压 初始化调度数据库 调度数据库表说明 配置部署 调度
  • 安装Visio2010 64bit时提示不能安装32位版本的Office 2010 ,因为您当前已经安装了64位Office产品的解决方法(亲测可行)

    电脑是64位的 从网上找了64位的Visio2010但是安装的时候却提示不能安装32位版本的Office 2010 因为您当前已经安装了64位Office产品 如下 然后就找到了一个解决办法 链接 https pan baidu com s
  • 网页防篡改把服务器顶满,网页防篡改技术

    网页防篡改技术 网页防篡改技术包括时间轮询技术 核心内嵌技术 事件触发技术 文件过滤驱动技术等 时间轮询技术利用网页检测程序 以轮询方式读出要监控的网页 与真实网页相比较 来判断网页内容的完整性 对于被篡改的网页进行报警和恢复 但是由于目前
  • java多态练习_Java课堂练习——多态

    一 ATM机 import java util Scanner abstract class drawmoney public abstract double getMoney double a double n class drawmon
  • dbeaver设置mysql驱动

    dbeaver 默认是没有配置mysql驱动的 方式1 可访问外网 无办公防火墙拦截 直接联网更新驱动即可 方式2 有防火墙拦截 无法更新驱动 驱动属性 编辑驱动 选择本地的mysql驱动文件 可选择maven仓库中的mysql驱动jar
  • 程序员必知的23种设计模式之访问者模式

    文章目录 1 模式引出 测评系统需求 2 传统方案 2 1 传统方式代码 3 访问者模式基本介绍 3 1 UML原理类图 3 2 对原理类图的说明 即 访问者模式的角色及职责 4 方案修改 5 双分派 6 访问者模式的注意事项和细节 6 1
  • TCP服务器epoll的多种实现

    TCP服务器epoll的多种实现 对于网络IO会涉及到两个系统对象 用户空间中进程或者线程 操作系统内核 比如发生read操作时就会经历两个阶段 等待数据就绪 将数据从内核缓冲区拷贝到用户缓冲区 由于各个阶段多有不同的情况 一组合么就产生了
  • 机器学习(一)

    一 数据结构的组成 数据结构大部分为 特征值 目标值 但是也有些数据没有目标值 在机器学习中常常使用pandas来进行数据的处理以及基本格式的调节 一 特征值 一般情况下 能反映出目标所存在的特征的数值为特征值 例如 我们要判断一个人的性别
  • PE文件资源解析(三)图标组资源的解析

    图标组资源 在这里指的是资源类型为RT GROUP ICON的资源信息 通过ResHacker看到的效果图如下 既然是图标组 里面肯定包含很多组图标 解析代码如下 HRSRC hResrc FindResource hModule lpNa
  • 详解DHCP部署与安全方案:保护你的网络免受攻击

    数据来源 这篇文章涉及一些IP地址的基础知识 不熟悉的可以先看这一篇 IP地址详解 1 DHCP作用 DHCP 动态主机配置协议 是一个局域网的网络协议 指的是由服务器控制一段IP地址范围 客户机登录服务器时就可以自动获得服务器分配的IP地