Инструкция по настройке Samba в качестве Active Directory
Этот документ является переводом страницы Samba AD DC HOWTO
С уважением: Айзятуллен Рамиль.
Прочитав этот документ, вы узнаете о том, как настроить Samba сервер в роли контроллера домена, совместимого с Microsoft Active Directory. Данный сервер преимущественно может использоваться клиентами Microsoft Windows, работающими в составе домена и использующими доменный вход в систему. Далее в документе будем использовать сокращение AD DC (Active Directory Domain Controller, прим. преводчика).
Видео demonstration videos доступно и наглядно демонстрирует содержание этой инструкции.
Замечания по версиям
Samba находится в постоянной разработке. Этот документ часто обновляется, чтобы отразить изменения в git репозитарии Samba. Рекомендуется следить за документом Samba 4.0 Release Planning, чтобы быть в курсе планируемых изменений.
Server Information
Для удобства примем следующую конфигурацию как пример нашего AD DC.
Installation Directory: /usr/local/samba
Server Hostname: samba
DNS Domain Name: samdom.example.com
NT4 Domain Name: samdom
IP Address: 192.168.1.2
Server Role: DC
Загрузка Samba
На сегодняшний день существует три способа для получения исходных кодов Samba, в качестве tarball
последнего стабильного релиза, или разрабатываемой версии черезgit
илиrsync
. Если вы хотите использовать вновь добавляемые возможности, и использовать самый свежий пакет Samba, тогда используйтеgit
метод для загрузки Samba. Так будет проще всего обновлять Samba, а в случае возникновения проблем проще накладывать патчи от разработчиков Samba.
В следующих примерах мы будем считать, что корневой директорией для исходных кодов на вашем сервере является папкаsamba-master
. Если же вы скачали исходники в виде tarball архива, то за корень примем папку с именем загруженного tarball архива (то естьsamba-4.0.0
дляsamba-4.0.0.tar.gz
). Также заметьте, чтоmaster
branch исходных кодов Samba 4 в текущем дереве git так же располагается в каталоге верхнего уровня.
Перед этим нам надо поставить несколько дополнительных пакетов для корректной работы.
apt-get install gcc make python-dev python2.7 git bind9 libacl1-dev libldap2-dev
Загрузка tarball
В случае использования релиза Samba 4.0, загрузите последнюю версию tarball Samba 4.0 c Samba website.
Загрузка через git
Git позволяет загрузить дерево исходных кодов через сеть по протоколамgit
илиhttp
. Лучше использоватьgit
протокол, в виду того, что при его использовании происходит сжатие передаваемых данных через сеть. Для загрузки передаваемых данных черезgit
, выполните следующую команду:
$ git clone git://git.samba.org/samba.git samba-master
В случае использования протоколаhttp
следует выполнить команду:
$ git clone http://gitweb.samba.org/samba.git samba-master
В результате выполнения команды в текущей директории появится каталогsamba-master
.
Обновление через git
Если вы уже загружали черезgit
исходный код ранее, то для обновления его до последней версии в папкеsamba-master
просто выполните команду:
$ git pull
В случае возникновения ошибки:
fatal: Unable to create '[...]/samba_master/.git/index.lock': File exists.
Выполните команду для очистки вашего дерева исходного кода.
Ошибки, возникающие при компиляции, могут быть связаны c устаревшими файлами. Вам нужно сбросить вашеgit
дерево для исправления этих ошибок. Для этого перейдите в директорию samba-master
и выполните следующую команду:
$ git clean -x -f -d
Загрузка через rsync
В случае недоступностиgit
репозитария вы можете загрузить исходные коды, используя программуrsync
, выполните команду:
$ rsync -avz samba.org::ftp/unpacked/samba_4_0_test/ samba-master
В результате выполнения команды в текущей директории создастся папкаsamba-master
, с копией нашегоgit
репозитария. Если вы планируете использоватьgit
в дальнейшем для обновления исходного кода, тогда выполните следующие команды в директорииsamba-master
:
$ cd samba-master/
$ rm .git/refs/tags/*
$ rm -r .git/refs/remotes/
$ git config remote.origin.url git://git.samba.org/samba.git
$ git config --add remote.origin.fetch +refs/tags/*:refs/tags/* (this line is optional)
$ git fetch
В случае возникновения следующей ошибки, игнорируйте ее:
error: refs/heads/master does not point to a valid object!
Изучите следующие инструкции1.5.2.1 Обновление через git для понимания работы с репозитариямиgit
.
Компиляция Samba
Запустите в вашей директорииsamba-master
следующую команду для сборки Samba:
$ cd samba-master
$ ./configure --enable-debug --enable-selftest
$ make
По умолчанию Samba устанавливается в директорию/usr/local/samba
. Для изменения пути для установки используйте ключ--prefix
в командеconfigure
.
Мы рекомендуем дополнительно использовать ключи--enable-debug --enable-selftest
в командеconfigure
. Вы сможете получить больше информации при диагностике возникающих ощибок в работе программы. А также сможете запустить команду самотестированияmake test
, для проверки корректности работы Samba На вашей платформе. Обратите внимание что два последних ключа использовать не обязательно.
Сборка с google-perftools
Для включения поддержки профилей, измените команду configure на следующую:
$ LDFLAGS="-ltcmalloc -lprofiler" ./configure.developer
(Это также сработает для CFLAGS)
Установка Samba
Для установки Samba запустите следующую команду из папкиsamba-master
:
$ make install
Для успешного выполнения команды у пользователя запустившего его должны быть права на запись в директорию установки, по умолчанию это/usr/local/samba
.
В последующих разделах этого руководства мы будем считать что вы установили Samba в директорию по умолчанию. Значит все команды будут запускаться из папок/usr/local/samba/sbin
и/usr/local/samba/bin
.
Внимательно ознакомьтесь с Release Notes для устанавливаемой версии, там может содержаться информация, еще не отраженная в данном руководстве.
Обновление
При обновлении с предыдущего релиза Samba 4.x ознакомьтесь с Release Notes для новой версии, а также с замечаниями ко всем промежуточным версиям.
Чтобы обновиться до последней версии Samba 4.x с предыдущей версии Samba 4.x сначала загрузите последнийtarball
, деревоgit
, или используйтеrsync
. При использованииgit
загрузите все деревоgit
. После получения последней версии выполните следующие команды.
$ cd samba-master
$ ./configure --enable-debug --enable-selftest
$ make
$ make install
Подготовка Samba
На этом этапе создается структура пользовательской базы данных, это необходимо в случае использования вашего сервера Samba в роли Основного контроллера домена. Если вы хотите настроить ваш сервер в роли допролнительного контроллера в существующем домене, смотрите часть 8 Использование сервера Windows как дополнительного контроллера домена в этом руководстве. Если вы хотите мигрировать существующий домен Samba 3.x в Samba 4.0 как AD DC то смотрите раздел 9 Переход с существующего домена Samba на Samba данного руководства.
В дальнейшей части руководства будем считать, что ваше DNS имяsamdom.example.com
, ваше короткое (в стиле NT4) доменное имяsamdom
, имя хостаsamba
, и IP адрес Samba сервера192.168.1.2
.
Команда подготовки запускается от пользователя, у которого есть право записи в директорию установки.
# /usr/local/samba/bin/samba-tool domain provision
Утилита подготовки запустится в интерактивном режиме. Введите имя сервера типаsamdom.example.com
, для домена (это должно быть предложено) используйтеsamdom
.
Если предыдущая команда была запущена от лица пользователя, у которого нет прав на запись в директорию установки, то вы увидите сообщение об ошибке, похожее на это:
tdb_open_ex: could not open file /usr/local/samba/private/sam.ldb.d/DC=SAMDOM,DC=EXAMPLE,DC=COM. ldb: Permission denied
Командуsamba-tool domain provision
можно запускать с ключами. Для просмотра списка ключей запустите команду с ключем--help
.
* Замечание: С 11 сентября 2012 (Samba 4.0.0 RC1) команда подготовки использует внутренний сервер Samba, если вам нравится старое поведение, то добавьте ключ--dns-backend=BIND9_DLZ
к команде подготовки Samba.
* Замечание: Если вы перезапускаете команду подготовки Samba, то сначала удалите файл конфигурации Samba/usr/local/samba/etc/smb.conf
.
* Замечание: При использовании ключа –adminpass=’password’следует помнить, что существуют требования к сложности пароля, и если получаете ошибку, то попробуйте задать более сложный пароль типа ‘Pa$$w0rd’
Запуск Samba в роли AD DC
Если вы хотите использовать Samba как рабочий сервер, то просто запуститеsamba
от пользователя root
# /usr/local/samba/sbin/samba
Таким образом Samba запустится в ‘стандартном’ режиме, подходящем для рабочего сервере. В Samba пока не включены стартовые скрипты для всех платформ, но сделать это для вас не составит труда. Примеры стартовых скриптов (для RedHat/Fedora, Debian и Ubuntu) доступны на странице Samba4/InitScript.
Если вы разработчик, то для вас более интересно запустить Samba вот так:
# /usr/local/samba/sbin/samba -i -M single
Командаsamba
будет выводить на консоль все события журнала, и запустит один процесс. Этот режим работы упростит отладкуsamba
с дебаггеромgdb
. Если вы хотите запуститьsamba
с дебаггеромgdb
, выполните команду:
# gdb --args /usr/local/samba/sbin/samba -i -M single
Остановите процессы Samba 3smbd
илиnmbd
перед запускомsamba
из Samba 4.
Будьте осторожны, запуская команды Samba, если у вас установлена также и предыдущая версия Samba. Обезопасьте себя от случайного запуска неправильной версии, добавив пути к каталогам Samba/usr/local/samba/bin
и/usr/local/samba/sbin
в переменнуюPATH
вашего профиля пользователя.
Запустив команду ниже, вы можете узнать версию Samba, таким образом вы проверите правильность пути к исполняемым файлам Samba, прописаным в переменнойPATH
:
# samba -V
Тестируем Samba в роли AD DC
Проверим версию клиентаsmbclient
, запустив следующую команду:
$ /usr/local/samba/bin/smbclient --version
Версия должна начинаться с “Version 4.0.XXXXX”.
А теперь дадим команду для просмотра общих ресурсов, доступных на нашем сервере Samba:
$ /usr/local/samba/bin/smbclient -L localhost -U%
Результат должен быть похож на то, что вы видете ниже:
Sharename Type Comment
--------- ---- -------
netlogon Disk
sysvol Disk
IPC$ IPC IPC Service (Samba 4.0.0)
Общие ресурсыnetlogon
иsysvol
это базовые шары которые должны присутствовать на сервере Active Directory.
Если вы получили ошибку, перезапустите Samba, выполнив следующие команды:
# killall samba
# rm -v -- /usr/local/samba/var/run/smbd-fileserver.conf.pid
# /usr/local/samba/sbin/samba
Необходимоподключитьсякресурсуnetlogon
, использовавпарольпользователя Administrator. Таким образом мы проверим работу системы авторизации. Выполните команду ниже:
$ smbclient //localhost/netlogon -UAdministrator%'p4$$word' -c 'ls'
Вывод команду будет похож на приведенный ниже:
Domain=[SAMDOM] OS=[Unix] Server=[Samba 4.0.0beta9-GIT-e4677e3]
. D 0 Wed Sep 12 21:00:36 2012
.. D 0 Wed Sep 12 21:02:28 2012
Настройка DNS
Настройка рабочего DNS сервера влияет на корректность работы Samba. Без правильных записей в DNS не будет работать Kerberos, и в результате окажутся неработоспособны базовые возможности Samba.
Неправильная настройка DNS может в дальнейшем отнять у вас много времени на отладку, поэтому стоит потратить немного времени и корректно настроить ваш DNS сервер.
DNS сервер
Внутрениий DNS сервер Samba
Вам не понадобится настраивать DNS сервер в дальнейшем, если при подготовке Samba в качестве основного контроллера домена вы использовали ключ--dns-backend=SAMBA_INTERNAL
или не указывали этот ключ вообще. Однако придется настроить ваш файл/etc/resolv.conf
как это описано в1.11.2 Настройка файла /etc/resolv.conf.
Для пересылки запросов не относящихся к зоне ответственности вашего DNS сервера добавьте следующую строку в ваш конфигурационный файл smb.conf:
dns forwarder = {IP-Address of the DNS you want to forward to}
Внимание:Если на вашем компьютере запущен X windows сервер, networkmanager для DNS запросов будет использовать dnsmasq. Проверьтевашлогфайлнаналичиестрокивида:
Failed to bind to 0.0.0.0:53 TCP - NT_STATUS_ADDRESS_ALREADY_ASSOCIATED
Откройтеввашемлюбимомтекстовомредактореконфигурационныйфайл/etc/NetworkManager/NetworkManager.conf
справами root, закомментируйтестрокуdns=dnsmasq
, послеэтогоперезапуститесетькомандойrestart
network-manager
Bind 9.8.0 or newer
Вы решили использовать Bind в роли DNS сервера Samba. В этом случае на шагеподготовки доменанужно было использовать ключи –dns-backend=BIND9_DLZ или –dns-backend=BIND9_FLATFILE. Это также касается случая использования других утилит Samba (команда samba-tool), например classicupgrade.
На шаге подготовки домена будет создан конфигурационный файлnamed.conf
, включите его в ваш основной конфигурационный файл Bind. По умолчанию файл конфигурации Bind находится в директории/etc/bind
. Посмотрите документацию к вашей операционной системе на предмет распольжения этого файла. Добавьтевнегоследующуюстроку:
include "/usr/local/samba/private/named.conf";
Также необходимо раскомментировать в файле конфигурации строку dlz плагина для вашей версии Bind (прим. переводчика: dlz – динамически загружаемая зона). Следуйте инструкциям в файле/usr/local/samba/private/named.conf
.
После добавления строки перезагрузите сервер Bind и проверьте системный лог на ошибки. При обнаружении ошибок запустите программу диагностики вашей конвигурации Bindnamed-checkconf
.
Bind 9.7.x
Мы очень не рекомендуем использовать bind-9.7.x, по возможности необходимо перейти на версии bind-9.8 или bind-9.9. Если же это невозможно, тогда изучите раздел1.13 Шаг 9: Настройка динамического обновления DNS через Kerberosдля получения инструкций по настройке bind-9.7.
Bind (Все версии)
В большинстве современных дистрибутивов Linux по умолчанию активированы политика безопасности ‘Apparmor’ или усиленная защита ‘SELinux’. Может быть запрещено изменение файлаnamed.conf
и создание файла зоны на шаге подготовки домена. Если в лог файле Bind сервера вы обнаружили ошибки доступа к файлам Bind, то изучите документацию на вашу операционную систему на предмет открытия доступа к этим файлам Bind (подсказка: в системах с Apparmor, таких как Ubuntu, попробуйте использовать командуaa-logprof
).
*Замечание: В Debian дистрибутивах автоматически создаваемая зона может использовать адрес127.0.1.1
в качестве IP адреса контроллера домена. Это вызовет проблему при подключении с клиентских компьютеров. Исправьте в файле/usr/local/samba/private/named.conf127.0.1.1
на реальный IP адрес вашего сервера.
*Замечание: В нестабильных версиях Debian (пакет bind9) отсутствует файл/etc/bind/named.conf.options
и это может привести к ошибке запуска Bind. Можно создать пустой файл или закоментировать соответствующую строку в файле/etc/bind/named.conf
. Для дополнительной информации смотрите ваш syslog файл.
Настройка файла /etc/resolv.conf
Для корректного распознавания всех локальных DNS запросов необходимо изменить файл/etc/resolv.conf
. Ниже приведен пример рабочего файла:
domain samdom.example.com
nameserver 192.168.1.2
*Замечание: Не забудьте исправить IP адрес на адрес вашего сервера Samba.
*Замечание: Если ваш сервер получает IP адрес динамически по DHCP, то файл/etc/resolv.conf
может изменяться автоматически. Отключите эту возможность, изучив документацию на ваш дистрибутив.
Тестирование DNS
Для проверки корректности работы DNS выполните команды указанные ниже и сравните результаты их выполнения:
$ host -t SRV _ldap._tcp.samdom.example.com.
_ldap._tcp.samdom.example.com has SRV record 0 100 389 samba.samdom.example.com.
$ host -t SRV _kerberos._udp.samdom.example.com.
_kerberos._udp.samdom.example.com has SRV record 0 100 88 samba.samdom.example.com.
$ host -t A samba.samdom.example.com.
samba.samdom.example.com has address 10.0.0.1
Результаты должны быть похожи на те, что показаны выше (за исключением вашего домена и имени сервера). В случае возникновения ошибок, тщательно изучите системный лог файл.
Настройка Kerberos
Файлом конфигурации Kerberos является файл krb.conf. Обычно этот файл располагается в директории /etc. Если его там нет, то обратитесь к документации на ваш дистрибутив. Замените существующий файл файлом из папки /usr/local/samba/share/setup/krb5.conf. Найдите и замените переменную ${REALM} на значение ключа –realm, которое ранее указали в команде настройки домена, параметр вводится вверхнем регистре:
[libdefaults]
default_realm = SAMDOM.EXAMPLE.COM
dns_lookup_realm = false
dns_lookup_kdc = true
1.12.1 Тестирование Kerberos
Проведем простой тест с помощью команды kinit:
$ Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.
Password:
* Замечание: Вводите доменное имя вверхнем регистре, вот так SAMDOM.EXAMPLE.COM.
Обратите внимание, команда kinit ничего не возвращает на консоль. Для того, чтобы проверить, получили ли мы билет (ticket) и что Kerberos работает дайте команду:
$ klist
Ticket cache:FILE:/tmp/krb5cc_1000
Default principal:Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.
Valid starting Expires Service principal
02/10/10 19:39:48 02/11/10 19:39:46krbtgt/Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.
В случае отсутствия в вашей системе команд kinit или klist обратитесь к документуSamba 4, требования к операционной системеи установите все необходимые для работы контроллера домена пакеты.
Вы можете протестировать Kerberos с клиентского компьютера, для этого на клиенте необходимо настроить файлы krb5.conf и resolve.conf, как это было описано ранее.
* Замечание: При подключении клиента через NAT, необходимо добавить следующую строку в файл krb5.conf контроллера домена:
[kdc]
check-ticket-addresses = false
* Замечание: если вы генерировали пароль администратора домена (на шаге настройки контроллера домена) и забыли его, то вы можете его сбросить, запустив от пользователя root команду “samba-tool user setpassword administrator”.
Настройка динамического обновления DNS через Kerberos
Самба может динамически обновлять файл зоны через Kerberos. Этот шаг не является обязательным, но настоятельно рекомендован. Если вы используете внутренний DNS сервер Samba, то можете расслабиться и пропустить этот шаг.
Для настройки динамического обновления DNS установите последнюю версию bind. Настоятельно рекомендуем установить хотя бы версию 9.8.0, она включает в себя набор патчей от команды разработчиков Samba. Вам будет проще настроить обновление DNS, да и работать оно будет надежнее. Ниже описано как настроить динамическое обновление на версиях bind 9.7.2 и 9.8.0, но мы настоятельно рекомендуем использовать версию 9.8.0 и более поздние, если это возможно.
Команда/usr/sbin/named -V
подскажет используемую вами версию bind. В случае если в вашей системе нетbind-9.8.0
(или более свежей версии), то рассмотрите возможность подключения сторонних репозитариев для его установки (например в Ubuntu новые версии bind доступны черезppa
(персональные архивы пакетов, прим. переводчика)).
Bind 9.8.0 или новее
Если вы используетеbind-9.8.0
(или новее), тогда добавьте в секцию options файла конфигурации bind следующее:
options {
[...]
tkey-gssapi-keytab "/usr/local/samba/private/dns.keytab";
[...]
};
Обычно этот файл находится в директории/etc/bind
, для уточнения его местоположения смотрите документацию на ваш дистрибутив.
Bind 9.7.x
Если вы используетеbind-9.7.x
(а конкретно 9.7.2 и позднее), подумайте, можно ли его обновить доbind-9.8
. Вы избавитесь от массы проблем, в противном случае действуйте по инструкции ниже.
На шаге настройки домена создастся файл конфигурации/usr/local/samba/private/named.conf.update
. Нужно будет включить его в основной файл конфигурацииnamed.conf
, для того чтобы разрешить динамическое обновление DNS зон Samba с помощью Kerberos. Необходимо также учесть, что если эта возможность не поддерживается вашей версией bind, то он (bind) не запустится.
При использованииbind-9.7.x
дополнительно потребуется установить две переменные среды:
KEYTAB_FILE="/usr/local/samba/private/dns.keytab"
KRB5_KTNAME="/usr/local/samba/private/dns.keytab"
export KEYTAB_FILE
export KRB5_KTNAME
Их необходимо поместить в файл настройки bind. В Debian дистрибутивах (включая Ubuntu) – это/etc/default/bind9
. В RedHat и SUSE – это/etc/sysconfig/named
. Обратитесь к документации на дистрибутив для уточнения размещения этих переменных. Вообще требуется одна из них,KEYTAB_FILE
илиKRB5_KTNAME
, это зависит от вашего дистрибутива, но проще установить обе. Файлdns.keytab
должен быть доступен для чтения процессу bind. Обычно это достигается выполнением команды:
$ chown named:named /usr/local/samba/private/dns.keytab
(на шаге подготовки домена права должны были выставиться автоматически).
В заключение добавьте следующие строки в разделoptions
файла конфигурации bind:
options {
[...]
tkey-gssapi-credential "DNS/server.samdom.example.com";
tkey-domain "SAMDOM.EXAMPLE.COM";
[...]
};
В первой строке укажите DNS имя сервера, на который вы устанавливаете Samba. Обычно этот файл находится в папке/etc/bind
. Точнее – в документации на дистрибутив.
Тестирование и отладка динамического обновления DNS
В процессе настройки домена создастся файл/usr/local/samba/private/dns_update_list
, содержащий список DNS записей, требующих динамического обновления. Samba будет пытаться обновлять этот список при запуске и каждые 10 минут с помощью утилитыsamba_dnsupdate
. Добавляются только новые, несуществующие DNS записи. Обратите внимание, для этого потребуется утилита nsupdate из дистрибутива bind.
Для отладки или проверки работоспособности утилиты, запустите команду от root:
/usr/local/samba/sbin/samba_dnsupdate --verbose --all-names
Эта команда вызовет обновление всех записей спискаdns_update_list
и вернет на консоль дополнительную отладочную информацию.
Настройка NTP (Опционально)
Вам потребуется ntpd версии (=>4.2.6) с поддержкой signed ntp. Версии ntpd из RHEL6 и Ubuntu < 11.04 устарели. Ntpd из Debian Squeeze поддерживает signed ntp.
1. Скачайте ntpd с ntp.org (проверьте контрольную сумму md5) и соберите его (добавьте свои дополнительные опции к ./configure, если это необходимо):
$ tar -zxvf ntp-4.x.x.tar.gz
$ cd ntp-4.x.x
$ ./configure --enable-ntp-signd
$ make
$ make install
2a. Если ваша версия ntpd уже удовлетворяет требованиям, то добавьте в файл ntp.conf следующие строки:
ntpsigndsocket/usr/local/samba/var/lib/ntp_signd/
restrict default mssntp
2b. Необходимый минимум файла ntp.conf:
server 127.127.1.0
fudge 127.127.1.0 stratum 12
ntpsigndsocket/usr/local/samba/var/lib/ntp_signd/
restrict default mssntp
2c. Подробное содержание файла ntp.conf:
server 127.127.1.0
fudge 127.127.1.0 stratum 10
server 0.pool.ntp.org iburst prefer
server 1.pool.ntp.org iburst prefer
driftfile /var/lib/ntp/ntp.drift
logfile /var/log/ntp
ntpsigndsocket/usr/local/samba/var/lib/ntp_signd/
restrict default kod nomodify notrap nopeer mssntp
restrict 127.0.0.1
restrict 0.pool.ntp.org mask 255.255.255.255 nomodify notrap nopeer noquery
restrict 1.pool.ntp.org mask 255.255.255.255 nomodify notrap nopeer noquery
Пояснение: Эта конфигурация позволяет клиентам получать время с этого ntp сервера
На компьютерах, членах домена ничего настраивать не нужно. По умолчанию они будут получать время от DC, имеющего FSMO роль PDC.
Права доступа, метки и политики SELinux
Эта инструкция написана для RedHat 6.X, но может использоваться как пособие и для других дистрибутивов.
Для того чтобы заставить работать Sambaбез отключенияSELinux, необходимо будет создать специфичные политики SELinux для Samba 4.
Для всех команд ниже используйте следующую переменную окружения:
MYREALM="samdom.example.com"
1.15.1 Bind
Установите права доступа:
chown named:named /usr/local/samba/private/dns
chgrp named /usr/local/samba/private/dns.keytab
chmod g+r /usr/local/samba/private/dns.keytab
chmod 775 /usr/local/samba/private/dns
Меткидляфайлов:
chcon -t named_conf_t /usr/local/samba/private/dns.keytab
chcon -t named_conf_t /usr/local/samba/private/named.conf.update
chcon -t named_var_run_t /usr/local/samba/private/dns
chcon -t named_var_run_t/usr/local/samba/private/dns/${MYREALM}.zone
Установкаконтекстафайлов:
semanage fcontext -a -t named_conf_t /usr/local/samba/private/dns.keytab
semanage fcontext -a -t named_conf_t /usr/local/samba/private/named.conf
semanage fcontext -a -t named_conf_t /usr/local/samba/private/named.conf.update
semanage fcontext -a -t named_var_run_t /usr/local/samba/private/dns
semanage fcontext -a -t named_var_run_t/usr/local/samba/private/dns/${MYREALM}.zone
semanage fcontext -a -t named_var_run_t/usr/local/samba/private/dns/${MYREALM}.zone.jnl
semanage fcontext -a -t ntpd_t /usr/local/samba/var/run/ntp_signd
NTP
Установка прав:
$ chgrp ntp /usr/local/samba/var/lib/ntp_signd
Политики, описаные ниже, необходимы для обеспечения синхронизации времени клиентами Windows после ввода их в домен.
$ chcon -u system_u -t ntpd_t /usr/local/samba/var/run/ntp_signd
$ chcon -u system_u -t ntpd_t/usr/local/samba/var/run/
$ chcon -t ntpd_t /usr/local/samba/var/run/ntp_signd/socket
Политикиsamba4.te
:
module samba4 1.0;
require {
type ntpd_t;
type usr_t;
type initrc_t;
class sock_file write;
class unix_stream_socket connectto;
}
#============= ntpd_t ==============
allow ntpd_t usr_t:sock_file write;
#============= ntpd_t ==============
allow ntpd_t initrc_t:unix_stream_socket connectto;
Проверка и загрузка политик:
$ checkmodule -M -m -o samba4.mod samba4.te
$ semodule_package -o samba4.pp -m samba4.mod
$ semodule -i samba4.pp
Настройка Общей Папки
На шаге подготовки домена создается очень простой файл конфигурации сервера /usr/local/samba/etc/smb.conf. Он не содержит ни одной не системной общей папки. Файловый сервер должен иметь хотя бы одну общую папку. Например:
[test]
path = /data/test
comment = Test Share
read only = no
* Замечание: Для принятия изменений в старых альфа версиях Samba 4 требовалась перезагрузка сервера.
Настройка общего принтера
Принтеры, настроеные через CUPS можно сделать доступными для всей сети. Нет необходимости устанавливать никаких специальных разрешений, так как Samba общается с CUPS через соккеты.
Базовая настройка общего принтера
1 Создайте папку для очереди печати принтера. Это папка, в которой Samba будет хранить временные файлы, относящиеся к печати документов:
mkdir /usr/local/samba/var/spool
chmod 1777 /usr/local/samba/var/spool
2 Настройте Samba для использования этой папки в файле /usr/local/samba/etc/smb.conf:
[printers]
comment = All Printers
path = /usr/local/samba/var/spool
browseable = Yes
read only = No
printable = Yes
Подготовка клиента Windows для ввода в домен Samba 4
Active Directory – это мощный инструмент администратора, позволяющий эффективно и централизовано управлять сетью компьютеров под управлением операционных систем Windows 2000, Windows XP Pro, Windows 2003, Windows Vista Business Edition, Windows 7 Professional и новее. Чтобы протестировать возможности Samba, воспользуйтесь Windows XP Pro (Windows XP Home не включает в себя необходимый функционал и не способен работать в доменной среде).
Введите клиентский компьютер в домен active directory, и вы сможете управлять им с помощью Samba 4 Active Directory или Microsoft Active Directory. Для этого потребуется:
1 Настроить на клиенте DNS.
2 настроить Дату, время и временную зону.
3 Ввести компьютер в домен.
Настройка клиента DNS в Windows
До того как настраивать DNS на клиенте проверьте доступность сервера по IP адресу с помощью утилиты Ping. Если сервер недоступен, проверьте еще раз ваш IP адрес, фаервол, таблицу маршрутизации и т.д.
После проверки сети между Samba сервером и клиентом,
1 Нажмите правую кнопку на Мое сетевое окружение,выберите Свойства
2 Нажмите правую кнопку на Локальная сеть, выберите Свойства
3 Двойной щелчок на TCP/IP
4 Выберите использовать статический DNS сервер и введите IP адрес Samba сервера в поле первичный DNS сервер
5 Нажмите ОК на всех открытых окнах
6 Откройте окно приглашения командной строки и введите команду ‘ping samdom.example.com’ ( как имя домена, которое вы указали на шаге подготовки домена.
Если DNS сервер Samba работает, и если вы корректно настроили DNS на клиенте Windows, вы получите ответы на команду ping.
Настройка даты, времени и временной зоны
Active Directory использует Kerberos как интерфейс для авторизации. Для успешной авторизации Kerberos требуется синхронизировать время на сервере и клиенте с точностью до нескольких секунд. Авторизация завершится с ошибкой, если время не синхронно.
Настройка даты и времени
1 Нажмите правую кнопку на иконке времени в системном трее и выберите настроить дату и время.
2 Установите дату и время на клиентском компьютере синхронно с сервером до минуты и нажмите OK.
Настройка временной зоны
1 Нажмите правую кнопку на иконке времени в системном трее и выберите настроить дату и время.
2 Выберите вкладку Временные зоны
3 Установите временную зону как на сервере.
Ввод клиента Windows в домен
Вот теперь ваш Windows компьютер готов к вводу его в домен,
С правами администратора домена:
1 Правой кнопкой выберите Мой компьютер -> Свойства
2 Выберите вкладку Имя компьютера и нажмите Изменить…
3 Выберите Явлеется членом ‘домена:’, введите SAMDOM.EXAMPLE.COM. В случае получения ошибки, попробуйте ввести SAMDOM.
4 На приглашение ввести имя пользователя и пароль, ВведитеAdministratorкак имя пользователя иp4$$wordкак пароль.
5 Если все правильно, то вы увидите окно об успешном вводе компьютера в домен «Добро пожаловать в домен SAMDOM.EXAMPLE.COM».
6 Нажмите в этом окне ОК и вам будет предложено перезагрузить компьютер.
7 После перезагрузки вы увидите окно приглашения входа в систему.
8 В поле «Вход в:» выберите домен SAMDOM, введитеAdministratorв поле имя пользователя иp4$$wordкак пароль.
Просмотр объектов Samba 4 Active Directory из Windows
Для Windows XP необходимо установить Windows 2003 Adminpak. После этого вам станет доступна оснастка для управления доменом. Но прежде убедитесь в том, что администраторы домена имеют права локального администратора для управления этим компьютером. (Для предоставления любому пользователю домена прав локального администратора в Windows XP PRO щелкните правой кнопкой мыши на Мой компьютер ? Управление ? Группы ? Двойной клик на Administrators ? и добавьте пользователей домена в список пользователей. При добавлении пользователей из AD будет предложено ввести имя пользователя и пароль пользователя AD).
Просмотр содержимого Samba Active Directory
1 Залогиньтесь с правами Администратора домена, запустите оснастку Active Directory Users and Computers например так Пуск ? Программы\Администрирование\ Active Directory — пользователи и компьютеры, или нажмите Пуск ? Выполнить ? dsa.msc
2 Раскройте дерево samdom.example.com для просмотра существующих объектов в домене.
Рисунок 6
Управление Samba 4 Active Directory с клиента Windows
Одной из целей Samba 4 является интеграция с Active Directory (или его замена). Если все настроено правильно, то у вас в разделе программы появится меню “Administrative Tools”. Такжеоченьхорошоесливразделе Administrative Tools естьменю “Active Directory Users and Computers”. Оченьчастооснастка “Active Directory Users and Computers” неотображаетсявпапке Administrative Tools средидругихоснасток. Это происходит из за ошибок при настройке или из-за багов в Samba. Вы можете запустить ее вручную (Пуск ? Выполнить ? dsa.msc), но врядли она будет корректно работать в этом случае.
Добавление пользователей в Samba 4 Active Directory
В Samba 4 (в отличие от Samba 3) не требуется создавать локальных пользователей Unix для вновь создаваемых пользователей Samba.
Пользователь в Samba создается командой:
/usr/local/samba/bin/samba-tool user add USERNAME
Узнать выделенный пользователю ID И SID можно можно выполнив команды:
$ /usr/local/samba/bin/wbinfo --name-to-sid USERNAME
S-1-5-21-4036476082-4153129556-3089177936-1005 SID_USER (1)
$ /usr/local/samba/bin/wbinfo --sid-to-uid S-1-5-21-4036476082-4153129556-3089177936-1005
3000011
Для изменения этого соответствия используйте утилиту ldbedit. Она предназначена для редактирования базы /usr/local/samba/private/idmap.ldb, см. пример:
$ ldbedit -e emacs -H /usr/local/samba/private/idmap.ldb objectsid=S-1-5-21-4036476082-4153129556-3089177936-1005
Замечание: Вы можете заменить редактор emacs своим редактором.
Найдите записи как в примере ниже:
# record 1
dn: CN=S-1-5-21-4036476082-4153129556-3089177936-1005
cn: S-1-5-21-4036476082-4153129556-3089177936-1005
objectClass: sidMap
objectSid: S-1-5-21-4036476082-4153129556-3089177936-1005
type: ID_TYPE_BOTH
xidNumber: 3000011
distinguishedName: CN=S-1-5-21-4036476082-4153129556-3089177936-1005
Измените атрибутxidNumber
и сохраните изменения при выходе из вашего редактора. Samba обновит соответствие между SID и пользовательским ID. Также можно обновить соответствие для группы.
Замечание: Также вы можете редактировать пользователей через оснастку Windows AD user management tools.
Настройка перемещаемых профилей
1 Нужно создать общую папку для профилей, обычно этоprofiles
. Отредактируйте ваш файл/usr/local/samba/etc/smb.conf
, добавьте в него:
[profiles]
path = /usr/local/samba/var/profiles
read only = no
2 Создайтепапку:
$ sudo mkdir /usr/local/samba/var/profiles
3 Из Windows запустите оснастку ”Active Directory Users and Computers”, выберите всех пользователей, нажмитете правую кнопку и выберите свойства.
4 На вкладке profile в окне Profile path введите путь к профилю в формате%USERNAME%
:
\\sambaserver.samdom.example.com\profiles\%USERNAME%
5 Нажмите ОК и перелогиньтесь в системе под одним из этих пользователей. Когда вы разлогинитесь в следующий раз ваш профиль синхронизируется на сервер Samba.
Замечание: Отличное пособие по настройке Перемещаемых Профилей и Перенаправлению Папок находитсяздесь
Более подробно о реализации перемещаемых профилей читайте в разделе викиImplementing Roaming Profiles
Создание подразделений (OU) в домене Samba
The Organizational Unit (OU) — этомощноесредство AD. По сути дела это тип контейнера, который позволяет перемещать пользователей или компьютеры между OU простым перетягиванием их мышью.
Можно привязать несколько разных групповых политик к OU, и тогда эти политики применятся ко всем компьютерам, пользователям, находящимся в этом подразделении (OU).
Внутри одного домена можно создать множество подразделений и дочерних к ним подразделений. Это поможет снизить вам административные издержки. Мы можем управлять всем с помощью подразделений. Реализация групповых политик будет рассмотрена в следующей главе. До создания своих подразделений посмотрите на те, что уже существуют. По умолчанию есть подразделение ‘Domain Controllers’. Обратите внимание на то что в Windows management tools для подразделений ‘users’ и ‘computers’ используются иконки отличные от иконок для подразделения ‘Domain Controllers’. Для подразделений пользователи и компьютеры мы можем назначать групповые политики.
1 Для создания контейнера с правами администратора домена нажмите Start -> Run -> dsa.msc
2 Нажмите правую кнопку на вашем домене.
3 Выберите New -> Organizational Unit
4 Введите ‘OU Demo’
5 Появится новый контейнер с именем ‘OU Demo’.
6 Вы можете переместить в этотконтейнер пользователя ‘demo’ (Не перемещайте туда других пользователей! Если не хотите проблем!).
7 Нажмите правую кнопку на ‘OU Demo’, и создайте дочернее подразделение через New -> Organizational Unit.
Обычно подразделения создаются созвучно подразделениям вашей организации. Будьте внимательны, не путайте группы и подразделения. Группы используются для ограничения прав, а контейнеры для применения однотипных настроек для всех пользователей, компьютеров в контейнере.
Применение Групповы политик (GPO) в домене Samba
Ad Samba поддерживает групповые политики, вы можете создавать их на лету. Основная идея групповых политик это:
1 Групповые политики бывают двух типов: компьютеры и пользователи.
2 Параметры касающиеся компьютеров применимы к компьютерам, тогда как пользовательские параметры к пользователям.
3 Мы привяжем групповую политику к конкретному подразделению, она будет действовать на все компьютеры пользователей этого подразделения.
4 Для добавления групповой политики нажмите правую кнопку на контейнер ‘OU Demo’ -> свойства
5 Выберите групповую политику.
6 Нажмите новая и дайте ей имя Demo’.
7 Нажмите редактировать для изменения.
8 Продемонстрируем как запретить пользователям доступ к панели управления. Откройтедерево ‘User Configuration’->’Administrative Templates’->’Control Panel’.
9 Двойнымщелчкомвыберите Prohibit access to the Control Panel’.
10 Выберите включено и нажмите ОК. Теперь все пользователи из ‘OU Demo’ не имеют доступа к панели управления.
11 Убедитесь что пользователь demo находится внутри ‘OU Demo’. ( Можете его туда переместить).
12 Перелогиньтесь под пользователем demo’.
13 Убедитесь что пользователь demo не имеет доступа к панели управления.
Замечания
Конфигурация пользователя применяется только после перелогона.
Конфигурация компьютера применяется после перезагрузки компьютера.
GPO политики паролей не читаются Samba. Для изменения политик паролей Samba используются специальные инструменты ‘samba-tool domain passwordsettings.
Если хотите узнать больше об управлении и реализации подразделений, групповых политик и Active Directory поищите в Google информацию о реализации Windows 2003 Active Directory.
Использование сервера Windows как дополнительного контроллера домена.
Если вы настроили основной контроллер домена на Samba, то вы можете присоединить к домену дополнительный контроллер, это может быть или Samba контроллер или сервер Windows.
Смотрите Ввод в домен в роли Контроллера Домена для присоединения в домен дополнительного контроллера на Samba. Инструкции на этой странице также подходят для присоединения Samba в домен Windows, т. к. они предназначены для присоединения Samba к существующему домену Samba.
Для присоединения нового контроллера домена Windows в домен Samba используйте утилиту ‘dcpromo’ на компьютере с Windows. Обратитесь к нормальной инструкции по установке dcpromo на Windows. Однако пропустите пункт установки ‘DNS server’. Вы должны решить для себя какой DNS сервер использовать. Это может быть или DNS сервер Windows или внутренний DNS сервер Samba и bind9. Одновременная работа двух DNS серверов — это сложная тема и она выходит за рамки этого руководства.
Переход с существующего домена Samba на Samba
Возможно у вас уже есть работающий домен Samba 3. Возникает вопрос о том, как мигрировать этот домен и всех его пользователей и компьютеры в новый домен Samba 4, без необходимости перемещения каждого профиля пользователя и компьютера. Для решения этой проблемы востользуйтесь утилитойsamba-tool domain classicupgrade.
Подключение дополнительных сервисов к вошему новому Active Directory
Вы закончили настройку или переход на Samba 4, возможно вы захотите подключить к вашему AD другие сервисы. Как это сделать читайте на страницеBeyond Samba.
Сообщите о вашем успехе или неудаче!
Samba быстро развивается в качестве контроллера домена репликаций. Мы хотели бы узнать от пользователей об их успехах и неудачах. Пишите о своих успехах и неудачах в наш список рассылкиАдрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.на сервереhttp://lists.samba.org.