【第二弹】使用2FA保护你的Windows RDP远程连接
2019-06-07 10:49:00 Author: xz.aliyun.com(查看原文) 阅读量:399 收藏

上篇文章以 Ubuntu为例,介绍了如何给 Linux 服务器添加两步验证,这篇就是来说一下如何给 Windows 服务器远程连接增加两步验证,我也是摸索了很久才成功的,不足之处还请大牛们指教。

由于 Windows 本身的限制,微软官方给出的解决办法是使用自己家的 Azure AD 域控制器,同样配合自家的 Azure MFA,从而启用远程桌面的两步验证。但很明显,必须要使用微软自家的 Azure 云服务上面的域控制器才能达到效果,对于个人来说这条路行不通。

还好朋友给我推荐了Duo Security,这是一家提供双重认证服务的商业公司,2018年底被 Cisco 收购,美国很多的大学、企业都在使用他们的方案,而且对于个人来说是免费的。


但是,重要的话说三遍:

不建议使用微软账户登录的用户使用此方法!

不建议使用微软账户登录的用户使用此方法!

不建议使用微软账户登录的用户使用此方法!


  • 这一点主要是针对 Windows 10 用户,在更新完 1709 后,Duo Security 与 Windows 10 产生了冲突,而官方的规避方法是添加一条注册表项让微软账户绕过两步验证,这很明显不符合我们的要求。他们给出了这个已知问题,有兴趣的可以看一下并规避https://duo.com/docs/rdp-faq#can-i-use-duo-with-a-microsoft-account?

安装前的要求

  • Windows 7 或 Windows Server 2008 R2 及以上的计算机,连接外网
  • 必须使用本地账户登录
  • 用户必须设置密码,不能空密码

我用一台Windows Server 2019做为例子。

开始创建应用

首先去 https://duo.com/pricing 选择免费账号注册,并填写你的手机号

每次登录管理后台的时候都会让你选择一种方式验证(App Push、手机短信、电话)

进入管理后台之后,点击首页的Add New-Application,找到Microsoft RDP,点击右边的Protect this Application


一定要妥善保管好Integration keySecret Key

接下来还有一些选项,这里我们先全默认,不过最好勾上Offline Access,防止没有网络了无法登录,点击Save

下载 App 并启用推送

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 keySecret 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就不见了,这个时候在控制面板删除即可。


文章来源: http://xz.aliyun.com/t/5343
如有侵权请联系:admin#unsafe.sh