Samba - первичный контроллер домена (PDC)
Эта статья отражает мой личный опыт по настройке Samba в качестве PDC. Некоторые настройки отличаются от рекомендаций, которые вы найдете в HOWTO, и других официальных документах. Рекомендации содержищиеся в этой статье вы используете на свой страх и риск. Если есть возможность "откатать" настройки на Samba не отвечающим за работу других сотрудников вашей организации, то лучше эксперементируйте на нем. В противном случае сотрудники вашей организации рискуют превратиться в достаточно раздраженную толпу.
Если вы решили использовать Samba качестве первичного контроллера домена (PDC - Primary Domain Controller). То вам стоит обратить внимание на версии старвше 2.2, так как более младшие версии обладали слабыми возможностями для работы в качестве основного контроллера домена. На версиях меньше 2.0 на мой взгляд не стоит останавливаться вообще. На версиях от 2.0 до 2.2 организовать домен в принципе можно, но при этом могут возникнуть большие трудности с получением списка пользователей с сервера, а значит и сразграничением прав пользоваелей на локальные диски и папки.
В версии 2.2 реализованы следующие функции:
· входы в домен с рабочих станций Windows NT 4.0/2000.
· подключение клиентов Windows 9x с уровнем безопасности user
· получение списка пользователей и групп с Samba PDC клиентами Windows 9x/NT/2000
· перемещаемые профили пользователей
· системные политики Windows NT 4.0
В линии Samba 3.X по некоторой информации будет реализована Active Directory, сам правда не видел.
Если говорить собственно о настройке PDС, то ее можно разбить на два этапа:
1. Настройка собственно Samba
2. Настройка клиентов
Обо всем попорядку:
1. Настройка Samba - сервера.
Все изменения в насройка сервера вы должны делать в smb.conf. наиболее удобно если вы будете делать это через SWAT. том, как натроить SWAT читайте в статье "Настройка Samba и Swat" расположеной на этом сайте.
Вариант smb.conf для PDC
[global]
netbios name = SambaServer
workgroup = SAMBA
;Чтобы подавить конкуренцию с другими контролерами домена: 65-255
os level = 65
;Натроим первичный контроллер домена
preferred master = yes
domain master = yes
local master = yes
domain logons = yes;
;разграничение прав на уровне пользователей
security = user
; установим шифрованные пароли и синхронизируем Samba и Linux пароли
encrypt passwords = yes
unix password sync = Yes
;сценарий входа в домен
;формат файла смотри ниже на этапе отладки лучше отключить
;В некоторых случаях сценарий входа может мешать нормальному входу в домен
logon script = logon.bat
;путь где будут храниться профили пользователей
logon path = \\%L\profiles\%U
; где находятся домашние
каталоги пользователей и на какой сетевой диск они монтируются
logon drive = H:
logon home = \\%L\%U\.profiles
;установим поддержку руского языка на дисках
client code page = 866
character set = KOI8-R
;Установим поддержку Wins
wins support = Yes
;Сервер времени
time server = Yes
;Чтобы не потерять заглавные буквы .
preserve case = yes
short preserve case = yes
case sensitive = no

Замечание.
1. Единственный security mode , который не будет работать по чисто техническим причинам - SHARE.
2.Если вы хотите повысить степень защиты, то имеет смысл пароли для Samba и Linux сделать различными. В этом случае стоит сделать так:
unix password sync = No
Последнее может быть полезно, так как существуют программы позволяющие получить права root-а на самбе.(В часности trans2root.pl позволяет получить проава root-а на версиях Samba ладше 2.2.3)
После того, как вы настроили Samba, необходимо создать пользователей для которых будет доступны ресурсы Samba. Делается это в два этапа.
1. Создаете пользователей в Linux, делать это можно влюбой удобной для вас программе
2. Создаете пользователей в Samba. Лучше это делать в SWAT или в Linuxconf
При этом имена в Sambe и Linux должны совпадать. А поскольку мы установили синхронизацию паролей то должны совпадать и пароли. (Если unix password sync = No то соответственно пароли не должны совпадать)
Использование ресурса [netlogon] может быть полезно, но не является обязательным. Например при :
logon home = \\%L\%U\.profiles
logon path = \\%L\profiles\%U
клиенты будут послушно размещать свои профили в скрытом подкаталоге .profiles домашнего каталога.
Хотя этот ресурс может использоваться для размещения сценариев входов и некоторых других вещей.

2. Настройка клиентских машин.
Windows 9X

1. Откройте Панель Управления/Пароли и выберите вкладку Профили пользователей. Выберите нужный Вам уровень установок профилей.
2.Откройте Панель Управления/Сеть вберите способвхода в сеть - "Клиент для сетей MicroSoft", в противном случае будут загружены локальные профили.
3.Откройте Панель Управления/Сеть/Клиент для сетей Microsoft/Нажмите Свойства - "Выберите Входить в домен Windows NT". Именем домена будет имя заданное в параметра workgroup, в настройках Samba. В нашем случае SAMBA.
4..Откройте Панель Управления/Сеть Доступ к ресурсам установите на уровне пользователей. А брать список будете с SambaServer. (Правильно получить список пользователей можно только начиная с версии Samba 2.2)
Перезагрузите комьютер появиться окновхода в сеть содержащие поля: "Имя", "Пароль", "Домен". Введите данные и попытайтесь зарегистрироваться. Если произошла ошибка, то получите соотбщение, содержание которого скажет что имя и пароль не распознаны. Причиной может быть: неправильные "Имя", "Пароль", "Домен"; неправильный формат файла logon script =.... Или же в глобальных настройках [global] пользователю под которым вы входите закрыт доступ, либо просто пользователь не существует.
Если вход произошел корректно и вы ранее не пользовались компьютером то появиться вопрос "Создать для Вас учетную запись?" - ответьте "Да". Причем компьютер запросит повторить пароль уже для windows, поставте в обоих полях пробелы, ведь эта информация храниться в *.pwl файлах, а не секрет, что их несложно скопировать на дискету и рашифровать, то есть получить вши пароли.

Устранение проблем

1. Откажитесь от входа в сеть, нажав отмена.
2. Запустите Пуск/Выполнить наберите regedit.exe:
В параметре HKEY_LOCAL_MACHINE\Windows\CurrentVersion\ProfileList удалите ключ ProfilePath для требуемого пользователя. В некоторых версиях положение ключа ProfilePathможет различаться, в часности в Win98 и Win95. В этом случае воспользуйтесь поиском.
3. Удалите *.PWL пользователя в каталоге c:\windows как правило он похож по имени на пользователя, имя pwl файла для конкретного пользователяможно уточнить в sistem.ini.
4. Завершите сеанс работы Windows.
5. Удалите файлы user.DAT или user.MAN из Linux они расположены по пути указанному в logon_path

3.Содержание Logo.bat
; Установка времени
net time \\smb /set /yes
;Подключение дисков
net use g: \\smb\СommonDisk
net use h: \\smb\Disk_1C

К стати команда net use полностью правильно работает тоже только с версии 2.2.
4.Настройка клиентских машин
Windows NT/2000
В стречалась информация, что клиенты WinNT или Win2000 могут иметь некоторые проблеммы при подключении к домену. С такой проблемой я не столкнулся поэтому ничего сказать не могу. Есдинственное, что можно сказать это попробуйте запустить Самбу со стандартными настройками для контроллера домена. Елси не получается то воспользуйтесь рекомендациями этой статьи (они как было сказано выше несколько отличаются от официальных).Если и это не получается то загрузите последний стабильный релиз (Мне удалось найти 2.2.7).
Продолжение(22.07.2003)
Рабочие станции,функционирующие под управлением Windows NT/2000,используют «машинные » учетные записи.Машинная учетная запись - это учетная запись Samba-пользователя, принадлежащая машине. Пароль этой учетной записи служит ключом для защищенного соединения с Контроллером Домена. Это служит для предотвращения несанкционированного присоединения к домену машин с именем NetBIOS, уже зарегестрированным в домене, и получения доступа к учетным записям групп/пользователей.Рабочие станции,функционирующие под управлением Windows 9x/Me,таких учетных записей не используют,поэтому не могут считаться полноправными членами домена
Существуют два метода создания учетной записи:
-Заранннее.
Обозначив через machine_name - NetBIOS имя машины получим:
root# /usr/sbin/useradd -g 100 -d /dev/null -c "machine nickname" -s /bin/false machine_name$
root# passwd -l machine_name$
root# smbpasswd -a -m machine_name
-на лету
С помощью скриптов. В секцию [global ] добавим строку:
add user script = /usr/bin/useraddscript %u
В каталоге /usr/bin должен быть скрипт useraddscript следующего содержания:
#!/bin/sh
/usr/bin/useradd -d /dev/null -g 100 -s /bin/false -M $1

Либо одной строкой в секции [global ]:
add user script = /usr/bin/useradd -d /dev/null -g 100 -s /bin/false -M %u
Конечно оба метода совершенно равноправны, просто в первом случае вы выносте команды в скрипт.
Затем с рабочей станции заходим в домен как root ,и создаем учетную запись рабочей станции домена. Без этой процедуры никто из пользователей не сможет войти в домен.
Если у вас проблемы с клиентами под Windows NT/2000, попробуйте войти в домен под обычной учетной записью, возможно это выход из ситуации.
(22.07.2003).

5. Некоторые замечания
Пользователи Samba версии младше 2.2 на первый взгляд не могут нормально разграничить ресурсы на клиентах (вследствие того, что Самба не выдает список пользователей). Но это только на первый взгляд. Здесь можно подключить папку на локальном ресурасе к самбе и использовать ее как Share-ресурс. Тут правда есть одна тонкость трафик сети при обращении к такому ресурсу возрастает в два раза. Данные после формирования запроса на них перекачиваются вначале от ресурса на Самбу, а затем от Самбы к источнику запроса. Но это уже вопрос пропускной способности сети и востребованности этого ресурса пользователями. Если он достаточно востребован, то возможно имеет смысл перенести его на сервер.
Подмонтировать локальный ресурс можно командой smbmount. Получить документацию по ней можно командой mam smbmount. Примерный формат команды может выглядеть так:
1. Вначале просматриваем наличные ресурсы:
Smbclient -L NetBIOS_имя_машины

2.S
mbmount //NetBIOS_имя_машины/XXX /mnt/XXXX -o guest,iocharset=koi8-r,codepage=cp866
Здесь:
          /NetBIOS_имя_машины/XXX - ресурс который подмонтируем 
          /mnt/XXXX - место куда мы подмонтируем.
Затем открываем этот ресурс как шару. При этом ваше ядро должно поддерживать SMBFS (см. man-ы smbmount, mount).

Такой подход вполне имеет право на существование, но следует как я и говорил учитывать, что возрастает трафик.
Использованные источники
1.Samba 2.2 PDC HOWTO
2. Samba NT Domain FAQ
3. Использование Linux 6-е издание Девид Бендел, Роберт Нейпир;
4. Материалы форума www.Linux.ru
5. "Миграциия с WINDOWS на LINUX" Дмитрий Галышев (журнал "Системный администратор")

Отдельное спасибо "ака Разгильдяй на обкуренной кошке" за содействие в написании статьи.

Автор:Алекс

 
Для связи:linux-75@narod.ru
 
Hosted by uCoz