Счетчик

Поисковый анализ сайта
яндекс.ћетрика
Cервер и сайт запущен 2011.02.01 на Debian

 Инструкция по настройке 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). Также заметьте, чтоmasterbranch исходных кодов 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 сервер

Samba4dnsclient

5 Нажмите ОК на всех открытых окнах

6 Откройте окно приглашения командной строки и введите команду ‘ping samdom.example.com’ ( как имя домена, которое вы указали на шаге подготовки домена.

Если DNS сервер Samba работает, и если вы корректно настроили DNS на клиенте Windows, вы получите ответы на команду ping.

 

Настройка даты, времени и временной зоны

Active Directory использует Kerberos как интерфейс для авторизации. Для успешной авторизации Kerberos требуется синхронизировать время на сервере и клиенте с точностью до нескольких секунд. Авторизация завершится с ошибкой, если время не синхронно.

 

Настройка даты и времени

1 Нажмите правую кнопку на иконке времени в системном трее и выберите настроить дату и время.

2 Установите дату и время на клиентском компьютере синхронно с сервером до минуты и нажмите OK.

 

Samba4time

Настройка временной зоны

1 Нажмите правую кнопку на иконке времени в системном трее и выберите настроить дату и время.

2 Выберите вкладку Временные зоны

3 Установите временную зону как на сервере.

 

Samba4timezone

Ввод клиента Windows в домен

Вот теперь ваш Windows компьютер готов к вводу его в домен,

С правами администратора домена:

1 Правой кнопкой выберите Мой компьютер -> Свойства

2 Выберите вкладку Имя компьютера и нажмите Изменить…

3 Выберите Явлеется членом ‘домена:’, введите SAMDOM.EXAMPLE.COM. В случае получения ошибки, попробуйте ввести SAMDOM.

 

Samba4joindomain

 

4 На приглашение ввести имя пользователя и пароль, ВведитеAdministratorкак имя пользователя иp4$$wordкак пароль.

5 Если все правильно, то вы увидите окно об успешном вводе компьютера в домен «Добро пожаловать в домен SAMDOM.EXAMPLE.COM».

6 Нажмите в этом окне ОК и вам будет предложено перезагрузить компьютер.

7 После перезагрузки вы увидите окно приглашения входа в систему.

8 В поле «Вход в:» выберите домен SAMDOM, введитеAdministratorв поле имя пользователя иp4$$wordкак пароль.

 

Samba4logindomain

Просмотр объектов 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.

Добавить комментарий


Защитный код
Обновить