一、双因子认证介绍
“双因子”认证是在原本的“用户名+静态密码”的基础上增加一种因素,用以判断用户身份,以确保是用户本人登录。目前市场上支持的双因子认证包括:动态密码、扫码、消息推送、邮件认证、指纹、人脸、虹膜、声音、U盘证书等。目前在各种场景中使用最多的双因子认证类型为动态密码的形式。
二、JumpServer 支持的双因子认证
JumpServer 目前支持的双因子认证为动态密码的形式,目前 JumpServer 环境中可支持的动态码类型包括:
MFA 动态码认证
短信验证码认证
宁盾 OTP 验证码认证
自定义MFA验证
三、管理员开启双因子认证
当没有对接短信验证和宁盾 OTP 认证的情况下,默认开启的是 MFA 动态码验证。
1、全局开启
JumpServer 可以针对于全员开启MFA双因子认证,按钮位于:系统设置→安全设置→认证中。
选项解释:
禁用:禁用即不开启 MFA 双因子认证,用户仅通过“用户名+静态密码”的方式进行认证。
所有用户:所有用户均开启 MFA 认证。
仅管理员:仅管理用户开启 MFA 认证。
注:此处针对于全局所有用户开启 MFA 之后,单个用户不可以关闭 MFA 认证。
2、针对于某个用户开启
①、创建用户时开启 MFA
创建用户时即可开启 MFA 双因子认证。
参数详解:
启用:启用 MFA,但用户首次登陆后可在页面上手动关闭。
强制启用:启用 MFA,用户不可关闭。
②、已存在的用户开启 MFA
当需要给已存在的用户开启 MFA 时,需要更新用户。在用户管理页面选择对应的用户进行更新。
注:当一个用户之前开启并绑定过 MFA,更新用户信息并启用 MFA 之后会沿用之前的 MFA 动态码。如果需要重置MFA动态码请参考第八章。
四、管理员开启短信验证
JumpServer 还支持讲短信验证码作为双因子认证。目前支持的有:阿里云短信、腾讯云短信、华为云短信、CMPP v2.0 以及自定义短信。
选择对应的短信服务商,以阿里云为例。填入阿里云短信服务的相关信息,点击<测试>按钮可测试配置是否正确。
启用双因素认证后,在登陆页面双因子验证界面即可选择短信认证方式。
五、管理员开启宁盾 OTP 认证
JumpServer 支持使用 Radius 进行认证。Radius 认证可直接在页面进行配置,具体配置如下图所示:
配置项参数详解:
参数名称 | 说明 |
启用 Radius 认证 | 是否启用 Radius 认证 |
主机 | Radius 服务器的 IP 或域名 |
端口 | Radius 服务器的端口 |
密钥 | Radius 服务器的预共享秘钥 |
使用 Radius OTP | 使用动态密码认证,可以配合 ldap 使用。 |
启用双因素认证后,在登陆页面双因子验证界面即可选择 Radius 认证方式。
六、用户绑定双因子认证
1、默认 MFA 认证
JumpServer 堡垒机默认的 MFA 支持的 MFA 工具支持列表可参考:https://kb.fit2cloud.com/?p=6
当开启了 MFA 的用户首次登陆时需要绑定 MFA 双因子认证。首次登陆输入密码后会跳转至绑定 MFA:
点击“下一步”进入 MFA 工具下载页面,堡垒机内嵌的二维码下载的 MFA 工具为google authenticator。如果需要下载,可使用浏览器扫一扫进入下载页面并安装,也可选用其他 MFA 工具。
点击“下一步”,进入 MFA 绑定页面。可使用 MFA 工具扫一扫添加 MFA,扫描后出现的动态码填入下方框中。当无法进行扫一扫时,可以在 MFA 工具中输入 Secret 的 token,已进行绑定。
点击“下一步”即可绑定成功,重新登陆进行 MFA 双因子认证。
2、短信双因子认证
短信双因子认证需要管理员配置了短信服务商的相关配置,启用的短信验证码功能,并且用户绑定了手机号码登陆时即可发送短信验证码实现双因子认证。
3、Radius 双因子认证
Radius 双因子中 OTP 一般是与用户进行绑定的,绑定后开启 Radius 认证即可进行双因子认证。
七、管理员如何关闭用户的双因子认证
当全局启用 MFA 时,单独关闭某个用户的 MFA 不生效。
1、普通用户
管理员可以在用户列表页面关闭用户的 MFA 认证。点击用户列表后方的“更新”按钮,设置 MFA 级别为“禁用”即可。
2、管理员用户
①、修改其他管理员用户
修改其他管理员用户方法与修改普通用户的 MFA 相同,使用更新用户即可。
②、修改自身账号
方法一:参考修改其他管理员用户的方式
方法二:点击用户名称进入用户个人信息页面,在账号信息页面的右上角中设置多因子认证。关闭 MFA 即可。
八、管理员如何重置某个用户的双因子认证
1、用户详情页重置
此方式适用于除用户本身的其他用户。例如:让我使用 Administrator 用户登陆时,我无法通过此方式重置 Administrator 的 MFA。
在用户列表页面点击用户名称进入用户详情页。在页面右上角的快速更新模块中点击重置 MFA,即可重置用户的 MFA。重置 MFA 后需要用户下一次登陆时重新绑定。
2、管理员用户重置自己的 MFA
方法一:寻找其他的管理员用户给账号重置 MFA。当没有其他管理员时可通过服务器后台新建一个管理员
docker exec -it jms_core /bin/bash #进入 JumpServer 的核心组件 core
cd /opt/jumpserver/apps #进入组件内文件所在的目录
python manage.py createsuperuser --username=user --email=user@domain.com #创建一个管理员用户
方法二:在 Administrator 的个人信息页面,认证设置模块中设置多因子认证。
点击重置,验证当前 MFA 之后,重置 MFA 成功!
3、服务器后台重置
JumpServer 也支持通过堡垒机后台服务器重置用户的 MFA。
docker exec -it jms_core /bin/bash
cd /opt/jumpserver/apps
python manage.py shell
from users.models import User
u = User.objects.get(username='admin')
u.mfa_level='0'
u.otp_secret_key=''
u.save()