我在Ubuntu 12.04上有一个可以正常使用的OpenVPN系统,并且我想添加Google Authenticator以获得额外的安全性。
这是我当前的openvpn配置:
开发屯 原始udp 1096端口 ca ubuserv04-ca.crt 证书ubuserv04.crt 键ubuserv04.key dh dh1024.pem 服务器10.10.0.0 255.255.255.0 推送“重定向网关def1” 推送“路由192.168.0.0 255.255.255.0” 推送“ dhcp-option DNS 8.8.8.8” 推送“ dhcp-option DNS 8.8.4.4” 浮动 日志追加/var/log/openvpn-otp-1096-status.log
(这只是一个测试设置,我知道我应该更改它的某些方面,但是现在可以使用。)
在客户端上,我有:
开发屯 客户 原始udp 远程my.server.fqdn 1096 解析无限 ca ubuserv04-ca.crt cert user1.crt 关键user1.key 动词3
上面的设置工作正常:没有错误,快速,稳定。
我已经尝试了几种方法来使Google Authenticator运行,但是每次我都会对这些文章中的附带问题进行故障排除。我不想使用服务器的本地用户/密码数据库进行身份验证,而只想使用已经存在的系统以及Google Authenticator进行身份验证。
我正在运行Google Authenticator;我使用apt-get install libpam-google-authenticator安装了它,并在验证ssh会话之前使用了它。效果很好,但是我现在禁用了它,因为它只是测试服务器,并且特定的测试已完成。
请具体说明。我知道我应该在服务器的ovpn配置中添加一个插件,并且应该在/etc/pam.d/openvpn中添加一些内容,但是究竟是什么呢?
任何帮助将不胜感激!
/额外信息
我关注了这篇文章:http : //www.howtoforge.com/securing-openvpn-with-a-one-time-password-otp-on-ubuntu 而不是从源代码进行编译,我使用apt安装了Google Authenticator -获取安装libpam-google-authenticator。我还阅读了以下文章,但在本例中未使用:http : //www.howtogeek.com/121650/how-to-secure-ssh-with-google-authenticators-two-factor-authentication/和http ://zcentric.com/2012/10/09/google-authenticator-with-openvpn-for-2-factor-auth/。我已经按照建议阅读了PAM;)
现在,这是一些有趣的发展。
/etc/pam.d/openvpn具有以下内容:
帐户[成功= 2 new_authtok_reqd =完成默认=忽略] pam_unix.so 帐户[成功= 1 new_authtok_reqd =完成默认=忽略] pam_winbind.so 帐户必填pam_deny.so 需要帐户pam_permit.so 需要验证pam_google_authenticator.so
按照howto,我从/etc/pam.d/common-account复制了原始文件并添加了最后一行。现在,如果我将最后一行注释掉,则OpenVPN连接成功。但是,如果最后一行未注释掉,则/var/log/auth.log记录以下内容:
PAM无法dlopen(pam_google_authenticator.so):/lib/security/pam_google_authenticator.so:未定义的符号:pam_get_item PAM添加了错误的模块:pam_google_authenticator.so
和/var/log/openvpn-otp-1096.log记录以下内容:
PLUGIN_CALL:插件函数PLUGIN_AUTH_USER_PASS_VERIFY失败,状态为1:/usr/lib/openvpn/openvpn-auth-pam.so TLS身份验证错误:对等方的身份验证用户名/密码验证失败 电子使用SSL / TLS上下文 AUTH-PAM:背景:用户“马丁”身份验证失败:模块未知
问题似乎出在PAM和Google Authenticator之间。
Google列出了其他插件的问题,但是我真的找不到关于Google Authenticator的信息。
libpam-google-authenticator
是用于在PAM中使用Google Authenticator进行身份验证。这在OpenVPN中没有用,因为您在此处使用证书。我建议您阅读什么是PAM-您将了解,它与您的情况与OpenVPN无关。