Библиотека сайта rus-linux.net
Как сделать Samba 2.2 основным контроллером домена
Перевод: Павел Желтобрюхов (pij@rambler.ru), Евгений Саенко (caspar@pisem.net) Дата: 2002/07/22
Введение
Прежде чем Вы
продолжите чтение этого раздела,
пожалуйста, убедитесь в том, что вы
имеете представление о настройке
основных параметров в smb.conf и знаете
как включить шифрование паролей и
администрировать их в Samba. Эти два
понятия рассмотрены в странице
руководства smb.conf(5)
и в Encryption chapter Samba
HOWTO Collection.
Основы
Примечание: Примечание Автора : Этот документ является сочетанием Samba 2.2 PDC HOWTO и Samba NT Domain FAQ Дэвида Бэннона и заменяет их.
Версии Samba до версии 2.2 обладали минимальными возможностями для работы в качестве основного контроллера домена Windows NT 4.0 (Primary Domain Controller, PDC). Начиная с версии 2.2.0, мы с гордостью объявляем официальную поддержку входа в домен в стиле Windows NT 4.0 c рабочих станций Windows NT 4.0 (все версии до SP6 включительно) и Windows 2000 (все версии до SP1 включительно). В этой статье описаны необходимые шаги для настройки Samba в качестве основного контроллера домена. Для этого у Вас уже должен быть работающий Samba сервер. Если вы не выполнили действия, описанные в UNIX_INSTALL.html, убедитесь хотя бы в том, что Ваш сервер перед внесением изменений был настроен правильно. Еще одним надежным помощником для Вас будет smb.conf(5) man page. В версии 2.2 реализованы следующие функции:
- входы в домен с рабочих станций Windows NT 4.0/2000.
- подключение клиентов Windows 9x с уровнем безопасности user
- получение списка пользователей и групп с Samba PDC клиентами Windows 9x/NT/2000
- перемещаемые профили пользователей
- системные политики Windows NT 4.0
Клиенты Windows 2000 Service Pack 2 |
При работе с клиентами Windows 2000 SP2 следует использовать версию Samba, начиная с 2.2.1. |
Что не реализовано в версии 2.2:
- Доверительные отношения между доменами Windows NT 4
- Репликация SAM между Windows NT 4.0 контроллерами доменов (например, между основным контроллером домена Samba и резервным контроллером домена Windows NT или наоборот)
- Создание учетных записей пользователей с помощью Диспетчера пользователей домена
- Работа в качестве контроллера домена Windows 2000 (т.е. Kerberos и Active Directory)
Помните, что клиенты Windows 9x не являются действительными членами домена по ряду причин, описанных в этой статье. Поэтому протокол для поддержки входа в домен клиентов Windows 9x полностью отличается от аналогичного протокола для Windows NT4 и будет официально поддерживаться некоторое время.
Построение PDC на базе Samba можно разделить на 2 этапа.
- Настройка Samba для работы в качестве PDC
- Создание учетных записей компьютеров и присоединение клиентов к домену
...плюс незначительные детали,
такие как профили пользователей,
системные политики и т.д... При
работе с Samba в качестве
PDC для них не существует каких
либо отличий от аналогичных
понятий в Windows NT, поэтому подробно
они рассматриваться не будут
Настраиваем Samba-контроллер домена
Первым шагом в создании Samba-контроллера домена будет определение необходимых параметров smb.conf и их значений. Я не буду пытаться описать эти параметры более подробно, чем они описаны в страницах руководства по smb.conf. Для удобства каждый параметр связан со своим реальным описанием в smb.conf.
Ниже показан примерный вариант smb.conf работающего первичного контроллера домена:
[global]
; Основные установки сервера
netbios name = POGO
workgroup = NARNIA
; наш контроллер должен быть локальным обозревателем и обозревателем домена
os level = 64
preferred master = yes
domain master = yes
local master = yes
; контроль доступа установим на уровне пользователей
security = user
; для основного контроллера домена необходимы шифрованные пароли
encrypt passwords = yes
; включаем обработку входов в домен
domain logons = yes
; где будут храниться профили пользователей
logon path = \\%N\profiles\%u
; где находятся домашние каталоги пользователей и на какой сетевой диск они монтируются
logon drive = H:
logon home = \\homeserver\%u
; указываем общий сценарий входа в домен для всех пользователей
; это относительный DOS-путь к ресурсу [netlogon]
logon script = logon.cmd
; ресурс, необходимый контроллеру домена
[netlogon]
path = /usr/local/samba/lib/netlogon
writeable = no
write list = ntadmin
; ресурс для перемещаемых профилей пользователей
[profiles]
path = /export/smb/ntprofile
writeable = yes
create mask = 0600
directory mask = 0700
В двух словах опишем, что же было сделано.
- Необходимо работать с шифрованными паролями. О том как это сделать, читайте в ENCRYPTION.html.
- Сервер должен
обрабатывать входы в домен и
иметь ресурс [
netlogon]
- Сервер должен быть обозревателем домена для того, чтобы Windows-клиенты могли определять Samba сервер как контроллер домена. За дополнительной информацией обратитесь к документации по Network Browsing из дистрибутива Samba.
Поскольку в Samba 2.2 не реализовано
полное соответствие между группами
Windows NT и группами UNIX (это слишком
сложно, чтобы рассказать в двух
словах), для создания учетных
записей Администраторов Домена Вам
следует обратиться к информации о
параметрах smb.conf domain
admin users и domain admin group (В версиях Samba, начиная с 2.2.2
параметр domain admin users исключен - прим.
перев.)
Создание машинных учетных записей и присоединение клиентов к домену
Машинная учетная запись - это учетная запись Samba-пользователя, принадлежащая машине. Пароль этой учетной записи служит ключом для защищенного соединения с Контроллером Домена. Это служит для предотвращения несанкционированного присоединения к домену машин с именем NetBIOS, уже зарегестрированным в домене, и получения доступа к учетным записям групп/пользователей. Следовательно, машина с Windows 9x никогда не будет действительным членом домена, так как не имеет машинной учетной записи и, следовательно, не имеет защищенного соединения с Контроллером Домена.
В случае основного контроллера
домена Windows NT, пароли машинных
учетных записей хранятся в реестре.
В случае основного контроллера
домена Samba, эти пароли хранятся
вместе с паролями пользователей Samba
как хэши паролей LanMan и NT (в файле smbpasswd
).
Разумеется, машинная учетная
запись имеет и использует только
хэш паролей NT.
Так как Samba требует наличия у
машинной учетной записи наличия UNIX
uid, из которго может быть создан код
безопасности Windows NT SID , каждая из
этих учетных записей должна иметь
соответствующую запись в /etc/passwd
и smbpasswd. В будущих версиях
предполагается, что запись в /etc/passwd
не будет столь необходима.
Существует два способа создания машинных учетных записей.
- Создание учетной записи вручную перед присоединением клиента к домену. В этом случае, паролем учетной записи будет NetBIOS имя машины в нижнем регистре.
- Создание учетной записи во время присоединения клиента к домену. В этом случае, ключ сессии учетной записи с правами Администратора Домена используется как ключ шифрования для создания случайного пароля машинной учетной записи (рекомендуемый метод).
Создание машинной учетной записи вручную
Первый шаг в создании машинной учетной записи вручную - создание соответствующей записи в /etc/passwd. Это может быть сделано с помощью vipw или любой команды 'добавь пользователя' , которая обычно используется для создания новых учетных записей UNIX. Ниже приведен Linux-вариант команды:
root#
/usr/sbin/useradd -g 100 -d /dev/null -c "machine
nickname"
-s /bin/false machine_name
$
root#
passwd -l machine_name
$
В результате в /etc/passwd
будет
создана запись с именем машины с
добавленным знаком $ в конце, без
пароля, без командного
процессора и без домашнего
каталога. Например, для машины с
именем 'doppy' запись в /etc/passwd
будет выглядеть примерно так:
doppy$:x:505:501:machine_nickname
:/dev/null:/bin/false
Здесь machine_nickname
может
быть любым описательным именем
машины, например BasementComputer. machine_name
должно быть абсолютно точным NetBIOS
именем машины, которая будет
присоединена к домену. Знак "$"
должен быть обязательно добавлен,
иначе Samba примет эту учетную запись
за обычную пользовательскую.
Теперь, когда создана учетная запись UNIX, следующим шагом будет создание машинной записи в smbpasswd с известным паролем. Это может быть сделано с помощью команды smbpasswd(8), как показано ниже:
root#
smbpasswd -a -m machine_name
где machine_name
- NetBIOS имя
машины.
Немедленно присоедините клиента к домену! |
При создании машинной учетной записи вручную используется тот же метод, что и при создании машинной записи на первичном контроллере домена Windows NT с помощью программы Server Manager. С момента создания учетной записи до момента присоединения клиента к домену и смены им пароля, домен оказывается доступным для вхождения злоумышленника с компьютера с NetBIOS именем, идентичным тому, для которого была создана машинная учетная запись. Первичной контроллер домена безусловно доверяет членам домена и предоставляет им большое количество информации о пользователях домена. Мы Вас предупредили! |
Создание машинных учетных записей "на лету"
Вторым и самым рекомендуемым методом создания машинных учетных записей является метод создания записей во время присоединения клиента к домену. Для этого вам понадобится настроить параметр smb.conf add user script . Ниже приведен вариант для Linux RedHat 6.2 .
add user script = /usr/sbin/useradd -d /dev/null -g 100 -s /bin/false -M %u
В Samba 2.2.1, только учетная запись
root может быть использована для
создания машинных учетных записей.
Следовательно, необходимо в smbpasswd
создать запись для root. root'овые
пароли UNIX и Samba должны различаться
по соображениям безопасности.
Известные проблемы и ошибки
- Я не могу добавить '$' к имени машины.
'machine name' в (как правило) /etc/passwd
является именем машины с '$' в
окончании. FreeBSD (и другие BSD systems ?) не
могуи создать пользователя со
знаком '$' в имени. Проблема в
программе, которую Вы используете
для создания записи. Если
запись создана, все работает
нормально. Создайте запись с
именем без '$' и используйте vipw (или
любой другой редактор - прим. перев.)
для добавления '$' вручную. Или
создайте в этом редакторе всю
запись целиком, убедившись в том,
что используете уникальный uid, а не
чей либо!
- Я получил сообщение "You already have a connection to the Domain...." или "Cannot join domain, the credentials supplied conflict with an existing set.." при создании машинной учетной записи.
Это происходит при попытке
создания учетной записи для машины,
которая уже подключена (например,
подключен сетевой диск) к ресурсу (или
IPC$) на Samba Первичном Контроллере
Домена. Следующая команда
разрывает все сетевые подключения: C:\WINNT\>
net
use * /d В дальнейшем, если машина
уже 'входит в рабочую группу' c
именем, аналогичным имени домена, в
который вы собираетесь войти (по
мнению автора, это плохая идея.), то
Вы будете получать такое сообщение.
Измените имя рабочей группы на
какое-нибудь другое, если не
получили никаких сообщений -
перезагрузитесь и попробуйте снова.
- The system can not log you on (C000019B)....
Я успешно подключился к домену, но
после обновления Samba при попытке
входа в домен я получил сообщение
"The system can not log you on (C000019B), Please try again
or consult your system administrator". Это
происходит, когда код безопасности
SID домена, находящийся в private/WORKGROUP.SID
был изменен. Например, Вы удалили
файл и smbd автоматически создал
новый. Или Вы перешли обратно на
версию 2.0.7, TNG и HEAD (что
не рекомендуется). Единственным
решением проблемы явлется
восстановление SID или отсоединение
клиентов от домена и присоединение
их заново.
- The machine account for this computer either does not exist or is not accessible/Учетная запись компьютера не существует или недоступна.
Когда я пытаюсь присоединиться к
домену, я получаю сообщение "The
machine account for this computer either does not exist or is not
accessible/Учетная запись компьютера не
существует или недоступна". Что
не так? Эта проблема возникает, если
на Первичном Контроллере Домена
нет соответствующей машинной
учетной записи. Если вы
использовали add user script
для
создания учетной записи, это
указывает на ошибку в Вашем скрипте.Убедитесь,
что вход с именем Администратора
Домена работает. В другом случае,
если Вы создавали учетные записи
вручную, в них вкралась ошибка.
Убедитесь в том, что для машины
создана запись в файле smbpasswd
PDC. Если Вы создали
учетную запись с помощью редактора,
а не с помощью утилиты smbpasswd,
убедитесь что в имени машинной
учетной записи присутствует '$' (
например, computer_name$ ). Имя (а так же uid/gid
- прим. перев.) должно быть
идентичным в файлах /etc/passwd и smbpasswd .
Известно, что такая ошибка может
возникать при разных масках
подсети на клиентской части и
сервере. Убедитесь что маски
идентичны.
- Когда я пытаюсь войти в Samba домен c NT4/W2K рабочей станции, я получаю сообщение о том, что моя учетная запись отключена.
Эта проблема связана с ошибкой,
связанной с PAM и проявляется в Samba 2.2.0.
Эта ошибка исправлена в 2.2.1. Другим
ее проявлением оказывается
недоступность ресурсов на NT4/W2K
серверах, входящих в домен или
сообщение в Вашем smbd.log: passdb/pampass.c:pam_account(268)
PAM: UNKNOWN ERROR for User: %user% Сперва
убедитесь, что учетная запись Samba не
отключена, выполнив команду smbpasswd
-e %user%, хотя при создании учетной
записи она автоматически включена.
Для решения этой проблемы в 2.2.0,
измените управляющий флаг account
в файле /etc/pam.d/samba
так, как
показано ниже:
account required pam_permit.so
Если Вы хотите сохранить обратную
совместимость с Samba 2.0.x, используйте
модуль pam_permit.so
, также можно
использовать pam_pwdb.so
. Если вы
попытаетесь использовать pam_unix.so
,
вы столкнетесь с рядом ошибок, если
же необходим именно этот модуль,
убедитесь что Вы используете самую
последнюю версию этого файла.
Системные политики и профили
Большинство информации, необходимой для внедрения системных политик и перемещаемых профилей пользователей, аналогично информации о аналогичных функциях в домене Windows NT 4.0 . Вам следует прочитать статью Implementing Profiles and Policies in Windows NT 4.0 на сайте Microsoft.
Вот несколько дополнительных вопросов:
- Что делать с Редактором системных политик Windows NT ?
Для создания или редактирования ntconfig.pol
Вы должны использовать NT Server Policy
Editor, poledit.exe, который имеется в NT
Server, но его нет в NT Workstation.
Редактор политик NTws неприменим для
создания Доменных Системных
Политик (Domain Policies) . Кроме того,
хотя Windows 95 Policy Editor может быть
установлен на NT Workstation/Server, он не
будет работать из-за того, что
шаблоны системных политик
находятся в реестре. Разумеется,
программы из NT Server могут успешно
запускаться на NTws. Вам нужны файлы poledit.exe,
common.adm
и winnt.adm
. Поместите два
*.adm файла в %SystemRoot%\inf
, где их по
умолчанию ищет poledit.exe
. Помните,
что этот каталог 'скрытый'.
Редактор системных политик Windows NT
также входит в состав Service Pack 3 (и
следующих) для Windows NT 4.0. Извлеките
файлы из дистрибутива Service Pack
командой servicepackname /x, например
для SP6 эта команда будет выглядеть
как Nt4sp6ai.exe /x . Редактор политик, poledit.exe
и шаблоны политик (*.adm) будут
извлечены вместе с остальными
файлами. Также можно скачать
шаблоны политик для Office97 и
скопировать где-нибудь редактор
политик. Другой источник - Zero
Administration Kit, доступный для
скачивания с Microsoft.
- Могу я установить системные политики на Win95 ?
Для работы с политиками групп
установите group policy handler for Win9x . Его
можно найти на Win98 CD в папке \tools\reskit\netadmin\poledit
.
Установите политику групп на
клиентской машине Win9x, дважды
щелкнув на файле grouppol.inf
.
Завершите сеанс и войдите в систему
заново пару раз и посмотрите,
установились ли политики групп. К
сожалению, это придется сделать на
каждой машине Win9x, которая работает
с политиками групп... Если политики
групп не работают, установите
обновленную (читай: рабочую)
библиотеку grouppol.dll для Windows 9x. Список
групп выбирается из /etc/group.
- Где мне взять 'Диспетчер пользователей' и 'Server Manager'
Я не хочу покупать NT Server CD , где мне взять 'Диспетчер пользователей домена', 'Server Manager' ? Microsoft распространяет эти программы в пакете nexus для установки на Windows 95 машины. В пакет входят
- Server Manager
- Диспетчер пользователей домена
- Просмотрщик событий
Нажмите сюда, чтобы скачать пакет
nexus: ftp://ftp.microsoft.com/Softlib/MSLFILES/NEXUS.EXE
. 'Диспетчер пользователей домена' и
'Server Manager' для Windows NT4.0 можно скачать
с FTP сервера Microsoft: ftp://ftp.microsoft.com/Softlib/MSLFILES/SRVTOOLS.EXE
Где я еще могу получить помощь ?
Множество источников информации доступно в виде mailing lists, RFC's и документации. Документация, поставляемая с дистрибутивом Samba, содержит очень хорошее описание основных понятий SMB, таких как обзор сети (browsing).
- Какие средства диагностики я могу использовать для отладки процесса обработки входа в сеть и где я их могу найти?
Одним из лучших средств диагностики для решения проблем является сама Samba. Вы можете использовать ключ -d при запуске smbd и nmbd для установки 'уровня отладки'('debug level') . Обратитесь к Страницам руководства (man pages) по smbd, nmbd и smb.conf для получения дополнительной информации о ключах отладки. Уровень отладки может быть от 1 (по умолчанию) до10 (100 для отслеживания паролей). Другим полезным методом отладки является компиляция Samba с ключом gcc -g . При этом в бинарные файлы будет включена отладочная информация и вы можете присоединить gdb к запущенным процессам smbd / nmbd . Чтобы присоединить gdb к процессу smbd для NT workstation, сначала дайте станции установить соединение. Нажмите ctrl-alt-delete и перейдите к полю 'Домен' (по крайней мере, вы попытаетесь впервые присоединиться к домену), при этом будет создан 'LsaEnumTrustedDomains'. После этого рабочая станция обрабатывает открытые соединения , и затем будет запущен процесс smbd (предполагается что вы не установили слишком маленький тайм-аут по простою для smbd). Таким образом, в промежутке времени между нажатием ctrl-alt-delete и вводом вашего пароля вы можете подключить gdb и продолжить. Парочка полезных при отладке команд samba :
- testparam | more
- smbclient -L //{NetBIOS_имя_сервера}
Версию tcpdump с поддержкой SMB можно найти на http://www.tcpdup.org/. Еще один сниффер пакетов для UNIX иWin32 - Ethereal - можно скачать с http://www.ethereal.com. Для отладки в среде Microsoft Windows NT можно использовать Network Monitor (aka. netmon), который можно найти на Microsoft Developer Network CD's, Windows NT Server install CD и на дисках Microsoft System Management Server (SMS). Версия netmon, которая находится на дисках с SMS, может отслеживать пакеты между двумя компьютерами (т.е, устанавливает сетевую карту в режим promiscuous ). Версия netmon на NT Server install CD может только отслеживать траффик на конкретной NT станции и широковещательные пакеты на подсети, в которой находится NT станция. Учтите, что Ethereal может читать и записывать файлы в формате netmon.
- Как я могу установить 'Network Monitor' на NT Workstation или на Windows 9x ?
Установка netmon на NT workstation проходит в два этапа. Ниже описана установка Netmon V4.00.349, который входит в состав Microsoft Windows NT Server 4.0, на Microsoft Windows NT Workstation 4.0. Порядок действий для других Windows NT / Netmon аналогичен. Вам понадобятся компакт-диски Microsoft Windows NT Server 4.0 Install CD и Workstation 4.0 Install CD. Сначала необходимо установить 'Network Monitor Tools and Agent' на NT Server. Для этого
- Откройте Start - Settings - Control Panel - Network - Services - Add
- Выберите 'Network Monitor Tools and Agent' и нажмите 'OK'.
- Нажмите 'OK' на Network Control Panel.
- Вставьте Windows NT Server 4.0 install CD, когда Вас об этом попросит система
Теперь файлы Netmon должны
находиться в %SYSTEMROOT%\System32\netmon\*.*
.
Также там находятся две
поддиректории - parsers\
, которая
содержит необходимые DLL для
обработки дампов пакетов, и captures\
.
Для
установки Netmon tools на NT Workstation,
сначала установите 'Network Monitor Agent' ('Агент
сетевого монитора') c компакт-диска
NT Workstation install CD.
- Откройте Start - Settings - Control Panel - Network - Services - Add (Пуск - Настройка - Панель управления - Сеть - Службы - Выбрать из списка)
- Выберите 'Network Monitor Agent' ('Агент сетевого монитора') и нажмите 'OK'.
- Нажмите 'OK' на Network Control Panel (Установка сети)
- Вставьте Windows NT Workstation 4.0 install CD, когда Вас об этом попросит система.
Теперь скопируйте файлы с NT Server из %SYSTEMROOT%\System32\netmon\*.* в %SYSTEMROOT%\System32\netmon\*.* на Workstation и установите необходимые права доступа. Для запуска Сетевого монитора Вам потребуются права Администратора. Для установки Netmon на компьютер с Windows 9x box просто установите network monitor agent (Агент сетевого монитора) с Windows 9x CD (\admin\nettools\netmon). Инструкции по установке содержатся в netmon.txt. Наконец, просто скопируйте файлы рабочей инсталляции Netmon .
- Вот список полезных ссылок:
- Сайт Samba http://www.samba.org. У нас есть зеркала!
- В документе Development на сайтах Samba может быть упомянута Ваша проблема. Если это так, значит разработчики работают над этим.
- Посмотрите, как Scott Merrill эмулировал вторичный контроллер домена http://www.skippy.net/linux/smb-howto.html.
- Хотя версия 2.0.7 отжила свое как PDC, David Bannon все еще хранит документацию об этом на http://bioserve.latrobe.edu.au/samba .
- Различные ссылки на информацию по CIFS http://samba.org/cifs/
- NT Domains for Unix (NT домены на Unix) http://mailhost.cb1.com/~lkcl/ntdom/
- FTP-сайт по старым спецификациям SMB: ftp://ftp.microsoft.com/developr/drg/CIFS/
- Как мне получить помощь по mailing lists ?
Существуют списки рассылки по Samba. Зайдите на http://samba.org, выберите ближайшее к Вам зеркало сайта, откройте страницу Support и затем Samba related mailing lists. По вопросам, связанным с Samba TNG обращайтесь http://www.samba-tng.org/ Это необходимо, чтобы Вы не задавали вопросы по Samba-TNG в конференциях основной ветки Samba. При написании собщения пользуйтесь следующими рекомендациями:
- Всегда помните, что разработка - дело добровольное и разработчик не может решить какую-то частную проблему в мгновение ока. Будте всегда вежливы и ничего больше.
- Всегда указывайте свою версию samba и ОС, на которой вы работаете. Включайте в запрос относящиеся к делу секции Вашего smb.conf, по крайней мере, те опции которые влияют на работу Samba в качестве первичного контроллера домена.
- Если вы скачали Samba через CVS, дополнительно укажите дату редакции.
- Пишите коротко и ясно, длинные и запутанные вопросы удаляются не будучи прочтенными до конца ! Не используйте тэги html.
- Не посылайте одно и тоже сообщение в несколько конференций, чтобы посмотреть "А что из этого выйдет?" Многие подписаны более чем на одну рассылку, и им неприятно читать ваше сообщение по нескольку раз.
- Можно включить в сообщение фрагменты логов с debug level не более 20. Не присылайте логи целиком.
- Если у вас есть трассировка netmon, можете прислать *.CAP файл.
- Подумайте, стоит ли присоединять к письму вложения. Учтите, что письмо будет отправлено болшому количеству людей и так ли всем им обязательно иметь копию Вашего smb.conf ?
- Как мне отписаться ?
Для того, чтобы удалить себя из samba mailing list, зайдите на http://lists.samba.org , выберите ближайшее к вам зеркало, откройте Support и затем Samba related mailing lists. Или посмотрите здесь Пожалуйста, не присылайте сообщения с просьбой отписки, Вас все равно отправят по вышеупомянутому адресу
Администрирование домена для Windows 9x/ME
Примечание: содержание
нижеследующего раздела в
большинстве своем повторяет
содержание файла DOMAIN.txt , ранее
поставляемого с документацией к
дистрибутиву Samba. Большая часть
материала базируется на том, что
изложено в книге Special Edition, Using Samba. (автор
Richard Sharpe)
Домен и рабочая группа с точки
зрения обзора сети - абсолютно
одинаковые понятия. Различие
заключается в том, что у домена есть
распределенная база данных
авторизации, необходимая для
защиты входа в сеть. Кроме того,
пользователям предоставляются
различные права доступа, если они
успешно авторизованы сервером
обработки входов в домен (domain logon
server) (NT server и другие системы на базе
NT server поддерживают такой режим
работы, как это делает сейчас даже
Samba TNG ).
Вхождение SMB клиента в домен означает, что каждый сервер в домене должен принимать одинаковую информацию для авторизации. Возможности обзора сети в доменах и рабочих группах одинаковы и описаны в BROWSING.txt. Следует отметить, что обзор сети, в общем, не зависит от обработки входов в сеть.
В этом документе рассмотрены вопросы, касающиеся случая сети с однократной авторизацией(single-logon network model). Samba поддерживает обработку входов в домен, сценарии входа и пользовательские профили для клиентов MS Windows for workgroups и MS Windows 9X .
Когда SMB клиент желает войти в домен, он посылает широковещательные запросы серверам обработки входов. Тот из них, который ответит первым, включается в работу и проверяет пароль пользователя по той схеме, которую установил для него администратор Samba. Можно (но не нужно) создать домен, в котором база данных пользователей не предоставлена серверам в совместное использование, т.е. они фактически являются серверами рабочих групп, объявляющих себя членами домена. Это показывает, как типы авторизации могут отличаться от доменов, будучи, тем не менее с доменами очень связанными.
Еще одно понятие, обычно связанное с доменами с однократной авторизацией - удаленное администрирование по SMB протоколу. Опять же, нет причины, по которой это не может быть реализовано с помощью имеющейся базы данных пользователей, отличающейся от Windows NT SAM. Поддержка протокола удаленного администрирования (Remote Administration Protocol) планируется в будущих версиях Samba.
В этом разделе будет рассмотрена обработка входов с клиентских машин Window for Workgroups и Windows 9X.
Утверждается, что поддержка профилей пользователей работает в случае клиентов Win9X, NT 4.0 и NT 3.51. Можно установить: расположение профиля; сценарий входа; домашний каталог пользователя; для NT-клиентов - время принудительного отключения от домена. Разумеется, существует ряд различий между поддержкой профилей Win9X и WinNT. Они будут рассмотрены ниже.
В случае рабочих станций NT нет необходимости в NT 3.51/4.0 Server: Samba теперь может выполнять функции обработчика входов, правда, с некоторыми ограничениями (например, Диспетчер пользователей домена не может управлять доменом, контролируемым Samba).
В случае Win95 можно заручиться поддержкой со стороны NT сервера, как для размещения профилей, так и для авторизации пользователей. Подробнее об авторизации можно прочесть в security_level.txt из документации, поставляемой с дистрибутивом Samba. О размещении профилей читайте ниже.
Используя возможности Samba, Вы можете авторизовать пользователей, выполнять для них сценарии входа и загружать их личные настройки, Рабочий стол и Главное меню.
Перед тем как приступить к конфигурации Samba, стоит рассмотреть, как выполняется вход в сеть клиентом Win9X:
- Клиент посылает широковещательный запрос NetLogon на широковещательный IP адрес своей подсети. Таким образом этот запрос будет послан на NetBIOS адрес DOMAIN<00> на уровне NetBIOS. Клиент выбирает первый из ответов на запрос, который содержит NetBIOS имя сервера обработки входов в формате \\SERVER.
- Клиент подключается к этому серверу (выполняется SMBsessetupX) и затем подключается к ресурсу IPC$ (используя SMBtconX).
- Клиент посылает запрос NetWkstaUserLogon , который возвращает имя сценария входа для этого клиента.
- Клиент присоединяется к ресурсу NetLogon, ищет сценарий входа и, если он существует и может быть обработан, он передается клиенту и выполняется им. После этого, клиент отсоединяется от ресурса NetLogon.
- Клиент посылает запрос NetUserGetInfo серверу, и получает имя ресурса, на котором находится домашний каталог пользователя. Поскольку ответ на запрос NetUserGetInfo не содержит больше никакой другой информации, профили Win9X пользователей ДОЛЖНЫ находиться в домашнем каталоге пользователя.
- Клиент подсоединяется к ресурсу, на котором находится домашний каталог пользователя и ищет на нем профиль пользователя. Чтобы избежать этого, вы можете указать ресурс домашнего каталога и путь к нему, например, \\server\fred\.profile. Если профили найдены, они будут загружены.
- Клиент отсоединяется от ресурса домашних каталогов, снова подключается к ресурсу NetLogon и ищет файл системных политик CONFIG.POL. Если он найден, он считывается и выполняется.
Инструкции по настройке: входы в сеть
Для использования входов в домен и профилей пользователей Вам нужно сделать следующее:
- Создайте ресурс [netlogon] в Вашем smb.conf. Этот ресурс должен быть доступен для чтения всеми пользователями и, вероятно, недоступен для записи. Здесь будут находиться ваши сценарии входов и файл CONFIG.POL (Примечание: за описанием и использованием файла CONFIG.POL обратитесь к Microsoft Windows NT Administration documentation. Формат этих файлов неизвестен, так что для их создания и редактирования Вам придется использовать программные средства Microsoft).
Для примера я использовал:
[netlogon]
path = /data/dos/netlogon
writeable = no
guest ok = no
Учтите, что этот ресурс не должен быть доступен для записи обычным пользователям по соображениям безопасности: обычные пользователи не должны изменять или создавать файлы, которые используются компьютером другого пользователя при входе в сеть.
- В секции [global] smb.conf установите следующие параметры:
domain logons = yes
logon script = %U.bat
Выбор *.bat-файла, разумеется, остается за Вами. В вышеприведенном примере у каждого пользователя будет свой файл <login_name_of_user>.bat. Могут быть использованы и другие %-параметры Samba. Вы можете вызывать файлы из подкаталогов, например так:
logon script = scripts\%U.bat
- Создайте файл login_name_of_user.bat , который будет испольняться при входе в сеть пользователя с именем login_name_of_user . Если файл с именем login_name_of_user.bat не существует, никакой другой сценарий входа исполнен не будет. При написании файлов *.bat помните о DOS-кодах перевода строки/возврата каретки. Если в сценарии окажутся UNIX-коды перевода строки/возврата каретки, вы столкнетесь с проблемами. Я предлагаю Вам использовать DOS-редактор для удаленного редактирования этих файлов, если Вы не знаете как заменить коды cимволов UNIX на коды символов DOS.
- Запустите smbclient с ключом -U, указав имя какого-нибудь существующего пользователя Samba, убедитесь что ресурс \\server\NETLOGON доступен, .bat-файлы не скрыты и доступны для чтения данному пользователю.
- Вы вероятно обнаружите, что ресурс \\SERVER\NETLOGON будет автоматически смонтирован при входе на клиентской машине как сетевой диск Z: . Вы можете поместить там DOS-программы, которые будут вызываться из файлов *.bat .
security mode и master browsers |
Несколько
замечаний в порядке разрешения
некоторых неувязок. Много раз
поднимался вопрос о том,
следует или не следует
устанавливать Samba как
контроллер домена в security mode,
отличном от USER .
Единственный security mode , который
не будет работать по чисто
техническим причинам - SHARE .
Режимы DOMAIN и SERVER в
действительности лишь
варианты SMB user level security. Действительно, следует упомянуть о том, Samba или не-Samba сервер должен быть первичным обозревателем домена при работе в качестве контроллера домена. Хотя технически возможно настроить Samba-сервер так, чтобы он выполнял обе эти функции (как было сказано, обзор домена и обработка входов - две абсолютно различные функции), этого делать не следует. Вы должны помнить, что контроллер домена должен зарегестрировать DOMAIN#1b имя NetBIOS . Это имя используется клиентами Windows для нахождения контроллера домена. Клиенты Windows не делают различия между контроллером домена и обозревателем домена. По этой причине очень сложно настроить контроллер домена Samba для работы в качестве обозревателя домена. Теперь вернемся к вопросу настройки контроллера домена Samba в режиме, отличном от "security = user". Если Samba настроена как SMB сервер или сервер обработки входов, это означает фактически что другая машина в сети ("password server" - сервер паролей) знает о пользователе больше, чем Samba сервер. В 99% случаев это контроллер домена. Поэтому для работы в режиме security mode=domain, параметру "workgroup" должно быть присвоено имя домена Windows NT (у которого уже есть свой контроллер домена, не так ли?) Поэтому настроить Samba как контроллер домена для домена, в котором уже есть свой основной контроллер, весьма проблематично. В этом случае Вам следует настроить контроллер домена Samba как главный обозреватель домена. |
Инструкции по настройке: перемещаемые профили пользователей
Предупреждение |
ВНИМАНИЕ! Работа с перемещаемыми профилями в Win9X и WinNT различается. |
Перед тем как перейти к настройке поддержки перемещаемых профилей, полезно будет рассмотреть, как с ними работают клиенты Win9X и WinNT .
Клиенты Win9X посылают запрос NetUserGetInfo на сервер, чтобы получить данные о размещении профилей пользователей. Однако, в ответе содержится лишь расположение домашнего каталога пользователя. Это означает, что профили пользователей Win9X должны располагаться в их домашних каталогах.
Клиенты WinNT посылают запрос
NetSAMLogon RPC , в котором отдельно
запрашивается расположение
профиля пользователя. Это означает,
что работа с профилями WinNT
отличается от работы с профилями Win9X.
Настройка Windows NT
Для работы с профилями клиентов WinNT, в секции [global] smb.conf напишите нечто подобное:
logon path = \\profileserver\profileshare\profilepath\%U\moreprofilepath
По умолчанию этот параметр установлен в \\%N\%U\profile, что равно \\sambaserver\username\profile. Ресурс \\N%\%U создается автоматически ресурсом [homes] . Если для хранения профилей используется сервер Samba, Вы должны убедиться что ресурс, указанный в logon path доступен для просмотра (browseable=yes).
Замечание: [lkcl 26aug96 - мы
столкнулись с проблемой, когда
клиенты Windows удерживают соединение
с ресурсом [homes] в промежутке
времени между завершением сеанса
одного пользователя и началом
сеанса другого. Поэтому ресурс [homes]
не должен использоваться для
хранения профилей Windows NT.]
Настройка Windows 9X
Для работы с профилями клиентов Win9X , Вы должны использовать параметр "logon home" . В Samba были внесены исправления, так что команда "net use /home" теперь работает правильно, и это благодаря параметру "logon home" . При использовании параметра logon home , Вы должны разместить профили Win9X в домашнем каталоге пользователя. Но подождите! Можно пойти на хитрость. Если Вы напишете в секции [global] Вашего smb.conf :
logon home = \\%L\%U\.profiles
то ваши клиенты Win9X
будут послушно размещать свои
профили в скрытом подкаталоге .profiles
домашнего каталога. Кроме того,
команда 'net use /home' также будет
работать из-за следующей
особенности Win9X. Эта система
удаляет из сетевого пути все имена
каталогов, и работает только с
именем сервера и именем ресурса.
Таким образом, указание \\%L\%U\.profiles в
параметре logon home эквивалентно
указанию \\%L\%U .
Настройка Win9X и WinNT
Вы можете настроить поддержку перемещаемых профилей одновременно для клиентов Win9X и клиентов WinNT, установив оба параметра "logon home" и "logon path". Например:
logon home = \\%L\%U\.profiles
logon path = \\%L\profiles\%U
Примечание : Я не проверял, что
делает команда 'net use /home' в NT, если
параметр "logon home" установлен
так, как показано выше.
Настройка профилей Windows 9X
При первом входе пользователя Windows 9X в его профиле создаются файл USER.DAT, папки "Start Menu"("Главное Меню"), "Desktop"("Рабочий Стол"), "Programs"("Программы") and "Nethood". Эти каталоги и их содержимое будут объединены с аналогичными объектами, находящимися в c:\windows\profiles\username при последующих входах в сеть (используется тот объект, который был создан последним по времени и дате). Вам необходимо в секции [global] установить опции "preserve case = yes", "short preserve case = yes", "case sensitive = no", чтобы не потерять заглавные буквы в папках профиля. Файл USER.DAT содержит все личные настройки пользователя. Если хотите зафиксировать эти настройки, переименуйте файл USER.DAT в файл USER.MAN и сделайте его доступным только для чтения.
- На машине Windows 95 , откройте Control Panel(Панель Управления)| Passwords(Пароли) и выберите вкладку User Profiles (Профили пользователей). Выберите нужный Вам уровень установок профилей. Нажмите OK, но не перезагружайте компьютер.
- На машине Windows 95 , откройте Control Panel(Панель Управления)| Network(Сеть) | Client for Microsoft Networks(Клиент для сетей Microsoft)| Preferences(Свойства). Выберите 'Log on to NT Domain' ('Входить в домен Windows NT'). Затем, убедитесь что выбран способ входа в сеть 'Client for Microsoft Networks' ('Клиент для сетей Microsoft'). Нажмите OK, и дайте компьютеру перезагрузиться.
При работе в среде Windows 95, профили загружаются в зависимости от способа входа в сеть. Если установлен способ входа в сеть 'Client for Novell Networks'('Клиент для сетей Nowell Netware'), то профили и сценарий входа будут загружены с сервера Novell. Если выбран способ входа в сеть 'Windows Logon' ('Обычный вход в Windows'), будут загружены локальные профили, а не перемещаемые. Теперь Вы обнаружите, что окно Microsoft Networks Login (Вход в сеть Microsoft) содержит поля "Имя", "Пароль", "Домен", а не "Имя", "Пароль" как это было раньше. Введите имя домена, в котором контроллером домена является сервер Samba (или любое другое существующее имя домена, помня о том, что авторизация пользователя зависит от имени домена и от этого имени зависит, будут загружены соответствующие перемещаемые профили или нет), имя пользователя и его пароль. Как только пользователь будет авторизован, система Windows 95 возможно предупредит Вас о том, что 'Вы не пользовались этим компьютером раньше. Создать для Вас учетную запись?' ('The user has not logged on before'). Скажите 'Да' ('Yes'). Как только клиент Windows 95 загрузит Рабочий стол, Вы можете проверить содержимое каталога, указанного в "logon path" на сервере Samba и убедиться в том, что каталоги "Desktop" ("Рабочий стол"), "Start Menu" ("Главное меню"), "Programs" ("Программы") и "Nethood" были созданы. Эти папки будут кэшироваться локально на клиентской машине и обновляться при завершении сеанса работы (если, конечно Вы не сделали их доступными только для чтения :-)). Вы обнаружите, что если пользователь создает при работе папки или ярлыки, содержимое локального профиля объединяется с содержимым перемещаемого профиля.
Если вы сделали папки/файлы доступными только для чтения, Вы будете получать сообщения об ошибке при входе/выходе в сеть/из сети при попытке слияния удаленного и локального профилей. Как правило, если Вы получаете сообщения об ошибках на компьютере Win95, проверьте UNIX-права доступа к файлу в каталоге профиля на сервере Samba.
Если Вы столкнулись с проблемами при создании пользовательских профилей, Вы можете сбросить локальный пользовательский кэш рабочего стола, как это показано ниже. Когда пользователь снова войдет в систему, то получит сообщение о том, что он 'не пользовался этим компьютером ранее'.
- Откажитесь от входа в сеть, нажав Esc.
- Запустите редактор реестра regedit.exe, и откройте:
HKEY_LOCAL_MACHINE\Windows\CurrentVersion\ProfileList Вы найдете здесь пути к профилю каждого пользователя. Запомните содержимое этого ключа (обычно это выглядит как c:\windows\profiles\username), затем удалите ключ ProfilePath для требуемого пользователя. [Выйдите из редактора реестра].
- ВНИМАНИЕ - перед удалением содержимого каталога, указанного в ProfilePath (обычно это выглядит как c:\windows\profiles\username), поинтересуйтесь у пользователя, не сохранил ли он какие-либо важные для себя файлы прямо на рабочем столе или в главном меню. Сделав резервную копию нужных файлов, удалите содержимое каталога ProfilePath.
В результате будет удален локальный скрытый системный файл USER.DAT в каталоге профиля, также как и локальные папки "desktop", "nethood", "start menu" и "programs".
- Найдите файл пароля пользователя .PWL в каталоге c:\windows и удалите его.
- Завершите сеанс работы Windows 95.
- Проверьте содержимое каталога, указанного в параметре "logon path", и удалите файлы user.DAT или user.MAN из профиля пользователя, сделав их копии если это необходимо.
Если это не помогает, установите
параметр log level в значение от 3 до 10, и/или
запустите tcpdump или netmon.exe, и
посмотрите сообщения об ошибках.
Если у Вас есть доступ к NT серверу,
то настройте поддержку
перемещаемых профилей и/или
авторизацию на нем. Сделайте
дампинг пакетов и сравните его с
примером дампинга, имеющегося в
сервере NT, посмотрите, в чем отличия
от аналогичного дампинга с сервера
Samba.
Windows NT Workstation 4.0
При первом входе пользователя Windows NT Workstation будет создан файл профиля NTUSER.DAT. Расположение профиля теперь можно указать через параметр "logon path".
Примечание: [lkcl 10aug97 - я попытался установить путь \\samba-server\homes\profile, и потерпел неудачу, так как фоновый процесс удерживает соединение с ресурсом [homes] в промежутке времени между завершением сеанса одного пользователя и началом сеанса другого. Вам следует указать путь \\samba-server\%U\profile].
Следующий параметр, который можно использовать при работе с профилями NT: "logon drive". Его следует установить в "h:" или другое подходящее имя сетевого диска и можно использовать в сочетании с параметром "logon home". Профиль NT 4.0 - это целый каталог, а не файл. В справке по профилям NT упоминается, что этот каталог также создается с расширением .PDS. Пользователь при входе в сеть должен обладать правами на запись файлов для профиля по полному пути (и каталогу с расширением .PDS)
[lkcl10aug97 - я обнаружил, что создать таким образом каталог с расширением .PDS не удается и был вынужден создавать их вручную для каждого пользователя с помощью скрипта shell. Также я полагаю (но не проверял), что полный путь должен быть доступен для просмотра, как и в случае с Win95, в зависимости от способа, которым будет создан профиль: проверка каждого компонента пути, создание компонента пути].
В каталоге профиля система Windows NT создает больше папок, чем Windows95. Cоздается папка "Application Data" и другие, такие как "Desktop", "Nethood", "Start Menu" и "Programs". Сам профиль пользователя находится в файле NTUSER.DAT. В каталоге с расширением .PDS ничего не создается и ее назначение остается пока неизвестным.
Вы можете использовать System Control Panel (Панель управления) чтобы скопировать локальный профиль на сервер Samba (смотрите справку NT по профилям). В справке NT также упоминается, что переименование NTUSER.DAT в NTUSER.MAN делает профиль назначенным.
Примечание: [lkcl 10aug97 - я получил сообщение от NT Workstation, что система загружает профиль по медленному соединению. Действительно ли это было так, или это было связано с настройками Samba - остается неясным, что заставило NT Workstation думать, что соединение медленное].
[lkcl 20aug97 - В Samba digest один из пользователей сообщил (и другой подтвердил), что невозможно загрузить профиль с сервера Samba, несмотря на установленные параметры "security = user" и "encrypt passwords = yes" (см. ENCRYPTION.txt) или "security = server" и "password server = ip.address. of.yourNTserver". Хотя эти параметры указывают NT workstation подключаться к серверу Samba с использованием шифрованных паролей LAN manager'а].
[lkcl 25aug97 -
замечания о файлах профилей:
помните о регистре].
Windows NT Server
Ничто не мешает Вам указать любой
путь для хранения профилей
пользователей. Следовательно, Вы
можете указать, чтобы профили
хранились на сервере Samba, или на
другом SMB сервере, если он
поддерживает шифрованные пароли.
Общий профиль для W95 и NT Workstation 4.0
Вероятно это устаревшая или ошибочная информация |
Я думаю, что все это ерунда, но не удаляю это. (Richard Sharpe) |
Допустим, параметр logon path установлен в \\%N\U%. NT Workstation будет пытаться создать каталог "\\samba-server\username.PDS" , если Вы укажете в Диспетчере пользователей путь входа "\\samba-server\username". Следовательно, Вам необходимо указать путь "\\samba-server\username\profile". NT4.0 попытается создать каталог "\\samba-server\username\profile.PDS", которая скорее всего и будет создана.
Если Вы хотите иметь те же самые Start Menu / Desktop в Win95, Вы должны указать "logon path= \\samba-server\username\profile" [lkcl 10aug97 У этого способа есть недостаток: я создал ярлык для telnet.exe, который указывает на файл в каталоге c:\winnt\system32. Разумеется, такого каталога нет в Win95].
Если Вы все сделали правильно, то файлы user.DAT и NTUSER.DAT окажутся в одном каталоге профилей.
Note: [lkcl
25aug97 - несколько замечаний о
загрузке профилей NT. Я обнаружил,
что файл NTUSER.DAT никогда не
обновляется на рабочей станции,
после того как он был скопирован в
папку локального профиля. В этом
заключается отличие от Win95, где
загрузка/обновление профилей
происходит корректно].
DOMAIN_CONTROL.txt : Управление доменом Windows NT и Samba
Возможно, это устаревший материал |
Это приложение написано John H Terpstra из Samba Team и включено сюда для истории. |
ПРИМЕЧАНИЕ: Термин "Domain Controller" и то, что связано с ним, относится к одному специфичному методу авторизации, который может быть реализован в SMB домене. Контроллеры домена до появления версии Windows NT Server 3.1 продавались различными компаниями и базировались на частных решениях протокола LAN Manager 2.1 l. В Windows NT реализованы чисто Microsoft-овские способы совместного использования бызы данных пользователей. Посмотрите в DOMAIN.txt примеры того, как Samba может участвовать в создании или создавать SMB домены с общей базой данных пользователей по схеме, отличной от Windows NT SAM.
Windows NT Server может быть также установлен как самостоятельный файл-сервер или сервер печати (рабочая станция или сервер Рабочей Группы), или как сервер, который принимает участие в управлении доменом (член домена, первичной или резервный контроллер домена). Тоже самое относится к OS/2 Warp Server, Digital Pathworks и другим подобным продуктам, каждый из которых может принимать участие в управлении доменом вместе с Windows NT.
Многих эти определения могут сбить с толку, так что давайте разберемся, что к чему
Каждая система Windows NT (рабочая станция или сервер) имеет свой реестр. Реестр содержит записи, в которых находится информация о всех службах (аналог демонов в Unix), которые запускаются в среде Windows NT. Реестр также содержит записи о динамически загружаемых библиотеках DLL, необходимых приложениям, установленным в системе. Фактически, в реестре находится все, что может понадобиться системе
Файлы реестра можно найти на
любой машине Windows NT, открыв
командную строку и набрав команду: C:\WINNT\>
dir
%SystemRoot%\System32\config Значение системной
переменной %SystemRoot% может быть
получено командой:
C:\WINNT>
echo %SystemRoot%
Реестр состоит из 4 разделов: default, system, software, sam и security.
При работе в домене контроллеры домена Microsoft Windows NT выполняют репликацию разделов SAM и SECURITY, так что все контроллеры домена имеют одинаковые копии соответствующих разделов друг друга
Система Microsoft Windows NT построена по принципу, что все приложения и службы должны быть авторизованы перед тем как они получат разрешение у security manager на свою работу.
База данных пользователей Windows NT также находится в реестре. Эта часть реестра содержит идентификатор пользователя, информацию о расположении домашних каталогов, членстве в группах, настройках рабочего стола и т.д.
Каждая система Windows NT (рабочая станция или сервер) имеет свой собственный реестр. Серверы Windows NT могут участвовать в управлении безопасностью в домене, имея общую базу данных - у них нет собственной полной информации в реестре, как у Workstations и выделенных серверов.
База данных пользователей называется SAM (Security Access Manager) database и используется как для авторизации пользователей, так и для авторизации внутренних процессов.
Samba team разработала утилиту, которая может преобразовать Windows NT SAM в формат smbpasswd : обратитесь к ENCRYPTION.txt для получения информации по smbpasswd и /pub/samba/pwdump на ближайшем к вам зеркале FTP-сервера Samba . Эта утилита полезна, но ее использование для репликации SAM в формат Samba затруднено
Windows for Workgroups, Windows 95, и Windows NT Workstations/Servers могут входить в домен, который управляется серверами Windows NT, настроенных соответствующим способом. Каждый домен обязательно имеет ОДИН основной контроллер домена. Желательно, чтобы каждый домен имел хотя бы один резервный контроллер домена.
Основной и резервные
контроллеры домена участвуют в
репликации SAM, так что каждый
участник контроля домена имеет
свежую копию SAM в своем реестре.