Самоучитель Гончарова
ALT Linux в офисе
WWW.TEKCT.RU | Содержание книги | Предыдущий раздел | Следующий раздел

8.8. Установка первичного контроллера домена. Samba

Технология Active Directory оказалась настолько удачной, что эту разработку Microsoft используют в бесчисленном количестве организаций. В то же время Active Directory — комбинация хорошо известных протоколов и стандартов: DNS, DHCP, SMB, LDAP и т. д. Поэтому неудивительно, что в мире Linux были предприняты поистине титанические усилия для создания совместимого продукта. Этот продукт получил название Samba (созвучно названию протокола SMB). Даже на рабочей станции, работающей под управлением Linux, трудно обойтись без сервера Samba. Но на основе Samba можно легко построить и первичный контроллер домена (PDC), а рабочие станции в домене смогут работать как под управлением Windows, так и под управлением Linux. Для перевода офиса на бесплатное программное обеспечение это удобно — все компьютеры сразу переделать нельзя. Как правило, в небольшой офисной сети одного контроллера домена достаточно, хотя ничто не мешает установить и вспомогательный контроллер (BDC).

Так уж получилось, что разработчики Samba оказались в роли догоняющих. Воспроизвести полностью функции Active Directory пока не удалось, и неизвестно, удастся ли в будущем. У корпорации Microsoft здесь неоспоримое лидерство. С другой стороны, к Samba нельзя относиться, как к недоделанной технологии Active Directory. Некоторые функции Samba самодостаточны, и неизвестно что будет работать лучше в конкретном случае (это, кстати, не мое мнение, а весьма авторитетных специалистов).

Но нам надо помнить, что из-за этих особенностей нельзя плавно перейти от контроллера домена под управлением Windows к контроллеру домена под управлением Linux. Иначе говоря, мы не можем создать BDC на Linux, синхронизировать с PDC на Windows, а потом повысить BDC до PDC. Домен на Linux надо создавать «с нуля». А если в сети есть работающий контроллер домена под управлением Windows, надо создать другой домен.

Я рассказываю о настройках в предположении, что в вашей сети нет других контроллеров этого домена.

8.8.1. Установка сервера

Практически, все что нужно сделать — правильно сконфигурировать сервер Samba. Существует много вариантов конфигурации, в зависимости от конкретных задач, поэтому важно разобраться, какие именно параметры нужно задать сразу, с какими можно повременить, от каких отказаться.

Поставим такую задачу: создать контроллер для домена OFIS.LOCAL, чтобы к нему можно было присоединить рабочие станции Windows и Linux. Создать папки общего доступа и папки на сервере, доступные для отдельных пользователей.

Установленный по умолчанию конфиг-файл на сервере /etc/samba/smb.conf надо сохранить под другим именем, как источник подсказок, а на его место записать свой, например:

[global]

workgroup = OFIS

realm = OFIS.LOCAL

netbios name = SERVER1

dos charset = CP866

unix charset = UTF8

display charset = UTF8

os level = 65

# PDC

local master = yes

domain master = yes

preferred master = yes

domain logons = yes

logon path = \\%L\Profiles\%U

domain admin users = root

wins support = no

name resolve order = lmhosts bcast

map to guest = Bad User

hosts allow = 192.168.1. 127.

# winbind

winbind uid = 10000-20000

winbind gid = 10000-20000

winbind separator = +

winbind cache time = 10

template shell = /bin/bash

# users

security = user

encrypt passwords = yes

smb passwd file = /etc/samba/smbpasswd

add user script = /usr/sbin/useradd -d /dev/null -g ourusers

-s /bin/false -M %u

#Windows stations

add machine script = /usr/sbin/useradd -d /dev/null -g winstations

-c 'Win Account' -s /bin/false -M %u

[netlogon]

comment = Network Logon Service

path = /var/lib/samba/netlogon

guest ok = yes

writable = no

write list = root, Administrator

[Profiles]

path = /var/lib/samba/profiles

browseable = no

read only = no

create mask = 0600

directory mask = 0700

writable = yes

[BCEM]

comment = Общая папка

path = /home/BCEM

public = yes

writable = yes

Параметр workgroup определяет короткое имя домена, realm — полное, netbios name — имя сервера. Для совместимости имена набирают заглавными буквами.

Параметры charset необходимы для обеспечения совместимости по символам кириллицы. Поскольку Linux использует кодировку koi8r, а Windows — cp1251, единственный выход — переходить на UTF8. В тех случаях, где UTF8 не поддерживается, нас поджидают проблемы. Впрочем, таких программ становится все меньше.

В сети многие компьютеры ведут списки имен NetBIOS, и необходимо, чтобы один из компьютеров синхронизировал эти списки. Эта функция называется Главный Обозреватель Домена (Domain Master Browser). Это не обязательно должен быть PDC, но вполне логично передать эту функцию ему. Поэтому мы устанавливаем domain master = yes.

Когда сервер включается, он должен начать «торги» за право быть PDC. Устанавливаем preferred master = yes. И явно даем разрешение быть первичным контроллером local master = yes (только на одном компьютере сегмента сети можно устанавливать этот параметр).

В домене, сделанном на Linux, статус PDC и BDC надо устанавливать вручную.

Наш сервер должен быть сервером паролей (domain logons = yes) и мы указываем место хранения профилей пользователей (logon path).

Параметр domain admin users = root — подтверждение, что пользователь root имеет административные привилегии.

Если бы мы использовали сервер WINS, то должны были бы указать:

wins support = yes

name resolve order = wins lmhosts bcast

Но мы не будем использовать WINS.

Параметр map to guest = Bad User не является необходимым, но он помогает уменьшить степень несовместимости Linux и Windows в смысле аутентификации пользователей. Я уже рассказывал, где он может помочь.

В целях безопасности полезно указать диапазон адресов подсети. В нашем случае мы разрешаем принимать запросы от адресов 192.168.1.1-192.168.1.254 и локального адреса 127.0.0.1.

hosts allow = 192.168.1. 127.

Некоторые адреса, не относящиеся к работе Samba, можно запретить, например:

hosts deny = 192.168.1.1

Для PDC необходим параметр security = user.

Параметр add user script определяет команду для автоматического добавления пользователей в домен.

Параметр add machine script определяет команду для добавления в домен компьютера.

Мы можем сразу предусмотреть, что на сервере будет открытая для всех папка. Для этого мы создаем секцию [BCEM] — по имени папки. Для начала желательно использовать латинские буквы для наименования папок (би-си-и-эм), но при условии использования UTF8 можно использовать и кириллицу.

Параметр public определяет возможность чтения из папки, параметр writable определяет возможность записи в папку.

Некоторые параметры, о которых я не рассказал, не имеют непосредственного отношения к организации работы в домене, но они необходимы для правильной работы сети. При необходимости вы можете легко найти описание этих параметров в справочных материалах в Интернете.

В дальнейшем можно добавить еще один параметр в секцию [global]: server string. Он позволяет заменить подпись к значку сервера в «сетевом окружении». Задать можно только строку комментария латинскими буквами, например:

server string = Our new server

В нашем случае подпись у значка будет такая: Server1(Our new server).

По умолчанию служба smb остановлена. Запустим ее:

# service smb start

Проверим:

# service smb status

Должно появиться сообщение о работе демонов smbd и nmbd.

Сразу дадим команду конфигурации, чтобы Samba запускалась автоматически при перезагрузке сервера:

# chkconfig smb on

Проверим журнал. Откроем файл /var/log/samba/log.nmbd. В нем должна появиться запись «Samba name server SERVER1 is now a local master browser for workgroup OFIS on subnet 192.168.1.2»

К слову «workgroup» надо относиться спокойно. Мы, все-таки, создаем домен. Рабочая группа отличается от домена тем, что не имеет сервера, а у нас сервер есть. С другой стороны, достичь стопроцентного соответствия домену Active Directory все равно не получится, я уже об этом рассказывал.

Укажем серверу Samba, что существует пользователь root:

# smbpasswd -a root

После этого надо ввести пароль пользователя root.

Раз мы указали в конфиг-файле группы, их надо создать:

# groupadd ourusers

# groupadd winstations

И, наконец, надо создать все папки, которые мы «придумали» в конфиг-файле:

# mkdir /home/BCEM

Конфигурация сервера закончена. Не забывайте, что после внесения изменений в файл /etc/samba/smb.conf надо перезапускать службу smb.

8.8.2. Присоединение к домену станции под управлением Windows

Допустим, нам надо присоединить к домену компьютер с Windows XP. Идем привычным путем: Мой компьютер — Свойства — Имя компьютера. Нажимаем кнопку Изменить. Устанавливаем опцию «Является членом домена (OFIS)». Если с сервером установлена связь, будут запрошены имя и пароль пользователя, имеющего право присоединять компьютеры. Вводим root и пароль. В идеале, после некоторого ожидания, получим сообщение о присоединении компьютера к домену.

Затем можно проверить доступ к общей папке: Сетевое окружение — Вся сеть — Microsoft Windows Network — Ofis — Server1 — BCEM.

Для упрощения доступа на рабочем столе можно создать ярлык домена или сетевой папки.

Какие подводные камни нас ожидают? Если в процессе присоединения к домену выдается ошибка «Не найден сетевой путь», возможно, мешает фаервол Windows. Или есть какая-то другая причина, не позволяющая установить связь с сервером.

Если появляется сообщение «Не найдено имя пользователя», значит, мы что-то напутали с пользователем root — другого у нас пока нет.

И еще. В результате манипуляций с Windows XP у нас изменится способ входа в систему — после загрузки появится окно, в котором надо будет нажать Ctrl+Alt+Del, а потом выбрать домен, ввести имя пользователя и пароль. Это обычная ситуация, когда станция работает в домене. Если мы потом захотим загрузиться в аккаунт локального пользователя, могут возникнуть проблемы. Чтобы их решить, надо загрузиться в аккаунт администратора машины, открыть Панель управления, выбрать раздел Учетные записи пользователей, найти и отключить опции, задающие вход в систему с паролем (в разных ситуациях эти элементы управления выглядят по-разному, когда — галочка, когда — ссылка). Windows настраивается или на работу в домене или на «домашний» вариант, а удовлетворить все требования одновременно она не может.

8.8.3. Присоединение к домену станции под управлением Linux

В разделе 1.5, где я рассказывал об установке клиентской версии ALT Linux, предполагалось, что компьютер должен работать в домене OFIS.LOCAL. Для настроек Samba клиентского компьютера важен параметр security = ADS.

В качестве примера приведем другую (минимальную, но тоже подходящую) конфигурацию (/etc/samba/smb.conf) для рабочей станции:

[global]

realm = OFIS.LOCAL

workgroup = OFIS

password server = 192.168.1.2

domain master = no

preferred master = no

encrypt passwords = yes

socket options = TCP_NODELAY

dns proxy = no

# Workstation

netbios name = ALEXLINUX

server string = Alexey

dos charset = CP866

unix charset = UTF8

display charset = UTF8

security = ads

# Printing

printcap name = cups

printing = cups

# Samba

log file = /var/log/samba/log.%m

max log size = 50

# Other

use sendfile = yes

restrict anonymous = no

max protocol = NT

acl compatibility = winnt

ldap ssl = No

server signing = Auto

message command = /bin/sh -c '/usr/bin/receivepopup.sh "%s" "%f" '

[homes]

comment = Home Directory for '%u'

browseable = no

read only = no

Основные настройки клиентского компьютера проще всего проверить в графической оболочке Samba (рис. 8.8)

Рис. 8.8. Настройка Samba для работы в домене

Считайте, что компьютер уже в домене. Как-то еще «присоединять» рабочую станцию под управлением Linux к домену не нужно.

Проверим доступ к общей папке сервера с рабочего стола клиента: Система — Сетевые ресурсы — Ресурсы Samba — Ofis — Server1 — BCEM.

8.8.4. Администрирование домена

Допустим, мы хотим создать в области «Ресурсы Samba» (с точки зрения того, к то работает на клиентском компьютере, а на самом деле в папке /home сервера) папку, к которой имеет доступ пользователь root. В файл /etc/samba/smb.conf на сервере надо добавить описание:

[ROOT]

comment = Only for root

path = /home/ROOT

public = no

browseable = yes

guest ok = no

writable = yes

Папку /home/ROOT надо создать в режиме root.

Теперь можно попробовать зайти в папку через сеть и убедиться, что она закрыта паролем.

А если надо создать папку с доступом для ограниченного числа сотрудников? Я думаю, что лучшим вариантом здесь тоже является задание пароля. «Привязывать» папку к именам компьютеров или группе пользователей бессмысленно уже потому, что сотрудники в офисе часто работают за чужим компьютером.

Создаем папку SELECT и задаем ее параметры, как и для предыдущей (изменяется только имя):

[SELECT]

comment = Not for all

path = /home/SELECT

public = no

browseable = yes

guest ok = no

writable = yes

Работаем, разумеется, на сервере с правами root.

Создаем нового пользователя:

# useradd select

Указываем, что у папки /home/SELECT владелец select из группы select. Группу лучше задать явно и больше в нее пользователей не добавлять (в целях безопасности). Ключ -R позволит применить эту команду и к содержимому папки (если оно уже есть).

# chown -R select:select /home/SELECT

Задаем права. Доступ к папке (чтение, запись и запуск программ) будет только у владельца:

# chmod 700 /home/SELECT

Проверим результат наших действий:

# stat /home/SELECT

Зададим пароль пользователя select:

# smbpasswd -a select

После ввода пароля должно появиться сообщение "Added user select".

Теперь со станции попробуем зайти в папку с паролем пользователя select. Если в этой папке не будут храниться архиважные документы, придумывайте короткий или удобный для запоминания пароль, а то сотрудники будут его забывать.

Зайти в эту папку сможет и пользователь root со своим паролем (ему в Linux можно все).

Если надо будет создавать подобные индивидуальные папки для сотрудников, можно легко написать скрипт на основе вышеуказанных команд, который будет автоматизировать эту работу.

Настраивать сервер Samba можно и с помощью Web-интерфейса, но заходить туда (для того чтобы что-нибудь изменить) имеет смысл после того как основная конфигурация выполнена — будут видны параметры.

Информация на всякий случай. Профили пользователей домена хранятся в папке /var/lib/samba/profiles. Учётные записи пользователей Samba хранятся в файле /etc/samba/smbpasswd.

Для доступа к сетевым ресурсам по протоколу SMB удобно использовать GNOME Commander (см. раздел 9.5) — он имеет специальную кнопку, которая запускает сканирование сети и находит домен.

WWW.TEKCT.RU | Содержание книги | Предыдущий раздел | Следующий раздел

© Алексей Гончаров, 2010

Рейтинг@Mail.ru Rambler's Top100