Содержание
Оригинал: 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 самостоятельно.
- установите при помощи дистрибутивного менеджера пакетов.
- установите пакет с SerNet Enterprise 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
Если вы планируете запускать 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
Тестирование 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
samba-tool testparm --suppress-prompt | grep realm
чтобы найти его.
Тестирование Kerberos
Самый простой тест, это использование команды kinit следующим образом:
$ kinit administrator@SAMDOM.EXAMPLE.COM Password:
Чтобы убедиться, что 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 клиента так, как было показано выше.
[kdc] check-ticket-addresses = false
Настройка 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.