l0c*_*b0x 100 networking dhcp
确定我的网络中是否有流氓 DHCP 服务器的最佳方法是什么?
我想知道大多数管理员是如何处理这些问题的。我通过搜索找到了DHCP Probe,并考虑尝试一下。有没有人有过这方面的经验?(我想在花时间编译和安装之前知道)。
您知道寻找恶意 DHCP 服务器的任何有用工具或最佳实践吗?
Zor*_*che 56
一种简单的方法是简单地在计算机上运行像 tcpdump/wireshark 这样的嗅探器并发出 DHCP 请求。如果您看到除真实 DHCP 服务器之外的任何报价,那么您就知道您遇到了问题。
Jas*_*her 24
回顾并添加到其他一些答案中:
暂时禁用您的生产 DHCP 服务器并查看其他服务器是否响应。
您可以通过ipconfig /all在 Windows 机器上运行来获取服务器的 IP 地址,然后您可以通过使用arp -a.
在 Mac 上,运行ipconfig getpacket en0(或 en1)。参见http://www.macosxhints.com/article.php?story=20060124152826491。
DHCP 服务器信息通常在 /var/log/messages 中。 sudo grep -i dhcp /var/log/messages*
当然,禁用生产 DHCP 服务器可能不是一个好的选择。
使用专门查找恶意 DHCP 服务器的工具
请参阅http://en.wikipedia.org/wiki/Rogue_DHCP以获取工具列表(其中许多已在其他回复中列出)。
配置交换机以阻止 DHCP 提供
大多数管理型交换机都可以配置为防止恶意 DHCP 服务器:
Dav*_*e K 16
Wireshark / DHCP explorer / DHCP Probe 方法适用于一次性或定期检查。但是,我建议您查看网络上的DHCP 侦听支持。此功能将提供对网络上恶意 DHCP 服务器的持续保护,并得到许多不同硬件供应商的支持。
这是Cisco 文档中指示的功能集。
• 验证从不受信任的来源接收的 DHCP 消息并过滤掉无效消息。
• 对来自受信任和不受信任来源的 DHCP 流量进行速率限制。
• 构建和维护DHCP 侦听绑定数据库,其中包含有关具有租用IP 地址的不受信任主机的信息。
• 利用DHCP 侦听绑定数据库来验证来自不受信任主机的后续请求。
quu*_*uux 11
dhcploc.exe是 Windows 系统上最快捷、最方便的方法。它在 XP 支持工具中可用。支持工具位于每个 OEM/零售 XP 磁盘上,但可能位于也可能不在某些 OEM 提供的“恢复磁盘”上。您也可以从 MS下载它们。
这是一个简单的命令行工具。您运行dhcploc {yourIPaddress}然后按“d”键进行虚假发现。如果你不按任何键就让它运行,它会显示每个 DHCP 请求并回答它听到。按“q”退出。
小智 8
扩展l0c0b0x关于bootp.type == 2用作过滤器的评论。bootp.type 过滤器仅在 Wireshark/tshark 中可用。它在 tcpdump 中不可用,他的评论的上下文位置使我相信。
Tshark 非常适合于此。
我们将我们的网络划分为多个广播域,每个域都有自己的基于 Linux 的探测器,并以一种或另一种方式在“本地”广播域和管理子网上有一个存在点。Tshark 与ClusterSSH相结合,让我可以轻松查找 DHCP 流量或(与此相关的任何其他内容)在网络的其他角落。
这将使用 Linux 找到 DHCP 回复:
# ifconfig ethX promisc
# tshark -i ethX -n port 68 -R 'bootp.type == 2'
Run Code Online (Sandbox Code Playgroud)
小智 8
我建议启动两个终端,一个用于监控,另一个用于发送请求。终端 1 将显示来自所有现有 DHCP 服务器的响应,包括 MAC 地址。这个例子是在 Ubuntu 上运行的:
终端 1(用于监控):
sudo tcpdump -nelt udp port 68 | grep -i "boot.*reply"
Run Code Online (Sandbox Code Playgroud)
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on enp2s0, link-type EN10MB (Ethernet), capture size 262144 bytes
20:a6:80:f9:12:2f > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 332: 192.168.1.1.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 290
00:23:cd:c3:83:8a > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 590: 192.168.1.253.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 548
Run Code Online (Sandbox Code Playgroud)
Terminal2(用于发送请求):
sudo nmap --script broadcast-dhcp-discover -e eth0
Run Code Online (Sandbox Code Playgroud)
Starting Nmap 7.01 ( https://nmap.org ) at 2019-10-13 21:21 EEST
Pre-scan script results:
| broadcast-dhcp-discover:
| Response 1 of 1:
| IP Offered: 192.168.1.228
| DHCP Message Type: DHCPOFFER
| IP Address Lease Time: 2h00m00s
| Server Identifier: 192.168.1.1
| Subnet Mask: 255.255.255.0
| Router: 192.168.1.1
|_ Domain Name Server: 8.8.8.8, 8.8.4.4
WARNING: No targets were specified, so 0 hosts scanned.
Nmap done: 0 IP addresses (0 hosts up) scanned in 0.94 seconds
Run Code Online (Sandbox Code Playgroud)
只需要该监控终端即可查看所有响应(nmap 只能显示第一个响应)。
小智 7
一旦你确定网络上有一个流氓 dhcp 服务器,我发现解决它的最快方法是......
向整个公司发送一封电子邮件,说:
“你们谁在局域网中添加了无线路由器,你已经为其他人扼杀了互联网”
期待一个害羞的回应,或者冲突的设备会很快消失:)