2.4. LDAP на ноутбуке

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

ВВЕДЕНИЕ
Купили как-то ноутбук без предустановленной MS Windows. Поставили ОС Linux.
Но в нашей сети используется аутентификация LDAP. И надо было сделать так, чтобы пользователь смог включить ноутбук и пройти аутентификацию даже тогда, когда LDAP сервер не доступен.

Это небольшое описание того, как сделать такую настройку.

УСТАНОВКА И НАСТРОЙКА
Не смотря на то, что на дворе 2009-й год, на заводе используется Ubuntu Linux 8.04 LTS, разумеется из-за LTS, т.е. долгострочной поддержки. По-этому и на ноутбук была установлена именно эта ОС.

  1. Устанавливаем пакеты.

    $ sudo apt-get install nscd libnss-ldap nss-updatedb libpam-ccreds libpam-cracklib

     

  2. Для простой настройки аутентификации в LDAP в Ubuntu 8.04 не обязательно выполнять все операции, которые я описывал ранее и создавать отдельный профиль [open_ldap]. Можно использовать готовый профиль [lac-ldap] (файл /etc/auth-client-config/profile.d/ldap-auth-config).
    Но в данном случае создать новый профиль все же придется.

     

    Файл /etc/auth-client-config/profile.d/open_ldap

     

    [open_ldap]
    nss_passwd=passwd: files ldap
    nss_group=group: files ldap
    nss_shadow=shadow: files

     

    pam_auth=auth required pam_env.so
           auth sufficient pam_unix.so
           auth [authinfo_unavail=ignore success=1 default=2] pam_ldap.so use_first_pass
           auth [default=done] pam_ccreds.so action=validate use_first_pass
           auth [default=done] pam_ccreds.so action=store
           auth [default=done] pam_ccreds.so action=update
           auth required pam_deny.so

    pam_account=account required pam_unix.so broken_shadow
           account sufficient pam_localuser.so
           account sufficient pam_succeed_if.so uid < 100 quiet
           account [authinfo_unavail=ignore default=bad success=ok user_unknown=ignore] pam_ldap.so
           account required pam_permit.so

    pam_password=password requisite pam_cracklib.so retry=3
           password sufficient pam_unix.so nullok use_authtok md5 shadow
           password sufficient pam_ldap.so use_authtok
           password required pam_deny.so

    pam_session=session required pam_limits.so
           session required pam_unix.so
           session required pam_mkhomedir.so skel=/etc/skel/
           session optional pam_ldap.so

     

    Файл /etc/nscd.conf

    # Currently supported cache names (services): passwd, group, hosts, services

     

    debug-level 0
    paranoia no

    enable-cache passwd yes
    positive-time-to-live passwd 2592000
    negative-time-to-live passwd 20
    suggested-size passwd 211
    check-files passwd yes
    persistent passwd yes
    shared passwd yes
    max-db-size passwd 33554432
    auto-propagate passwd yes

    enable-cache group yes
    positive-time-to-live group 2592000
    negative-time-to-live group 60
    suggested-size group 211
    check-files group yes
    persistent group yes
    shared group yes
    max-db-size group 33554432
    auto-propagate group yes

    enable-cache hosts no
    positive-time-to-live hosts 3600
    negative-time-to-live hosts 20
    suggested-size hosts 211
    check-files hosts yes
    persistent hosts yes
    shared hosts yes
    max-db-size hosts 33554432

    enable-cache services yes
    positive-time-to-live services 28800

    negative-time-to-live services 20
    suggested-size services 211
    check-files services yes
    persistent services yes
    shared services yes
    max-db-size services 33554432

  3. Применяем настройки профиля аутентификации.

    $ cd /etc/auth-client-config/profile.d
    $ sudo auth-client-config -a -p open_ldap

     

  4. Проверка.
    Для быстрой проверки можно воспользоваться командой su. Пока сервер LDAP доступен, аутентификация пользователя будет сравниваться c записями в .security.db и обновит их.

     

    $ ls -l /var/cache/.security.db
          -rw------- 1 root root 8192 2009-01-11 08:31 /var/cache/.security.db
    $ su fred
           Password:
           exit
    $ ls -l /var/cache/.security.db
           -rw------- 1 root root 8192 2009-01-11 09:09 /var/cache/.security.db

    Для просмотра пользователей, прошедших аутентификацию и сохраненных в кеше, можно воспользоваться командой cc_dump.

    $ sudo cc_dump
           Credential Type User Service Cached Credentials
           ----------------------------------------------------------------------------------
           Salted SHA1 fred any 4a985b233701cf106ed450a0168fa8e0aa86ef5d

     

  5. Теперь, если отключить компьютер от локальной сети, перезагрузиться и попытаться войти с тем же именем пользователя и паролем, менеджер входа выдаст сообщение:
    Изображение удалено.
    После этого откроется рабочий стол и можно работать.

* Это первый вариант настройки, который у меня заработал. Так я настроил пока только один компьютер. Когда их станет больше, текст статьи может быть изменен.


ССЫЛКИ ПО ТЕМЕ
Для Ubuntu 5.10, 7.04, 7.10, 8.04: PamCcredsHowto