且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Windows DHCP Server基于MAC地址过滤客户端请求实现IP地址的分配

更新时间:2022-04-25 08:24:01

企业中,为了降低管理员对于IP地址管理、分配的复杂繁琐性,很多企业都会架设Windows DHCP服务器,通过DHCP服务器为企业中的客户端自动分配IP地址。

但是面对现代如此庞大数量的客户端PC、手机、平板等,也导致安全性面临巨大挑战。其实DHCP可以通过MAC地址过滤来实现IP地址分配,可以将企业中多有授权的客户端MAC地址收集起来,在DHCP服务器中进行设置,使其顺利获取IP,而没有被授权的客户端则不能获取IP。

从Windows Server 2008 R2开始,基于MAC地址过滤已经集成在DHCP中,作为一大特性存在。但是早期的Windows Server 2003、Windows Server 2008 并没有包含该特性,那么仍然使用这些低于server 08 R2版本的DHCP Server的企业该怎么解决这个问题呢?这里给大家做详细的介绍。

对于仍然基于 2K03、2K08平台架设的DHCP服务器来说,只要安装 MacFilterCalloutInstaller(有x86和x64之分),然后进行简单的配置即可实现。

环境介绍:

VMware Workstation  虚拟机两台(运行在同一宿主机);

一台安装Windows Server 2003 SP2 (32位), 并安装DHCP  Server角色;

另一台 XP Pro  sp3, 作为DHCP Client,进行测试。

查看DHCP Server系统版本信息:

Windows DHCP Server基于MAC地址过滤客户端请求实现IP地址的分配

查看客户端MAC地址:

Windows DHCP Server基于MAC地址过滤客户端请求实现IP地址的分配

为了防止DHCP Server对生产环境PC分配IP,造成不能上网,所以分别对两台虚拟机网络适配器作如下设置:

Windows DHCP Server基于MAC地址过滤客户端请求实现IP地址的分配

安装MacFilterCalloutInstaller:  

双击"MacFilterCalloutInstaller-x86.msi" 可执行文件,启动安装向导;

勾选"接受许可协议":

Windows DHCP Server基于MAC地址过滤客户端请求实现IP地址的分配

安装完成向导,【Finish】就安装完成了。

Windows DHCP Server基于MAC地址过滤客户端请求实现IP地址的分配

安装完成后会在 system32 目录下生成两个文件:"MacFilterCallout.dll" "SetupDHCPMacFilter.rtf"

如图示:

Windows DHCP Server基于MAC地址过滤客户端请求实现IP地址的分配

Windows DHCP Server基于MAC地址过滤客户端请求实现IP地址的分配

同时,system32\dhcp 目下,生成文件 "MACList.txt":

Windows DHCP Server基于MAC地址过滤客户端请求实现IP地址的分配

打开MACList.txt 文件,可以看到如下图:

Windows DHCP Server基于MAC地址过滤客户端请求实现IP地址的分配

"MACList.txt"是主要文件,DHCP Server处理请求时就是从这个文件中读取数据,然后匹配。

这是默认配置,默认情况下,允许所有客户端从DHCP Server 请求IP地址。MAC_ACTION的

可选参数值: ALLOW,DENY,分别用来设置允许列表和拒绝列表。

进行“允许列表”配置测试:

1. 向“MACList.txt”添加一个虚假MAC(内网没有该MAC),然后重新启动DHCP Server服务,

然后测试客户端能否正常获取IP:

Windows DHCP Server基于MAC地址过滤客户端请求实现IP地址的分配


查看DHCP Client:

Windows DHCP Server基于MAC地址过滤客户端请求实现IP地址的分配

IP地址获取失败,因为client MAC地址没有加入允许列表。

2. 将Client MAC 加入到允许列表并重启DHCP Server服务,然后测试客户端:

Windows DHCP Server基于MAC地址过滤客户端请求实现IP地址的分配

查看查看DHCP Client:

Windows DHCP Server基于MAC地址过滤客户端请求实现IP地址的分配

可见,IP地址成功获取,配置无误。

下面我们将DHCP服务器修改为拒绝列表方式测试。

进行“拒绝列表”配置测试:

1. 打开"MACList.txt" 文件,将"ALLOW"改为"DENY",重启DHCP Server服务:

Windows DHCP Server基于MAC地址过滤客户端请求实现IP地址的分配


查看客户端IP地址获取情况:

Windows DHCP Server基于MAC地址过滤客户端请求实现IP地址的分配

客户端正常获取IP。说明:不管是允许列表还是拒绝列表,如果列表不进行配置(为空),则默认为DHCP Server 接受所有客户端发来的DHCP 请求。


2. 将虚假MAC地址加入文件中:

Windows DHCP Server基于MAC地址过滤客户端请求实现IP地址的分配

重启DHCP Server服务,查看客户端IP地址获取情况:

Windows DHCP Server基于MAC地址过滤客户端请求实现IP地址的分配

可见,客户端不受影响,正常获取IP地址。

3. 将客户端MAC地址加入文件中:

Windows DHCP Server基于MAC地址过滤客户端请求实现IP地址的分配

重启DHCP Server服务,查看客户端IP地址获取情况:

Windows DHCP Server基于MAC地址过滤客户端请求实现IP地址的分配

客户端不能从DHCP Server 获取IP地址了。

由此,我们可以顺利的控制内网客户端IP地址分配了,同时如果内网有主机需要固定IP,在DHCP控制台的对应作用域的"保留"中创建保留就可以了。


注意: 每次修改列表都需要重启DHCP Server服务,然后才能生效。


相关技术介绍: http://blogs.technet.com/b/teamdhcp/archive/2007/10/03/dhcp-server-callout-dll-for-mac-address-based-filtering.aspx





     本文转自marbury 51CTO博客,原文链接:http://blog.51cto.com/magic3/1347423,如需转载请自行联系原作者