Ubuntu 中 Pam Google Auth 的问题

Ubuntu 中 Pam Google Auth 的问题

我有一个使用 Google Authenticator 进行 TFA 的 OpenVPN 服务器。它运行良好,已经运行了一年多。就在昨晚/今天,它停止了工作。我设法找到了 auth.log 文件和以下错误:

openvpn(pam_google_authenticator)[1366]: Failed to read “/home/administrator/.google_authenticator” for “administrator”

我尝试更改该文件的读取权限.google_authenticator,但没有成功。

我将文件所有者和组分别改为 root 和管理员。但都不起作用。

我在网上看到,这可能是时区问题,于是我更新了时区为我的时区,而不是 UTC。但这也没用。

我怎样才能使 pam.d 能够.google_authenticator再次读取?

答案1

因此这并没有启用 pam.d 来读取.google_authenticator,但我确实让我的 OpenVPN 再次工作。

我必须创建一个新的服务用户和他们拥有的新文件夹。然后我必须将所有.google_authenticator文件移到该文件夹​​中。我将所有文件重命名为其各自的用户名。然后我必须添加以下行

auth required /lib/x86_64-linux-gnu/security/pam_google_authenticator.so secret=/etc/openvpn/ga/${USER} user=goog forward_pass

到我的 openvpn pam 文件。

/etc/openvpn/ga是 Google 身份验证用户 ( ) 拥有的文件夹goog${USER}是一个pam_google_authenticator.so变量,表示尝试登录的用户的用户名。 还有另一个pam_google_authenticator变量表示用户的主目录(${HOME}或),但它不能与选项~一起使用。userpam_google_authenticator

这篇文章非常有帮助。它解释了很多步骤。它说要创建新用户和组,为 Google Authenticator 文件创建目录,并赋予它们适当的权限。然后它给出了如何在不同用户下运行 pam 的具体说明。

答案2

我从 2.5.?(我不记得以前的版本了)升级到 2.5.9 后也遇到了同样的问题。

我得到了一个提示这里,有人认为这可能是由于 systemd init 文件中的 ProtectHome 指令造成的,因为手动运行 openvpn 不会触发此问题。这导致了一种更简单的解决方案。

因此我编辑了服务初始化文件(在我的情况下;对您来说可以是不同的文件(例如))转换/lib/systemd/system/[email protected]/lib/systemd/system/[email protected]

ProtectHome=true

ProtectHome=false

然后我重新加载了 Demon,systemctl daemon-reload并重启了 OpenVPNsystemctl restart [email protected]

现在问题已经解决,我可以再次使用 Google Authenticator 2FA 连接到 OpenVPN。

如果有人对此方法的安全有疑虑,请发表评论。

相关内容