一、背景
在JumpServer的堡垒机中,有一个MFA认证的功能,MFA是一种多因素身份认证,本文重点说下JumpServer的MFA使用的OTP认证技术。
二、内网可以使用MFA吗
先说结果,当然可以,就算堡垒机在内网环境,与外网完全没有打通,一样可以使用MFA认证。这源于TOTP算法是可以离线的,算法只对用户名、时间进行签名,不含有URL,只要客户端和服务器能在时间上一致就OK,这就是为什么JumpServer的MFA可以内网使用。时间一致就比较容易做到了,只需要部署JumpServer的服务器和OTP应用上一致(基本上是外网时间)。
三、如果服务器的时间没有那么的精准登入会失败吗
还是先说结果,肯定会,本身就是通过时间当计数器的,时间不一致当然不行啦,但如果只有细微误差,可以有办法忽略吗,如果没有NTP服务的情况下,总不能每次时间不准就让堡垒机管理员登入到Linux上修改时间吧。这里我介绍一个缓兵之计
在OTP延迟有效次数,可以调整一下大小,就比方说写成60,那就是在前后一分钟内,都可以认证成功,但这也会有安全隐患并且,如果没有NTP,服务器的时间是越差越大的,所以,还是建议在环境中部署NTP服务,OTP延迟有效次数设置为0,差一点时间都不行,严格控制。
四、MFA的令牌遗失了怎么办
这个情况就要说道说道啦,如果是普通用户或者组织管理员遗失MFA令牌,只需要超管(admin)在web端重置一下即可,该用户就可以在web端重新设置MFA了。
但如果是超管遗失了怎么办,两个办法,如果有另一个超管用户,进系统后帮忙重置一下也是可以的,
如果超管MFA都丢了,那是公司进小偷了(开玩笑),可以选择到JumpServer的数据库中重置一下也是可以的,在users_user表中可以看到mfa_level=2,把值改为0即可
执行update users_user set mfa_level=0 where username='admin’即可
五、JumpServer的MFA在哪里
直接上图,这个功能所在的位置,在系统设置-安全设置-MFA
还是很容易找到的
不开启MFA,输入账号密码和验证码就可以直接登入了,开启后的效果
还需要输入个人的OTP验证码才可以正常登入,这种情况是否安全很多
除了系统管理员可以在以上截图的地方强制开启MFA,在每个用户的个人信息处也可以自行设置MFA
三、总结
关于MFA验证应用,还是很好找的,用苹果手机为例,直接在AppStore搜索mfa即可,就会有很多MFA验证应用,随便一款就可以使用,别的类型手机搜索相应的应用商店试试。
OTP的技术运用还是比较广泛的,感兴趣的可以启用试试。