Как быть, если и контроллер домена нужен, и сэкономить хочется? Сегодня мы представим вашему вниманию один из ответов на этот вопрос. Речь пойдёт о пакете Samba, об Ubuntu Server, и о том, как всё это быстро и правильно настроить.

С помощью Samba можно превратить сервер, работающий под управлением ОС семейства Linux, в контроллер домена (Domain Controller, DC) Active Directory. Тот DC, который мы собираемся поднять, сможет работать как контроллер домена Windows NT4. Он подойдёт для централизованного хранения данных учётных записей пользователей и компьютеров.
Надо отметить, что мы не будем говорить о задаче создания основного контроллера домена (Primary Domain Controller, PDC) Active Directory, хотя связка Ubuntu Server/Samba, рассмотренная здесь (с добавлением OpenLDAP) вполне может играть и такую роль.
Итак, наша цель — быстро и экономично обзавестись AD DC. В этом нам поможет интерактивный инструмент
Начнём с установки необходимого ПО.
Первый шаг — установка на сервер пакетов Samba и Winbind. Сделать это можно с помощью следующей команды:
Время установки невелико, даже с учётом того, что системе может понадобиться загрузить некоторые зависимости.
После установки можно приступать к настройкам.
Перед запуском
Здесь
Далее нужно задать имя узла для сервера. Как можно судить по приведённому выше фрагменту файла
После того, как сервер перезагрузится, нужно удалить существующий файл
На рисунке ниже показаны результаты исполнения этих команд, которыми можно будет воспользоваться для того, чтобы удалить ненужные файлы. Если же подобные файлы в системе не существуют — можно сразу двигаться дальше.

Поиск файлов, которые надо удалить
Теперь пришло время воспользоваться
Выполнив команду с ключом
После того, как система получит ответы на интересующие её вопросы,
Прежде чем продолжать, позаботьтесь о регистрации пользователей в Samba. Этот шаг очень важен — иначе пользователям не удастся пройти аутентификацию. Делается это следующими командами:
Здесь
Нам надо, чтобы в качестве DNS-сервера на контроллере домена использовался он сам. Для того, чтобы это сделать, отредактируем файл
Тут же имеются настройки использования сетевым интерфейсом статического IP-адреса. Обратите внимание на то, что всё, набранное ЗАГЛАВНЫМИ буквами, надо настроить в соответствии с параметрами вашей системы.
После выполнения настроек перезапустите сетевые сервисы такой командой:
Кроме того, следует отредактировать файл
Здесь, вместо
У Kerberos имеется собственный стандартный конфигурационный файл, который нужно заменить файлом
Обратите внимание на то, что вы можете столкнуться с отсутствием в системе файла
Самое сложное позади. Теперь всё готово к тому, чтобы протестировать только что созданный контроллер домена на Samba и подключиться к нему. Быстро проверить, всё ли работает, можно с помощью такой команды:
После ввода пароля пользователя Samba, вы должны увидеть сообщение об успешном подключении.

Успешное подключение
Как видите, при проверке
Теперь контроллер домена готов принимать подключения. Однако, может оказаться так, что вам придётся отредактировать файл
Уважаемые читатели! А какие варианты взаимодействия экосистем Linux и Windows кажутся вам наиболее интересными и полезными?

С помощью Samba можно превратить сервер, работающий под управлением ОС семейства Linux, в контроллер домена (Domain Controller, DC) Active Directory. Тот DC, который мы собираемся поднять, сможет работать как контроллер домена Windows NT4. Он подойдёт для централизованного хранения данных учётных записей пользователей и компьютеров.
Надо отметить, что мы не будем говорить о задаче создания основного контроллера домена (Primary Domain Controller, PDC) Active Directory, хотя связка Ubuntu Server/Samba, рассмотренная здесь (с добавлением OpenLDAP) вполне может играть и такую роль.
Итак, наша цель — быстро и экономично обзавестись AD DC. В этом нам поможет интерактивный инструмент
samba-tool
, который предназначен для автоматизированной подготовки сервера к работе, а именно, он позволяет сформировать файл настроек /etc/smb.conf
.Начнём с установки необходимого ПО.
Установка
Первый шаг — установка на сервер пакетов Samba и Winbind. Сделать это можно с помощью следующей команды:
sudo apt install samba libpam-winbind
Время установки невелико, даже с учётом того, что системе может понадобиться загрузить некоторые зависимости.
После установки можно приступать к настройкам.
Подготовка к настройке
Перед запуском
samba-tool
нужно проверить файл /etc/hosts
, а именно — верны ли записанные в нём полное доменное имя и IP-адрес контроллера домена. Там можно найти что-то вроде этого:127.0.0.1 localhost.localdomain
IP_ADDRESS_OF_SERVER localhost
IP_ADDRESS_OF_SERVER SAMBADOM.EXAMPLE.NET
SAMBADOM
Здесь
IP_ADDRESS_OF_SERVER
— это реальный адрес сервера Samba. Проверьте, чтобы файл содержал актуальные данные.Далее нужно задать имя узла для сервера. Как можно судить по приведённому выше фрагменту файла
/etc/hosts
, в нашем случае имя узла — SAMBADOM
. Для того, чтобы его настроить, откройте файл /etc/hostname
и соответствующим образом его измените. Далее — перезагрузите сервер.После того, как сервер перезагрузится, нужно удалить существующий файл
smb.conf
, а так же — любые файлы баз данных Samba (это .tdb
и .ldb
-файлы). Для того, чтобы найти директории, содержащие эти файлы, выполните следующие команды:mbd -b | grep "CONFIGFILE"
smbd -b | egrep "LOCKDIR|STATEDIR|CACHEDIR|PRIVATE_DIR"
На рисунке ниже показаны результаты исполнения этих команд, которыми можно будет воспользоваться для того, чтобы удалить ненужные файлы. Если же подобные файлы в системе не существуют — можно сразу двигаться дальше.

Поиск файлов, которые надо удалить
Использование samba-tool
Теперь пришло время воспользоваться
samba-tool
. Мы запустим это средство в интерактивном режиме, выполнив следующую команду:sudo samba-tool domain provision --use-rfc2307 --interactive
Выполнив команду с ключом
--use-rfc2307
, мы включаем расширения NIS. Samba-tool
предложит настроить следующие параметры:Realm
. Это полное DNS-имя домена, которое настроено в файлеhosts
. Например:SAMBADOM.EXAMPLE.NET
.Domain
. Доменное имя NetBIOS сервера Samba. Обратите внимание на то, что здесь рекомендуется использовать первую часть доменного имени DNS. Например,SAMBADOM
.Server Role
. Этот параметр предназначен для указания типа серверной роли. По умолчанию здесь установлено значениеdc
, оно нас устроит.DNS backend
. Этот параметр позволяет настроить DNS-сервер. Здесь так же оставляем параметр по умолчанию —SAMBA_INTERNAL
.
DNS forwarder IP address
. Данный параметр позволяет указать IP-адрес DNS-сервера, на который будут перенаправлены запросы, которые не может разрешить сервер Samba. Если перенаправление DNS-запросов вам не нужно — ничего не вводите в ответ на данный вопрос. Подробнее об этом можно почитать здесь.Administrator password
. Тут надо указать пароль администратора домена.
После того, как система получит ответы на интересующие её вопросы,
samba-tool
настроит Samba как контроллер домена. Можете просмотреть файл /etc/samba/smb.conf
и, если нужно, внести в него изменения. Прежде чем продолжать, позаботьтесь о регистрации пользователей в Samba. Этот шаг очень важен — иначе пользователям не удастся пройти аутентификацию. Делается это следующими командами:
smbpasswd -a USERNAME
smbpasswd -e USERNAME
Здесь
USERNAME
— имя существующего пользователя, которого надо добавить к Samba. Указать пароль нужно будет лишь после ввода первой команды. Первая команда добавляет нового пользователя и запрашивает пароль для него; вторая — активирует созданный аккаунт. Настройка DNS-сервера
Нам надо, чтобы в качестве DNS-сервера на контроллере домена использовался он сам. Для того, чтобы это сделать, отредактируем файл
/etc/network/interfaces
, приведя его к такому виду:auto INTERFACE_NAME
iface INTERFACE_NAME inet static
address IP_ADDRESS_FOR_SERVER
netmask NETMASK
gateway GATEWAY
dns-nameservers IP_ADDRESS_FOR_SERVER
Тут же имеются настройки использования сетевым интерфейсом статического IP-адреса. Обратите внимание на то, что всё, набранное ЗАГЛАВНЫМИ буквами, надо настроить в соответствии с параметрами вашей системы.
После выполнения настроек перезапустите сетевые сервисы такой командой:
sudo service networking restart
Кроме того, следует отредактировать файл
/etc/resolv.conf
, внеся изменения, согласующиеся с теми, о которых было сказано выше. А именно, тут нас интересует следующая строка:nameserver IP_ADDRESS_FOR_SERVER
Здесь, вместо
IP_ADDRESS_FOR_SERVER
, нужно ввести тот же адрес, который был записан в параметр dns-nameservers
выше.Настройка Kerberos
У Kerberos имеется собственный стандартный конфигурационный файл, который нужно заменить файлом
krb5.conf
, сгенерированным в ходе подготовки Samba к работе. Для того, чтобы это сделать, выполните следующие команды:sudo mv /etc/krb5.conf /etc/krb5.conf.orig
sudo ln -sf /var/lib/samba/private/krb5.conf /etc/krb5.conf
Обратите внимание на то, что вы можете столкнуться с отсутствием в системе файла
/etc/krb5.conf
. Если это действительно так, достаточно будет выполнить только вторую из вышеприведённых команд.Тестируем и подключаемся
Самое сложное позади. Теперь всё готово к тому, чтобы протестировать только что созданный контроллер домена на Samba и подключиться к нему. Быстро проверить, всё ли работает, можно с помощью такой команды:
smbclient -L localhost -U%
После ввода пароля пользователя Samba, вы должны увидеть сообщение об успешном подключении.

Успешное подключение
Как видите, при проверке
smbclient
выведены сведения о netlogon
и sysvol
как об общих ресурсах. Они созданы по умолчанию и должны существовать на контроллере домена. Кроме того, в /var/lib/samba/sysvol/REALM/scripts
следует поместить любые скрипты входа в систему, которые понадобятся клиентам. Здесь REALM
соответствует тому параметру REALM
, который был задан в ходе работы с командой samba-tool
.Итоги
Теперь контроллер домена готов принимать подключения. Однако, может оказаться так, что вам придётся отредактировать файл
/etc/samba/smb.conf
, внести в него данные, отражающие ваши требования к серверу. Этот файл, сгенерированный samba-tool
, весьма лаконичен, хотя и является хорошей отправной точкой для тонкой настройки вашего AD DC, построенного на базе Samba и Ubuntu Server.Уважаемые читатели! А какие варианты взаимодействия экосистем Linux и Windows кажутся вам наиболее интересными и полезными?