一、现状介绍
网络访问保护 (NAP) 是Windows Server 2008 中引入的一项新技术。NAP 包括客户端和服务器组件,允许您创建和强制实施健康要求策略,这些策略为连接到您网络的计算机定义所需的软件和系统配置。NAP 通过检查和评估客户端计算机的运行状况、在认为客户端计算机不符合时限制网络访问以及修正不符合的客户端计算机以进行无限制网络访问,来强制健康要求。NAP 在尝试连接到网络的客户端计算机上强制健康要求。如果符合的客户端计算机连接到网络上,NAP 还提供即时的健康符合强制。
在客户端计算机尝试通过网络访问服务器访问网络时或客户端尝试与其他网络资源进行通信时,发生 NAP 强制。强制实施 NAP 的方式因您选择的强制方法而异。NAP 对以下内容强制实施健康要求:
- 受Internet 协议安全性 (IPSec) 保护的通信
- 经过电气与电子工程师协会 (IEEE) 802.1X 验证的连接
- VPN 连接
- 动态主机配置协议 (DHCP) 配置
- 终端服务网关(TS 网关)连接
可用的 NAP 文档包括产品帮助、可从 Microsoft 下载中心获得的循序渐进指南以及可从 Windows Server 2008 技术库获得的技术指南。
动态主机配置协议 (DHCP) 服务器可以自动向客户端计算机和其他基于 TCP/IP 的网络设备提供有效的 IP 地址。您还可以提供这些客户端和设备所需的额外的配置参数(称为 DHCP 选项),以允许它们连接到其他网络资源(例如 DNS 服务器、WINS 服务器和路由器)。
通常在大多数中小企业都已布署DHCP网络基础结构服务,但不能为企业为来访者提供安全的公司网访问,确保访客和访客流量与内部网络流量隔开,并检查接入的计算机是否带有可能影响网络可用性和安全性的威胁。
在大多数情况下会设计如果让多种硬件和软件协同工作,共同保护用户网络免受不良客户端侵害的一种架构。解决方案涉及:策略管理器,多网络系统,认证服务器,补丁修补服务器,以及第三方安全软件验证服务器等。
微软的Windows2008提供了实现和配置 NPS 的最佳实践。
二、DHCP NAP 强制
强制实施 NAP 的方式有多种类型:IPSec 连接安全、802.1X访问点、VPN服务器和DHCP服务器、TS网关连接。大多数中小企业都已布署DHCP网络基础结构服务,本文将以布署DHCP NAP 强制 实现企业网络安全接入。
动态主机配置协议 (DHCP) 强制是使用 DHCP 网络访问保护 (NAP) 强制服务器组件、DHCP 强制客户端组件和网络策略服务器 (NPS) 部署的。通过使用 DHCP NAP 强制,DHCP 服务器和 NPS 可以在计算机尝试租用或续订 IP 版本 4 (IPv4) 地址时强制使用健康策略。但如果客户端计算机已配置有一个静态 IP 地址,或配置为避免使用 DHCP,则此强制方法无效。大家肯定是高兴一下,马上又被冷却了,因为设置一个静态IP 地址,强制方法就无效!
微软的DHCP解决方案很方便,并且Windows2008对DHCP进行扩展,但任何单一技术都有一定的局限性。在工作实践中发现不能很好解决DHCP服务器欺骗现象。通过具体工程实践,针对某些局限性,特提供此文章,希望能给大家工作实践带来帮助。
三、Dhcp Snooping、Arp Inspection
采用 DHCP server 可以自动为用户设置网络 IP 地址、掩码、网关、 DNS 、 WINS 等网络参数,简化了用户网络设置,提高了管理效率。但在 DHCP 管理使用上也存在着一些另网管人员比较问题,常见的有:
- DHCP server 的冒充。
- DHCP server 的 Dos 攻击。
- 有些用户随便指定地址,造成网络地址冲突。
由于 DHCP 的运作机制,通常服务器和客户端没有认证机制,如果网络上存在多台 DHCP 服务器将会给网络照成混乱。由于用户不小心配置了 DHCP 服务器引起的网络混乱非常常见,足可见故意人为破坏的简单性。
DHCP Snooping技术是DHCP安全特性,通过建立和维护DHCP Snooping绑定表过滤不可信任的DHCP信息,这些信息是指来自不信任区域的DHCP信息。DHCP Snooping绑定表包含不信任区域的用户MAC地址、IP地址、租用期、VLAN-ID 接口等信息。
当交换机开启了DHCP-Snooping后,会对DHCP报文进行侦听,并可以从接收到的DHCP Request或DHCP Ack报文中提取并记录IP地址和MAC地址信息。另外,DHCP-Snooping允许将某个物理端口设置为信任端口或不信任端口。信任端口可以正常接收并转发DHCP Offer报文,而不信任端口会将接收到的DHCP Offer报文丢弃。这样,可以完成交换机对假冒DHCP Server的屏蔽作用,确保客户端从合法的DHCP Server获取IP地址。
DHCP Snooping主要作用就是隔绝非法的DHCP Server,产生DHCP Snooping绑定表,可以进行DAI (Dynamic ARP Inspection)。
Dynamic ARP Inspection (DAI)在交换机上提供IP地址和MAC地址的绑定, 并动态建立绑定关系。DAI 以 DHCP Snooping绑定表为基础,对于没有使用DHCP的服务器个别机器可以采用静态添加ARP access-list实现。这样可以强制客户端电脑必须从DHCP服务器获取IP地址,如果客户端设置静态IP地址,将不能被接入到交换机网络。从而可以解决静态 IP 地址配置,DHCP NAP强制方法无效问题。
DAI配置针对VLAN,对于同一VLAN内的接口可以开启DAI也可以关闭。通过DAI可以控制某个端口的ARP请求报文数量。通过这些技术可以防范“中间人”攻击。
四、方法演示
下面通过一个试验来演示Windows 2008实现和配置 NPS。
a)拓扑环境

b)实现DHCP NAP强制
1、配置DHCP组件
在布署NAP服务机器配置DHCP,如果未在本地计算机上安装 DHCP,则还必须进行下列配置:
在运行 DHCP 的计算机上安装 NPS。
在远程 DHCP NPS 服务器上将 NPS 配置为 RADIUS 代理,以将连接请求转发到本地 NPS 服务器。
在K8上安装DHCP服务,具体操作如下:
A、添加DHCP服务器角色,选择DHCP服务器,点击下一步:

B、进入DHCP简介,点击下一步:

C、绑定DHCP服务器网络连接,点击下一步:

D、指定 IPV4 DNS 服务器设置,点击下一步:

E、没有采用WINS服务设置,当然也可以选用,点击下一步:

F、添加DHCP作用域,点击下一步:
G、禁用DHCPV6无状态模式,点击下一步:
H、指定凭据,点击下一步:
I、确定安装选择,开始安装:

J、安装DHCP完成。

2、安装NPS组件
A、进入服务器管理面板,添加角色:
B、下一步:
C、选择“网络策略和访问服务”角色,点击下一步:
D、服务简介,点击下一步:

E、选择“网络策略服务器”, 点击下一步:
F、确认安装选择,开始安装:
G、NPS服务安装完成。

3、配置NPS
A、运行nps.msc,点击确定:
B、在网络策略服务器,选择‘网络访问保护’,并启动‘配置NAP’:
C、选择网络连接方法‘DHCP’,点击下一步:

D、本地计算机运行DHCP,点击下一步:

E、对DHCP作用域启用,点击下一步:

F、应用于所有用户,点击下一步:

G、指定NAP更新服务器组和URL,这里添加‘K8’为更新服务器,点击下一步:
H、可以不设置URL,这里临时输入URL,点击下一步:

I、定义NAP健康策略,点击下一步:

J、验证NAP的配置,向导配置完成。(可以根据实际情况自定义配置)

4、配置DHCP服务
A、运行dhcpmgmt.msc,点击确定:
B、进入DHCP管理器:

C、选择测试作用域,进入属性面板,选择‘网络访问保护’,配置如下图:

D、进入作用域选项,点击‘高级’选择卡,选择‘默认的网络访问保护级别’,配置如下:

E、查看保护级别配置。

5、安装GPMC组件(可选)
调整NPS策略,需要添加GPMC组件。
A、进入服务管理器,选择功能,添加功能,点击下一步:

B、选择‘组策略管理’, 点击下一步:

C、开始安装:

D、GPMC安装完成。

6、 配置NAP客户端设置
没有采用域环境,也可以布署NAP,但采用AD管理计算机环境,将更加高效,下面以域环境为便统一配置客户端。
A、选择gpmc.msc,点击确定:

B、进入组策略管理器,创建‘NAP Setting’策略:
C、编辑创建的策略选项,如下图:
7、 测试NPS
A、先验证‘安全健康验证程序’:
B、为方便测试,在K8上开启 ICMP回显:
C、下图显示是WindosXP计算机名及网络连接:(提示XP安装SP3)

D、在服务管理器,确认‘Network Access Protection Agent’启动并运行
E、客户自动获取地址,并显示受限设置‘reload.domain.ms’:

F、网络访问保护气泡提示,没有安装防毒软件,和健康程序策略不符合:

H、显示路由表,可以验证,有到K8更新服务器的连接:
I、可以连接到受限网络组,不能连接到企业其他主机:

J、连接到K8,下载安装防毒软件,网络访问保护策略检测试成功。

通过上面的配置,微软的NPS布署安全可靠,结合客户端计算机运行WindowsXP、Vista、Windows7更为快捷,易于实践。
接下来,我们将通过交换机配置,补充DHCP美中不足。
c) 实现 Dhcp Snooping、Arp Inspection
在交换机的配置比较简单,下面以思科3550交换机为例。
A、 实现Dhcp Snooping,可以避免DHCP服务欺骗
假设客户机所在VLAN ID为100,服务器所在VLAN ID为10。具体配置如下:
3550(config)# ip dhcp snooping /* 启用 Dhcp Snooping
3550(config)# ip dhcp snooping vlan 100 /* 定义哪些VLAN 启用 DHCP 嗅探
默认所有的交换机接口不能为客户端计算机分配置IP地址, 现在允许K8服务器所接连接口为客户端分配IP地址,接口命令为:
3550(config-if)# ip dhcp snooping trust
B、 实现 Arp Inspection,客户端IP必须从DHCP服务申请,静态设置无效
3550(config)# ip arp inspection vlan 100 /* 定义哪些VLAN进行ARP报文检测
五、结论
微软的Windows2008提供了实现和配置 NPS 的最佳方法,配合交换Dhcp Snooping、Arp Inspection将更加完善,为中小企业提供易布署、安全、可靠、网络接入控制。