Выполнение продвижения DC-1 до контроллера домена#

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

  • статичный IP-адрес;

  • разрешение имен через собственный DNS-сервер;

  • имя хоста в соответствии с именем сервера в домене.

Настройка сети для работы контроллера домена#

Служба NetworkManager создает дополнительные накладные расходы, поэтому на серверах ее рекомендуется отключить:

systemctl stop network-manager.service
systemctl disable network-manager.service
systemctl status network-manager.service

После отключения NetworkManager сетевые настройки нужно задавать в файлах interfaces и resolv.conf.

Файл /etc/network/interfaces используется командами ifup/ifdown для конфигурирования сетевых интерфейсов. Служба каталога тесно интегрирована со службой разрешения имен, поэтому контроллер домена выступает еще и в роли DNS-сервера. Адреса DNS-серверов через DHCP или даже вручную распространяются по всей сети, поэтому на контроллере домена настоятельно рекомендуют устанавливать статический адрес. По используемой схеме IP должен быть 10.0.1.11, для этого необходимо указать в файле interfaces следующее:

### vi /etc/network/interfaces
source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 10.0.1.11
    netmask 255.255.255.0
    gateway 10.0.1.1

Где:

  • auto eth0 — строка, начинающаяся со слова «auto», указывает интерфейс, который будет подниматься при вызове команды ifup -a. Посмотреть список доступных интерфейсов можно командой ip a, первый сетевой интерфейс VirtualBox имеет идентификатор eth0;

  • iface eth0 inet static — строка со словом «iface», начинает группу строк, отвечающих за настройку указанного интерфейса. Следующее слово «inet/inet6» указывает, какой протокол будет использоваться — IPv4 или IPv6 соответственно. Следующее слово «static/dhcp» указывает способ назначения настроек — вручную, или динамически;

  • address, netmask, gateway — задают IP-адрес, маску и шлюз по умолчанию для интерфейса, указанного в предшествующей ей строке «iface», если для него выбран способ назначения настроек «static».

В некоторых инструкциях можно встретить указание в файле interfaces таких параметров, как dns-nameservers и dns-search, но они имеют силу, только в том случае, если в системе работает служба resolvconf, которая переносит эти настройки соответствующим образом в файл /etc/resolv.conf.

Для получения развернутой информации о допустимом синтаксисе файла interfaces можно выполнить команду man interfaces.

Чтобы применить новые настройки, следует перезапустить службу Networking. Теперь можно проверить доступ к публичным серверам по IP:

systemctl restart
networking.service ping 77.88.8.8

Файл /etc/resolv.conf определяет настройки для процедур разрешения имен из библиотеки glibc, которая используется в сетевых утилитах ping, dig и т.д. В этом файле следует следует указать:

### vi /etc/resolv.conf
search ald.company.local
nameserver 127.0.0.1

Где:

  • search — строка, начинающаяся со слова «search», задает DNS-суффикс, используемый при разрешении имен. Если указан суффикс «ald.company.local», то при обращении к хосту «dc-1» будет также предпринята попытка обращения к «dc-1.ald.company.local»;

  • nameserver — строка, начинающаяся со слова «nameserver», задает адрес DNS-сервера для преобразования имен. Библиотека glibc поддерживает до трех строк nameserver, используя дополнительные сервера в качестве резервных.

Если до установки пакетов ПКД перенаправление DNS-запросов на localhost (127.0.0.1) привело бы к отказу в работе механизма разрешения имен, то сейчас этого не произойдет, т. к. в системе работает сервис bind9, который выполняет функцию рекурсивного разрешителя имен. Bind9 сам находит запрашиваемые DNS-записи, последовательно обращаясь ко всем DNS серверам, обслуживающим зону, начиная с корневой (см. файлы /etc/bind/named.conf.default-zones и /usr/share/dns/root.hints). По умолчанию bind9 может использовать механизм DNSSEC для проверки ответов, но его лучше отключить в файле ipa-options-ext.conf, т. к. технология еще не получила широкого распространения. Если установлено значение “auto” (проверять для всех зон) или “yes” (проверять только для тех зон, для которых задан публичный ключ), измените его на “no” (не проверять): dnssec-validation no.

В папке bind есть так же файл named.conf.options, но при установке FreeIPA в файле настроек указана загрузка именно ipa-options-ext.conf. Проверить, что изменения были внесены в правильном файле можно утилитой named-checkconf с ключом p:

named-checkconf -p

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

systemctl start bind9.service
nslookup ntp.org

После продвижения сервера до контроллера домена DNS-служба будет запускаться как bind9-pkcs11.service с аутентификацией в домене по keytab файлу.

Задать имя сервера#

При продвижении сервера до контроллера домена используется значение HOSTNAME, которое должно быть задано в формате имя_сервера.полное_имя_домена, поэтому для будущего контроллера с именем «dc-1» в домене «ald.company.local» следует указать «dc-1.ald.company.local». Сделать это можно редактированием файла /etc/hostname напрямую или с помощью утилиты hostnamectl. После смены имени для проверки следует также перезапустить bash:

hostnamectl set-hostname dc-1.ald.company.local
exec bash
hostnamectl
echo $HOSTNAME

Чтобы имена dc-1 и dc-1.ald.company.local всегда разрешались в localhost, в файле /etc/hosts нужно изменить содержание второй строки:

### vi /etc/hosts
127.0.0.1   localhost
127.0.1.1   dc-1 dc-1.ald.company.local

Проверить можно командой ping:

ping dc-1
ping dc-1.ald.company.local

Выполнение скрипта продвижения#

Для продвижения сервера выполнить скрипт aldpro-server-install.sh:

set +o history
/opt/rbta/aldpro/mp/bin/aldpro-server-install.sh -d ald.company.local -n dc-1 -p 'AstraLinux_172' --no-reboot
set -o history

Где:

  • -d — имя домена;

  • -n — имя сервера;

  • -p — пароль администратора домена;

  • no-reboot — отменяет перезагрузку после завершения процедуры настройки. Выполнение скрипта занимает некоторое время, поэтому мы рекомендуем выполнить перезагрузку вручную после ознакомления с журналом.

Так как команда содержит пароль в открытом виде, перед ее вызовом рекомендуется отключать запись истории команд. Если это не сделано — удалить последнюю команду из истории с помощью history -d $``(history 1) или напрямую отредактировать файл ``/root/.bash_history

Описание параметров скрипта можно получить с помощью ключа -h.

Предупреждение

Имя хоста, которое вы передаете в параметр -d должно быть таким же, какое возвращает команда hostname, иначе служба каталога не сможет получить доступ к собственному keytab файлу.

Пароль должен быть не менее 8 символов. Для использования специальных символов в пароле, например знака доллара, необходимо заключить пароль в одинарные кавычки.

Скрипт является неинтерактивным, следует определить все указанные параметры для корректного продвижения сервера.

Для применения всех настроек выполнить перезагрузку сервера:

reboot

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

login: admin
password: ********** (пароль администратора домена)

Так как в кеше SSSD службы нет учетных данных администратора, то первый вход возможен будет только при доступности Центра распределения ключей и Службы каталога. Для запуска этих служб может потребоваться чуть больше времени, чем появится окно приветствия, поэтому, если у не получилось войти на сервер под доменной учетной записью сразу, необходимо подождать пару минут и попробовать еще раз. И всегда можно войти локальным пользователем, чтобы проверить состояние этих служб через утилиту ipactl:

### ipactl status
Directory Service: RUNNING
krb5kdc Service: RUNNING
kadmin Service: RUNNING
named Service: RUNNING
httpd Service: RUNNING
ipa-custodia Service: RUNNING
smb Service: RUNNING
winbind Service: RUNNING
ipa-otpd Service: RUNNING
ipa-dnskeysyncd Service: RUNNING

Для доступа на портал управления открыть на контроллере домена браузер Mozilla Firefox, адрес портала будет установлен страницей по умолчанию, авторизация должна пройти прозрачно без запроса пароля.

URL: https://dc-1.ald.company.local

Для проверки работы портала добавить настройку глобального перенаправления, чтобы BIND9 использовал внешний резолвер, а не обходил все DNS-сервера, начиная с корневых каждый раз. На вкладке Роли и службы сайта — Служба разрешения имен — Глобальная конфигурация DNS рекомендуется установить адрес публичного DNS, например от Яндекс 77.88.8.8, с политикой перенаправления Сначала перенаправлять и нажать кнопку Сохранить в правом верхнем углу.

Отключение DNSSEC, настройка глобального перенаправления#

После установки FreeIPA необходимо отключить DNSSEC, теперь уже в файле /etc/bind/ipa-options-ext.conf, и перезапустить DNS службу.

Для завершения настройки портала добавить настройку глобального перенаправления, чтобы BIND9 использовал внешний DNS сервер, а не обходил все DNS сервера, начиная с корневых, каждый раз. На вкладке Роли и службы сайта — Служба разрешения имен — Глобальная конфигурация DNS рекомендуется установить адрес публичного DNS, например от Яндекс 77.88.8.8, с политикой перенаправления Сначала перенаправлять и нажать кнопку Сохранить в правом верхнем углу.

Настройка глобального перенаправления:

../../../_images/package_5.png

Проверить настройки DNS службы можно из командной строки:

ipa dnsconfig-show

В некоторых инструкциях для проверки DNS предлагают использовать утилиту dig с ключом +trace, но в этом случае dig вместо того, чтобы обратиться к внешнему резолверу, станет выполнять рекурсивные запросы, начиная с зоны верхнего уровня. Поэтому, если необходимо подтверждение, что при разрешении имен запросы пошли к внешнему резолверу, запустить в отдельном окне tcpdump для прослушивания пакетов, отправляемых на 53 порт:

apt-get install tcpdump
tcpdump port 53