Назад | Перейти на главную страницу

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 с помощью wirehark. Я записал успешный сеанс из Apache mod_ldap и сравнил его с неудачным сеансом из 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 на кли.

Это bindrequest, который следует за поисковым запросом, который завершается ошибкой с указанным выше кодом 52e.

Вот сообщение об ошибке последнего запроса bindrequest.

resultcode: invalidcredentials (49)
80090308: LdapErr: DSID-0C0903AA, comment: AcceptSecurityContext error, data 52e, v1772

Это должно означать неверный пароль, но я пробовал с другими пользователями и с очень простыми паролями.

Кто-нибудь узнает это по собственной борьбе с pam_ldap и AD?

Изменить: Стоит отметить, что я также пробовал pam_password crypt и 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. Эта учетная запись имеет доступ к сканированию этого подразделения для использования с 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

Хвост между ног. Мне придется ответить на этот вопрос, потому что у меня есть неловкая внутренняя информация.

Я не понимал, что вам нужно было создать обычного пользователя Unix в системе, чтобы иметь возможность войти в систему. Как только я создал пользователя, соответствующего ivasta, я смог войти в систему с этим паролем пользователя AD.

Единственное, что я не могу сделать, это изменить пароль, даже с объявлением pam_password, но это не имеет значения, потому что это только для целей регистрации имени пользователя.