如何使用 Duo 和 AWS Managed Microsoft AD 为最终用户连接至 AWS 客户端 VPN 终端节点提供 Multi-Factor Authentication?

上次更新时间:2020 年 4 月 13 日

如何使用 Duo 以及我的用于 Microsoft Active Directory 的 AWS Directory Service 为最终用户连接至 AWS 客户端 VPN 终端节点提供 Multi-Factor Authentication (MFA)?

简短描述

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

  • 双向身份验证
  • Active Directory 身份验证
  • 双重身份验证(双向 + Active Directory 身份验证)

MFA 服务必须在 Active Directory 上(而非直接在客户端 VPN 上)启用。确保您的 Active Directory 类型支持 MFA。新的和现有客户端 VPN 都支持 MFA 功能。

要为使用 Duo 连接至客户端 VPN 终端节点的最终用户设置 MFA:

  • 首先,执行 IT 管理员配置任务以设置所需的服务。
  • 然后,要求每个最终用户完成最终用户配置任务,以便建立其连接至客户端 VPN 终端节点的安全连接。

解决方法

IT 管理员配置任务:

创建并配置 AWS Managed Microsoft AD

1.    创建 AWS Managed Microsoft AD 目录

2.    将 Amazon Elastic Compute Cloud (Amazon EC2) Windows 实例加入到 AWS 托管 Microsoft AD 目录

此实例用于在 Active Directory 中安装服务。该实例还可用于管理 Active Directory 中的用户和组。在启动实例时,确保该实例与 Active Directory 相关联。另外,确保添加 IAM 角色,并且附加 "AmazonEC2RoleforSSM" 角色。

3.    安装 Active Directory 服务,然后配置 Active Directory 用户和组。

首先,登录至(或通过远程桌面连接连接至)您在第 2 步中使用以下命令创建的实例。确保将 <Your Admin password> 替换为您在第 1 步中为 Active Directory 创建的管理员密码。

User name: Admin@ad_DNS_name
Password: <Your Admin password> 

然后,(在管理员模式中)使用 PowerShell 安装以下服务:

install-windowsfeature rsat-ad-tools, rsat-ad-admincenter, gpmc, rsat-dns-server -confirm:$false

接下来,创建 Active Directory 用户Active Directory 组。然后, 将这些用户添加到其适当的 Active Directory 组

注意:这些 Active Directory 用户就是将连接到 AWS 客户端的 VPN 终端节点的最终用户。

最后,使用以下命令为您的 Active Directory 组获取 SID。确保使用您的 Active Directory 组名称替换 <Your-AD-group-name>

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

注意:在配置客户端 AWS VPN 授权规则时,您需要 SID 对此组中的 Active Directory 用户进行授权。

安装和配置 Duo

1.    在 Duo 网站上注册 Duo 账户,然后登录

2.    在您的移动设备上安装 Duo 应用程序。当您从 Duo 收到文本或推送通知时,请按照说明对您的 Duo 账户进行身份验证。

3.    在您的 Duo Web 账户中,从左侧的导航窗格中选择应用程序

4.    选择 RADIUS 进行安装。

5.    从导航窗格中选择用户 > 添加用户

6.    在用户名中,输入您的最终用户的用户名。这些用户名必须与 Active Directory 用户的名称以及您的最终用户随后用来对其客户端 VPN 终端节点的连接进行身份验证的用户名一致。

7.    选择每个用户并添加他们的电话号码。最终用户通过此电话号码接收其各自的 MFA 代码。

8.    选择激活 Duo Mobile,然后选择为每个用户生成 Duo Mobile 激活代码。您可以使用两种方法来通知用户其激活链接。第一种方法是选择通过 SMS 发送说明,以通过电子邮件向每个最终用户发送此激活链接。第二种方法是选择跳过这一步。然后,复制每个最终用户的相应激活链接,并将链接手动发送给他们。

9.    启动另一个 EC2 Windows 实例。这个实例将被用于配置与管理 Duo Radius 应用程序。确保该实例与 Active Directory 相关联、拥有正确的 AWS Identity and Access Management (IAM) 角色,并且可以访问互联网。验证其安全组、网络访问控制列表和路由表。

10.    登录您在第 9 步中启动的 Radius EC2 实例。然后,从 Duo 网站安装适用于 Windows 的身份验证代理

11.    导航到位于 C:\Program Files (x86)\Duo Security Authentication Proxy\conf\authproxy.cfg 的“authproxy.cfg”配置文件。

12.    按下述方式编辑该配置文件:

[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_1 和 radius_ip_2 的值:

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

或者,您也可以:

  • 设置您自己的 radius_secret_key
  • 如果需要,更改端口

修改安全组配置

1.    登录 AWS 管理控制台

2.    选择安全组

3.    为目录控制器选择安全组。

4.    为 Active Directory 的安全组选择出站规则,以允许您的 Radius Server 目标 IP(私有 IP)的 UDP 1812(或 Radius 服务端口)。或者,如果您的使用案例允许,您可以允许所有流量。

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

1.    登录 Radius EC2 Windows 实例。

2.    在服务下,找到 Duo 安全身份验证代理服务。如果该服务不是正在运行状态,则选择启动服务

在您的 AWS Microsoft Managed AD 上启用 MFA

1.    选择目录服务,然后再选择目录

2.    选择您的 Active Directory。

3.    在网络与安全性下方,选择 Multi-Factor Authentication。然后,依次选择操作启用

4.    指定以下各项:

  • RADIUS 服务器 DNS 名称或 IP 地址:输入 EC2 Windows 实例的私有 IP 地址。
  • 端口:输入您的“authproxy.cfg”文件中指定的端口。
  • 共享密钥代码:输入来自“authproxy.cfg”文件的 radius_secret_key 值。
  • 协议:选择 PAP
  • 服务器超时:设置所需值。
  • RADIUS 请求最大重试次数:设置所需值。

创建 AWS 客户端 VPN 终端节点

1.    在设置 AWS Microsoft Managed AD 和 MFA 以后,使用已启用 MFA 的 Active Directory 创建客户端 VPN 终端节点

2.    下载新的客户端配置文件,并将其分发给您的最终用户。
注意:您可以通过 AWS 管理控制台AWS 命令行界面 (AWS CLI)API 命令下载客户端配置文件。

3.    确认客户端配置文件包含以下参数:

auth-user-pass
static-challenge "Enter MFA code " 1

注意:如果您使用双重身份验证(例如,双向 + Active Directory 身份验证),还要确保将客户端 <cert> <key> 添加到配置文件。

最终用户配置任务:

1.    按照您的 IT 管理员提供的激活链接在您的移动设备上安装 Duo 应用程序。

2.    安装适用于桌面的 AWS 客户端 VPN 工具。
注意:您还可以使用任何其他标准的基于 OpenVPN 的客户端工具连接至客户端 VPN 终端节点。

3.    使用由您的 IT 管理员提供的客户端配置文件创建配置文件。

4.    要连接到客户端 VPN 终端节点,在弹出提示时输入您的 Active Directory 用户凭证。然后,输入您的 Duo 应用程序生成的 MFA 代码。


这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助?