четверг, 4 декабря 2008 г.

Контроллер домена на OpenBSD 4.4+Samba 3.0.31

Настраивал OpenBSD 4.4 + Samba 3.0.31. Но думаю, что данный мануал может также подойти к большинству linux дистрибутивов.
Практически вся работа сводится к настройке /etc/samba/smb.conf. Обошелся чистой самбой, без winbind, ldap

#Что-нибудь свое
workgroup = hello
#Сюда можно какое-нибудь описание
server string = Domain Controller Head Office
#Это обязательно нужно для контроллера
security = user
#Здесь можно ограничить по адресу подсети, типа "192.168.0.", но я не стал этого делать
hosts allow =
#Весь этот блок вроде бы несложен для понимания
domain master = yes
preferred master = yes
domain logons = yes
logon script = %m.bat
logon script = %U.bat
logon path = \\%L\Profiles\%U
wins support = yes
add user script = /usr/sbin/useradd %u
add group script = /usr/sbin/groupadd %g
add machine script = /usr/sbin/adduser -n -g machines -c Machine -d /dev/null -s /sbin/nologin %u
delete user script = /usr/sbin/userdel %udelete user from group script = /usr/sbin/deluser %u %g
delete group script = /usr/sbin/groupdel %g
dos charset = 866
unix charset = UTF-8
domain admin group = root @wheel administrator
time server = yes

#Здесь хранятся хомы.
[homes]
comment = Home Directories
browseable = no
writable = yes
#Тут хранятся батники, которые выполняются при входе пользователя в домен. У меня их нет, #но каталог имеется на всякий пожарный
follow symlinks = no

[netlogon]
comment = Network Logon Service
path = /home/netlogon
browseable = no
share modes = yes
#Отключает автономное кэширование. Это исключит порчу профилей при отключении сети в #момент его перемещения
csc policy = disable

#По-моему один из важнейших каталогов. Все настройки Windows окружения, файлы, каталог #сохраняются именно сюда. Процесс сохранения происходит при выключении машины. Кажется.
[Profiles]
path = /home/profiles
browseable = no
writable = yes
veto files = /*.exe/*.cmd/*.pif/*.inf/delete
veto files = yes

#Все остальное шары. О них отдельный разговор. Шары можно создавать по своему вкусу.
[antivirus]
path = /samba/shares/antivirus/
guest ok = Yes

[mail]path = /samba/shares/mail
read only = No
guest only = Yes
guest ok = Yes
only user = Yes

[plotter]
path = /samba/shares/plotter/
public = yes
writeable = yes
browseable = yes

[obmen]
path = /samba/shares/obmen/
public = yes
writeable = yes
browseable = yes

Создадим администратора. Здесь попросят вбить пароль
# smbpasswd -a root
Активизируем администратора
# smbpasswd -е root

Теперь можно вводить имеющиеся машины в домен. Символ "$" при вводе машин в домен обязателен. Имя должно соответствовать тому имени, которое уже существует в Windows (в свойствах "Мой компьютер")
# useradd -g users -d /dev/null -s /sbin/nologin machinename$

Потом
# smbpasswd -a -m machinename

Потом
# smbpasswd -e -m machinename

Итак вводим необходимое количество машин. После нужно создать пользователей.
Сначала
useradd -m -d /home/username -s /sbin/nologin -g users username

Потом знакомое уже
smbpasswd -a username
и
smbpasswd -e username

Все. На этом настройка закончилась. Теперь можно запустить
# /usr/local/libexec/smbd -D
# /usr/local/libexec/nmbd -D

А теперь начинается ввод самих машин в доменную зону. Для этого на Windows машине отрубаем все шары. Правой кнопкой на ярлыку "Мой компьютер" -> "Отключить сетевой диск", а там уже все просто. Можно также отключить средствами cmd, но я не помню как это сделал :)

Теперь правой кнопкой далее открываем свойства "моего компьютера", вкладка "Имя компьютера", кнопка "Изменить", и делаем членом домена (тупо пишем workgroup, который указали в конфиге). Потом перегрузиться. После перезагрузки выйдет окошко входа, где нужно будет вбить данные администратора этой машины (не администратор домена!). Доменного root'a надо ввести в группу "Администраторы" локальной машины. Наверное это не надо объяснять как это сделать. Единственное надо упомянуть. что система перед этим попросит имя и пароль доменного root'a. А потом заходим на эту же машину доменным root'ом, урезаем права местному администратору или меняем ему пароль, на тот, который не будет знать юзер. Вот и все. Теперь на эту машину можно будет логиниться от имени любого пользователя, которого вы создали в домене.

Теперь кратенько о принципе работы контроллера домена. Значит в данном случае все настройки и файлы из Documents and Settings/username каждого пользователя хранятся в /home/profiles. Файлы лучше не сохранять на рабочем столе, так как это чревато долгой загрузкой при входе. Все внесенные изменения сохраняются на сервере при выключении клиентской машины.

Далее, необходимо запретить пользователям называть файлы и каталоги именами более 64-х символов. Запретить устно :) Как сделать это системно, я пока еще не знаю. Файлы и каталоги, имена которых более 64-символов не будут бэкапиться по NFS, архивироваться и т.д.

Администратору надо следить чтобы вывод
# fstat | wc -l
не превышал вывод
sysctl -a | grep kern.maxfiles
Если первое будет приближаться к числу второго, то будет необходимо корректировать в файле /etc/sysctl.conf строку kern.maxfiles= (если нет, то добавить). Это отвечает за количество обращений к файлам. Вроде так :)

Конечно на этом дело не заканчивается. Но все остальное - тонкости, основная задача решена.