我将OpenVPN配置为通过PAM使用用户/密码身份验证,这很好。我也尝试添加TOTP身份验证(也使用PAM),但这不起作用。
客户端版本与服务器版本完全相同(这不应该是版本不匹配的问题)。我试着运行服务器和客户端,因为没有人启用/禁用,没有任何帮助。如果在客户端启用静态质询选项,则会显示提示,但不会处理输入(不会将其传递给PAM)。但是,用户/密码登录运行良好,这也由PAM处理。
PAM配置openvpn是正确的,因为SSH也能很好地使用它。
PAM提示将传递给OpenVPN服务器,如服务器日志中所示:
One-time password (OATH) for 'user1':
但这从未出现在客户端。
-
有人能帮我做这个吗?是否存在缺少的编译选项,或已知的错误,或者需要不同的配置?
openvpn --version
OpenVPN 2.5.6 x86_64-suse-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on Mar 16 2022
library versions: OpenSSL 1.1.1l 24 Aug 2021 SUSE release 150400.7.37.1, LZO 2.10
Originally developed by James Yonan
Copyright (C) 2002-2022 OpenVPN Inc <[email protected]>
Compile time defines: enable_async_push=no enable_comp_stub=no
enable_crypto_ofb_cfb=yes enable_debug=yes enable_def_auth=yes
enable_dependency_tracking=no enable_dlopen=unknown
enable_dlopen_self=unknown enable_dlopen_self_static=unknown
enable_fast_install=needless enable_fragment=yes enable_iproute2=yes
enable_libtool_lock=yes enable_lz4=yes enable_lzo=yes
enable_management=yes enable_multihome=yes enable_pam_dlopen=no
enable_pedantic=no enable_pf=yes enable_pkcs11=yes
enable_plugin_auth_pam=yes enable_plugin_down_root=yes
enable_plugins=yes enable_port_share=yes enable_selinux=no
enable_shared=yes enable_shared_with_static_runtimes=no enable_small=no
enable_static=yes enable_strict=no enable_strict_options=no
enable_systemd=yes enable_werror=no enable_win32_dll=yes
enable_x509_alt_username=yes with_aix_soname=aix
with_crypto_library=openssl with_gnu_ld=yes with_mem_check=no
with_sysroot=no
-
PAM配置:
cat /etc/pam.d/openvpn
#%PAM-1.0
auth requisite pam_oath.so usersfile=/etc/oath/users_ssh.oath window=30 digits=6
auth requisite pam_nologin.so
auth include common-auth
account requisite pam_nologin.so
account include common-account
password include common-password
session required pam_loginuid.so
session include common-session
session optional pam_lastlog.so silent noupdate showfailed
-
openvpn服务器conf(仅相关):
username-as-common-name
#plugin /usr/lib64/openvpn/plugins/openvpn-plugin-auth-pam.so "openvpn"
plugin /usr/lib64/openvpn/plugins/openvpn-plugin-auth-pam.so "openvpn login USERNAME password PASSWORD pin OTP"
-
客户会议(相关部分):
auth-user-pass
#static-challenge "PIN" 1
我正在尝试连接服务器上启用的TOTP,我得到
AUTH_FAILED
(而不是成功),无论输入PIN到静态质询提示。