Ключевые слова:pdc, samba, domain, win, auth, linux, (найти похожие документы)
From: Федотов Алексей aka Sloth <sloth at email.ru>
Newsgroups: http://www.linuxrsp.ru
Date: Mon, 6 Aug 2004 14:31:37 +0000 (UTC)
Subject: Входим в Linux под учетной записью из NT-домена.
Оригинал: http://www.linuxrsp.ru/artic/nt-auth.html
Входим в Линукс под учетной записью из NT-домена.
1. Содержание задачи.
2. Отказ от ответственности.
3. Варианты решения и что для этого нужно.
3.1. Метод с использованием модуля pam_smb.
3.2. Метод с использованием утилиты winbind.
3.3. Сравнение описанных методов.
3.3.1. Метод с модулем pam_smb.
3.3.2. Метод с утилитой winbind.
4. Что делаем.
4.1. Для варианта с pam_smb.
4.1.1. Правим /etc/pam_smb.conf
4.1.2. Правим конфигурационные файлы PAM.
4.1.3. Добавление учетной записи в /etc/passwd.
4.1.4. Попытка авторизации.
4.2. Для варианта с winbind.
4.2.1. Правим smb.conf.
4.2.2. Правим конфигурационные файлы PAM.
4.2.3. Внесение изменений в файл /etc/nsswitch.conf
4.2.4. Перезапуск (запуск) сервисов smb и winbind.
4.2.5. Присоединение компьютера к Windows NT домену.
4.2.6. Попытка авторизации.
5. Использованные документы.
6. Авторство.
1. Содержание задачи.
---------------------
Имеется сеть, организованная в Windows NT домен (для определенности, с
именем FIRST). Так же имеется PDC (Primary Domain Controller),
именуемый main. Установив на один (или несколько) компьютеров сети ОС
Linux, мы хотим, чтобы пользователи входили в Линукс под учетными
записями, которые хранятся на PDC. Объяснять для чего это нужно я в
этой статье не берусь.
2. Отказ от ответственности.
----------------------------
Все описанное ниже, представляет собой лишь последовательность моих
действий и ни в коем случае не претендует на полноту и
исключительность. Нет ни какой гарантии, что у Вас все будет работать
точно так же как и у меня, поэтому вся ответственность, за выполняемые
Вами действия, возлагается только на Вас и никого более. Я лишь могу
гарантировать, что описанная ниже конфигурация работает на моей машине
с ОС ASPLinux 7.2, которая изрядно мной изменена (так же описанная
последовательность действий проверена на ASPLinux 7.3 сразу после
установки).
3. Варианты решения и что для этого нужно.
------------------------------------------
Для решения поставленной задачи можно воспользоваться двумя методами.
Выбор какого-то конкретного метода зависит от Ваших задач и
предпочтений.
3.1. Метод с использованием модуля pam_smb.
При использовании данного метода необходим PAM-модуль (Pluggable
Authentication Modules), который можно установить как из RPM-пакета
(в моем случае pam_smb-1.1.6), так и собрав его вручную из исходных
текстов. Исходные тексты можно найти [67]pamsmb.sourceforge.net.
3.2. Метод с использованием утилиты winbind.
В данном случае будет необходим пакет Samba ([68]www.samba.org).
Что касается меня, то я использовал RPM-пакеты, входящие в
дистрибутив ASPLinux 7.3 (это samba-2.2.3a, samba-common-2.2.3a и
samba-client-2.2.3a). Если Вы будете собирать пакет Samba из
исходников самостоятельно, то Вам необходимо включить утилиту
winbind, а так же поддержку PAM.
3.3. Сравнение описанных методов.
Прежде чем перейти к действиям, предлагаю Вашему вниманию короткое
сравнение описанных ниже методов решения задачи. Я не буду глубоко
вдаваться в подробности, а приведу только самые явные преимущества
и недостатки каждого из методов.
3.3.1. Метод с модулем pam_smb.
Преимущества:
* прост в реализации;
* не требует запуска различных ?демонов?;
* учетная запись пользователя имеет такой же вид как в NT-домене.
Недостатки:
* при наличии большого количества пользователей домена, которые
работают на одном и том же компьютере, Вам придется вести учетные
записи этих пользователей вручную.
3.3.2. Метод с утилитой winbind.
Преимущества:
* лишен недостатка, возникающего при большом количестве
пользователей;
* позволяет разрешать сетевые имена компьютеров (NetBIOS-имена).
Недостатки:
* сравнительная сложность настройки;
* необходим запущенный ?демон? - winbind;
* к учетной записи добавляется еще наименование домена (удлинение
имени учетной записи).
4. Что делаем.
--------------
4.1. Для варианта с pam_smb.
4.1.1. Правим /etc/pam_smb.conf.
Файл /etc/pam_smb.conf содержит три строки: в первой строке
указывается имя домена, в котором предполагается производить
авторизацию, вторая и третья имена PDC и SDC (Secondary Domain
Controller) соответственно. В нашем случае этот файл должен
выглядеть следующим образом:
----- start file -----
FIRST
main
------ end file ------
Внимание: В данном файле нет комментариев! В нем должно содержаться
только три строки!
4.1.2. Правим конфигурационные файлы PAM.
Данные файлы храняться в /etc/pam.d/. Имя файла конфигурации похоже
или прямо соответствует приложению, к которому данная конфигурация
относится. В моем случае, т.к. я использую для авторизации KDM (KDE
Display Manager), я правил файл /etc/pam.d/kde. Вносим следующие
изменения:
* Заменяем группу модулей с типом auth на:
auth required /lib/security/pam_securetty.so
auth required /lib/security/pam_smb_auth.so
auth required/lib/security/pam_nologin.so
* Заменяем группу модулей с типом account на:
account required /lib/security/pam_pwdb.so
* Заменяем группу модулей с типом password на:
password required /lib/security/pam_pwdb.so shadow nullok use_authtok
* Заменяем группу модулей с типом session на:
session required /lib/security/pam_mkhomedir.so skel=/etc/skel/ umask=0077
session required /lib/security/pam_pwdb.so
session optional /lib/security/pam_console.so
4.1.3. Добавление учетной записи в /etc/passwd.
Для использования данного механизма авторизации Вам необходимо
добавить в файл /etc/passwd учетную запись, аналогичную учетной
записис Windows NT домена (можно воспользоваться командой adduser).
При этом Вы должны задать все необходимые атрибуты (домашний
каталог, группу, оболочку (shell) и т.п.). Пароль указывать нет
необходимости, поскольку он будет сверяться с информацией
храняшейся на сервере домена.
4.1.4. Попытка авторизации.
В моем случае, перезапустив KDM, в строке login я ввожу sloth (где
sloth - моя учетная запись). В поле password, ввожу пароль,
соответсвующий моей учетной записи в Windows NT домене. Так же Вы
можете авторизироваться под учетной записью, которая является
локальной (не входящей в Windows NT домен), под любой, кроме
учетной записи root.
4.2. Для варианта с winbind.
----------------------------
4.2.1. Правим smb.conf.
У меня данный файл находится /etc/samba/smb.conf. Могу
предположить, что у Вас он находится там же. В этот файл вносим
следующие изменения и дополнения:
winbind separator = +
template shell = /bin/bash
template homedir = /home/%U
winbind uid = 10000-20000
winbind gid = 10000-20000
это то, что, скорее всего, Вам придется добавлять самостоятельно.
После чего изменяем уже имеющиеся параметры:
workgroup = FIRST ; Имя нашего домена
security = domain
password server = main ; Имя PDC, предварительно внесенное в файл
/etc/samba/lmhosts
encrypt passwords =yes
Все остальные параметры были оставлены по умолчанию.
4.2.2. Правим конфигурационные файлы PAM.
Данные файлы храняться в /etc/pam.d/. Имя файла конфигурации похоже
или прямо соответствует приложению, к которому данная конфигурация
относится. В моем случае, т.к. я использую для авторизации KDM (KDE
Display Manager), я правил файл /etc/pam.d/kde. Вносим следующие
изменения:
* Заменяем группу модулей с типом auth на:
auth required /lib/security/pam_securetty.so
auth required/lib/security/pam_nologin.so
auth sufficient /lib/security/pam_winbind.so
auth required /lib/security/pam_pwdb.so use_first_pass shadow nullok
* Заменяем группу модулей с типом account на:
account required /lib/security/pam_winbind.so
* Заменяем группу модулей с типом password на:
password required /lib/security/pam_winbind.so
* Заменяем группу модулей с типом session на:
session required /lib/security/pam_stack.so service=system-auth
session required /lib/security/pam_mkhomedir.so skel=/etc/skel/ umask=0077
session required /lib/security/pam_pwdb.so
session optional /lib/security/pam_console.so
4.2.3. Внесение изменений в файл /etc/nsswitch.conf
Добавляем слово winbind в следующие строки:
passwd: files winbind
group: files winbind
4.2.4. Перезапуск (запуск) сервисов smb и winbind.
Для перезапуска отконфигурированных сервисов выполняем из под
пользователя root:
# /etc/init.d/smb restart
# /etc/init.d/winbind restart
Если при останове сервисов возникли ошибки, то значит, скорее
всего, они не были запущены. Чтобы сервисы запускались при загрузке
компьютера необходимо добавить символьные ссылки в
/etc/rc.d/rcX.d/, где X - соответсвует Вашему уровню запуска (в
моем случае это 5). Перейдя в /etc/rc.d/rc5.d/ я выполняю следующие
действия:
# ln -s ../init.d/smb S91smb
# ln -s ../init.d/winbind S91winbind
Данные действия выполняются с правами пользователя root.
4.2.5. Присоединение компьютера к Windows NT домену.
Выполняем следующую команду с правами root:
# smbpasswd -j FIRST -r main -U Administrator
После ключа -U указывается имя пользователя, обладающего правами
администратора домена. Выполнение данной команды должно закончиться
сообщением:
Joined domain FIRST.
Для проверки успешности наших действий можно запустить команду:
# wbinfo -t
Которая, при удачном выполнении, должна выдать:
Secret is good
4.2.6. Попытка авторизации.
В моем случае, перезапустив KDM, в строке login я ввожу FIRST+sloth
(где FIRST - имя домена, + - разделитель, указанный в файле
smb.conf, sloth - моя учетная запись, если Вы в качестве
разделителя будете использовать другие символы, к примеру "\", то я
рекомендую Вам в конфигурационном файле (smb.conf) указывать его в
двойных кавычках). В поле password, ввожу пароль, соответсвующий
моей учетной записи в Windows NT домене. Так же Вы можете
авторизироваться под учетной записью, которая является локальной
(информация о ней храниться на Вашем компьютере), под любой, кроме
учетной записи root.
5. Использованные документы.
----------------------------
man 8 pam
man 8 winbind
man 1 wbinfo
man 5 smb.conf
man 8 smbpasswd
6. Авторство.
-------------
Автор: Федотов Алексей aka Sloth
EMail: sloth at email.ru
Версия: 0.2 (дополненная)
Все дополнения, предложения и исправления приветствуются, но только
через почту.