Оригинал: Samba AD DC HOWTO
Перевел: Graf
Дата перевода: февраль 2014 г.


Samba AD DC HOWTO


Введение

Этот документ объясняет, как настроить простой Samba (4.0 +) сервер в качестве контроллера домена совместимого с Microsoft Active Directory, в основном, для использования клиентами Microsoft Windows, которые присоединены к домену Active Directory, для оказания таких услуг, как вход в домен. Если вкратце, то мы имеем в виду возможности AD DC.

При обновлении существующего AD DC, пожалуйста ознакомитесь с методом обновления вашего дистрибутива или обратитесь к HowTo - обновление исходной версии.

Версии

Samba развивается очень быстро. Этот документ постоянно обновляется с учетом последних изменений. Пожалуйста, прочтите более подробные сведения о плановых релизах Samba 4.0 и старше.

Пожалуйста, просмотрите заметки о выпуске той версии, которую вы установили. Они могут содержать важную информацию, еще не отраженную в этом документе.

Установка Samba

Различные способы установки

У вас есть несколько вариантов установки Samba:

Рекомендации и зависимоси смотрите на Samba 4/Требования к ОС

Пути

Соблюдайте осторожность при работе с командами Samba, если у вас уже установлена её предыдущая версия. Чтобы избежать случайного запуска неподходящей версии, рассмотрите вопрос о помещении каталогов /usr/local/samba/bin/ и /usr/local/samba/sbin/ в начале переменной $PATH.

Вы можете узнать версию Samba, если таковая имеется в переменной PATH, запустив команду:

# samba -V

Информация о сервере

В остальных частях этого документа, мы будем использовать следующую конфигурацию/настройку нашего AD DC:

Каталог установки:      /usr/local/samba/
Имя Сервера:            DC1
Имя Домена в DNS:       samdom.example.com (Это также будет вашим realm)
Имя Домена NT4 :        samdom
IP адрес:               192.168.1.1
Роль сервера:           DC

Подготовка Samba (настройка нового домена)

Подготовка домена создает основную базу данных и используется при настройке Samba сервера в существующем домене. Если же вы хотите установить Samba сервер в качестве дополнительного контроллера домена в существующем домене, то просмотрите HowTo - Присоединение к контроллеру домена Windows в качестве дополнительного контролера домена в домене.

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

Для подготовки нового домена, выполните:

# /usr/local/samba/bin/samba-tool domain provision --use-rfc2307 --interactive

Это позволит запустить инструмент подготовки домена в интерактивном режиме. Из-за того, что некоторые параметры нельзя настроить интерактивно, рекомендуется запустить samba-tool domain provision - -help и посмотреть на дополнительные возможности.

Опция - -use-rfc2307 позволяет Samba AD автоматически сохранять атрибуты posix. Она также создает NIS информацию в AD, что позволяет администрировать UID/GID и другие установки Unix (на вкладке «Атрибуты Unix» в ADUC). Проще включить эту функцию во время подготовки, чем настраивать её потом вручную. И даже, если она вам не нужна (пока), её включение не влияет на установку.

Важные замечания по подготовке:

  • Начиная с версии Samba 4.0.0 RC1, команда подготовки домена использует внутренний Samba DNS-сервер. Если вы хотите использовать Bind как DNS сервер, добавьте - -dns-backend=BIND9_DLZ к команде подготовки. Это решение не является окончательным. Вы можете переключать бэкэнд всегда, когда захотите.
  • Если вы повторно запустили подготовку, то нужно удалить файл /usr/local/samba/etc/smb.conf! Также, возможно, потребуется удаление файлов базы данных, если они были созданы, используя команду rm -rf /usr/local/samba/private/*
  • Для пароля администратора необходимо выполнение требований сложности пароля. Это означает, что должны использоваться по крайней мере, одна заглавная буква, одна цифра и длина должна быть не менее восьми символов. Если вы не используете достаточно сложный пароль, то сценарий подготовки завершится с ошибкой и вам придётся начать с ввода лучшего пароля (удалив /usr/local/samba/private/ и /usr/local/samba/etc/).
  • Если ваш сайт example.com, то доменом вашей AD должен быть его поддомен, такой как samdom.example.com (или ad.example.com, corp.example.com). Избегайте внутреннего использования example.com.

Classicupgrade (перенос домена в стиле Samba NT4 на AD)

Если вы планируете перенести существующий домен Samba NT4 на Samba AD прочтите Classicupgrade HowTo.

Запускаем Samba AD DC

Если у вас запущены процессы smbd, nmbd или winbindd от предыдущей установки, то они должны быть остановлены до запуска вновь установленной samba!

Если вы планируете запускать Samba в качестве рабочего сервера, то просто запустите двоичный файл от пользователя root.

# /usr/local/samba/sbin/samba

В этом случае Samba запустится в «стандартном» режиме, который подходит для использования в большинстве случаях. В Samba еще не включены init-сценарии для каждой платформы, но сделать это для вашей платформы не трудно. Есть несколько примеров скриптов на странице Samba4 Init-Script

Если вы работаете с 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 AD DC

Сначала проверьте свою версию smbclient, выполнив следующую команду:

$ /usr/local/samba/bin/smbclient --version

Что должно показать вам версию, начиная с «Version 4.X».

Теперь запустите команду, чтобы перечислить доступные ресурсы на вашем Samba сервере:

$ /usr/local/samba/bin/smbclient -L localhost -U%

       Sharename       Type      Comment
       ---------       ----      -------
       netlogon        Disk
       sysvol          Disk
       IPC$            IPC       IPC Service (Samba 4.x.y)

Вывод команды должен быть аналогичен тому, что показан. netlogon и sysvol являются основными ресурсами необходимыми для операций сервера Active Directory и создаются в smb.conf во время подготовки/обновления.

Если команда не выполняется, перезапустите samba:

# killall samba
# /usr/local/samba/sbin/samba

Для проверки работоспособности аутентификации, вы должны попытаться подключиться к ресурсу netlogon с помощью пароля администратора, который вы установили ранее. Вывод команды должен быть похож на тот, что показан ниже:

$ smbclient //localhost/netlogon -UAdministrator -c 'ls'

Domain=[SAMDOM] OS=[Unix] Server=[Samba 4.x.y]
  .                                   D        0  Tue Dec 11 20:00:00 2012
  ..                                  D        0  Tue Dec 11 20:00:00 2012

Настройка DNS

Настройка рабочего DNS имеет важное значение для правильной работы Samba и AD. Без правильных DNS-записей не будет работать Kerberos, а это означает, что и многие из основных функций также не будут работать. Стоит потратить немного времени на то, чтобы правильно настроить ваш DNS, чем потом заниматься отладкой проблем, вызванных неправильно настроенным DNS, которая может занять много времени. Для управлением DNS-записями на Windows, можно использовать DNS MMC или на Linux samba-tool. Для получения более подробной информации прочтите Администрирование DNS.

DNS Бэкэнды

Для получения дополнительной информации о поддерживаемых DNS бэкэндах и получении помощи, которая лучше всего вам подойдет, перейдите на страницу DNS.

Внутренний Samba DNS Сервер

По умолчанию Samba использует внутренний DNS и дополнительная настройка не требуется. Если вы хотите чтобы внутренний сервер DNS перенаправлял запросы и не нес ответственности за них, то просто добавьте следующую строку

dns forwarder = {IP-адрес DNS сервера которому вы хотите перенаправить запросы}

в ваш smb.conf и перезапустите Samba.

Чтобы запустить внутренний DNS, порт 53 udp/tcp не должен использоваться другой программой (например, другим DNS сервером, Dnsmasq и т.д.). Если Samba не может связаться с портом 53, то вы увидите ошибки в лог-файле samba:

Failed to bind to 0.0.0.0:53 TCP - NT_STATUS_ADDRESS_ALREADY_ASSOCIATED

Чтобы проверить, какая программа прослушивает порт 53, запустите от имени root:

# netstat -tunpe | grep ":53"

Она должна возвращать только процессы samba, связанные с этим портом.
Более подробную информацию об устранении неполадок можно найти на странице Samba и устранение неисправностей.

BIND как DNS-бэкэнд

Если, во время подготовки, вы выбрали BIND9_DLZ, то для получения инструкций по установке, прочтите HowTo - Bind как DNS бэкэнд. Там вы найдете много информации о том, как установить и настроить Bind в целом и как настроить его с Samba AD. Если вы подготовили DC с внутренним DNS, то можно переключиться в BIND в любое время, при необходимости.

Настройка /etc/resolv.conf

Для правильного разрешения всех локальных запросов DNS, мы должны изменить файл /etc/resolv.conf. Следующего примера должно быть достаточно для обработки DNS запросов должным образом (не забудьте поменять имя домена и IP-адрес на свой):

domain samdom.example.com
nameserver 192.168.1.1
Если ваш сервер настроен на получение своей IP конфигурации с помощью DHCP, то файл /etc/resolv.conf может автоматически обновляться. Обратитесь к документации вашего дистрибутива для остановки/изменения такого поведения. Кстати, DHCP на контроллере домена не рекомендуется.

Тестирование 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 192.168.1.1

Все полученные ответы должны быть похожи на вышеуказанные (с учетом вашего IP, имени домена и имени хоста). Если вы получаете ошибки, то внимательно проверьте системные журналы, чтобы найти проблему.

Настройка Kerberos

Настройка Kerberos осуществляется в файле krb5.conf. Этот файл, как правило, расположен в каталоге /etc, пожалуйста, обратитесь к документации дистрибутива для выяснения местоположения этого файла в вашей системе. Замените существующий файл, образцом созданным во время подготовки домена в /usr/local/samba/share/setup/krb5.conf. По умолчанию он содержит следующие строки:

[libdefaults]
        default_realm = ${REALM}
        dns_lookup_realm = false
        dns_lookup_kdc = true
Если вы забыли свой realm, запустите
samba-tool testparm --suppress-prompt | grep realm

чтобы найти его.

Тестирование Kerberos

Самый простой тест, это использование команды kinit следующим образом:

$ kinit administrator@SAMDOM.EXAMPLE.COM 
Password:
Вы должны указать realm домена заглавными буквами!
В зависимости от вашего дистрибутива, kinit может просто вернуть вас обратно в командную строку, однако, некоторые дистрибутивы могут вернуть что-то вроде предупреждения: ваш пароль истекает через Х дней …

Чтобы убедиться, что Kerberos работает и вы получили билет, выполните следующую команду:

$ klist
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: administrator@SAMDOM.EXAMPLE.COM
 
Valid starting     Expires            Service principal
02/10/13 19:39:48  02/11/13 19:39:46  krbtgt/SAMDOM.EXAMPLE.COM@SAMDOM.EXAMPLE.COM

Если kinit или klist не существуют в вашей системе, обратитесь к Samba4-Требования к ОС (En) или Samba4-Требования к ОС (Rus) для прочтения того, как установить необходимые пакеты.

Вы также можете проверить Kerberos на удаленном клиенте, но сначала вы должны настроить krb5.conf и resolve.conf клиента так, как было показано выше.

Если клиент расположен за NAT, то вы должны добавить следующее в krb5.conf на контроллере домена:
 
[kdc] 
       check-ticket-addresses = false 
Если вы забыли или не сохранили пароль который был сгенерирован во время подготовки домена, то как root вы можете использовать «samba-tool user setpassword administrator» для его сброса.

Настройка NTP (необязательно, но настоятельно рекомендуется)

Active Directory требует синхронизации точного времени между клиентами и контролером(ами) домена(ов). Настоятельно рекомендуется запустить NTP или любую другую форму синхронизации. На странице настройки NTP показывается полный процесс настройки NTP, включая политику SELinux.

Дополнительная информация

Samba Wiki предоставляет много полезной дополнительной документации для администрирования вашего DC (резервное копирование и восстановление (EN) (RU) , установка и настройка совместного доступа к файлам и т.д.), для ежедневной работы ( настройка клиента windows в AD, управление Samba AD из windows, и т.д.) или проверка подлинности с помощью AD другими службами.

Некоторые мысли о SELinux и разрешениях управления доступом, которые могут помешать войти пользователям AD, находятся на странице параметры управления доступом в Samba AD DC.

Обратитесь к странице документации пользователя Samba Wiki за дополнительными HOWTO, руководствами и информацией.

Сообщите о ваших успехах/неудачах!

Samba, как модель контроллера домена, по-прежнему быстро развивается. Мы хотели бы услышать от пользователей о своих успехах и неудачах. Мы рекомендуем Вам сообщать о ваших успехах и неудачах на samba-technical или список рассылки на http://lists.samba.org.

Навигация
Печать/экспорт
QR Code
QR Code wiki:articles:samba4_ht (generated for current page)