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系统版本信息:
查看客户端MAC地址:
为了防止DHCP Server对生产环境PC分配IP,造成不能上网,所以分别对两台虚拟机网络适配器作如下设置:
安装MacFilterCalloutInstaller:
双击"MacFilterCalloutInstaller-x86.msi" 可执行文件,启动安装向导;
勾选"接受许可协议":
安装完成向导,【Finish】就安装完成了。
安装完成后会在 system32 目录下生成两个文件:"MacFilterCallout.dll" "SetupDHCPMacFilter.rtf"
如图示:
同时,system32\dhcp 目下,生成文件 "MACList.txt":
打开MACList.txt 文件,可以看到如下图:
"MACList.txt"是主要文件,DHCP Server处理请求时就是从这个文件中读取数据,然后匹配。
这是默认配置,默认情况下,允许所有客户端从DHCP Server 请求IP地址。MAC_ACTION的
可选参数值: ALLOW,DENY,分别用来设置允许列表和拒绝列表。
进行“允许列表”配置测试:
1. 向“MACList.txt”添加一个虚假MAC(内网没有该MAC),然后重新启动DHCP Server服务,
然后测试客户端能否正常获取IP:
查看DHCP Client:
IP地址获取失败,因为client MAC地址没有加入允许列表。
2. 将Client MAC 加入到允许列表并重启DHCP Server服务,然后测试客户端:
查看查看DHCP Client:
可见,IP地址成功获取,配置无误。
下面我们将DHCP服务器修改为拒绝列表方式测试。
进行“拒绝列表”配置测试:
1. 打开"MACList.txt" 文件,将"ALLOW"改为"DENY",重启DHCP Server服务:
查看客户端IP地址获取情况:
客户端正常获取IP。说明:不管是允许列表还是拒绝列表,如果列表不进行配置(为空),则默认为DHCP Server 接受所有客户端发来的DHCP 请求。
2. 将虚假MAC地址加入文件中:
重启DHCP Server服务,查看客户端IP地址获取情况:
可见,客户端不受影响,正常获取IP地址。
3. 将客户端MAC地址加入文件中:
重启DHCP Server服务,查看客户端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
Windows DHCP Server基于MAC地址过滤客户端请求实现IP地址的分配相关推荐
- linux设置静态ip地址_什么是静态IP地址,与动态IP地址比较以及如何为Windows和Linux设置?...
linux设置静态ip地址 IP addresses are the core mechanism of Computer networks. The IP address is used to sp ...
- Crawler:基于urllib库获取cn-proxy代理的IP地址
Crawler:基于urllib库获取cn-proxy代理的IP地址 目录 输出结果 实现代码 输出结果 后期更新-- 实现代码 import urllib.request import re imp ...
- winform取CPU编号、MAC地址、硬盘信息、IP地址、串口信息
winform取CPU编号.MAC地址.硬盘信息.IP地址.串口信息 http://www.cnblogs.com/ccczqh/archive/2011/03/28/1997480.html 作者: ...
- java 获取请求客户端的真实IP地址
转载自:http://leiyongping88.iteye.com/blog/1545930 用request.getRemoteAddr(); 方法获取的IP地址是:127.0.0.1或192.1 ...
- Java获取请求客户端的真实IP地址
整理网友的材料,最后有源码,亲测能解决所有java获取IP真实地址的问题 整理的这里: 1.链接1 2.链接2 JSP里,获取客户端的IP地址的方法是: request.getRemoteAddr() ...
- 多级反向代理下,Java获取请求客户端的真实IP地址多中方法整合
在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实I ...
- JavaWeb 获取客户端的真实IP地址
通常我们在JavaWeb中获取客户端IP地址只需要使用request.getRemoteAddr();方法即可 如果前端使用了Nginx等反向代理的话,我们使用request.getRemoteAdd ...
- Logstash数据处理服务的过滤插件GeoIP解析IP地址的地理位置
Logstash数据处理服务的过滤插件GeoIP解析IP地址的地理位置 文章目录 Logstash数据处理服务的过滤插件GeoIP解析IP地址的地理位置 1.GeoIP解析IP地址的地理位置 2.安装 ...
- win7系统设置web服务器ip地址,win7系统设置web服务器ip地址
win7系统设置web服务器ip地址 内容精选 换一换 已配置Docker容器环境,详细步骤请参见配置Docker容器环境.如果在以端口映射模式创建的Docker容器中安装系统性能分析,不能添加Age ...
最新文章
- Ubuntu命令行连接wifi热点
- 【BZOJ1146】【CTSC2008】网络管理 [整体二分]
- 菜鸟教程python位运算符_NumPy 位运算
- string stringbuffer stringbuilder 区别
- android studio on/off 切换开关,如何使用android studio中的开关小部件来启用/禁用函数()?...
- CSS每日学习笔记(0)
- 多柱汉诺塔最优算法设计探究
- C#获取本执行程序所在的当前路径
- leetcode题解347-前 K 个高频元素
- [原创]Linux系统启动过程分析
- 【JZOJ A组】时空幻境
- 2016 server win 假死_Win7运行程序无缘无故发生假死现象五种解决方法
- 触发Full GC执行的情况
- 基于springboot的4s店车辆管理系统-计算机毕业设计(源码+数据库+Lw文档)
- ubuntu自带Firefox安装flash插件
- Adobe Xd快捷键(Win 10)-UI设计更便捷
- 2.JVM垃圾回收机制-什么时候回收内存
- 关于python安装问题 0x80072f7d的解决方法
- 2008世界旅游大使中国赛区总决赛在正定华丽落幕
- Computer:IPFS(星际文件系统)的简介、安装、使用方法之详细攻略