昨天大雪(CU 某 ID 在 QQ 中的昵称)在群里问了一个问题,他们的网里有个人自己弄了 DHCP 服务器,扰乱了整个网络中 DHCP 的分配
由于交换机不带管理功能,所以难以处理,甚至有人出了“拔网线”的馊主意(具体是谁他心里清楚,也是 CU 某 ID)
经过思考,想出了一个巧妙查找网络中其他非法 DHCP 服务器的方法,经试验通过,写出来与大家分享一下
由于 DHCP 协议是二层的,无法找到网络中那台非法 DHCP 服务器的源、目的 IP 地址
如果网络里面同时有多台 DHCP 服务器,而你的交换机没有阻止 DHCP 协议的发布,那么这个网是很危险的(我所在的小区里也有这样的情况,如果我架设了 DHCP,我会看到 /var/lib/dhcp/dhcpd.leases 看到很多被分配的 IP)
我们可以采取用 tcpdump 抓包的方法,来判断对方的 MAC,如果有了 MAC 就好办了
普通情况下,tcpdump 抓到的包都是 3 层的,只能看到 IP 头和其他 4 层头(比如 TCP/UDP)
tcpdump 下面有个 -e 参数
-e Print the link-level header on each dump line.
这个是关键,还有一个关键部分就是 port,因为 dhcp 协议会用到 UDP/67,知道这两点就好办了,抓包看看 MAC 就可以了
有了 MAC 就好办了,再用 arp -n 就能看到其 IP,接下来就是在网关上封掉他的 MAC,让他“投案自首”吧 ^_^
代码: |
[root@platinum root]# tcpdump -e -i eth1 -nn port 67 -c 3 2>&1|awk '/bootp/{print " --> "}' 0:0c:85:ad:e5:af --> ff:ff:ff:ff:ff:ff e7:0a:19:80:03:09 --> 0:0c:85:ad:e5:af 0:0c:85:ad:e5:af --> e7:0a:19:80:03:09 [root@platinum root]# |