我已经设置了FreeRADIUS,PAM和。FreeRADIUS调用PAM,这反过来又称为Google pam_google_authenticator.so libary。一切都成功了。
然而,这并不是真正的两个因素,因为一个人所需要的只是谷歌应用程序的OTP。为了获得两个2FA,我想使用本地Linux密码。因为这是通过RADIUS,我不能提示两个密码,并需要组合在一个。根据和我发现的各种博客,我应该在PAM中这样做:
auth requisite pam_google_authenticator.so forward_pass
auth required pam_unix.so use_first_pass 然后我可以将密码和OTP放在同一个提示符下,例如MyPass123456。
但从来都不起作用。在进行调试之后,我可以看到pam_unix.so检查并接受来自用户的密码,但最后还是失败了。如果我删除了第二行,或者将' auth‘改为'account’(我找到了一个建议),auth就能工作,但是本地密码就会被忽略。
我是不是在PAM配置中遗漏了什么?
发布于 2014-12-30 22:59:06
罗得的谷歌带领我到https://bugs.launchpad.net/percona-server/+bug/1274821,它描述了一个类似的问题。如文件所述,这一做法行之有效:
auth requisite pam_google_authenticator.so forward_pass
auth required pam_unix.so use_first_pass
account required pam_unix.so audit
account required pam_permit.so尽管对我来说,这是一个谜,因为MySQL问题是关于使用PAM作为非根的,而且我有FreeRADIUS设置要作为root运行。
发布于 2014-12-30 08:53:51
如果您将"auth“更改为"account”,则不再使用pam_unix进行身份验证。
你指的是什么
pam_unix.so检查并接受用户的密码,但无论如何都失败了。
这个服务的pam配置是什么样的?因为“必需”意味着堆栈被处理到最后,所以它可能在pam_unix之后中断。
您还可以考虑使用另一个双因素auth后端,它自行处理这两个因素.https://www.howtoforge.com/two-factor-authentication-with-otp-using-privacyidea-and-freeradius-on-centos
发布于 2015-03-13 10:33:10
你能给你的整个pam配置文件吗?如果在pam_deny.so之后使用pam_unix.so,则必须将配置更改为:
auth [success=1 default=ignore] pam_unix.so use_first_pass它指定,如果模块返回成功,则必须跳过下一行。
auth的整个配置:
auth requisite pam_google_authenticator.so forward_pass
auth [success=1 default=ignore] pam_unix.so use_first_pass
auth requisite pam_deny.so
auth required pam_permit.so首先,pam_google_authenticator模块提取TOTP并对其进行验证。
其次,pam_unix模块验证密码,如果成功,跳过第三行。
https://serverfault.com/questions/655289
复制相似问题