[玩转系统] 使用 MultiOTP 在 Windows 中启用双因素身份验证 (2FA)
作者:精品下载站 日期:2024-12-14 23:31:12 浏览:14 分类:玩电脑
使用 MultiOTP 在 Windows 中启用双因素身份验证 (2FA)
在本文中,我们将展示如何使用免费的开源 multiOTP 包为 Windows 域上的用户实施双因素身份验证 (2FA)。 MultiOTP 是一组 PHP 类和工具,可让您为 HOTP 和 TOTP(基于时间的一次性密码)实现本地强身份验证服务器。您可以在 Windows 和任何其他操作系统(通过 RADIUS)中使用它,通过一次性密码启用 2FA。
部署 multiOTP 后,Windows 会提示用户输入从移动设备/智能手机(来自 Microsoft 或 Google Authenticator,或其他 OTP 生成器)收到的一次性密码 (OTP)。您可以为用户启用双因素身份验证以登录 Windows 工作站或通过 RDP 访问 Windows Server 上的 RDS 主机。
MultiOTP 提供离线操作(不需要互联网访问),因此您可以使用它在断开连接的环境中配置多重身份验证。大多数类似的应用程序都是商业应用程序或需要直接访问互联网。
在 Active Directory 域中安装 MultiOTP
在本节中,我们将展示如何在 Windows Server 2019 上安装 multiOTP 并配置来自 Active Directory 的用户同步。
您还可以使用 VMware/Hyper-V 虚拟机的 OVA 映像或 Docker 容器来部署 multiOTP。
让我们从配置 multiOTP 服务器开始,该服务器将从 Active Directory 获取用户,为用户生成唯一的 QR 代码,并验证第二个因素。
在 Active Directory 中创建安全组并向其中添加登录 Windows 时需要通过第二因素验证的用户。使用 PowerShell 创建组:
New-ADGroup 2FAVPNUsers -path 'OU=Groups,OU=Munich,dc=a-d,DC=com' -GroupScope Global -PassThru -Verbose
将用户添加到组中:
Add-AdGroupMember -Identity 2FAVPNUsers -Members j.smith, k.berg, m.bakarlin
在 AD multiOTP 中创建一个新用户,用于访问 AD 目录(具有最小权限):
$passwd = ConvertTo-SecureString -String "Paa32ssw0rd!" -AsPlainText -Force
New-ADUser -Name "multiotp_srv" -SamAccountName "multiotp_srv" -UserPrincipalName "[email protected]" -Path "OU=ServiceAccounts,OU=Munich,DC=a-d,DC=com" -AccountPassword $passwd -Enabled $true
下载 multiOTP 存档 - https://download.multiotp.net/。
打开 multiotp_5.9.2.1.zip 存档并将其中的 windows 目录解压到本地驱动器上的文件夹中 (
C:\MultiOTP
)。
打开命令提示符并转到包含 multiotp.exe 的目录:
CD C:\MultiOTP\windows
使用下面的命令,我们将配置 MultiOTP LDAP 设置以从 Active Directory 数据库获取用户。
multiotp -config default-request-prefix-pin=0
multiotp -config default-request-ldap-pwd=0
multiotp -config ldap-server-type=1
multiotp -config ldap-cn-identifier="sAMAccountName"
multiotp -config ldap-group-cn-identifier="sAMAccountName"
multiotp -config ldap-group-attribute="memberOf"
multiotp -config ldap-ssl=0
multiotp -config ldap-port=389
REM Domain controller IP address:
multiotp -config ldap-domain-controllers=mun-dc1.a-d.site,ldap://192.168.15.15:389
multiotp -config ldap-base-dn="DC=a-d,DC=com"
REM Account for multiOTP authentication in AD:
multiotp -config ldap-bind-dn="CN=multiotp_srv,OU=ServiceAccounts,OU=Munich,DC=a-d,DC=com"
multiotp -config ldap-server-password="Paa32ssw0rd!"
REM Group of users you want to enable OTP for:
multiotp -config ldap-in-group=”2FAVPNUsers”
multiotp -config ldap-network-timeout=10
multiotp -config ldap-time-limit=30
multiotp -config ldap-activated=1
REM Key to access a MultiOTP server:
multiotp -config server-secret=secret2OTP
您可以在 https://download.multiotp.net/readme_5.9.5.1.txt 的如何配置 MULTIOTP 以同步活动目录中的用户部分找到所有选项的详细说明。
之前我们创建了 2FAVPNUsers 组并向其中添加了 3 个用户。使用 multiOTP 同步 AD 用户。
multiotp -debug -display-log -ldap-users-sync
LOG 2022-09-17 14:36:44 info LDAP Info: 3 users created, based on 3 LDAP entries (processed in 00:00:00)
LOG 2022-09-17 14:36:44 debug System Info: *File created: c:\MultiOTP\windows\.\users\j.smith.db
在本例中,multiOTP 已找到 3 个用户并将其同步。
要定期同步新的 Active Directory 帐户,请使用以下命令创建任务计划程序作业:
multiotp -debug -display-log -ldap-users-sync
以管理员身份运行webservice_install.cmd。它将安装 multiOTP Web 管理界面。
登录 MultiOTP Web 界面(
http://127.0.0.1:8112/
)使用默认凭据(用户:
admin
, 密码:
1234
)。那么建议更改一下。
为域用户配置 MultiOTP 双因素身份验证
在用户列表部分,您将看到之前同步的域用户列表(AD/LDAP 源)。
选择一个用户并单击打印。您将看到要添加到身份验证应用程序的用户二维码。
在用户的智能手机上从 Google Play 或 App Store 安装 Microsoft Authenticator(或 Google Authenticator)。打开它并扫描用户的二维码。
然后,身份验证器应用程序中会出现一个新的用户帐户,该应用程序每 30 秒生成一个新的六位数密码(第二个因素)。
在命令提示符中,您可以确保 multiOTP 允许使用 OTP 验证该用户:
multiotp.exe -display-log j.smith 130186
其中130186是您从应用程序获得的一次性密码。
LOG 2022-09-17 15:13:11 notice (user j.smith) User OK: User j.smith successfully logged in with TOTP token
Filter-Id += "2FAVPNUsers"
您还可以通过 Web 界面确保 OTP 正常工作。转到检查用户部分,输入用户名和一次性密码。
如何在 Windows 上安装和配置 MultiOTP CredentialProvider?
下一步是在要使用 multiOTP 实施双因素身份验证的 Windows 计算机上安装 multiOTP-CredentialProvider。您可以将 CredentialProvider 安装到任何 Windows 7/8/8.1/10/11 或 Windows Server 2012(R2)/2016/2019/2022 版本。
在此示例中,我们将为 RDP 用户启用 2FA 来登录运行 Windows Server 2019 的 RDSH 服务器。
从 GitHub https://github.com/multiOTP/multiOTPCredentialProvider/releases 下载并安装 multiOTP CredentialProvider。最后可用的版本是 5.9.2.1。
运行安装:
指定安装 multiOTP 的服务器的 IP 地址。
请记住在 multiOTP 服务器和客户端上打开防火墙端口。您可以使用 PowerShell 在服务器上的 Windows 防火墙中打开端口:
New-NetFirewallRule -DisplayName "AllowMultiOTP" -Direction Inbound -Protocol TCP -LocalPort 8112 -Action Allow
在与 multiOTP 服务器共享的秘密字段中输入 multiOTP 配置 (服务器秘密) 中的秘密密钥;
选择要应用 OTP 身份验证的 Windows 登录类型。在我们的示例中,我们将仅对 RDP 登录使用 2FA(仅限远程桌面强制进行 OTP 身份验证)。
您可以为 RDP 和本地登录启用 OTP 身份验证。
MultiOTP CredentialProvider 将其设置保留在注册表中:
HKEY_CLASSES_ROOT\CLSID\{FCEFDFAB-B0A1-4C4D-8B2B-4FF4E0A3D978}
。如果需要,您可以在此处更改 CredentialProvider 设置,而无需重新安装代理。
重新启动 Windows Server RDS 主机并尝试通过 RDP 连接到它。输入用户凭据后,将出现一个新的一次性密码窗口。在这里,您必须通过智能手机上的身份验证器应用程序输入一次性密码。
如果在 RDS 主机上禁用 RDP NLA,用户将仅看到三个字段(用户名、密码和 OTP)。
您可以在 multiOTP 服务器上启用日志记录,这对于调试很有用:
multiotp -config debug=1
multiotp -config display-log=1
Your script is running from C:\MultiOTP\windows\
2022-09-17 15:21:07 debug CredentialProviderRequest Info: *Value for IsCredentialProviderRequest: 1 0 MUN-SRVOTP1
2022-09-17 15:21:07 debug Server-Client Info: *CheckUserToken server request. 0 MUN-SRVOTP1
2022-09-17 15:21:07 notice j.smith User OK: User j.smith successfully logged in (using Credential Provider) with TOTP token 0 MUN-SRVOTP1
2022-09-17 15:21:07 debug Server-Client Info: *Cache level is set to 1 0 MUN-SRVOTP1
2022-09-17 15:21:07 debug Server-Client Info: *Server secret used for command CheckUserToken with error code result 0: secret2OTP 0 MUN-SRVOTP1
请记住确保您的 AD 域与可靠的时间源同步时间,并且客户端设备具有正确的时间。这些对于 OTP 的运行至关重要。
无论如何,在您的网络中批量实施基于 multiOTP 的 2FA 之前,我们建议在几周内测试所有操作模式和紧急情况(multiOTP 服务器或 DC 不可用、CredentialProvider 错误等)。如果多OTP登录出现任何严重问题,您可以在安全模式下卸载CredentialProvider。
至此,Windows Server 中multiOTP 二因素身份验证的配置就结束了。还有一些场景将 multiOTP 与 RADIUS 服务器结合使用,以使用 OTP 对几乎任何类型的客户端进行身份验证。您可以使用 OTP 与 Windows 防火墙规则一起为 RDP 服务器提供额外保护,防止暴力攻击。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[短剧合集] 2025年06月2日 精选+付费短剧推荐39部
[软件合集] 25年6月2日 精选软件18个
[软件合集] 25年6月1日 精选软件15个
[短剧合集] 2025年06月1日 精选+付费短剧推荐59部
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[美图] 2W美女个美女小姐姐,饱眼福
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag