Windows DHCP Server基于MAC地址过滤客户端请求实现IP地址的分配-阿里云开发者社区

开发者社区> 技术小胖子> 正文

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

简介:
+关注继续查看

企业中,为了降低管理员对于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系统版本信息:

wKioOVLD9-rxEN6TAAD9mNsEkoM088.jpg

查看客户端MAC地址:

wKioOVLD--GxcIDRAABph4l6h_k034.jpg

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

wKioOVLD9t3wmfrpAADgqq2hA7Q102.jpg

安装MacFilterCalloutInstaller:  

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

勾选"接受许可协议":

wKioOVLD9b7jMrWHAACsQ81_tk0725.jpg

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

wKioJlLD-LahvEIuAABpTFTT5lg117.jpg

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

如图示:

wKioJlLD-jGwcpSGAACwKrE08SE065.jpg

wKioOVLD-iryb8NJAADfumRS9MQ872.jpg

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

wKioJlLD-rvDQz-oAADDsQ3-rTw738.jpg

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

wKioOVLD-xHjFASKAAAvhvsq5Vo558.jpg

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

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

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

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

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

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

wKioJlLD_X7h8lbDAAAy4CNXtds163.jpg


查看DHCP Client:

wKioOVLD_XbA6BQJAADUPQkvZ2A442.jpg

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

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

wKioJlLD_mWCsnP-AAA3K-WlVms234.jpg

查看查看DHCP Client:

wKioOVLD_oeSkY4WAADf0Y_SX5Y689.jpg

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

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

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

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

wKioOVLD_5zQiVjhAAAuIGUDLFA129.jpg


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

wKioJlLD_6SgUVIaAAD8s2HVQUk859.jpg

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


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

wKioOVLD_5yB59-sAAAuNH08JDQ931.jpg

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

wKioJlLEALDgMisPAAEINvx2RZQ988.jpg

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

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

wKioOVLEAPXAI2C3AAAxX7QAvuI430.jpg

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

wKioJlLEAP2jXtkeAAD1eZJj-pY998.jpg

客户端不能从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,如需转载请自行联系原作者



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
配置kubectl客户端通过token方式访问kube-apiserver
使用的变量 本文档用到的变量定义如下: $ export MASTER_IP=XX.XX.XX.XX # 替换为 kubernetes master VIP $ export KUBE_APISERVER="https://${MASTER_IP}:6443" $ 创建 kubectl confi.
1683 0
MaxCompute客户端(odpscmd)在windows命令行下查询中文乱码问题处理实践
MaxCompute客户端工具是阿里云大数据计算服务MaxCompue产品官方客户端工具,通过客户端工具可以连接MaxCompute项目,完成包括数据管理、数据上下传、作业执行、用户及授权管理等各项操作。
5432 0
c++ windows 获取mac地址
Windows平台下用C++代码取得机器的MAC地址并不是一件简单直接的事情。到目前为止,作者尚未发现有任何一个通用的100%的适用于所有Windows平台的方法可以稳定的取得MAC地址。而有些应用(比如MMORPG)则需要稳定的得到机器的MAC地址,解决方案往往是通过多种方法依次使用来提高成功率。
2145 0
Java获取本机MAC地址
为什么写这个呢?因为前几天看见网上有采用windows命令获取局域网和广域网MAC,查了查可以直接用JDK的方法。          MAC可用于局域网验证,提高安全性。 import java.
637 0
21119
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载