Я пытаюсь заставить OpenVPN аутентифицировать пользователей через PAM через LDAP на сервере Active Directory.
Вот соответствующие части моих файлов конфигурации:
/etc/openvpn/server.conf:
# ...
plugin /usr/lib64/openvpn/plugins/openvpn-plugin-auth-pam.so ldap-login
/etc/nslcd.conf:
uri ldap://prod-adc1.mydomain.local
base DC=MyDomain,DC=Local
uid nslcd
gid ldap
/etc/pam.d/ldap-login:
auth sufficient pam_ldap.so minimum_uid=1000 use_first_pass
auth required pam_deny.so
password sufficient pam_ldap.so minimum_uid=1000 use_first_pass
password required pam_deny.so
Когда я пытаюсь пройти аутентификацию, я вижу в журналах следующее:
/ var / журнал / безопасный:
Dec 4 22:22:42 localhost openvpn[25505]: pam_ldap(ldap-login:auth): failed to get password: Authentication failure
/ var / log / сообщения:
Dec 4 22:38:28 localhost openvpn[25504]: 1.2.3.4:37503 TLS: Initial packet from [AF_INET]1.2.3.4:37503, sid=c2d806cc 5c7c7ace
Dec 4 22:38:28 localhost openvpn[25504]: 1.2.3.4:37503 PLUGIN_CALL: POST /usr/lib64/openvpn/plugins/openvpn-plugin-auth-pam.so/PLUGIN_AUTH_USER_PASS_VERIFY status=1
Dec 4 22:38:28 localhost openvpn[25504]: 1.2.3.4:37503 PLUGIN_CALL: plugin function PLUGIN_AUTH_USER_PASS_VERIFY failed with status 1: /usr/lib64/openvpn/plugins/openvpn-plugin-auth-pam.so
Dec 4 22:38:28 localhost openvpn[25504]: 1.2.3.4:37503 TLS Auth Error: Auth Username/Password verification failed for peer
Dec 4 22:38:28 localhost openvpn[25504]: 1.2.3.4:37503 Control Channel: TLSv1.2, cipher TLSv1/SSLv3 DHE-RSA-AES256-GCM-SHA384
Dec 4 22:38:28 localhost openvpn[25504]: 1.2.3.4:37503 Peer Connection Initiated with [AF_INET]1.2.3.4:37503
Dec 4 22:38:31 localhost openvpn[25504]: 1.2.3.4:37503 PUSH: Received control message: 'PUSH_REQUEST'
Dec 4 22:38:31 localhost openvpn[25504]: 1.2.3.4:37503 Delayed exit in 5 seconds
Dec 4 22:38:31 localhost openvpn[25504]: 1.2.3.4:37503 SENT CONTROL [UNDEF]: 'AUTH_FAILED' (status=1)
Dec 4 22:38:36 localhost openvpn[25504]: 1.2.3.4:37503 SIGTERM[soft,delayed-exit] received, client-instance exiting
Я неправильно настроил PAM? Что-то мне не хватает в моей конфигурации входа?
РЕДАКТИРОВАТЬ: Я могу войти в систему, если сделаю следующее:
ldapsearch -h prod-adc1.mydomain.local -b "DC=MyDomain,DC=Local" -x -D "naftuli.kay@mydomain.com" -W
Как мне сопоставить это с модулем PAM LDAP, чтобы логины OpenVPN работали должным образом?
Похоже, вам нужно настроить /etc/nslcd.conf
с вашим binddn
и bindpw
.
Видеть http://arthurdejong.org/nss-pam-ldapd/nslcd.conf.5
Надеюсь это поможет!
-Байрон
Пример рабочей настройки (авторизация пользователей только против LDAP-сервера, в примере я использовал OpenLDAP, но AD поддерживается и в этом модуле - openvpn-auth-ldap.so):
openvpn-sever.conf:
# Authorization against LDAP
plugin /usr/lib64/openvpn-auth-ldap.so /some/path/auth-ldap.conf
auth-ldap.conf:
<LDAP>
# LDAP server URL
URL ldap://server.intranet.eko-inwest.com.pl:389
# Bind DN (If your LDAP server doesn’t support anonymous binds)
# BindDN uid=administrator,ou=users,dc=x,dc=y
# BindDN uid=admin,ou=Users,dc=x,dc=y
# BindDN admin@test.com
# Network timeout (in seconds)
Timeout 15
# Enable Start TLS
TLSEnable no
# TLS CA Certificate File
# TLSCACertFile /etc/ssl/ca.x.y.crt
</LDAP>
<Authorization>
# Base DN
BaseDN "ou=users,dc=x,dc=y"
# User Search Filter
#SearchFilter "(uid=%u)"
#SearchFilter "(&(uid=%u)(objectclass=posixAccount))"
# For Samba's schema
SearchFilter "(&(uid=%u)(!(sambaAcctFlags=[DUL ])))"
# Require Group Membership
RequireGroup true
# Add non-group members to a PF table (disabled)
# PFTable vpn-users
<Group>
# Match full user DN if true, uid only if false
RFC2307bis false
BaseDN "ou=groups,dc=x,dc=y"
SearchFilter "(cn=vpn-users)"
MemberAttribute memberUid
</Group>
</Authorization>