将 NPS 规划为 RADIUS 服务器

适用范围:Windows Server 2022、Windows Server 2019、Windows Server 2016

将网络策略服务器 (NPS) 部署为远程身份验证拨入用户服务 (RADIUS) 服务器时,NPS 将对本地域和信任本地域的域的连接请求执行身份验证、授权和计帐。 你可以使用这些规划准则来简化 RADIUS 部署。

这些规划准则不包括要将 NPS 部署为 RADIUS 代理的情况。 将 NPS 部署为 RADIUS 代理时,NPS 会将连接请求转发到运行 NPS 的服务器或远程域和/或不受信任域中的其他 RADIUS 服务器。

在网络上将 NPS 部署为 RADIUS 服务器之前,请使用以下准则来规划部署。

  • 规划 NPS 配置。

  • 规划 RADIUS 客户端。

  • 规划身份验证方法的使用。

  • 规划网络策略。

  • 规划 NPS 计帐。

规划 NPS 配置

你必须决定 NPS 是哪个域的成员。 对于多域环境,NPS 可以为其所属域中的用户帐户以及信任 NPS 本地域的所有域验证凭据。 若要允许 NPS 在授权过程中读取用户帐户的拨入属性,必须将 NPS 的计算机帐户添加到每个域的 RAS 和 NPSS 组中。

确定 NPS 的域成员身份后,必须使用 RADIUS 协议将服务器配置为与 RADIUS 客户端(也称为网络访问服务器)通信。 此外,还可以配置 NPS 在事件日志中记录的事件类型,并可以输入服务器的描述。

关键步骤

在规划 NPS 配置期间,可以使用以下步骤。

  • 确定 NPS 用于从 RADIUS 客户端接收 RADIUS 消息的 RADIUS 端口。 用于 RADIUS 身份验证消息的默认端口是 UDP 端口 1812 和 1645,用于 RADIUS 记帐消息的默认端口是 1813 和 1646。

  • 如果使用多个网络适配器配置 NPS,请确定允许 RADIUS 通信通过的适配器。

  • 确定希望 NPS 记录在事件日志中的事件类型。 你可以记录被拒绝的身份验证请求和/或成功的身份验证请求。

  • 确定是否要部署多个 NPS。 要为基于 RADIUS 的身份验证和记帐提供容错,请至少使用两个 NPS。 一个 NPS 用作主 RADIUS 服务器,另一个用作备份。 然后在两个 NPS 上配置每个 RADIUS 客户端。 如果主 NPS 不可用,RADIUS 客户端随后将 Access-Request 消息发送到备用 NPS。

  • 规划用于将一个 NPS 配置复制到其他 NPS 的脚本,以节省管理开销并防止服务器配置错误。 NPS 提供的 netsh 命令允许你复制全部或部分 NPS 配置以导入到其他 NPS。 可以在 Netsh 提示符下手动运行这些命令。 但是,如果将命令序列保存为脚本,则可以在以后决定更改服务器配置时运行该脚本。

规划 RADIUS 客户端

RADIUS 客户端是网络访问服务器,如无线访问点、虚拟专用网 (VPN) 服务器、具有 802.1x 功能的交换机和拨号服务器。 将连接请求消息转发到 RADIUS 服务器的 RADIUS 代理也是 RADIUS 客户端。 NPS 支持符合 RFC 2865“远程身份验证拨入用户服务 (RADIUS)”和 RFC 2866“RADIUS 计帐”中所述的 RADIUS 协议的所有网络访问服务器和 RADIUS 代理。

重要

访问客户端(如客户端计算机)不是 RADIUS 客户端。 只有支持 RADIUS 协议的网络访问服务器和代理服务器才是 RADIUS 客户端。

此外,无线接入点和交换机都必须能够进行 802.1X 身份验证。 如果要部署可扩展身份验证协议 (EAP) 或受保护的可扩展身份验证协议 (PEAP),接入点和交换机必须支持使用 EAP。

要测试无线接入点 PPP 连接的基本互操作性,请配置接入点和访问客户端以使用密码身份验证协议 (PAP)。 使用其他基于 PPP 的身份验证协议(如 PEAP),直到你测试了打算用于网络访问的协议。

关键步骤

在规划 RADIUS 客户端期间,你可以使用以下步骤。

  • 记录必须在 NPS 中配置的供应商特定属性 (VSA)。 如果网络访问服务器需要 VSA,请记录 VSA 信息,以便以后在 NPS 中配置网络策略时使用。

  • 记录 RADIUS 客户端和 NPS 的 IP 地址,以简化所有设备的配置。 部署 RADIUS 客户端时,必须将其配置为使用 RADIUS 协议,并输入 NPS IP 地址作为身份验证服务器。 当你将 NPS 配置为与 RADIUS 客户端通信时,必须将 RADIUS 客户端 IP 地址输入到 NPS 管理单元中。

  • 为 RADIUS 客户端和 NPS 管理单元中的配置创建共享机密。 你必须使用共享机密或密码配置 RADIUS 客户端,在 NPS 中配置 RADIUS 客户端时,你还将在 NPS 管理单元中输入该机密或密码。

规划身份验证方法的使用

NPS 支持基于密码和基于证书的身份验证方法。 但是,并非所有网络访问服务器都支持相同的身份验证方法。 在某些情况下,可能需要根据网络访问的类型部署不同的身份验证方法。

例如,你可能希望为组织部署无线和 VPN 访问,但对每种类型的访问使用不同的身份验证方法:EAP-TLS 用于 VPN 连接,因为 EAP 具有传输层安全性 (EAP-TLS) 提供强大的安全性,而 PEAP-MS-CHAP v2 用于 802.1X 无线连接。

具有 Microsoft 质询握手身份验证协议版本 2 的 PEAP (PEAP-MS-CHAP v2) 提供了一项名为快速重新连接的功能,该功能专为便携式计算机和其他无线设备而设计。 快速重新连接使无线客户端可以在同一网络上的无线访问点之间进行移动,而不需要每次它们与新的访问点关联时重新进行身份验证。 这为无线用户提供了更好的体验,并允许他们在接入点之间移动,而无需重新键入凭据。 由于快速重新连接以及 PEAP-MS-CHAP v2 提供的安全性,PEAP-MS-CHAP v2 是无线连接的身份验证方法的合理选择。

对于 VPN 连接,EAP-TLS 是基于证书的身份验证方法,可提供强大的安全性,保护网络流量,即使网络流量通过 Internet 从家庭或移动计算机传输到组织 VPN 服务器。

基于证书的身份验证方法

基于证书的身份验证方法的优点是提供强大的安全性;与基于密码的身份验证方法相比,基于证书的身份验证方法的缺点是部署的难度相对较高。

PEAP-MS-CHAP v2 和 EAP-TLS 都是基于证书的身份验证方法,但它们与部署方式之间存在许多差异。

EAP-TLS

EAP-TLS 使用证书进行客户端和服务器身份验证,并要求在组织中 (PKI) 部署公钥基础结构。 部署 PKI 可能很复杂,需要一个独立于将 NPS 用作 RADIUS 服务器的规划阶段。

使用 EAP-TLS,NPS 从证书颁发机构 (CA) 注册服务器证书,并将该证书保存在本地计算机上的证书存储中。 在身份验证过程中,当 NPS 将其服务器证书发送到访问客户端以向访问客户端证明其身份时,将进行服务器身份验证。 访问客户端会检查各种证书属性,以确定证书是否有效且适合在服务器身份验证期间使用。 如果服务器证书满足最低服务器证书要求,并且由访问客户端信任的 CA 颁发,则客户端会成功对 NPS 进行身份验证。

同样,当客户端将其客户端证书发送到 NPS 以向 NPS 证明其身份时,客户端身份验证会在身份验证过程中进行。 NPS 检查证书,如果客户端证书满足最低客户端证书要求,并且是由 NPS 信任的 CA 颁发,则访问客户端由 NPS 成功进行身份验证。

尽管服务器证书必须存储在 NPS 上的证书存储中,但客户端或用户证书可以存储在客户端或智能卡上的证书存储中。

要使此身份验证过程成功,所有计算机都必须在本地计算机和当前用户的受信任根证书颁发机构证书存储中具有组织的 CA 证书。

PEAP-MS-CHAP v2

PEAP-MS-CHAP v2 使用证书进行服务器身份验证,使用基于密码的凭据进行用户身份验证。 由于证书仅用于服务器身份验证,因此无需部署 PKI 即可使用 PEAP-MS-CHAP v2。 部署 PEAP-MS-CHAP v2 时,可以通过以下两种方式之一获取 NPS 的服务器证书:

  • 你可以安装 Active Directory 证书服务 (AD CS),然后将证书自动注册到 NPS。 如果使用此方法,还必须将 CA 证书注册到连接到网络的客户端计算机,以便它们信任颁发给 NPS 的证书。

  • 可以从 VeriSign 等公共 CA 购买服务器证书。 如果使用此方法,请确保选择客户端计算机已信任的 CA。 若要确定客户端计算机是否信任某一 CA,请在客户端计算机上打开证书 Microsoft 管理控制台 (MMC) 管理单元,然后查看本地计算机和当前用户的受信任根证书颁发机构存储。 如果这些证书存储中有来自该 CA 的证书,则客户端计算机信任该 CA,因此将信任该 CA 颁发的任何证书。

在使用 PEAP-MS-CHAP v2 的身份验证过程中,当 NPS 将其服务器证书发送到客户端计算机时,会发生服务器身份验证。 访问客户端会检查各种证书属性,以确定证书是否有效且适合在服务器身份验证期间使用。 如果服务器证书满足最低服务器证书要求,并且由访问客户端信任的 CA 颁发,则客户端会成功对 NPS 进行身份验证。

尝试连接到网络的用户键入基于密码的凭据并尝试登录时,便会进行用户身份验证。 NPS 接收凭据并执行身份验证和授权。 如果已成功对用户进行身份验证和授权,并且客户端计算机成功对 NPS 进行了身份验证,则会同意连接请求。

关键步骤

在规划使用身份验证方法的过程中,可以使用以下步骤。

  • 确定计划提供的网络访问类型,例如无线、VPN、支持 802.1X 的交换机和拨号访问。

  • 确定要用于每种访问类型的身份验证方法。 建议使用基于证书的身份验证方法,该方法可提供强大的安全性。但是,部署 PKI 对你来说可能并不实际,因此其他身份验证方法可能会更好地平衡你的网络需求。

  • 如果要部署 EAP-TLS,请规划 PKI 部署。 这包括规划要用于服务器证书和客户端计算机证书的证书模板。 还包括确定如何将证书注册到域成员和非域成员计算机,以及确定是否要使用智能卡。

  • 如果要部署 PEAP-MS-CHAP v2,请确定是否要安装 AD CS 以向 NPS 颁发服务器证书,或者是否要从公共 CA(如 VeriSign)购买服务器证书。

规划网络策略

NPS 使用网络策略来确定从 RADIUS 客户端接收的连接请求是否获得授权。 NPS 还使用用户帐户的拨入属性进行授权确定。

由于网络策略的处理顺序是按它们在 NPS 管理单元中的显示顺序,因此请计划将严格程度最高的策略作为策略列表中的第一个策略。 对于每个连接请求,NPS 尝试将策略的条件与连接请求属性匹配。 NPS 按顺序检查每个网络策略,直到找到匹配项。 如果未找到匹配项,则拒绝连接请求。

关键步骤

在规划网络策略期间,可以使用以下步骤。

  • 确定网络策略的首选 NPS 处理顺序,从严格程度最高到最低。

  • 确定策略状态。 策略状态的值可以是启用 (enabled) 或禁用 (disabled)。 如果启用了策略,NPS 在执行授权时会评估策略。 如果未启用策略,则不会对其进行评估。

  • 确定策略类型。 你必须确定策略是设计为在策略的条件与连接请求匹配时授予访问权限,还是策略设计为在策略的条件与连接请求匹配时拒绝访问。 例如,如果要明确拒绝对 Windows 组成员的无线访问,则可以创建一个网络策略,该策略指定组、无线连接方法,并具有“拒绝访问”的策略类型设置。

  • 确定是否希望 NPS 忽略属于策略所基于的组的成员的用户帐户的拨入属性。 如果未启用此设置,用户帐户的拨入属性将替代在网络策略中配置的设置。 例如,如果将网络策略配置为向某个用户授予访问权限,但该用户的用户帐户的拨入属性设置为拒绝访问,则将拒绝该用户访问。 但是,如果启用策略类型设置“忽略用户帐户拨入属性”,则将向同一用户授予对网络的访问权限。

  • 确定策略是否使用策略源设置。 通过此设置,可以轻松指定所有访问请求的源。 可能的源是终端服务网关(TS 网关)、远程访问服务器(VPN 或拨号)、DHCP 服务器、无线接入点和健康注册机构服务器。 或者,也可以指定特定于供应商的源。

  • 确定应用网络策略必须匹配的条件。

  • 确定在网络策略的条件与连接请求匹配的情况下应用的设置。

  • 确定是否要使用、修改或删除默认网络策略。

规划 NPS 计帐

NPS 能够以三种格式记录 RADIUS 记帐数据(例如用户身份验证和记帐请求),这三种格式分别是:IAS 格式、数据库兼容格式和 Microsoft SQL Server日志记录。

IAS 格式和数据库兼容格式在本地 NPS 上以文本文件格式创建日志文件。

SQL Server 日志记录能够将日志记录到与 SQL Server 2000 或 SQL Server 2005 XML 兼容的数据库,这扩展了 RADIUS 记帐,从而利用向关系数据库进行日志记录的优势。

关键步骤

在规划 NPS 计帐期间,可以使用以下步骤。

  • 确定要将 NPS 记帐数据存储在日志文件中还是 SQL Server 数据库中。

使用本地日志文件的 NPS 计帐

在日志文件中记录用户身份验证和记帐请求主要是用于连接分析和计费目的,还可用作安全调查工具,为你提供一种在攻击后跟踪恶意用户活动的方法。

关键步骤

在使用本地日志文件规划 NPS 记帐期间,可以使用以下步骤。

  • 确定要用于 NPS 日志文件的文本文件格式。

  • 选择要记录的信息类型。 可以记录记帐请求、身份验证请求和定期状态。

  • 确定要存储日志文件的硬盘位置。

  • 设计日志文件备份解决方案。 存储日志文件的硬盘位置应该是一个能够让你轻松备份数据的位置。 此外,还应为存储日志文件的文件夹配置访问控制列表 (ACL) 以保护硬盘位置。

  • 确定创建新日志文件的频率。 如果希望根据文件大小创建日志文件,请确定允许的最大文件大小(超过此大小后,NPS 将创建一个新日志文件)。

  • 确定硬盘存储空间不足时是否希望 NPS 删除较旧的日志文件。

  • 确定要用于查看计帐数据和生成报表的一个或多个应用程序。

NPS SQL 服务器日志记录

在你需要会话状态信息时,将使用 NPS SQL Server 日志记录,用于报告创建和数据分析目的,以及集中和简化记帐数据的管理。

NPS 提供以下功能:使用 SQL Server 日志记录来记录从一个或多个网络访问服务器接收的用户身份验证和记帐请求,这些请求位于运行 Microsoft SQL Server Desktop Engine (MSDE 2000) 或任何版本高于 SQL Server 2000 的 SQL Server 的计算机上。

记帐数据以 XML 格式从 NPS 传递到数据库中的存储过程,该存储过程同时支持结构化查询语言 (SQL) 和 XML (SQLXML)。 在与 XML 兼容的 SQL Server 数据库中记录用户身份验证和记帐请求,使多个 NPS 能够拥有一个数据源。

关键步骤

在使用 NPS SQL Server 日志记录规划 NPS 记帐期间,可以使用以下步骤。

  • 确定你或你组织中的其他成员是否具有 SQL Server 2000 或 SQL Server 2005 关系数据库开发经验,以及你是否了解如何使用这些产品来创建、修改、管理 SQL Server 数据库。

  • 确定 SQL Server 是安装在 NPS 上还是安装在远程计算机上。

  • 设计将在 SQL Server 数据库中使用的存储过程,以处理包含 NPS 记帐数据的传入 XML 文件。

  • 设计 SQL Server 数据库复制的结构和流程。

  • 确定要用于查看计帐数据和生成报表的一个或多个应用程序。

  • 规划使用在所有记帐请求中发送 Class 属性的网络访问服务器。 Class 属性在 Access-Accept 消息中发送到 RADIUS 客户端,该属性对于将 Accounting-Request 消息与身份验证会话相关联非常有用。 如果 Class 属性由网络访问服务器在计费请求消息中发送,则它可用于匹配计费和认证记录。 对于服务器接受的每个身份验证,属性 Unique-Serial-Number、Service-Reboot-Time 和 Server-Address 的组合必须是唯一标识。

  • 规划使用支持临时记帐的网络访问服务器。

  • 规划使用发送记帐启用和记帐关闭消息的网络访问服务器。

  • 规划使用支持存储和转发记帐数据的网络访问服务器。 当网络访问服务器无法与 NPS 通信时,支持此功能的网络访问服务器可以存储记帐数据。 当 NPS 可用时,网络访问服务器将存储的记录转发到 NPS,从而在不提供此功能的网络访问服务器上提供更高的记帐可靠性。

  • 计划始终在网络策略中配置 Acct-Interim-Interval 属性。 Acct-Interim-Interval 属性设置网络访问服务器发送的每个临时更新之间的间隔(以秒为单位)。 根据 RFC 2869,Acct-Interim-Interval 属性的值不得小于 60 秒(1 分钟),并且不应小于 600 秒(10 分钟),这意味着超过 600 秒的值将减少 RADIUS 服务器接收的更新频率。 有关详细信息,请参阅 RFC 2869

  • 确保在 NPS 上启用定期状态的日志记录。