Я безуспешно пытаюсь настроить аутентификацию pam с помощью ldap из Debian jessy на сервер SLES11. Я всегда получаю неправильные учетные данные, хотя это может успешно связать нас ldapsearch
. Ниже приведены результаты журнала ldap для случаев, которые я выполняю:
ldapsearch -D uid=testuser,ou=people,dc=our-domain,dc=de -W -H ldap://192.168.100.11 'uid=testuser'
slapd[4628]: conn=1072 fd=18 ACCEPT from IP=192.168.100.12:59539 (IP=0.0.0.0:389)
slapd[4628]: conn=1072 op=0 BIND dn="uid=testuser,ou=people,dc=our-domain,dc=de" method=128
slapd[4628]: conn=1072 op=0 BIND dn="uid=testuser,ou=people,dc=our-domain,dc=de" mech=SIMPLE ssf=0
slapd[4628]: conn=1072 op=0 RESULT tag=97 err=0 text=
slapd[4628]: conn=1072 op=1 SRCH base="ou=people,dc=our-domain,dc=de" scope=2 deref=0 filter="(uid=testuser)"
slapd[4628]: conn=1072 op=1 SEARCH RESULT tag=101 err=0 nentries=1 text=
slapd[4628]: conn=1072 op=2 UNBIND
slapd[4628]: conn=1072 fd=18 closed
Попытка входа с использованием следующего /etc/pam_ldap.conf
:
host 192.168.100.11
base ou=people,dc=our-domain,dc=de
ldap_version 3
Результаты в
slapd[4628]: conn=1073 fd=18 ACCEPT from IP=192.168.100.12:59540 (IP=0.0.0.0:389)
slapd[4628]: conn=1073 op=0 BIND dn="" method=128
slapd[4628]: conn=1073 op=0 RESULT tag=97 err=0 text=
slapd[4628]: conn=1073 op=1 SRCH base="ou=people,dc=our-domain,dc=de" scope=2 deref=0 filter="(uid=testuser)"
slapd[4628]: conn=1073 op=1 SEARCH RESULT tag=101 err=0 nentries=1 text=
slapd[4628]: conn=1073 op=2 BIND dn="uid=testuser,ou=people,dc=our-domain,dc=de" method=128
slapd[4628]: conn=1073 op=2 RESULT tag=97 err=49 text=
slapd[4628]: conn=1073 op=3 BIND dn="" method=128
slapd[4628]: conn=1073 op=3 RESULT tag=97 err=0 text=
slapd[4628]: conn=1073 op=4 BIND dn="uid=testuser,ou=people,dc=our-domain,dc=de" method=128
slapd[4628]: conn=1073 op=4 RESULT tag=97 err=49 text=
slapd[4628]: conn=1073 op=5 BIND dn="" method=128
slapd[4628]: conn=1073 op=5 RESULT tag=97 err=0 text=
slapd[4628]: conn=1073 op=6 UNBIND
slapd[4628]: conn=1073 fd=18 closed
И попытка входа в систему с использованием следующего /etc/pam_ldap.conf
:
host 192.168.100.11
base ou=people,dc=our-domain,dc=de
ldap_version 3
rootbinddn cn=adminaccount,ou=daemonadmins,dc=our-domain,dc=de
Результаты в
slapd[4628]: conn=1076 fd=18 ACCEPT from IP=192.168.100.12:59543 (IP=0.0.0.0:389)
slapd[4628]: conn=1076 op=0 BIND dn="cn=adminaccount,ou=daemonadmins,dc=our-domain,dc=de" method=128
slapd[4628]: conn=1076 op=0 BIND dn="cn=adminaccount,ou=daemonadmins,dc=our-domain,dc=de" mech=SIMPLE ssf=0
slapd[4628]: conn=1076 op=0 RESULT tag=97 err=0 text=
slapd[4628]: conn=1076 op=1 SRCH base="ou=people,dc=our-domain,dc=de" scope=2 deref=0 filter="(uid=testuser)"
slapd[4628]: conn=1076 op=1 SEARCH RESULT tag=101 err=0 nentries=1 text=
slapd[4628]: conn=1076 op=2 BIND anonymous mech=implicit ssf=0
slapd[4628]: conn=1076 op=2 BIND dn="uid=testuser,ou=people,dc=our-domain,dc=de" method=128
slapd[4628]: conn=1076 op=2 RESULT tag=97 err=49 text=
slapd[4628]: conn=1076 op=3 BIND dn="cn=adminaccount,ou=daemonadmins,dc=our-domain,dc=de" method=128
slapd[4628]: conn=1076 op=3 BIND dn="cn=adminaccount,ou=daemonadmins,dc=our-domain,dc=de" mech=SIMPLE ssf=0
slapd[4628]: conn=1076 op=3 RESULT tag=97 err=0 text=
slapd[4628]: conn=1076 op=4 BIND anonymous mech=implicit ssf=0
slapd[4628]: conn=1076 op=4 BIND dn="uid=testuser,ou=people,dc=our-domain,dc=de" method=128
slapd[4628]: conn=1076 op=4 RESULT tag=97 err=49 text=
slapd[4628]: conn=1076 op=5 BIND dn="cn=adminaccount,ou=daemonadmins,dc=our-domain,dc=de" method=128
slapd[4628]: conn=1076 op=5 BIND dn="cn=adminaccount,ou=daemonadmins,dc=our-domain,dc=de" mech=SIMPLE ssf=0
slapd[4628]: conn=1076 op=5 RESULT tag=97 err=0 text=
slapd[4628]: conn=1076 op=6 UNBIND
slapd[4628]: conn=1076 fd=18 closed
Мне кажется, что пароль на самом деле неправильный, поскольку поиск находит запись. Я также пробовал разные настройки для pam_password
вход в /etc/pam_ldap.conf
без видимых изменений.
Есть ли разница в том, как PAM
отправляет пароль на сервер LDAP по сравнению с ldapsearch
?
Попробуйте запустить sshd в режиме отладки:
/usr/sbin/sshd -d -D -e -p 2222
затем попробуйте ssh, чтобы вызвать ошибку:
ssh -p 2222 youruser@yourhost
Пожалуйста, поделитесь журналом отладки с sshd. Это могло бы приблизить нас, в чем проблема.
Проблема оказалась в локальных аккаунтах. Я заметил, что могу войти в систему с существующей локальной учетной записью, указав ее локальную или LDAP
пароль. В последнем случае он будет успешно привязан к LDAP
сервер.
Чтобы разрешить пользователям без существующей локальной учетной записи, мне пришлось установить libpam-mkhomedir
и добавить его в /etc/pam.d/common-session
(а также удаление ssh
требование членства в группе, которое характерно только для моего случая). Теперь логин без существующих локальных учетных записей работает.
Я не могу объяснить, как отсутствие локальной учетной записи приводит к неудачной привязке LDAP
server, поскольку журналы не содержат объяснений какого-либо другого поведения. Если бы кто-то мог пролить свет на это, мне было бы очень интересно узнать.