背景:
等保测评中,有一项是这样写的:
我们ECS,应用都有双因素认证,但是对于数据库的连接管理,因为产品、业务、技术等原因,无法开启双因素认证,(对于远程连接数据库服务器,直接管理数据库,我们不考虑,也不现实),本文档就是针对该情况在不影响正常业务和运维的情况下进行的整改。
思路:
1、通过防火墙限制数据库端口的连接(仅限应用的IP+运维客户端IP+一台Windows Server)
2、为满足要求,需要在WS安装OTP服务并启用(重点)。
3、登录这台WS通过数据库管理软件管理数据库。
实现方法:
1、寻找符合要求的软件,最终选择:multiotp
下载地址:https://download.multiotp.net/credential-provider/

根据自己的版本进行下载,并解压到指定目录

2、安装
multiOTPCredentialProviderInstaller.msi,尽量以超管安装。


新的页面保持默认选项,直接点“next”下一步。

这里是要选择哪种登录方式需要两步验证,一般来说我们都选“only remote 远程登录需要验证就行了。

点“next”下一步,
来到最后一个页面,直接点“install”开始安装程序,很快就装好了,
最后点“finish”结束安装。

3、新建用户,并配置可远程连接的权限

4、配置
安装完程序后,还需要进行些设置,我们来到multiotp的安装目录,一般来说是在C:\Program Files\multiOTP目录下。以管理员权限打开命令提示符,输入命令C:\Program Files\multiOTP回车,进到multiotp的安装目录;
#创建用户及赋权
net user 用户名 密码 /add
net localgroup "Remote Desktop Users" 用户名 /add
#启用OTP的用户及配置
multiotp.exe -fastcreatenopin 用户名
multiotp.exe -qrcode 用户名 用户名.png
multiotp.exe -two_step_hide_otp 用户名 用户名.png

然后输入multiotp.exe -fastcreatenopin 用户名 命令回车,其中 用户名 是你要设置两步验证的用户名。

问题分析及处理:
这是一个非常典型的 Windows 环境下运行 PHP 时遇到的 Visual C++ Redistributable 版本不兼容 错误。
简单来说,你的 PHP 程序在启动时,需要一个特定版本的 VCRUNTIME140.dll 文件来运行,但它找到了一个版本(14.22),而你的 PHP 版本在编译时链接的是另一个更新的版本(14.44)。版本不匹配导致 PHP 无法正常加载。
提示:根据你的错误信息(14.44 vs 14.22),你极大概率需要安装 Visual C++ 2022 Redistributable。请优先尝试这个。
- 如果你的 PHP 是 VS17 (Visual C++ 2022):下载 Microsoft Visual C++ 2022 Redistributable (最新版) 。

双击安装,查看安装信息:

再次执行

输入完这段代码后就能在multiotp的安装目录看到新建的users文件夹和生成的图片。

绑定OTP验证码
手机动态码软件扫码绑定,这类的软件很多,这里不做赘述。

5、验证前的温馨提醒,建议(重要)
- 注意:Visual C++ Redistributable 版本不兼容,一般通过官网下载都能解决。
- 注意:尽量修改下注册表的部分信息,不然可能开启OTP认证导致管理员登录不进去(cpus_logon=1e),切记 需要修改成(cpus_logon=1d)
HKEY_CLASSES_ROOT\CLSID\{FCEFDFAB-B0A1-4C4D-8B2B-4FF4E0A3D978}

参考如下:
配置值 作用范围 显示模式 最终效果 0e本地+远程 仅 multiOTP 全局强制双因素认证 0d本地+远程 multiOTP + 其他 全局按需双因素认证(推荐) 1e仅远程 仅 multiOTP 仅远程强制双因素认证(导致不显示其他登录方式,超管也不能远程登录) 1d仅远程 multiOTP + 其他 仅远程按需双因素认证 2e仅本地 仅 multiOTP 仅本地强制双因素认证 2d仅本地 multiOTP + 其他 仅本地按需双因素认证 3全部禁用 - 完全禁用 multiOTP 3d全部禁用 确保其他可用 最安全的禁用方式
6、修改了注册表,需重启WS,进行验证。



这样的话,各种登录方式都有,符合现有方式。


890

被折叠的 条评论
为什么被折叠?



