LdapErr: DSID-0C0903AA, данные 52e: аутентификация в AD '08 с помощью pam_ldap
У меня есть полный доступ администратора к серверу AD '08, к которому я пытаюсь пройти аутентификацию.
Код ошибки означает недействительные учетные данные, но мне бы хотелось, чтобы это было так же просто, как вводить неправильный пароль.
Прежде всего, у меня есть рабочая конфигурация Apache mod_ldap для того же домена.
AuthType basic
AuthName "MYDOMAIN"
AuthBasicProvider ldap
AuthLDAPUrl "ldap://10.220.100.10/OU=Companies,MYCOMPANY,DC=southit,DC=inet?sAMAccountName?sub?(objectClass=user)"
AuthLDAPBindDN svc_webaccess_auth
AuthLDAPBindPassword mySvcWebAccessPassword
Require ldap-group CN=Service_WebAccess,OU=Groups,OU=MYCOMPANY,DC=southit,DC=inet
Я показываю это, потому что он работает без использования какого-либо Kerberos, как многие другие руководства рекомендуют для аутентификации системы в AD.
Теперь я хочу перевести это в pam_ldap.conf для использования с OpenSSH.
Часть /etc/pam.d/common-auth проста.
auth sufficient pam_ldap.so debug
Эта строка обрабатывается раньше других.
Я считаю, что реальная проблема заключается в настройке pam_ldap.conf.
host 10.220.100.10
base OU=Companies,MYCOMPANY,DC=southit,DC=inet
ldap_version 3
binddn svc_webaccess_auth
bindpw mySvcWebAccessPassword
scope sub
timelimit 30
pam_filter objectclass=User
nss_map_attribute uid sAMAccountName
pam_login_attribute sAMAccountName
pam_password ad
Теперь я отслеживаю трафик ldap на хосте AD с помощью wireshark. Я записал успешный сеанс из mod_ldap Apache и сравнил его с неудачным сеансом из pam_ldap.
Первый запрос bindrequest является успешным с использованием учетной записи svc_webaccess_auth, запрос searchrequest является успешным и возвращает результат 1. Последний запрос bindrequest, использованный моим пользователем, является ошибкой и возвращает указанный выше код ошибки.
Все выглядит идентично, за исключением этой одной строки в фильтре для запроса поиска, здесь показывается mod_ldap.
Filter: (&(objectClass=user)(sAMAccountName=ivasta))
Второй - это pam_ldap.
Filter: (&(&(objectclass=User)(objectclass=User))(sAMAccountName=ivasta))
Моего пользователя зовут Иваста. Однако запрос поиска не возвращает ошибку, он возвращает 1 результат. Я также попробовал это с ldapsearch на кли.
Это запрос привязки, следующий за запросом поиска, который завершается ошибкой с указанным выше кодом ошибки 52e.
Вот сообщение об ошибке последнего запроса на привязку.
resultcode: invalidcredentials (49)
80090308: LdapErr: DSID-0C0903AA, comment: AcceptSecurityContext error, data 52e, v1772
Это должно означать неверный пароль, но я пробовал с другими пользователями и с очень простыми паролями.
Кто-нибудь узнает это по собственной борьбе с pam_ldap и AD?
Редактировать: Стоит отметить, что я также попробовал крипту pam_password и pam_filter sAMAccountName=User, потому что это работало при использовании ldapsearch.
ldapsearch -LLL -h 10.220.100.10 -x -b "ou=Users,ou=mycompany,dc=southit,dc=inet" -v -s sub -D svc_webaccess_auth -W '(sAMAccountName=ivasta)'
Это работает с использованием пароля учетной записи svc_webaccess_auth. Эта учетная запись имеет доступ к сканированию этого OU для использования с mod_ldap apache.
Edit2: это все, что я получаю в журналах AD '08, когда мне не удается войти в систему.
An account failed to log on.
Subject:
Security ID: SYSTEM
Account Name: WIN-DC02$
Account Domain: SOUTHIT
Logon ID: 0x3e7
Logon Type: 3
Account For Which Logon Failed:
Security ID: NULL SID
Account Name: ivasta
Account Domain: SOUTHIT
Failure Information:
Failure Reason: Unknown user name or bad password.
Status: 0xc000006d
Sub Status: 0xc000006a
Process Information:
Caller Process ID: 0x264
Caller Process Name: C:\Windows\System32\lsass.exe
Network Information:
Workstation Name: WIN-DC02
Source Network Address: 10.220.100.105
Source Port: 44565
Detailed Authentication Information:
Logon Process: Advapi
Authentication Package: MICROSOFT_AUTHENTICATION_PACKAGE_V1_0
Transited Services: -
Package Name (NTLM only): -
Key Length: 0
This event is generated when a logon request fails. It is generated on the computer where access was attempted.
The Subject fields indicate the account on the local system which requested the logon. This is most commonly a service such as the Server service, or a local process such as Winlogon.exe or Services.exe.
The Logon Type field indicates the kind of logon that was requested. The most common types are 2 (interactive) and 3 (network).
The Process Information fields indicate which account and process on the system requested the logon.
The Network Information fields indicate where a remote logon request originated. Workstation name is not always available and may be left blank in some cases.
The authentication information fields provide detailed information about this specific logon request.
- Transited services indicate which intermediate services have participated in this logon request.
- Package name indicates which sub-protocol was used among the NTLM protocols.
- Key length indicates the length of the generated session key. This will be 0 if no session key was requested
1 ответ
Хвост между моих ног, мне придется ответить на этот вопрос, потому что у меня есть неловкая внутренняя информация.
Я не осознавал, что вам нужно было создать обычного пользователя Unix в системе, чтобы иметь возможность войти в систему. Как только я создал пользователя, соответствующего ivasta, я смог войти с паролем AD этих пользователей.
Единственное, что я не могу сделать, это изменить пароль, даже с рекламой pam_password, но это не имеет значения, потому что это только для целей регистрации имени пользователя.