Как быть, если и контроллер домена нужен, и сэкономить хочется? Сегодня мы представим вашему вниманию один из ответов на этот вопрос. Речь пойдёт о пакете 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-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. Этот шаг очень важен — иначе пользователям не удастся пройти аутентификацию. Делается это следующими командами:
ssmbpasswd -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 кажутся вам наиболее интересными и полезными?
Автор: RUVDS.com