如何将 Duo 与 AWS 托管 Microsoft AD 结合使用,为连接到 Client VPN 端点的最终用户提供多重身份验证?

3 分钟阅读
0

我想将 Duo 与 AWS Directory Service for Microsoft Active Directory 结合使用。我想为连接到 AWS Client VPN 端点的最终用户提供多重身份验证(MFA)。

简短描述

Client VPN 支持以下类型的最终用户身份验证:

  • 相互身份验证
  • Active Directory 身份验证
  • 双重身份验证(相互身份验证和 Active Directory 身份验证)

最新版本的 Duo 利用作为双重身份验证发送给最终用户的推送通知。传统的 Duo 实施要求最终用户使用 Duo 移动应用程序生成多重身份验证(MFA)代码。您接着可以将此代码用于 Client VPN。

您必须在 Active Directory 上启用 MFA 服务,但不能直接在 Client VPN 上打开。

**注意:**您的 Active Directory 类型必须支持 MFA。新的和现有的 Client VPN 都支持 MFA 功能。

解决方法

创建和配置 AWS 托管 Microsoft AD

  1. 创建 AWS 托管 Microsof AD 目录

  2. 将 Amazon Elastic Compute Cloud(Amazon EC2)Windows 实例加入 AWS 托管 Microsoft AD 目录。此实例会在 Active Directory 中安装服务并管理用户和组。该实例必须与 Active Directory 关联。您必须添加一个附加有“AmazonEC2RoleforSSM”策略的 AWS Identity and Access Management(IAM)角色。

  3. 运行以下命令登录 Amazon EC2 实例。

    Username: Admin@ad_DNS_name
    Password: <Your Admin password>

    **注意:**请将 Your Admin password 替换为您为 Active Directory 创建的管理员密码。

  4. 在管理员模式下,使用 PowerShell 安装以下服务:

    install-windowsfeature rsat-ad-tools, rsat-ad-admincenter, gpmc, rsat-dns-server -confirm:$false
  5. 创建 Active Directory 用户Active Directory 组,然后将这些用户添加到相应的 Active Directory 组中
    **注意:**这些 Active Directory 用户是将连接到 Client VPN 端点的最终用户。

  6. 运行以下命令以检索 Active Directory 组的 SID。将 Your-AD-group-name 替换为您的 Active Directory 组名。

    Get-ADGroup -Identity <Your-AD-group-name>

**注意:**配置 Client VPN 授权规则时,需要 SID 才能授权此组的 Active Directory 用户。

安装和配置 Duo

  1. 注册(Duo 网站)或登录 Duo。
  2. 在您的移动设备上安装 Duo 应用程序。按照说明对您的 Duo 账户进行身份验证。
  3. 在您的 Duo Web 账户中,从左侧的导航窗格中选择应用程序
  4. 在搜索字段中,输入 RADIUS 并选择保护
  5. 在导航窗格中,选择用户,然后选择添加用户。对于用户名,输入最终用户的名称。名称必须与 Active Directory 用户的名称匹配。这些名称还必须与您的最终用户对其与 Client VPN 端点的连接进行身份验证时使用的用户名匹配
  6. 选择每个用户,然后添加其电话号码。最终用户将通过您在此处输入的号码接收 MFA 代码。
  7. 对于每位用户,选择激活 Duo Mobile,然后选择生成 Duo Mobile 激活码。有两种方法可用于通知用户其激活链接。您可以选择通过短信发送说明,以通过电子邮件将激活链接发送给每位最终用户。或者,您也可以选择跳过此步骤。然后,为每个最终用户复制激活链接,并手动将链接发送给每个用户。
  8. 启动 EC2 Windows 实例。使用此实例来配置和管理 Duo Radius 应用程序。该实例必须与 Active Directory 关联。该实例还必须具有正确的 IAM 角色和互联网访问权限。验证该实例的安全组、网络访问控制列表和路由表
  9. 登录 EC2 实例,以管理 Duo Radius 应用程序。接着,安装适用于 Windows 的身份验证代理(Duo 网站)。
  10. 导航到 C:\Program Files (x86)\Duo Security Authentication Proxy\conf\authproxy.cfg 处的“authproxy.cfg”配置文件。
  11. 编辑配置文件。以下是该文件的示例:
[duo_only_client]
[radius_server_auto]
ikey=XXX
skey=YYY
api_host=api-ZZZ.duosecurity.com
radius_ip_1=<AD-DNS-address#1>
radius_secret_1=<My-password>
radius_ip_2=<AD-DNS-address#2>
radius_secret_2=<My-password>
failmode=safe
client=duo_only_client
port=1812

要查找 ikey(集成密钥)、skey(密钥)和 api_host(您的 Duo 的 API 主机名)的值,请完成以下步骤:

  • 在 Duo 网站上登录您的 Duo Web 账户
  • 依次选择控制面板应用程序Radius
  • 请参阅详细信息下的值。

要查找 radius_ip_1radius_ip_2 的值,请完成以下步骤:

  • 登录 AWS 管理控制台
  • 选择目录服务,然后选择目录
  • 选择您的 Active Directory。
  • 详细信息下,查看 DNS 地址部分中的 address_ip#1address_ip#2
    注意: 如果您使用 AWS AD_connector,则 address_ip#1address_ip#2 是您的 AD_connector 的 IP。

(可选)完成以下步骤:

  • 设置您的 radius_secret_key
  • 更改端口

修改安全组配置

  1. 登录 AWS 管理控制台
  2. 选择安全组
  3. 为目录控制器选择安全组。
  4. 编辑 Active Directory 安全组的出站规则。将规则设为允许将 UDP 1812(或 Radius 服务端口)作为您的 Radius 服务器的目标 IP 地址(私有 IP)。或者,如果您的用例允许,则允许所有流量。

确认 Duo 身份验证服务正在运行

  1. 登录 Radius EC2 Windows 实例。
  2. 服务下,找到 Duo 安全身份验证代理服务。如果该服务未处于正在运行状态,则选择启动服务

在 AWS 托管 Microsoft AD 上启用 MFA

  1. 登录 AWS 管理控制台
  2. 选择目录服务,然后选择目录
  3. 选择您的 Active Directory。
  4. 网络和安全性下,选择多重身份验证。接着,选择操作,然后选择启用
  5. 输入下列信息:
    对于 RADIUS 服务器 DNS 名称或 IP 地址,输入 EC2 Windows 实例的私有 IP 地址。
    对于端口,输入在“authproxy.cfg”文件中指定的端口。
    对于共享密码,输入“authproxy.cfg”文件中的 radius_secret_key 值。
    对于协议,选择 PAP
    对于服务器超时,输入一个值。
    对于最大 RADIUS 请求重试次数,输入一个值。

创建 Client VPN 端点

  1. 设置 AWS 托管 Windows AD 和 MFA 后,创建 Client VPN 端点。使用启用 MFA 的 Active Directory。
  2. 下载新的客户端配置文件并将其分发给您的最终用户。
    **注意:**您可以从 AWS 管理控制台AWS 命令行界面(AWS CLI)API 命令下载客户端配置文件。
  3. 确认客户端配置文件包含以下参数:
auth-user-pass
static-challenge "Enter MFA code " 1

**注意:**如果您使用双重身份验证(例如,相互身份验证 + Active Directory 身份验证),则添加客户端 <cert><key> 到配置文件。

配置最终用户设备

  1. 在最终用户设备上,按照激活链接在移动设备上安装 Duo 应用程序。
  2. 安装 Client VPN for Desktop 工具。
    **注意:**您也可以使用任何基于 OpenVPN 的标准客户端工具连接到 Client VPN 端点。
  3. 使用客户端配置文件创建配置文件。
  4. 连接到适用于您的 Duo 版本的 Client VPN 端点:

传统 Duo 版本
输入您的 Active Directory 用户凭证。然后,将 Duo 应用程序生成的 MFA 代码输入到 Client VPN 中。Duo 会验证此 MFA 代码。
注意:根据 Client VPN 版本和您使用的操作系统,此字段可以是响应,而不是输入 MFA 代码

现代 Duo 版本
输入您的 Active Directory 用户凭证。Duo 的第二个因素身份验证不考虑 Client VPN MFA 字段。在这种情况下,Duo 依赖移动通知推送作为身份验证的第二个因素。 
**注意:**使用随机字符填充 Client VPN MFA 字段。这样可防止身份验证因字段空白而失败。

AWS 官方
AWS 官方已更新 8 个月前