Входим в Линукс под учетной
записью из 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), так и собрав его
вручную из исходных текстов. Исходные тексты можно
найти pamsmb.sourceforge.net.
3.2. Метод с использованием утилиты
winbind. В данном случае будет необходим
пакет Samba (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: [email protected] Версия:
0.2 (дополненная) Все дополнения, предложения и
исправления приветствуются, но только через почту.
|
|
Эта статья была прислана на конкурс
статей. При перепечатке ссылка на www.linuxrsp.ru обязательна.
|