上篇文章以 Ubuntu为例,介绍了如何给 Linux 服务器添加两步验证,这篇就是来说一下如何给 Windows 服务器远程连接增加两步验证,我也是摸索了很久才成功的,不足之处还请大牛们指教。
由于 Windows 本身的限制,微软官方给出的解决办法是使用自己家的 Azure AD 域控制器,同样配合自家的 Azure MFA,从而启用远程桌面的两步验证。但很明显,必须要使用微软自家的 Azure 云服务上面的域控制器才能达到效果,对于个人来说这条路行不通。
还好朋友给我推荐了Duo Security
,这是一家提供双重认证服务的商业公司,2018年底被 Cisco 收购,美国很多的大学、企业都在使用他们的方案,而且对于个人来说是免费的。
但是,重要的话说三遍:
我用一台Windows Server 2019
做为例子。
首先去 https://duo.com/pricing 选择免费账号注册,并填写你的手机号
每次登录管理后台的时候都会让你选择一种方式验证(App Push、手机短信、电话)
进入管理后台之后,点击首页的Add New
-Application
,找到Microsoft RDP
,点击右边的Protect this Application
一定要妥善保管好Integration key
和Secret Key
!
接下来还有一些选项,这里我们先全默认,不过最好勾上Offline Access
,防止没有网络了无法登录,点击Save
在 App Store 或者 Play Store 里面搜索 Duo Mobile 下载安装:
由于我们只有一个用户,所以进入 Duo Security 控制台,找到Users
,点击Add User
开始创建用户,我这里用户名设置为 wb
,如果你使用默认的管理员用户,则把用户名设置为 administrator
但不管设置什么,最后要和你服务器登录时候的用户名保持一致!
其他可以全默认,然后点Save Changes
接下来拉到下方,点击 Add Phone,输入你的手机号码(中国请改成86),如果你想用平板认证就选择 Tablet,然后点Next
在 Setting 选项中,给你的设备取个名字,Platform 选择你手机对应的平台,然后保存设置
点击上方的 Active Duo Mobile
-Generate Duo Mobile Activation Code
稍等一下之后,手机就会收到短信了:
打开短信中的链接,就会自动激活手机上的 Duo Mobile 客户端并添加验证(前提是要安装)
App 配置完成。
首先启用服务器的远程桌面功能,然后下载 Duo Security 认证客户端:https://dl.duosecurity.com/duo-win-login-latest.exe ,打开安装程序
分别输入你上面获得的API地址,Integration key
和Secret Key
,点击下一步
关于这三个选项:
在网络连接不正常时自动禁用Duo身份验证
请使用自动推送进行身份验证
仅通过RDP登录时提示进行Duo身份验证
其中前两项默认是选中的,如果第三项选中了,就是只有在远程桌面的时候才会要求Duo身份验证,而直接操作物理服务器的时候就不需要了,这个是否开启取决于个人。
没有智能卡,直接下一步
安装完成之后重启电脑
重启服务器之后,尝试使用 RDP 进行远程登陆,输入完用户名和密码之后,如果没有问题的话,就弹出了二次认证页面,同时你的手机也收到了 App Push,点击 Approve 即可完成登录进入桌面
如果你没法收到通知,可以手动刷新一下App,或者在登录界面选择输入动态码或者手机短信验证码登录。
接下来会提示你如果网络断开了使用什么方式验证,选Mobile Passcode然后点击右下角的按钮(我这个Server没桌面所以字体看起来很差劲)
用Duo Mobile点击右上角的加号扫码即可。
然后输入一次刚刚生成的动态码即可。
进入安全模式,先反注册这两个DLL:
regsvr32 /u "C:\Program Files\Duo Security\WindowsLogon\DuoCredProv.dll" regsvr32 /u "C:\Program Files\Duo Security\WindowsLogon\DuoCredFilter.dll"
然后重启到正常模式,Duo Mobile就不见了,这个时候在控制面板删除即可。