Проверка подлинности CentOS 7 LDAP: "Отказано в доступе"

Я использую экземпляр CentOS 7 VirtualBox. Я пытаюсь настроить аутентификацию LDAP через сервер Active Directory нашей компании.

Примечание. На сервере AD НЕ установлены расширения Unix.

Настроить:

  • У меня установлен nss-pam-ldapd
  • Службы nslcd и nscd настроены на запуск при запуске
  • /etc/nsswitch.conf был отредактирован для добавления ldap:

    passwd:     files ldap
    group:      files ldap
    shadow:     files ldap 
    hosts:      files ldap dns myhostname
    ethers:     files ldap
    networks:   files ldap
    protocols:  files ldap
    rpc:        files ldap
    services:   files ldap sss
    aliases:    files ldap nisplus
    
  • /etc/pam.d/password-auth и /etc/pam.d/system-auth отредактированы для добавления:

    auth     sufficient    pam_ldap.so use_first_pas
    account  [default=bad success=ok user_unknown=ignore] pam_ldap.so
    password sufficient    pam_ldap.so use_authok
    session  optional      pam_ldap
    session  required      pam_mkhomedir.so skel=/etc/skel umask=0077
    
  • /etc/nslcd.conf отредактировано:

    uid nslcd
    gid nslcd
    
    uri ldap://myserver.com/
    
    base dc=myserver,dc=com
    
    binddn CN=My Name,OU=Users,OU=DV,DC=myserver,DC=com
    
    bindpw PASSWORDHERE
    
    # Alternative mappings for Active Directory
    pagesize 1000
    referrals off
    idle_timelimit 800
    filter passwd (&(objectClass=user)(!(objectClass=computer)))
    map    passwd uid           userPrincipalName
    map    passwd uidNumber     objectSid:CorrectSID
    map    passwd gidNumber     objectSid:CorrectSID
    map    passwd homeDirectory "/home/$cn"
    map    passwd gecos         displayName
    map    passwd loginShell    "/bin/bash"
    filter group (objectClass=group)
    map    group gidNumber      objectSid:CorrectSID
    ssl no
    

После перезагрузки виртуальной машины и удаленного взаимодействия с пользователем по умолчанию я могу перечислить всех пользователей AD (user@myserver.com) и группы, используя

    $ getent passwd
    and
    $ getent group

Однако, если я попытаюсь войти в GUI или удаленно с моим пользователем AD:

    $ ssh my.name@myserver.com@linuxboxip
    my.name@myserver.com@linuxboxip's password:
    Permission denied, please try again.

Я рассмотрел связанные с этим вопросы на этом сайте в процессе отладки и перенастроил их с нуля. Неудачно.

Какие-нибудь мысли?

1 ответ

Решение

ОК, я нашел проблему.

Смотрите ссылку

При редактировании файлов PAM: /etc/pam.d/password-auth и /etc/pam.d/system-auth

Изменения должны быть внесены в соответствующие разделы, а не просто добавлены в конец файла. В частности, password required pam_deny.so строки ДОЛЖНЫ быть последней записью в разделе.

Теперь я могу войти с LDAP-пользователем / паролем через SSH и графический интерфейс.

Другие вопросы по тегам