12、企业网络安全认证与多因素认证部署指南

企业网络安全认证与多因素认证部署指南

1. 证书部署基础

在企业网络环境中,利用 Intune 部署 PKCS 设备认证证书和用户认证证书的流程大致相同,但在部署 PKCS 设备认证证书时,有以下特殊步骤:
1. 从“证书类型”下拉列表中选择“设备”。
2. 在“主题名称格式”字段中,输入 CN={{FullyQualifiedDomainName}}
3. 在“主题备用名称”部分,从“属性”下拉列表中选择“DNS”,然后在“值”字段中输入 {{FullyQualifiedDomainName}}

当配置完成且端点与 Intune 同步后,用户和/或设备认证证书将分别出现在用户或设备的证书存储中。

2. 证书类型对比

Intune 支持 PKCS 和 SCEP 两种证书类型。建议管理员尽可能使用 PKCS 证书,因为它配置和操作更简单,工作更可靠。虽然 SCEP 可能提供稍好的安全性,但 PKCS 并非本质上不安全。SCEP 更为复杂,涉及更多组件。

证书类型 安全性 配置难度 可靠性
PKCS 较高
SCEP
3. 多因素认证(MFA)概述

允许用户远程访问网络存在固有风险,传统的用户名和密码认证方式容易导致凭证丢失或被盗用。多因素认证(MFA)是降低这种风险的常用方法,用户除了提供用户名和密码外,还需提供另一种认证形式,常见的是通过基于手机的应用程序进行认证。

4. Azure MFA 集成方式

Azure MFA 可通过以下两种方式与 Always On VPN 集成:
- 与 Windows Server 网络策略服务器(NPS)集成。
- 使用 Azure 条件访问定义 MFA 策略。

5. MFA 必要性分析
  • 风险缓解 :MFA 旨在降低攻击者使用被盗凭证获取网络非授权访问的风险。即使攻击者获得了有效凭证,没有通过 MFA 挑战也无法成功认证。
  • 证书认证 :Always On VPN 推荐使用受保护的可扩展认证协议(PEAP),结合组织内部 PKI 颁发的客户端认证证书。在这种配置下,用户无需输入用户名和密码,只有设备上有正确的用户认证证书才能连接。如果遵循安全最佳实践,客户端认证证书由受信任平台模块(TPM)保护,可防止攻击者获取证书私钥。在这种情况下,TPM 支持的用户认证证书实际上起到了 MFA 的作用。
  • 额外考虑 :Always On VPN 连接不是用户主动发起的,可能会在用户无明确操作时自动连接或断开后重新连接,这可能导致用户在未主动操作时收到 MFA 挑战,从而使用户习惯接受无上下文的 MFA 挑战,无法判断是正常连接还是攻击者的尝试。
  • 建议 :当 Always On VPN 配置为使用 PEAP 和客户端证书进行认证时,不建议使用 MFA;如果使用 MSCHAPv2 进行认证,则应考虑使用 MFA。
6. Azure MFA 与 NPS 集成
  • 要求 :使用 Azure MFA 与 Windows Server NPS 集成时,用户账户必须分配有效的 Azure MFA 许可证。Azure MFA 包含在 Azure AD Premium P1 和 P2 以及企业移动性 + 安全性中,但 NPS 扩展不支持基于消耗的许可证。
  • 安装 NPS 扩展
    1. 从 此处 下载 Azure MFA 的 NPS 扩展。
    2. 禁用 Internet Explorer(IE)增强安全配置(ESC):
    • 打开服务器管理器,在导航树中选择“本地服务器”。
    • 点击“IE 增强安全配置”旁边的链接。
    • 在“管理员”部分,选择“关闭”。
    • 点击“确定”。
      3. 运行 Azure MFA 的 NPS 扩展安装程序,点击“安装”,安装完成后点击“关闭”。
      4. 打开提升权限的 PowerShell 窗口,完成以下配置:
    • 导航到 C:\Program Files\Microsoft\AzureMfa\Config 文件夹。
    • 运行 AzureMfaNpsExtnConfigSetup.ps1 PowerShell 脚本。
    • 如果提示安装 NuGet 提供程序,输入“Y”。
    • 提示输入 Azure 全局管理员凭据时,输入相应凭据。
    • 当 PowerShell 脚本提示输入租户 ID 时,输入租户 ID。
    • 按回车键完成配置。
graph LR
    A[下载 NPS 扩展] --> B[禁用 IE ESC]
    B --> C[运行安装程序]
    C --> D[打开 PowerShell 窗口]
    D --> E[导航到配置文件夹]
    E --> F[运行脚本]
    F --> G[安装 NuGet 提供程序]
    G --> H[输入管理员凭据]
    H --> I[输入租户 ID]
    I --> J[完成配置]
  • 更新 RRAS 认证 :默认情况下,Windows Server RRAS 的 RADIUS 超时值为 5 秒,这不足以让用户接受认证挑战,需要将其修改为 120 秒:
    1. 打开路由和远程访问服务(RRAS)管理控制台。
    2. 右键单击 VPN 服务器,选择“属性”。
    3. 选择“安全”选项卡。
    4. 点击“RADIUS 认证”旁边的“配置”。
    5. 高亮显示列表中的第一个 NPS 服务器,点击“编辑”。
    6. 在“超时(秒)”字段中输入 120。
    7. 点击“确定”。
    8. 对 RRAS 服务器上配置的其他 NPS 服务器重复上述步骤。

  • 证书管理 :安装过程中会创建一个自签名证书并上传到 Azure,该证书有效期为两年,管理员需在到期前通过再次运行 AzureMfaNpsExtnConfigSetup.ps1 脚本来更新证书。

  • 故障排除脚本 :可从 此处 下载用于测试和评估配置的脚本。

企业网络安全认证与多因素认证部署指南

7. Azure 条件访问集成

MFA 也可以通过 Azure 条件访问来启用,这种方式无需在 NPS 服务器上安装软件,并且能让管理员更灵活地控制何时对 Always On VPN 连接要求 MFA。管理员还能基于用户或组的成员身份、物理位置、使用的设备或应用程序类型等来控制访问,从而进一步提高安全性。

7.1 要求

Azure 条件访问需要 Azure AD Premium P1 或 Microsoft 365 Premium。

7.2 配置步骤
  • 创建 Azure 条件访问 VPN 根证书
    1. 打开 Azure Active Directory 门户(https://aad.portal.azure.com/)。
    2. 点击导航树中的“Azure Active Directory”。
    3. 点击“条件访问”。
    4. 在导航树中,点击“VPN 连接”。
    5. 点击“新证书”。
    6. 从“选择持续时间”下拉列表中选择合适的证书有效期。
    7. 点击“创建”。完成后,新的 VPN 根证书将出现在管理控制台中,点击“下载证书”下载并保存证书文件。
步骤 操作
1 打开 Azure Active Directory 门户
2 点击“Azure Active Directory”
3 点击“条件访问”
4 点击“VPN 连接”
5 点击“新证书”
6 选择证书有效期
7 点击“创建”并下载证书
graph LR
    A[打开 Azure 门户] --> B[点击 Azure AD]
    B --> C[点击条件访问]
    C --> D[点击 VPN 连接]
    D --> E[点击新证书]
    E --> F[选择有效期]
    F --> G[点击创建]
    G --> H[下载证书]
  • 发布证书 :为了支持使用 Azure 条件访问证书进行 Always On VPN 认证,需要将 Azure 条件访问 VPN 根证书发布到本地 Active Directory 中。具体操作如下:
    1. 将 Azure 条件访问 VPN 根证书文件复制到加入域的计算机上。
    2. 打开提升权限的命令窗口,运行以下命令发布证书:
certutil.exe -dspublish -f VpnCert.cer RootCA
certutil.exe -dspublish -f VpnCert.cer NTAuthCA

需要注意的是,Azure 条件访问 VPN 根证书的有效期为一年,在证书到期前要重复上述步骤。

  • 验证证书
  • 在 Active Directory 复制完成后,更新组策略( gpupdate.exe ),然后通过打开本地计算机证书管理控制台( certlm.msc )并展开“受信任的根证书颁发机构” -> “证书”,确认新的 Azure 条件访问 VPN 根证书是否出现在受信任的根证书颁发机构证书存储中。在 Windows Server Core 上,可以运行以下命令进行确认:
Get-ChildItem -Path Cert:\LocalMachine\Root\ | Where-Object Subject -Match 'VPN'
  • 打开提升权限的命令窗口,运行以下命令确认新的 Azure 条件访问 VPN 根证书是否出现在企业 NTAuth 证书存储中:
certutil.exe -viewstore -enterprise NTAuth

在 Windows Server Core 上,可以运行以下命令:

certutil.exe -store -enterprise NTAuth
  • NPS 配置 :Azure 条件访问颁发的短期证书用于向 VPN 服务器进行认证,这些证书有效期为一小时,不需要进行吊销检查。但默认情况下,Windows Server NPS 在进行认证时会执行证书吊销检查,因此需要为受保护的可扩展认证协议(PEAP)禁用证书吊销检查。操作步骤如下:
    1. 打开提升权限的 PowerShell 命令窗口,在 NPS 服务器上运行以下命令:
New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\RasMan\PPP\EAP\13\' -Name IgnoreNoRevocationCheck -PropertyType DWORD -Value 1 -Force
  1. 重启服务器使更改生效。需要注意的是,禁用 CRL 检查会影响所有使用 PEAP 的 NPS 策略,如果 NPS 服务器还支持其他使用 PEAP 的工作负载,如 Wi-Fi,可能需要部署专门用于 VPN 的单独 NPS 服务器。
  • 更新 NPS 策略 :更新现有的 Always On VPN 网络策略,使其仅接受 Azure 条件访问颁发的证书。操作步骤如下:
    1. 在 NPS 服务器上,打开 NPS 管理控制台( nps.msc )。
    2. 在导航树中,展开“策略”和“网络策略”。
    3. 双击用于 Always On VPN 的网络策略。
    4. 选择“设置”选项卡。
    5. 在导航树的“RADIUS 属性”部分选择“供应商特定”。
    6. 点击“添加”:

    • 从“属性”列表中选择“Allowed-Certificate-OID”。
    • 点击“添加”。
    • 点击“添加”。
    • 在“属性值”字段中输入“1.3.6.1.4.1.311.87”。
    • 点击“确定”。
    • 点击“确定”。
      7. 点击“关闭”。
      8. 点击“确定”。
  • 创建条件访问策略
    1. 打开 Azure Active Directory 门户(https://aad.portal.azure.com/)。
    2. 点击导航树中的“Azure Active Directory”。
    3. 点击“条件访问”。
    4. 点击“新策略”。
    5. 在“名称”字段中输入描述性名称。
    6. 在“分配”部分点击“用户和组”:

    • 选择“选择用户和组”。
    • 勾选“用户和组”旁边的框。
    • 点击“VPN 用户”组。
    • 点击“选择”。
      7. 在“分配”部分点击“云应用或操作”:
    • 点击“选择应用”。
    • 勾选“VPN 服务器”旁边的框。
    • 点击“选择”。
      8. 在“分配”部分点击“条件”:
    • 点击“设备平台”。
    • 在“配置”部分点击“是”。
    • 点击“完成”。
      9. 在“访问控制”部分点击“授予”:
    • 选择“授予访问权限”。
    • 勾选“需要多因素认证”旁边的框。
    • 点击“选择”。
      10. 点击“启用策略”下方的“开启”。
      11. 点击“创建”。
8. 客户端配置
  • Endpoint Manager UI 配置 :使用原生 Microsoft Endpoint Manager UI 配置 Always On VPN 时,启用 Azure 条件访问和单点登录(SSO)的操作步骤如下:
    1. 展开“条件访问”。
    2. 点击“此 VPN 连接的条件访问”旁边的“启用”。
    3. 点击“使用备用证书的单点登录(SSO)”旁边的“启用”。
    4. 在“名称”字段中输入“客户端认证”。
    5. 在“对象标识符”字段中输入“1.3.6.1.5.5.7.3.2”。
    6. 在“颁发者哈希”字段中输入颁发客户端认证证书的 CA 服务器证书的哈希值。
    7. 点击“审核 + 保存”。
    8. 点击“保存”。

  • EAP 配置 :更新 Always On VPN 客户端配置,使用短期的 Azure 条件访问证书向 VPN 服务器进行认证。操作步骤如下:
    1. 打开 Microsoft Endpoint Manager 管理控制台(https://endpoint.microsoft.com/),导航到 Always On VPN 设备配置文件。
    2. 展开“基本 VPN”。
    3. 将 EAP XML 部分的内容复制到新的文本文档中。
    4. 如果定义了任何 TLS 扩展,将其删除(即删除 XML 中以 <TLSExtensions> 开头并以 </TLSExtensions> 结尾的元素)。
    5. 在 </AcceptServerName> 之后和 </EapType> 之前添加以下 XML 代码块:

<TLSExtensions xmlns="http://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV2">
    <FilteringInfo xmlns="http://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV3">
        <EKUMapping>
            <EKUMap>
                <EKUName>AAD Conditional Access</EKUName>
                <EKUOID>1.3.6.1.4.1.311.87</EKUOID>
            </EKUMap>
        </EKUMapping>
        <ClientAuthEKUList Enabled="true">
            <EKUMapInList>
                <EKUName>AAD Conditional Access</EKUName>
            </EKUMapInList>
        </ClientAuthEKUList>
    </FilteringInfo>
</TLSExtensions>

通过以上步骤,可以在企业网络中有效地部署和配置证书认证以及多因素认证,提高网络的安全性和可靠性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值