среда, 1 мая 2013 г.

openSUSE 12.3, ldap, sssd и crash thunderbird

Сразу после релиза openSUSE 12.3 сделал обновление на рабочем компе. Тут же вылезли косяки - не проходила аутентификация пользователя через ldap сервер, не запускался X при перезагрузке (приходилось стартовать руками) и т.д. Обычно я не использую новые версии ОС, предпочитаю подождать несколько месяцев пка накопится достаточное количество обновлений и исправлений. Вот и в этот раз откатился на 12.2.
Однако на днях прикупил новый SSD и, помня о неудачном обновлении "сюзи", решил поставить на него систему с нуля. Установка, первоначальная настройка - а проблемы все те же. Итак, приступим.
По умолчанию настройка клиента ldap в openSUSE 12.3 произходит с использованием демона sssd. Что это такое и с чем его едят рассказывать не буду, хотя в теории штука весьма "вкусная". Скажу только, что для "сюзи" (пробовал и 12.2 и 12.3) нормально его приготовить у меня не получилось. Технология достаточно новая, нормальная документация есть только у РедХат, howto в Интернете мало, а на русском тем более. Поэтому освоение ее я отложил на потом. Однако работать с ldap надо уже сейчас! Меня уже не испугать настройкой ldap из командной строки (ссылка, ссылка), поэтому сразу же удаляю sssd и устанавливаю pam_ldap и nss_ldap:

zypper rm sssd
zypper in pam_ldap nssd_ldap

После этого редактирую /etc/ldap.conf согласно моим настройкам сервера:

base dc=mydomain,dc=local
uri ldap://mydomain.local

Тут же начинают работать команды id user и getent passwd. Казалось бы можно работать, но не тут-то было - аутентификация по прежнему не работает. Логи малоинформативны, но однозначно говорят, что ldap работает. Что еще может влиять на  логин пользователя? Конечно же pam! Сравнение файлов конфигурации из каталога /etc/pam.d/ на openSUSE 12.1 и 12.3 ничего не дает, там все идентично. В дело вступает google.ru
Я уже не помню что и как искал, но в конце концов наткнулся на ресурс, с которого и следовало начать - openSUSE 12.3: Security Guide Во второй главе Authentication with PAM черным по белому написано как настраивать pam для тех или иных случаев. Меня интересует всего лишь одна команда:


pam-config --add --ldap

Все. После этого система работает также как и 12.2, и 12.1, и 11.4 до нее. Я расслабляюсь и получаю удовольствие от нового KDE 4.10
Но это еще не все. При настройке почты сталкиваюсь с крэшем thunderbird сразу при запуске. Вспоминаю о подобном в Xubuntu 12.04 и проверяю nscd. В openSUSE 12.3 он установлен и работает по умолчанию. В логах пусто. Пробую strace. Я не программист, поэтому ничего не понимаю в выводе, но замечаю перед записью дампа обращение к либам ldap. Выясняю, что действительно крах thunderbird происходит только для пользователя с авторизацией в ldap. В поиске находится масса аналгичных ситуаций для freebsd, ubuntu, fedora и opensuse, но решения с переименованием библиотек, наложением патчей и прочей серьезной правкой системы я стараюсь не применять. В конце концов на каком-то opensuse-форуме встречаю любопытное предложение - nss-pam-ldapd. Ну чтож, проверим:

zypper in nss-pam-ldapd

Установка требует удаления nss_ldap и pam_ldap. Несколько минут чтения документации на новое ПО и правка файла /etc/nslcd.conf

base dc=mydomain,dc=local
uri ldap://mydomain.local

Теперь точно все. Аутентификация в ldap через nss-pam-ldapd и thunderbird работает!

1 комментарий:

  1. Большое спасибо за статью! У вас опечаточка вот тут: "zypper in pam_ldap nssd_ldap" , буква d лишняя.

    ОтветитьУдалить