我已经设置了 FreeRADIUS、PAM 和 Google Authtenicator。FreeRADIUS 调用 PAM,而后者又调用 Google pam_google_authenticator.so 库。这一切都成功了。
但是,这并不是真正的 2 因素身份验证,因为只需要来自 Google App 的 OTP。要获得两个 2FA,我想使用本地 Linux 密码。由于这是通过 RADIUS 进行的,因此我无法提示输入两个密码,需要将它们合并为一个。根据 Google Auth README 和我找到的各种博客,我应该在 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 配置中是否缺少某些内容?