Samba в роли контроллера домена Active Directory

Одной только Samba нам будет недостаточно. Для аутентификации пользователей понадобится Kerberos, о котором уже говорилось ранее, для синхронизации времени — NTP, для управления правами доступа — ACL (система, многим известная как «виндовые галочки»). Если в сети присутствуют принтеры, которыми нужно управлять удаленно, придется установить и настроить СUPS. Samba 4 содержит встроенный DNS с ограниченной функциональностью, поэтому я буду использовать именно его. Если требуется полноценный DNS-сервер, добавьте в список BIND.

Устанавливаем минимальный набор, необходимый для нашей задачи:

Пакет acl, вероятно, уже установлен у вас в системе, поскольку он входит в стандартный набор Ubuntu 16.04, 16.10 и 17.04. Весьма вероятно, что он никуда не денется и в следующих версиях.

Kerberos попросит указать область по умолчанию. Можно оставить поля пустыми, позже мы все равно получим сгенерированный автоматически конфиг Kerberos.

Настройка Samba и Kerberos.

Для формирования файла /etc/samba/smb.conf воспользуемся утилитой samba-tool. То же самое в случае необходимости можно сделать и вручную, просто вписав соответствующие строки.

Для начала переименуем стандартный smb.conf, чтобы позволить samba-tool создать для нас новый.

Базовый вариант команды для формирования конфига Samba в роли контроллера домена выглядит так:

Сюда могут быть добавлены дополнительные параметры, но о самом необходимом нас и без того спросят. Кроме того, в случае проблем вы можете сделать логи более подробными, добавив ключ -d и число от 0 до 10. Значение по умолчанию — 1.

Теперь вам нужно лишь вводить данные в ответ на соответствующие запросы. В квадратных скобках указывается значение по умолчанию, если оно подходит, достаточно просто нажать Enter.

После этого нужно будет придумать и дважды ввести пароль администратора домена.

Обратите внимание! Минимальная длина пароля — 7 символов. Если это условие не будет соблюдено или найдутся другие ошибки, придется вводить последнюю команду и все параметры заново.

На скриншоте видно, что подходящий конфигурационный файл Kerberos сгенерировался автоматически.

Вот его содержимое:

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

Параметр DNS Forwarder IP Adress — это адрес DNS-сервера, к которому будет выполнен запрос в том случае, если локальный, то есть, встроенный в Samba, сервер имен не найдет соответствия. Вы можете вписать сюда none, чтобы предотвратить разрешение доменных имен где-либо еще. При этом доступ к внешним сайтам по имени станет невозможным.

Настройка статического IP.

Динамически назначаемый IP-адрес — не лучшее решение для контроллера домена, он должен иметь статический IP. Для этого нужно знать имя сетевого интерфейса, а выяснить его можно так:

Затем открываем /etc/network/interfaces и приводим его примерно к следующему содержанию:

Перезагружаемся и смотрим, все ли у нас получилось:

Отлично, IP соответствует только что указанному в конфиге:

В качестве DNS я указал статический адрес, который был прописан для этого сервера. При разрешении имен запрос будет направлен к внутреннему DNS Samba, который мы уже настроили. И, если подходящий результат не будет найден, запрос перенаправится на 8.8.8.8, который мы указали в качестве дополнительного DNS.

Давайте проверим, все ли работает как надо:

Если google.com или любой другой сайт успешно пингуется, значит, доступ к сети вы не сломали и внешние имена благополучно разрешаются через удаленный DNS-сервер.