2.2. Аутентификация пользователя LDAP на рабочей станции (Ubuntu, без TLS)

Опубликовано ivul - сб, 22.12.2007 - 17:15

В первую очередь надо установить требуемые пакеты ldap.

$ apt-get install auth-client-config libpam-ldap libnss-ldap

В экране конфигурации должно быть следующее:

Should use debconf -> YES
URI -> ldapi://LDAP_SERVER_IP/
DISTINGUISHED NAME -> dc=mydomain
LDAP VERS -> 3
LOCAL ROOT DB ADMIN -> YES
DOES DB REQ LOGIN -> NO
LDAP A/C -> cn=admin,dc=mydomain
LDAP root a/c password -> PASSWORD

Я так понял, что это действие должно создать файл /etc/ldap.conf, который осуществляет центральное управлене. Тем не менее, это не работает.

Итак...

$ nano /etc/ldap.conf

Надо изменить:

строку:

host 127.0.0.1

на строку:

host LDAP_SERVER_IP

строку:

base = padl....

на строку:

base = dc=mydomain

Раскоментировать строку:

bind_policy=hard

и изменить ее на строку:

bind_policy=soft

Теперь, т.к. имеется другой файл ldap.conf (полный путь /etc/ldap/ldap.conf), я продублировал его.

$ cp /etc/ldap/ldap.conf /etc/ldap/ldap.conf.bak
$ cp /etc/ldap.conf /etc/ldap/ldap.conf

Чтобы использовать auth-client-config, надо вручную выполнить некоторые действия.

Создать новый файл ldap-профиля:

$ nano /etc/auth-client-config/profile.d/open_ldap

и записать в него следующие строки:

[open_ldap]
nss_passwd=passwd: ldap files
nss_group=group: ldap files
nss_shadow=shadow: ldap files
pam_auth=auth required pam_env.so
       auth sufficient pam_unix.so likeauth nullok
       auth sufficient pam_ldap.so use_first_pass
       auth required pam_deny.so
pam_account=account sufficient pam_unix.so
       account sufficient pam_ldap.so
       account required pam_deny.so
pam_password=password sufficient pam_unix.so nullok md5 shadow use_authtok
       password sufficient pam_ldap.so use_first_pass
       password required pam_deny.so
pam_session=session required pam_limits.so
       session required pam_mkhomedir.so skel=/etc/skel/
       session required pam_unix.so
       session optional pam_ldap.so

Это улучшение настроек ldap по-умолчанию, т.к. содержит создание домашней папки пользователя, который ранее на станции не регистрировался.

Далее, чтобы активизировать созданную конфигурацию, нужно выполнить:

$ auth-client-config -a -p open_ldap

Из-за того, что теперь аутентификация ldap происходит перед files, метод доступа "на лету" к usb sticks работать не будет. Чтобы он заработал для пользователей ldap, в дереве ldap нужно создать группу plugdev.

Чтобы метод "на лету" заработал для всех пользователей, нужно добавить строку:

auth optional pam_group.so

в начало файлов /etc/pam.d/gdm и /etc/pam.d/login. Важно, чтобы эта строчка была первой в этих файлах.

И еще...

$ nano /etc/security/group.conf

вставить в начало строки:

login;*;*;Al0000-2400;users,cdrom,floppy,plugdev,audio,dip,powerdev
kdm;*;*;Al0000-2400;users,cdrom,floppy,plugdev,audio,dip,video,powerdev
gdm;*;*;Al0000-2400;users,cdrom,floppy,plugdev,audio,dip,video,powerdev

Эта часть добавляет всех пользователей, входивших в систему на станции, в группы users, cdrom, floppy, plugdev (для HAL), audio, dip и video.

Теперь необходимо в дереве ldap создать группу plugdev и присвоить ей gid 46. Это позволит пользователям ldap, входящим в группу plugdev, монтировать usb sticks и т.п.

Все. Можно пользоваться.