Модуль 2. Развертывание ALD Pro

Введение

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

При установке продукта мы затрагиваем много вопросов по администрированию Astra Linux, которые уже рассматривали в первой части курса, но мы постарались привести в этом модуле небольшие емкие пояснения, чтобы он мог служить кратким руководством (Quick Start Guide) для тех системных администраторов, кому доведется знакомиться с учебным курсом, начиная именно с этого модуля, как точки входа.

Подготовка виртуальной среды для прохождения этого курса

Описания тестового стенда

В рамках курса мы установим пару контроллеров домена и несколько подсистем, в том числе рабочих станций. Все виртуальные машины будут работать в одной натированной сети 10.0.1.0/24, см. рис. 162.

../_images/aldpro_mod2_image4.png

рис. 162 Схема тестового стенда ALD Pro

В качестве доменного имени возьмем значение ald.mycompany.lan в соответствии с рекомендациями из предыдущего модуля, см. Рекомендации по именованию домена.

Для упрощения развертывания тестового стенда в ходе установки первого контроллера мы сделаем копию виртуальной машины и будем использовать ее в качестве шаблона для установки остальных подсистем и рабочих станций, поэтому на всех хостах у нас будет операционная система с максимальным уровнем защищенности «Смоленск» и динамическими дисками на 50 ГБ, хотя для клиентов ALD Pro уровень защищенности не имеет значения.

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

Минимальные требования для тестовой среды

Тестовый стенд будет работать без реальной нагрузки, поэтому мы можем существенно снизить минимальные требования к производительности виртуальных машин, но при планировании ресурсов реальной инфраструктуры ориентируйтесь, пожалуйста, на рекомендации, которые были изложены ранее, см. Модуль 1. Система ALD Pro и ее компоненты, раздел Минимальные требования к инфраструктуре для развертывания ALD Pro.

табл. 14 Минимальные требования по ресурсам для выполнения практических заданий

Компонент системы

Ядер CPU

RAM

SSD

Кол-во

Контроллер домена

2

4 ГБ

50 ГБ

1 шт.

Резервный контроллер домена

2

4 ГБ

50 ГБ

1 шт.

Подсистема «Репозиторий ПО»

1

2 ГБ

50 ГБ

1 шт.

Подсистема «Общий доступ к файлам»

1

2 ГБ

50 ГБ

1 шт.

Подсистема «Служба печати»

1

2 ГБ

50 ГБ

1 шт.

Подсистема «Мониторинг»

1

2 ГБ

50 ГБ

1 шт.

Подсистема «Аудит»

1

2 ГБ

50 ГБ

1 шт.

Клиентские машины

1

2 ГБ

50 ГБ

2 шт.

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

  • CPU: 8 ядер.

  • RAM: 16 ГБ.

  • SSD: 150 ГБ (желательно, чтобы диск был SSD, т.к. производительность работы контроллеров домена сильно зависит от скорости дисковой подсистемы).

Настройка натированной сети

Взаимодействие между хостами в домене осуществляется через компьютерную сеть TCP/IP по протоколам KRB5, DNS, LDAP(S), RPC, HTTP(S), NTP, SMB и многим другим. В рамках курса мы будем устанавливать все виртуальные машины в одной общей натированной сети VirtualBox, для создания которой нужно выполнить следующие действия:

  • Открыть менеджер сети из меню Файл ‣ Инструменты.

  • Перейти на вкладку Сеть NAT и нажать кнопку Создать.

  • В настройках сети задать следующие параметры:

    • Имя сети: Сеть - Стенд ALD Pro 2.4.0.

    • CIDR сети (диапазон адресов): 10.0.1.0/24.

    • Поддержка DHCP: выключить, т.к. IP-адреса на хостах стенда будем настраивать вручную, см. рис. 163.

../_images/aldpro_mod2_image5.png

рис. 163 Создание сети NAT

В натированной сети средствами VirtualBox будет создан шлюз, через который виртуальные машины смогут выходить в Интернет. Адресом шлюза будет первый IP-адрес сети 10.0.1.1.

Примечание

Учитывая, что все хосты будут находиться в одной сети, они смогут взаимодействовать друг с другом без каких-либо ограничений, но в реальной жизни компьютерную сеть предприятия обычно нарезают на множество сегментов, взаимодействие между которыми ограничивают правилами межсетевого экрана для повышения безопасности в соответствии с концепцией нулевого доверия (Zero Trust). Чтобы правильно настроить сетевое оборудование, ознакомьтесь с разделом Правила межсетевого экрана.

Развертывание первого контроллера домена

Подготовка виртуальной машины

Создание виртуальной машины

В окне VirtualBox Manager выполните команду Машина ‣ Создать и укажите следующие параметры:

  • Имя: dc-1.ald.company.lan - Стенд ALD Pro 2.4.0.

  • Папка машины: по умолчанию.

  • Тип: Linux.

  • Версия: Other Linux (64-bit).

  • Объем памяти: 4096 МБ.

  • Жесткий диск: Создать новый виртуальный жесткий диск.

  • Тип файла: VDI (VirtualBox Disk Image).

  • Формат хранения: Динамический виртуальный жесткий диск.

  • Путь: по умолчанию.

  • Размер: 50 ГБ.

После создания виртуальной машины в ее настройках задайте следующие параметры:

  • На вкладке Система ‣ Процессор укажите 4 ЦП для ускорения установки ОС, далее можно уменьшить этот параметр до 2 ЦП.

  • На вкладке Система ‣ Ускорение укажите интерфейс паравиртуализации KVM.

  • На вкладке Носители для компакт-диска укажите установочный файл installation-1.7.6.11-26.08.24_17.26.iso.

  • На вкладке Сеть выберите тип подключения Сеть NAT и имя Сеть - Стенд ALD Pro 2.4.0, см. рис. 164.

../_images/aldpro_mod2_image7.png

рис. 164 Настройки сети VM

Примечание

Для установки операционной системы необходимо будет загрузить образ диска ALSE версии 1.7.6 из официального репозитория https://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.6/iso/installation-1.7.6.11-26.08.24_17.26.iso

Мы не рекомендуем загружать ISO-образ через торрент-сети или сайты в Интернете, т.к. такие файлы могут быть изменены злоумышленниками и содержать вредоносное программное обеспечение. Для обеспечения безопасности используйте только официальный источник dl.astralinux.ru или ссылку из личного кабинет Астра.

Установка операционной системы

Загрузите виртуальную машину и установите операционную систему с графическим окружением и максимальным уровнем защищенности «Смоленск»:

  • Именем компьютера оставьте astra по умолчанию.

  • Локальным администратором укажите пользователя localadmin.

  • В качестве пароля локального администратора установите значение Pa$$w0rd.

  • Настройку сети пропустите.

  • При разметке диска выберите пункт Авто – использовать весь диск и настроить LVM (потребуется в будущем при обновлении ОС до версии ALSE 1.8+) и схему разметки Все файлы в одном разделе.

  • Версию ядра оставьте 6.1-generic по умолчанию, варианты hardened (с усиленной самозащитой) и lowlatency (с увеличенной до 1000 Гц частотой переключения задач) продуктом ALD Pro не поддерживаются.

  • Из пакетов программ по умолчанию можно исключить, например, Средства работы с графикой, но обязательно оставьте Офисные приложения, так как в дальнейшем нам потребуется LibreOffice для просмотра CSV-файлов в табличном виде. Добавьте также пакет Средство удаленного подключения SSH, если вы хотите подключаться к компьютеру удаленно.

  • При выборе дополнительных параметров укажите уровень защищенности Смоленск и оставьте включенными флажки Мандатный контроль целостности и Мандатное управление доступа. В тестовых средах для удобства работы можно отключить флажок Запрос пароля для команды sudo.

  • При настройке GRUB используйте тот же пароль Pa$$w0rd.

Для получения дополнительной информации об установке системы см. Модуль 2. Установка ОС Astra Linux.

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

cat /etc/astra/build_version
sudo astra-modeswitch getname

Результат выполнения команд выделен цветом:

localadmin@astra:~$ cat /etc/astra/build_version
1.7.6.11

localadmin@astra:~$ sudo astra-modeswitch getname
[sudo] пароль для localadmin:
maximum(smolensk)

Временная настройка сетевого интерфейса

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

  • Сделайте клик правой кнопкой мыши по значку сетевого соединения в трее.

  • В контекстном меню апплета выберите пункт Параметры соединений.

  • В окне сетевых соединений двойным кликом по строке Проводное соединение 1 откройте настройки этого подключения.

  • На вкладке Параметры IPv4 укажите следующие настройки:

    • IP-адрес: 10.0.1.10.

    • Маска: 24 или 255.255.255.0.

    • Шлюз: 10.0.1.1.

    • Сервер DNS: 77.88.8.8.

../_images/aldpro_mod2_image8.png

рис. 165 Настройка сетевого интерфейса с помощью апплета Network Manager

Чтобы изменения вступили в силу, выключите и включите обратно поддержку сети в контекстном меню апплета NetworkManager.

../_images/aldpro_mod2_image9.png

рис. 166 Включение/отключение поддержки сети

Чтобы убедиться в работе сетевого стека, выполните следующие команды:

ip a show dev eth0
ping dl.astralinux.ru -c 4
../_images/aldpro_mod2_image10.png

рис. 167 Проверка работы сети

Для получения дополнительной информации по управлению сетевыми интерфейсами см. Модуль 20. Сеть и стек TCP/IP, управление сетевыми интерфейсами.

Настройка репозиториев операционной системы

Файлы программ для Linux объединяются в пакеты, а пакеты объединяются в репозитории, которые могут распространяться как в виде ISO-образов на диске, так и размещаться на веб-серверах в локальной сети или Интернет. Мы будем использовать два репозитория base и extended, поэтому напомним их назначение:

  • base – это базовый репозиторий, который объединяет репозитории main и update, а также содержит пакеты со средствами разработки, которые потребуются нам, например, для установки гостевых дополнений (gcc и linux-headers).

  • extended – содержит дополнительное программное обеспечение, которое может функционировать в среде Astra Linux.

Примечание

Следует принимать во внимание, что пакеты из репозиториев base и extended собираются из исходных кодов и для них устраняются известные уязвимости, но действие сертификатов соответствия на эти репозитории не распространяется, поэтому в продуктивной среде рекомендуется использовать только репозитории main и update.

С пакетами из репозиториев работает менеджер apt, поэтому основным файлом для хранения списка доступных репозиториев является /etc/apt/sources.list, а дополнительные списки могут находиться в файлах *.list из директории /etc/apt/sources.list.d/.

Вы можете редактировать файл /etc/apt/sources.list напрямую или запустить редактор с помощью следующей команды, чтобы воспользоваться дополнительными проверками при сохранении изменений:

sudo apt edit-sources

Для операционной системы ALSE 1.7.6.11 установите следующее содержимое файла /etc/apt/sources.list:

deb https://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.6/repository-base/ 1.7_x86-64 main contrib non-free
deb https://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.6/repository-extended/ 1.7_x86-64 main contrib non-free

В source-листах каждая строка указывает параметры подключаемого репозитория в следующем формате:

deb <путь_к_каталогу_репозитория> <код_дистрибутива> <компонент1> <компонентN>

Где:

  • deb — указывает на то, что репозиторий соответствует репозиторию бинарных файлов с предварительно скомпилированными пакетами. Для репозиториев с исходными кодами используют «deb-src».

  • uri — задает адрес репозитория. У сетевых репозиториев адрес начинается с http(s)://, адреса локальных копий репозиториев начинаются с file:/, а при добавлении репозитория с диска командой apt-cdrom add в файле появится строка cdrom:[]/.

  • код дистрибутива — дополняет uri, уточняя необходимый релиз продукта. В одном репозитории могут находиться пакеты сразу для нескольких релизов.

  • компонент — это группа пакетов, объединенная по условиям использования:

    • non-free — группа содержит пакеты, которые не соответствуют принципам свободного ПО, имеют патенты или другие юридические ограничения;

    • contrib — группа содержит пакеты, которые сами по себе соответствуют принципам свободного ПО, но зависят от пакетов из группы non-free (т. е. не могут без них работать);

    • main — группа содержит пакеты свободного ПО, которые не зависят от пакетов из групп contrib и non-free.

Информацию о пакетах репозитория менеджер apt возьмет из файлов Release или InRelease, адреса которых формируются по шаблону <uri>/dists/<код дистрибутива>/<Release или InRelease>.

Как вы помните, в адресе uri разработчики Astra Linux предлагают использовать ветку stable, которая соответствует последней версии операционной системы, но для работы с ALD Pro нужно обязательно переключиться на ветку frozen конкретной версии, чтобы гарантировать полную совместимость пакетов. Информация о поддержке продуктом ALD Pro очередных обновлений операционной системы Astra Linux и возможности обновления публикуется в release notes по продукту.

После изменения состава репозиториев следует обновить индекс доступных пакетов с помощью команды sudo apt update. Эта команда извлекает список пакетов и зависимостей, но еще не обновляет само программное обеспечение. Вот результат ее выполнения:

localadmin@astra:~$ sudo apt update
Пол:1 https://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.6/repository-base 1.7_x86-64 InRelease [5 306 B]
Пол:2 https://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.6/repository-extended 1.7_x86-64 InRelease [9 772 B]
...
Получено 6 589 kB за 1с (5 402 kB/s)
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Может быть обновлён 1 пакет. Запустите «apt list --upgradable» для показа.

Если обратить внимание на последнюю строку в выводе предыдущей команды, то вы увидите, что может быть обновлён 1 пакет, который можно посмотреть с помощью команды sudo apt list --upgradable:

localadmin@astra:~$ sudo apt list --upgradable
Вывод списка… Готово
astra-version/stable 8.1.46+v1.7.6.ext2.1 amd64 [может быть обновлён с: 8.1.43+v1.7.6.11]
N: Есть 1 дополнительная версия. Используйте «-a» для просмотра.

Если бы у нас был подключен только репозиторий base, то все пакеты имели бы последние версии и ничего обновлять не требовалось бы, но так как мы подключили еще репозиторий extended, то менеджер APT предлагает нам обновить пакет astra-version из расширенного репозитория. Установка этого пакета не приведет к каким-либо существенным изменениям в системе, просто появится man-справка на саму утилиту astra-version и еще несколько вспомогательных файлов.

Для установки обновлений в Debian и Ubuntu обычно предлагают команду sudo apt upgrade, но для системы Astra Linux использовать ее категорически запрещается, т.к. эта команда не удаляет устаревшие пакеты, даже если это требуется для обновления приложений, что может нарушить работу операционной системы. Поэтому вместо команды upgrade следует использовать команду dist-upgrade в стратегии --force-confold, т.е. при обновлении пакетов менеджер apt должен сохранять содержимое старых конфигурационных файлов, если они были изменены из скриптов установки или вручную:

sudo apt dist-upgrade -y -o Dpkg::Options::=--force-confold

Результат выполнения команды:

localadmin@astra:~$ sudo apt dist-upgrade -y -o Dpkg::Options::=--force-confold
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Расчёт обновлений… Готово
Следующие пакеты устанавливались автоматически и больше не требуются:
libbluetooth3 libmm-glib0 libndp0 libnma-common libnma0 libpkcs11-helper1 libteamdctl0 libxsettings-client0 openvpn
Для их удаления используйте «sudo apt autoremove».
Следующие пакеты будут обновлены:
astra-version
Обновлено 1 пакетов, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 8 376 B архивов.
После данной операции объём занятого дискового пространства возрастёт на 20,5 kB.
Пол:1 https://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.6/repository-extended 1.7_x86-64/main amd64 astra-version amd64 8.1.46+v1.7.6.ext2.1 [8 376 B]
Получено 8 376 B за 0с (87,3 kB/s)
(Чтение базы данных … на данный момент установлено 220649 файлов и каталогов.)
Подготовка к распаковке …/astra-version_8.1.46+v1.7.6.ext2.1_amd64.deb …
Распаковывается astra-version (8.1.46+v1.7.6.ext2.1) на замену (8.1.43+v1.7.6.11) …
Настраивается пакет astra-version (8.1.46+v1.7.6.ext2.1) …
Обрабатываются триггеры для man-db (2.8.5-2+b1) …
Обрабатываются триггеры для xserver-xorg-core (2:21.1.7-1ubuntu4astra.se28) …
update exec ids due to /usr/bin changed

Примечание

Кстати, продукт ALD Pro для обновления пакетов использует стратегию --force-confnew, то есть пакетный менеджер должен переопределять содержимое конфигурационных файлов, даже если они были изменены из скриптов установки или вручную, поэтому для корректного обновления продукта обратитесь к соответствующему разделу руководства администратора.

Чтобы упростить обновление операционной системы, разработчики Astra Linux создали специальную утилиту astra-update, которая под капотом запускает обновление с использованием правильной стратегии, и предлагает целый ряд дополнительных функций, поэтому вместо dist-upgrade вы можете запустить эту команду со следующими ключами:

sudo astra-update -A -r -T

Где:

  • Ключ -A – указывает, что обновления нужно устанавливать полностью автоматически -I, включая -e и отключая -d функции безопасности по мере необходимости.

  • Ключ -r – указывает, что установка обновлений должна быть ограничена списком репозиториев из файла /etc/apt/sources.list.

  • Ключ -T – указывает, что выполнять проверку технологического диска не требуется, т.к. подключенные репозитории содержат все необходимые пакеты.

Для получения дополнительной информации по работе с пакетами и репозиториями программного обеспечения см. Модуль 15. Управление ПО в Astra Linux.

Установка гостевых дополнений

Для возможности переноса команд в виртуальную машину через буфер обмена нам потребуется установить гостевые дополнения (guest additions). Подключите и примонтируйте диск с гостевыми дополнениями, выбрав меню Устройства ‣ Подключить образ диска Дополнений гостевой ОС:

../_images/aldpro_mod2_image11.png

рис. 168 Подключение диска с гостевыми дополнениями

Примечание

Диск с гостевыми дополнениями можно скачать по ссылке с официального сайта.

Установите VBoxLinuxAdditions следующими командами:

sudo apt install gcc make linux-headers-6.1
sudo sh /media/cdrom0/VBoxLinuxAdditions.run

Осталось в настройках машины включить двунаправленный буфер обмена и после перезагрузки системы вы сможете с помощью горячего сочетания клавиш Shift + Ins переносить в окно терминала вашей виртуальной машины текст конфигурационных файлов и команды через общий буфер обмена.

../_images/aldpro_mod2_image12.png

рис. 169 Включение двунаправленного буфера обмена

Клонирование шаблона виртуальной машины

Чтобы упростить в дальнейшем развертывание остальных подсистем и рабочих станций, сделаем копию виртуальной машины сразу после установки гостевых дополнений. Перед выполнением клонирования рекомендуется завершить работу операционной системы из меню Пуск ‣ Завершение работы ‣ Выключение или командой poweroff утилиты systemctl:

systemctl poweroff

Запустите мастер клонирования командой Машина ‣ Клонировать из окна VirtualBox. При выполнении клонирования укажите следующие параметры:

  • Имя: Шаблон - Стенд ALD Pro 2.4.0.

  • Путь: Оставьте по умолчанию.

  • Тип клонирования: Полное клонирование.

  • Цель клонирования: Состояние машины.

  • Политика MAC-адреса: Сгенерировать новые MAC-адреса всех сетевых адаптеров. Мы, конечно, не планируем загружать виртуальную машину непосредственно из шаблона, но лучше сразу сгенерировать новый MAC-адрес, чтобы полностью исключить вероятность конфликта адресов в будущем.

../_images/aldpro_mod2_image13.png

рис. 170 Клонирование шаблона виртуальной машины

Настройка сетевого интерфейса для постоянной работы

Ранее мы уже настраивали сетевой интерфейс для установки гостевых дополнений виртуальной машины, но теперь нужно выполнить настройку для постоянной работы контроллера домена.

Операционная система была установлена с графическим интерфейсом Fly, поэтому в качестве менеджера сетевых подключений по умолчанию предлагается использовать службу NetworkManager, которая отлично подходит для управления сетевыми настройками на рабочих станциях пользователей, т.к. позволяет автоматически переключаться на доступные Wi-Fi сети и устанавливать VPN-соединения, но на серверах ее использование считается излишним. Отключить службу можно следующими командами:

sudo systemctl stop NetworkManager
sudo systemctl disable NetworkManager
sudo systemctl mask NetworkManager
systemctl status NetworkManager

После выполнения последней команды status в терминале отобразится информация о том, что служба NetworkManager остановлена (inactive), и запустить ее не получится, т.к. она замаскирована (masked):

...
localadmin@astra:~@ systemctl status NetworkManager
 o NetworkManager.service
   Loaded: masked (Reason: Unit NetworkManager.service is masked.)
   Active: inactive (dead) since Mon 2024-01-15 11:49:50 MSK; 1s ago
 Main PID: 509 (code=exited, status=0/SUCCESS)
      CPU: 264ms

Теперь сетевые настройки нужно задавать вручную в файлах /etc/network/interfaces и /etc/resolv.conf. Файл interfaces определяет настройки сетевых интерфейсов для утилит ifup и ifdown, которые используются службой networking. Файл resolv.conf определяет настройки для разрешения DNS-имен.

Для настройки сетевого интерфейса вы можете открыть файл /etc/network/interfaces напрямую:

sudo nano /etc/network/interfaces

Содержимое файла после редактирования должно стать следующим (новые строки отмечены цветом):

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# Настройка eth0
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, первый сетевой интерфейс обычно имеет идентификатор eth0.

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

    На контроллерах домена настоятельно рекомендуется использовать статичные IP-адреса, потому что контроллер выступает не только в роли LDAP-сервера и центра распространения Kerberos-ключей, но и как DNS-сервер. Если же вам все-таки потребуется перенести контроллер в другую подсеть, то нужно будет поменять A-запись в прямой зоне, PTR-запись в обратной зоне, указать новый IP-адрес на всех компьютерах, где он был задан вручную, в том числе в настройках DHCP-сервера, а затем перезагрузить все хосты, которым этот IP-адрес был выдан в качестве DNS по протоколу DHCP.

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

Примечание

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

Чтобы применить новые настройки, достаточно перезапустить службу networking командой systemctl restart networking. Может потребоваться также очистить старое соединение командой ip addr flush dev <имя устройства>:

sudo ip addr flush dev eth0
sudo systemctl restart networking

Проверить работу сети можно с помощью утилиты ping:

localadmin@astra:~$ ping 77.88.8.8 -c 4
PING 77.88.8.8 (77.88.8.8) 56(84) bytes of data.
64 bytes from 77.88.8.8: icmp_seq=1 ttl=54 time=91.3 ms
64 bytes from 77.88.8.8: icmp_seq=2 ttl=54 time=91.6 ms
. . .

Для возможности обращения компьютера к публичным репозиториям по DNS-именам следует настроить файл /etc/resolv.conf для библиотеки glibc, которая используется сетевыми приложениями, в том числе утилитами ping, dig и др. В нашем случае файл уже был настроен ранее службой NetworkManager до ее удаления с сервера, поэтому содержимое файла должно быть следующим:

localadmin@astra:~$ cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 77.88.8.8

Вы можете удалить комментарий от NetworkManager и указать любой другой сервер по своему усмотрению. Корректность настройки файла /etc/resolv.conf можно проверить с помощью той же утилиты ping, обращаясь к серверу по имени:

localadmin@astra:~$ ping dl.astralinux.ru -c 4
PING dl.astralinux.ru (51.250.6.116) 56(84) bytes of data.
64 bytes from 51.250.6.116 (51.250.6.116): icmp_seq=1 ttl=52 time=31.9 ms
64 bytes from 51.250.6.116 (51.250.6.116): icmp_seq=2 ttl=52 time=27.2 ms
. . .

Примечание

Если вам потребуется установить продукт в закрытом периметре без доступа в Интернет, то вы можете воспользоваться установочным диском или создать локальный репозиторий.

Напомним еще раз, что для получения дополнительной информации по управлению сетевыми интерфейсами см. Модуль 20. Сеть и стек TCP/IP, управление сетевыми интерфейсами.

Настройка репозиториев продукта ALD Pro

Ранее мы уже настроили репозитории для операционной системы ALSE 1.7.6.11, поэтому содержимое файла /etc/apt/sources.list должно быть следующим:

deb https://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.6/repository-base/ 1.7_x86-64 main contrib non-free
deb https://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.6/repository-extended/ 1.7_x86-64 main contrib non-free

Из основного репозитория операционной системы продукт ALD Pro берет целый ряд системных компонентов, таких как FreeIPA, 389 Directory Server, SSSD и другие, но для установки программного комплекса потребуется настроить так же и собственный репозиторий продукта.

В рамках настоящего курса мы предлагаем устанавливать релиз ALD Pro 2.4.0, который рекомендован к использованию продуктивной среде, так как для него определен длительный период поддержки (Long-Term Support, LTS), что сильно уменьшает накладные расходы команд эксплуатации на своевременную установку обновлений безопасности. Но для поддержания актуальности материалов мы будем делать соответствующие уточнения по новым функциям продукта, которые стали доступны в версиях после 2.4.0.

Чтобы подключить репозиторий ALD Pro версии 2.4.0 нужно открыть еще несуществующий файл /etc/apt/sources.list.d/aldpro.list на редактирование командой:

sudo nano /etc/apt/sources.list.d/aldpro.list

И сохранить в нем следующую строку:

deb https://dl.astralinux.ru/aldpro/frozen/01/2.4.0 1.7_x86-64 main base

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

sudo apt update

Настройка имени контроллера домена

Имя хоста должно быть задано в формате полного имени FQDN (от англ. Fully Qualified Domain Name), например, dc-1.ald.company.lan. Такой подход принят в Red Hat, и он наследуется при использовании службы каталога ALD Pro на базе FreeIPA.

Для изменения имени хоста в Astra Linux мы рекомендуем использовать утилиту hostnamectl, так как после прямого редактирования файла /etc/hostname изменения вступают в силу не сразу, а только после перезагрузки.

sudo hostnamectl set-hostname dc-1.ald.company.lan

Для того, чтобы сервер всегда мог преобразовать свое имя dc-1.ald.company.lan в IP-адрес 10.0.1.11, даже при недоступности DNS-сервиса, в файл /etc/hosts нужно добавить строку, связывающую IP-адрес с именем. Вы можете указать не только полное, но и короткое имя dc-1, но первым по списку обязательно должно идти полное имя, т. к. первое значение считается каноническим именем и будет возвращаться командой hostname -f, что требуется для корректной работы скриптов автоматизации.

Еще крайне важно удалить из файла строку, связывающую имя хоста с адресом 127.0.0.1, т. к. в соответствии с настройками /etc/gai.conf адреса локальной петли имеют более высокий приоритет, а нам крайне важно, чтобы имя хоста разрешалось в IP-адрес локальной сети, а не loopback, потому что какие-то из служб в будущем могут прослушивать сетевые порты только на этом адресе.

С учетом указанных замечаний, содержимое файла /etc/hosts должно быть следующим:

127.0.0.1 localhost.localdomain localhost
10.0.1.11 dc-1.ald.company.lan dc-1

Примечание

Обратите внимание, что имя хоста нужно настроить до установки пакетов продукта, т.к. служба Rabbit MQ по завершению установки возьмет текущее имя хоста в качестве имени кластера и последующее повышение роли сервера будет завершаться ошибкой из-за несовпадения имен. В этом случае вы можете, конечно, переустановить пакет rabbitmq-server и повторить установку контроллера домена, но лучше все-таки выдержать правильную последовательность действий.

Установка пакетов контроллера домена

Теперь система готова к установке серверной части ALD Pro. Выполните следующую команду:

sudo DEBIAN_FRONTEND=noninteractive \
  apt-get install -y -q aldpro-mp aldpro-gc aldpro-syncer

Комментарии по использованным инструкциям и параметрам:

  • DEBIAN_FRONTEND — переменная окружения, которая позволяет изменить режим взаимодействия с пользователем при установке пакетов менеджером APT. Многие приложения на стадии установки уточняют необходимые настройки для последующей работы, что станет помехой для автоматического развертывания. Переключение менеджера пакетов в режим noninteractive позволяет избежать уведомлений от пактов Kerberos, OpenDNSSec и PAM.

  • \ — позволяет перенести текст длинной команды на следующую строку, чтобы исключить появление горизонтальной прокрутки в веб-версии и неправильных переносов при экспорте в PDF-формат.

  • -y — параметр позволяет автоматически ответить «Да» на все возможные вопросы в ходе установки.

  • -q — параметр позволяет скрыть сообщения о прогрессе установки, делая журнал более читаемым.

  • Устанавливаемые deb-пакеты:

    • aldpro-mp — пакет портала управления (management portal), который позволяет через зависимости установить все остальные пакеты, необходимые для работы основных функций контроллера домена ALD Pro.

    • aldpro-gc — пакет модуля глобального каталога, который необходим, если планируется использовать двусторонние доверительные отношения с лесом доменов Microsoft Active Directory. Глобальный каталог позволяет обрабатывать запросы от стандартных оснасток Microsoft Windows на поиск пользователей и групп из домена ALD Pro при назначении им прав доступа в домене MS AD.

    • aldpro-syncer — пакет модуля синхронизации, который необходим, если планируется использовать расширенные функции интеграции с доменом Microsoft Active Directory. Он позволяет получить один и тот же состав пользователей, групп и подразделений в двух доменах, синхронизируя все основные атрибуты объектов, включая пароли пользователей. Это дает возможность предоставить пользователям доступ по логину/паролю к любым информационным системам, вне зависимости от того, через контроллер какого домена информационная система проверяет аутентичность пользователей.

Прежде чем продолжить, проверьте журнал пакетного менеджера /var/log/apt/term.log на предмет ошибок. Если установка прошла корректно, то следующая команда не должна показать никаких строк:

sudo grep 'error:' /var/log/apt/term.log

Повышение роли сервера до контроллера домена

Теперь все готово для продвижения контроллера (англ. domain controller promotion) или, как обычно говорят, для повышения роли сервера до контроллера домена. В ходе этой процедуры выполняется настройка всех компонентов, чтобы сервер начал выполнять функции контроллера домена. В домене MS AD повышение роли сервера выполняется с помощью мастера настройки доменных служб или средства командной строки Adprep.exe, а в домене ALD Pro для этого предназначена утилита aldpro-server-install.

Утилита ALD Pro представляет собой неинтерактивное консольное приложение, поэтому все параметры являются обязательными. Перед вызовом утилиты рекомендуется отключать запись истории команд, так как в одном из параметров передается пароль администратора в открытом виде:

set +o history # Отключаем запись истории команд

sudo aldpro-server-install -n dc-1 -d ald.company.lan -p 'Pa$$w0rd' \
  --ip 10.0.1.11 --setup_gc --setup_syncer --no-reboot

set -o history # Включаем запись истории команд

Комментарии по использованным ключам:

  • Параметр -n (--host) — короткое имя хоста без указания полного имени домена, например, dc-1. Значение должно быть указано в нижнем регистре.

  • Параметр -d (--domain) — полное имя домена, например, ald.company.lan.

  • Параметр -p (--admin_pwd) — пароль, который нужно установить администратору домена admin и суперпользователю LDAP-каталога cn=Directory Manager. Пароль должен быть длиной не менее 8 символов, текст пароля нужно заключать в одинарные кавычки, чтобы экранировать специальные символы, включая знак доллара, используемый в bash для подстановки значений переменных.

  • Параметр --ip — IP-адрес контроллера домена, например, 10.0.1.11. Значение требуется указывать явно, так как на сервере может быть несколько сетевых интерфейсов.

  • Ключ --setup_gc — указывает, что нужно настроить установленный ранее модуль глобального каталога.

  • Ключ --setup_syncer — указывает, что нужно настроить установленный ранее модуль синхронизации.

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

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

Примечание

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

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

Для получения дополнительной информации по управлению историей см. Модуль 4. Работа с терминалом и оболочкой Bash, раздел Работа с историей команд Bash.

По завершению установки вы увидите сообщение об успешном выполнении операции:

...
------------
Succeeded: 5 (changed=5)
Failed:    0
------------
Total states run:     5
Total run time: 331.382 ms
localadmin@dc-1:~$

После повышения роли сервера до контроллера домена вы можете проверить содержимое файла /etc/resolv.conf и убедиться, что теперь DNS-запросы обрабатываются собственной службой Bind9:

cat /etc/resolv.conf
# auto-generated by IPA installer
search ald.company.lan
nameserver 127.0.0.1

Где:

  • Строка search ald.company.lan — задает DNS-суффикс, используемый при разрешении имен, поэтому при обращении к хосту по короткому имени dc-1 система будет дополнять его до полного имени dc-1.ald.company.lan.

  • Строка nameserver 127.0.0.1 — указывает, что разрешение имен должно выполняться через локальную службу ISC Bind, которая обрабатывает запросы, поступающие на 53-й порт сервера.

Контроллер домена готов к работе, осталось только перезагрузить сервер:

sudo reboot

После загрузки контроллера выберите в первом выпадающем списке значение ald.company.lan вместо Этот компьютер и войдите в систему из-под учетной записи доменного администратора admin с высоким уровнем целостности 63, который будет предложен по умолчанию:

../_images/aldpro_mod2_image20.png

рис. 171 Вход в систему под доменной учетной записью

Проверка базовых функций домена

Проверка доменных служб

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

  • Если в первом выпадающем списке формы для входа вместо имени домена ald.company.lan отображается строка Ожидание ответа домена..., то пытаться входить в систему доменным пользователем преждевременно. Подождите пару минут и попробуйте еще раз.

  • Если при входе доменного пользователя в систему вы получите ошибку «Вход не выполнен», то подождите пару минут и попробуйте войти в систему еще раз, прежде чем начинать отладку.

В случае, если вход в операционную систему доменным пользователем окажется все-таки невозможен, войдите в систему локальным администратором localadmin и проверьте в первую очередь доступность клиентской службы SSSD, которая обеспечивает работу операционной системы в составе домена:

systemctl status sssd

Результат проверки в нормальном состоянии:

localadmin@dc-1:~$ systemctl status sssd
o sssd.service - System Security Services Daemon
   Loaded: loaded (/lib/systemd/system/sssd.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2025-04-07 09:49:16 MSK; 17min ago
...

При необходимости перезапустите службу командой sudo systemctl restart sssd, повторите вход в систему доменным пользователем еще раз и проверьте новые записи в журналах /var/log/auth.log` и /var/log/messages.

Далее проверьте на сервере состояние доменных служб утилитой ipactl:

sudo ipactl status

Результат проверки в нормальном состоянии:

localadmin@dc-1:~$ sudo 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
ipa: INFO: The ipactl command was successful

Примечание

Для управления базовыми сервисами домена утилиты ipactl будет вполне достаточно, но в ALD Pro есть также и дополнительная утилита aldproctl, которая позволяет управлять состоянием собственных служб, например, модулем глобального каталога или синхронизации. С помощью этой утилиты вы можете отправлять команды в том числе и конкретным службам, для этого нужно использовать ключ --service:

sudo aldproctl status --service=globalcatalog

При необходимости перезапустите доменные службы командой sudo ipactl restart, повторите вход в систему доменным пользователем еще раз и проверьте новые записи в журналах /var/log/auth.log и /var/log/messages.

Проверка Kerberos-аутентификации

При успешном входе в систему доменным пользователем в связке ключей должен появиться TGT-билет, что можно проверить с помощью команды klist:

admin@dc-1:~$ klist
Ticket cache: KEYRING:persistent:1902000000:krb_ccache_BUoysxG
Default principal: admin@ALD.COMPANY.LAN

Valid starting       Expires              Service principal
07.04.2025 12:29:42  08.04.2025 12:01:56  krbtgt/ALD.COMPANY.LAN@ALD.COMPANY.LAN

Для уничтожения билетов используется команда kdestroy, после выполнения которой мы увидим, что в связке ключей нет больше кэша:

admin@dc-1:~$ kdestroy
admin@dc-1:~$ klist
klist: Credentials cache keyring 'persistent:1902000000:krb_ccache_BUoysxG' not found

Для запроса нового TGT-билета на доменного пользователя admin воспользуемся утилитой kinit. Как мы видим, после прохождения успешной Kerberos-аутентификации нам был выдан новый билет krbtgt/ALD.COMPANY.LAN:

admin@dc-1:~$ kinit admin
Password for admin@ALD.COMPANY.LAN: ********

admin@dc-1:~$ klist
Ticket cache: KEYRING:persistent:1902000000:krb_ccache_BUoysxG
Default principal: admin@ALD.COMPANY.LAN

Valid starting       Expires              Service principal
07.04.2025 12:31:42  08.04.2025 11:59:45  krbtgt/ALD.COMPANY.LAN@ALD.COMPANY.LAN

Проверка портала управления

Для входа на портал управления откройте на контроллере домена страницу https://dc-1.ald.company.lan в браузере Mozilla Firefox. Вы сможете войти в систему как по паролю, так и через прозрачную Kerberos-аутентификацию, если в связке ключей будет действительный TGT-билет.

../_images/aldpro_mod2_image21.png

рис. 172 Прозрачная Kerberos-аутентификация на портале

../_images/aldpro_mod2_image22.png

рис. 173 Портал управления ALD Pro после успешного входа

Если в момент прозрачной аутентификации в связке ключей не будет действительного TGT-билета, то появится сообщение «Аутентификация с Kerberos не удалась» и нужно будет сначала выполнить полную Kerberos-аутентификацию в терминале с помощью утилиты kinit, а затем повторить попытку еще раз.

После успешной прозрачной аутентификации на портале управления в связке ключей текущего пользователя появится сервисный билет на доступ к службе HTTP/dc-1.ald.company.lan.

admin@dc-1:~$ klist
Ticket cache: KEYRING:persistent:1902000000:krb_ccache_BUoysxG
Default principal: admin@ALD.COMPANY.LAN

Valid starting       Expires              Service principal
07.04.2025 12:32:23  08.04.2025 11:59:45  HTTP/dc-1.ald.company.lan@ALD.COMPANY.LAN
07.04.2025 12:31:42  08.04.2025 11:59:45  krbtgt/ALD.COMPANY.LAN@ALD.COMPANY.LAN

При повторном входе на портал, если cookie не были удалены и срок жизни предыдущей пользовательской сессии еще не истек, доступ к порталу будет предоставлен без повторной Kerberos-аутентификации, поэтому валидный TGT-билет не потребуется и сервисный билет на доступ к HTTP-службе в связке ключей не появится.

Дополнительная настройка DNS-службы

Отключение DNSSEC и запрета рекурсивных запросов

В качестве DNS-сервера на контроллере домена выступает служба BIND9 (named-pkcs11), основным конфигурационным файлом которой является /etc/bind/named.conf. Дополнительные настройки для службы каталога подключаются из файла /etc/bind/ipa-options-ext.conf с помощью параметра include. В этом файле нам нужно будет отключить проверку dnssec и разрешить рекурсивные DNS-запросы.

По умолчанию служба BIND9 для проверки ответов использует механизм DNSSEC, но его лучше отключить, т. к. технология все еще не получила широкого распространения, и ошибки в настройках зон могут приводить к невозможности разрешения имен. Для этого в файле /etc/bind/ipa-options-ext.conf параметру «dnssec-validation» нужно установить значение «no».

Еще одной особенностью настроек BIND9 по умолчанию является запрет на обработку рекурсивных DNS-запросов от клиентов из других сетей, что сделано для предотвращения DDoS-атак с DNS-усилением. Мы можем настроить доверенные сети для BIND9 в файле ipa-ext.conf или просто установить значение «any» для параметров «allow-recursion» и «allow-query-cache» в файле ipa-options-ext.conf.

Чтобы настроить BIND9 в соответствии с указанными выше рекомендациями, откройте файл /etc/bind/ipa-options-ext.conf на редактирование командой:

sudo nano /etc/bind/ipa-options-ext.conf

И приведите его содержание к следующему виду:

dnssec-validation no;
allow-recursion { any; };
allow-query-cache { any; };

Для применения изменений необходимо перезапустить DNS-службу на контроллере домена:

sudo systemctl restart bind9-pkcs11.service

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

Служба BIND9 может самостоятельно выполнять рекурсивное разрешение имен, последовательно обращаясь ко всем DNS-серверам, обслуживающим зону, начиная с корневых серверов (см. файлы /etc/bind/named.conf.default-zones и /usr/share/dns/root.hints), но этот механизм потребляет дополнительные ресурсы, поэтому для быстрого разрешения публичных DNS-имен рекомендуется использовать глобальный перенаправитель. Эту опцию можно настроить на портале управления в меню Роли и службы сайта ‣ Служба разрешения имен ‣ Глобальная конфигурация DNS.

Чтобы добавить перенаправитель, нажмите кнопку Добавить в списке глобальных перенаправителей и введите адрес DNS-сервера от Яндекс 77.88.8.8. В качестве политики перенаправления выберите «Только перенаправлять», в этом случае BIND9 будет запрашивать ответ только у перенаправителя. Если же вы укажите «Сначала перенаправлять», то в случае неуспешного обращения к серверам перенаправления BIND9 будет пататься разрешить запрос самостоятельно. По завершению редактирования настроек нажмите кнопку Сохранить, чтобы изменения вступили в силу, см. рис. 174 (1).

../_images/aldpro_mod2_image23.png

рис. 174 Глобальная конфигурация DNS

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

ipa dnsconfig-show

Результат выполнения команды:

admin@dc-1:~$ ipa dnsconfig-show
Глобальные перенаправители: 77.88.8.8
Политика перенаправления: only
Разрешить PTR-синхронизацию: FALSE
DNS-серверы IPA: dc-1.ald.company.lan

Для проверки того, как именно BIND9 выполняет разрешение имен (самостоятельно или через глобальный перенаправитель), нам потребуется какой-нибудь сниффер сетевого трафика, например, Wireshark или TCP Dump.

Установим пакет tcpdump командой sudo apt install tcpdump и запустим в отдельном окне терминала перехват всех пакетов, в которых фигурирует 53-й порт:

sudo tcpdump port 53

Осталось проверить, что будет происходить при преобразовании DNS-имени dl.astralinux.ru в IP-адрес, например, с помощью утилит host, ping, nslookup или dig:

host dl.astralinux.ru

В окне сниффера можно увидеть, что запрос был направелен на глобальный перенаправитель dns.yandex.ru, и в ответ был получен IP-адрес 130.193.50.59:

admin@dc-1:~$ sudo tcpdump port 53
...
15:36:12.154912 IP dc-1.ald.company.lan.41938 > dns.yandex.ru.domain: 5409+% [1au] PTR? 8.8.88.77.in-addr.arpa. (63)
15:36:12.160096 IP dns.yandex.ru.domain > dc-1.ald.company.lan.40646: 62590 1/0/1 A 130.193.50.59 (61)
...

Установка глобального каталога

Как уже было сказано ранее, модуль глобального каталога необходим, если планируется использовать двусторонние доверительные отношения с лесом доменов Microsoft Active Directory. Глобальный каталог позволяет обрабатывать запросы от стандартных оснасток Windows на поиск пользователей и групп из домена ALD Pro при назначении им прав доступа в домене MS AD.

Мы установили модуль глобального каталога во время продвижения контроллера домена, для этого достаточно было установить пакет aldpro-gc и добавить ключ --setup_gc при запуске утилиты aldpro-server-install. Если же вы не установили модуль глобального каталога сразу, то его можно добавить позднее на любой контроллер домена через портал управления на странице Роли и службы сайта ‣ Служба глобального каталога. Контроллер, которому будет назначена новая роль, автоматически обновит свою конфигурацию в течении получаса.

Чтобы не ждать до следующего обновления конфигурации, вы можете форсировать установку роли на сервере с помощью следующих команд:

sudo DEBIAN_FRONTEND=noninteractive apt-get install -q -y aldpro-gc
sudo aldpro-gc --action install

Но обратите внимание на следующие два тезиса:

  • Просто выполнения команды aldpro-gc --action install для установки модуля глобального каталога недостаточно и нужно обязательно назначить роль глобального каталога через портал управления, иначе при очередном обновлении конфигурации сервера модуль будет автоматически удален из системы.

  • Модуль глобального каталога можно установить также в порядке обновления командой aldpro-server-install --update с помощью ключа --setup_gc. Но такой способ не рекомендуется, т.к. установка в этом случае будет выполняться значительно дольше, и при отсутствии должной внимательности вы можете по ошибке удалить модуль синхронизации, если не укажете его ключ в команде.

Управлять службой глобального каталога можно с помощью команд start, stop, restart и status утилиты aldproctl:

admin@dc-1:~$ sudo aldproctl status --service=globalcatalog
Сервис dirsrv@GLOBAL-CATALOG: ЗАПУЩЕН

admin@dc-1:~$ sudo aldproctl restart --service=globalcatalog
Сервис dirsrv@global-catalog: ПЕРЕЗАПУЩЕН

Просмотреть записи глобального каталога можно следующим запросом:

admin@dc-1:~$ ldapsearch -QLLL -H ldap://dc-1.ald.company.lan:3268 cn
...
dn: cn=admin,cn=users,dc=ald,dc=company,dc=lan
cn: admin
...

Более подробно работу с модулем глобального каталога мы рассмотрим в модуле Модуль 9. Миграция и гибридное развертывание с MS AD.

Установка модуля синхронизации

Как уже было сказано ранее, модуль синхронизации необходим, если планируется использовать расширенные функции интеграции с доменом Microsoft Active Directory.

Он позволяет получить один и тот же состав пользователей, групп и подразделений в двух доменах, синхронизируя все основные атрибуты объектов, включая пароли пользователей. Это дает возможность предоставить пользователям доступ по логину/паролю к любым информационным системам, вне зависимости от того, через контроллер какого домена информационная система проверяет аутентичность пользователей.

Вы можете установить модуль синхронизации сразу во время продвижения контроллера домена, для этого достаточно установить пакет aldpro-syncer и добавить ключ --setup_syncer при запуске утилиты aldpro-server-install. Если вы не установили модуль синхронизации сразу, то это можно сделать в порядке обновления. Для этого сначала нужно установить необходимые deb-пакеты:

sudo DEBIAN_FRONTEND=noninteractive apt-get install -q -y aldpro-mp aldpro-syncer

Затем требуется выполнить обновление системы командой aldpro-server-install --update со всеми необходимыми ключами:

set +o history # Отключаем запись истории команд

sudo aldpro-server-install --update -n dc-1 -d ald.company.lan -p 'Pa$$w0rd' \
  --ip 10.0.1.11 --setup_syncer --no-reboot

set -o history # Включаем запись истории команд

Если на контроллере домена был установлен также модуль глобального каталога, то при обновлении сервера вам нужно будет добавить ключ --setup_gc, иначе подсистема обновления удалит этот модуль с сервера.

Присоединение компьютера к домену

Из этого раздела вы узнаете, как настроить рабочую станцию и присоединить ее к домену ALD Pro. Для упрощения развертывания стенда мы создали шаблон виртуальной машинры в процессе установки первого контроллера домена, но если у вас нет такой копии виртуальной машины, просто обратитесь к разделу Подготовка виртуальной машины выше.

Подготовка виртуальной машины

Для создания рабочей станции выберите виртуальную машину Шаблон - Стенд ALD Pro 2.4.0 и запустите мастер клонирования командой Машина ‣ Клонировать из меню VirtualBox Manager. При выполнении клонирования укажите следующие параметры:

  • Имя: pc-1.ald.company.lan - Стенд ALD Pro 2.4.0.

  • Путь: Оставьте по умолчанию.

  • Тип клонирования: Полное клонирование.

  • Цель клонирования: Состояние машины.

  • Политика MAC-адреса: Сгенерировать новые MAC-адреса всех сетевых адаптеров.

После клонирования машины оптимизируйте объем вычислительных ресурсов, изменив требуемые параметры RAM и CPU.

Для возможности работы клонированной машины в одной компьютерной сети с другими копиями нам нужно обязательно назначить машине уникальный MAC-адрес сетевого интерфейса. Мы можем сделать это как в момент клонирования машины, так и после. При использовании NetworkManager иногда может потребоваться также выбрать новое устройство в настройках сетевого подключения после загрузки операционной системы.

Однако настройка машины на этом не заканчивается. Как вы знаете, в Windows нужно обязательно выполнить еще процедуру подготовки sysprep (англ. system preparation — подготовка системы), в ходе которой из системы удаляются все сведения, относящиеся к конкретному экземпляру, включая идентификатор безопасности компьютера (SID). Для систем Linux это действие не является обязательным, но лучше все-таки удалить некоторые данные, относящиеся к конкретному экземпляру операционной системы.

Сгенерируем новый идентификатор машины, чтобы при необходимости использования динамической настройки от DHCP она получала собственный IP-адрес:

sudo rm -fv /etc/machine-id
sudo rm -fv /var/lib/dbus/machine-id
sudo dbus-uuidgen --ensure
sudo systemd-machine-id-setup

Сгенерируем новые ssh-ключи, чтобы у всех компьютеров они были разными:

sudo rm -fv /etc/ssh/ssh_host_*
sudo ssh-keygen -A -v

Настройка сетевого интерфейса для постоянной работы

Для управления сетевыми подключениями на рабочих станциях рекомендуется использовать службу NetworkManager, т.к. она позволяет автоматически переключаться на доступные Wi-Fi сети и устанавливать VPN-соединения. Откройте настройки сети в апплете NetworkManager и на вкладке «Параметры IPv4» установите значения:

  • Метод: Вручную.

    Рабочие станции обычно получают сетевые настройки от DHCP-сервера, но в целях упрощения мы будем назначать адрес вручную.

  • Адрес: 10.0.1.51 (в соответствии с описанием тестового стенда).

  • Маска: 24 или 255.255.255.0.

  • Шлюз: 10.0.1.1 (адресом шлюза VirtualBox является первый IP-адрес сети).

  • Серверы DNS: 10.0.1.11 (адрес dc-1.ald.company.lan).

    Обратите внимание, что при использовании DNS-сервера от Microsoft, он должен резолвить записи не только из прямой, но и обратной зоны тоже. Если перенаправить обратную зону невозможно, требуется добавить вручную PTR-записи контроллеров домена, иначе ввод машин в домен будет невозможен из-за дополнительной проверки безопасности на стороне клиента.

  • Поисковый домен: ald.company.lan (это значение будет добавляться к коротким именам).

../_images/aldpro_mod2_image24.png

рис. 175 Настройка сети на рабочей станции

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

Настройка репозиториев продукта ALD Pro

Для установки клиентской части ALD Pro используются те же репозитории, что и для установки серверной части, поэтому содержимое файлов /etc/apt/sources.list и /etc/apt/sources.list.d/aldpro.list должно быть аналогичным.

Установите для файла /etc/apt/sources.list следующее содержимое:

deb https://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.6/repository-base/ 1.7_x86-64 main contrib non-free
deb https://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.6/repository-extended/ 1.7_x86-64 main contrib non-free

Установите для файла /etc/apt/sources.list.d/aldpro.list следующее содержимое:

deb https://dl.astralinux.ru/aldpro/frozen/01/2.4.0 1.7_x86-64 main base

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

sudo apt update

Установка пакетов клиентской части

Теперь система готова к установке клиентской части ALD Pro. Выполните следующую команду:

sudo DEBIAN_FRONTEND=noninteractive \
  apt-get install -y -q aldpro-client

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

Если перезагрузить пользовательский компьютер прямо сейчас, то в сообщениях ядра можно будет увидеть ошибки запуска службы sssd и других зависящих от нее сервисов (журнал загрузки можно найти в файле /var/log/boot.log). Это происходит по причине того, что служба еще не настроена соответствующим образом (журнал службы sssd можно найти в файле /var/log/sssd/sssd.log).

Проверка имени хоста на уникальность

Как вы знаете, имя компьютера должно быть уникальным в домене. В системе Windows имена компьютеров задаются в верхнем регистре символов и по умолчанию представляют собой случайную строку в формате DESKTOP-S16CV34. В системе Astra Linux имена задаются в нижнем регистре и по умолчанию предлагается использовать имя astra. Чтобы сгенерировать случайную строку как в Windows, вы можете воспользоваться следующей командой:

$ echo "desktop-$(expr $RANDOM$(date +%s) | md5sum | head -c 7)"
desktop-711eaaf

Проверить желаемое имя на уникальность можно с помощью утилиты host. По приведенному далее примеру можно заметить, что имя dc-1 уже используется хостом с IP-адресом 10.0.1.11, а имя pc-1 еще свободно:

admin@dc-1:~$ host dc-1.ald.company.lan
dc-1.ald.company.lan has address 10.0.1.11

admin@dc-1:~$ host pc-1.ald.company.lan
Host pc-1.ald.company.lan not found: 3(NXDOMAIN)

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

Консольная утилита aldpro-client-installer

Ввод компьютера в домен

Вводом компьютера в домен или присоединением к домену (англ. Domain Join) называют процедуру, в ходе которой для компьютера создается учетная запись в домене и выполняется настройка компьютера, чтобы он мог выполнять аутентификацию/авторизацию пользователей и получать параметры групповых политик из домена. После присоединения компьютера его называют участником домена (англ. Domain Members) или просто доменным компьютером.

В домене MS AD присоединение компьютеров к домену выполняется с помощью оснаски Свойства компьютера или командлета Add-Computer, а в домене ALD Pro для этого предназначена утилита aldpro-client-installer. Утилита имеет графический интерфейс, но используется преимущественно в неинтерактивном консольном режиме, в котором все параметры являются обязательными. Перед вызовом утилиты рекомендуется отключать запись истории команд, так как в одном из параметров передается пароль администратора в открытом виде.

Выполним присоединение компьютера к домену из консоли следующими командами:

set +o history # Отключаем запись истории команд

sudo /opt/rbta/aldpro/client/bin/aldpro-client-installer --host pc-1 \
  --domain ald.company.lan --account admin --password 'Pa$$w0rd' \
  --gui --force

set -o history # Включаем запись истории команд

Комментарии по использованным ключам:

  • Параметр host — короткое имя хоста без доменной части, например, pc-1. Значение должно быть указано в нижнем регистре.

  • Параметр domain — полное имя домена, к которому нужно присоединить хост, например, ald.company.lan.

  • Параметр account — логин администратора домена или другой учетной записи, обладающей достаточными привилегиями для присоединения компьютеров к домену.

  • Параметр password — пароль от указанной привилегированной учетной записи.

  • Ключ gui — указывает, что присоединение компьютера нужно выполнить в консоли без использования графического интерфейса.

  • Ключ force — указывает, что компьютер следует ввести в домен, даже если в домене уже есть учетная запись для указанного хоста. Требуется в тех случаях, когда администратор переустанавливает операционную систему и хочет ввести компьютер в домен с тем же именем.

Описание параметров скрипта можно получить с помощью ключа -h. Также доступны короткие псевдонимы, например, в место --domain можно указать , но эти сокращения, на наш взгляд, являются менее запоминающимися.

В ходе присоединения компьютера к домену для него создается учетная запись, с помощью которой он сможет проверять аутентичность доменных пользователей и выполнять авторизованные запросы в домене. На компьютерах Windows учетные данные компьютера хранятся в защищенной части реестра, в так называемом менеджере учетных записей безопасности (англ. Security Accounts Manager, SAM). На компьютерах Linux они находятся в файле /etc/krb5.keytab, и их можно посмотреть с помощью утилиты klist:

localadmin@pc-1:~$ sudo klist -ket
Keytab name: FILE:/etc/krb5.keytab
KVNO Timestamp           Principal
---- ------------------- ------------------------------------------------------
   1 07.04.2025 14:36:35 host/pc-1.ald.company.lan@ALD.COMPANY.LAN (aes256-cts-hmac-sha1-96)
   1 07.04.2025 14:36:35 host/pc-1.ald.company.lan@ALD.COMPANY.LAN (aes128-cts-hmac-sha1-96)

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

sudo reboot

После перезагрузки войдите в систему, используя учетную запись администратора домена. Для первого входа в систему доменной учетной записью нужен будет доступ к контроллеру домена, а в дальнейшем проверка аутентичности возможна будет через кэш службы sssd. Подробно о том, как служба SSSD встраивается в PAM и NSS для обеспечения работы компьютера в домене, смотрите Модуль 5. Работа Linux-компьютера в домене.

Вывод компьютера из домена

Вывод компьютера из домена (англ. Unjoin from the Domain) выполняют, когда требуется изменить назначение компьютера или полностью вывести его из эксплуатации, чтобы пользователи этого компьютера не могли получить доступ к ресурсам домена, участником которого он являлся. Мы рассмотрим особенности этой процедуры как со стороны рабочей станции, так и со стороны домена

Действия на рабочей станции

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

Чтобы вывести компьютер из домена, на рабочей станции в первую очередь нужно откатить настройки клиента FreeIPA, то есть привести содержание общих конфигурационных файлов, включая настройки PAM стека, в исходное состояние. Для этого войдите в систему под учетной записью локального администратора, например, localadmin, и выполните команду astra-freeipa-client с ключом -U:

# Выполните команду на pc-1 под локальным администратором localadmin
sudo astra-freeipa-client -U -y

Выполнять эту команду нужно из-под учетной записи локального администратора, т.к. после ее выполнения доменный администратор admin потеряет возможность запускать команды с повышенными привилегиями из-под sudo. В ходе выполнения команды в системе происходят следующие изменения:

  • В службе каталога снимается отметка о том, что хост зарегистрирован в домене, т.е. учетной записи хоста удаляется Kerberos-пароль. Действие выполняется авторизованно из-под учетной записи самого хоста.

  • Ключи хоста удаляются из файла /etc/krb5.keytab.

  • Содержимое конфигурационных файлов /etc/krb5.conf, /etc/ldap/ldap.conf и др. приводится в исходное состояние.

  • К имени файла конфигурации /etc/sssd/sssd.conf добавляется суффикс .deleted.

Далее следует удалить пакеты приложений, указав явно aldpro, freeipa, sssd и krb5 (все остальные пакеты будут удалены через зависимости):

sudo apt purge 'aldpro*' 'freeipa*' 'sssd*' 'krb5*'
sudo apt autoremove --purge

Если не удалить приложения, то после перезагрузки останутся включенными, но будут работать некорректно такие службы как aldpro-salt-minion, aldpro-client-service-discovery, aldpro-client-rdm.

Далее следует удалить домашние директории доменных пользователей, в нашем случае доменного администратора.

sudo rm -rf /home/admin

Если в домене используются механизмы мандатного управления доступом, не забудьте удалить также домашние директории доменных пользователей из папки /home/.pdp.

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

sudo rm -rf /var/lib/sss/pubconf/krb5.include.d/
sudo rm -rf /etc/krb5.conf.d/
sudo rm -rf /var/lib/sss/
sudo rm -rf /etc/sssd/
sudo rm -rf /opt/rbta/aldpro/
sudo rm -rf /etc/syslog-ng/aldpro/
sudo rm -rf /etc/salt/minion.d/
sudo rm -rf /var/log/salt/
sudo rm -rf /var/lib/certmonger/
sudo rm -rf /var/tmp/aldpro-salt.ccache

Далее следует удалить корневой сертификат домена из файла /etc/ssl/certs/cacertificates.crt, для этого нужно выполнить команду update-ca-certificates:

sudo update-ca-certificates

В завершение компьютеру нужно установить короткое имя astra, чтобы при выполнении команд sudo не получать предупреждений о невозможности разрешения полного имени astra.ald.company.lan, которое было установлено скриптом astra-freeipa-client при выводе машины из домена:

sudo hostnamectl set-hostname astra

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

Действия на контроллере домена

Обычно при выведении компьютера из домена его аккаунт и DNS-записи удаляются из LDAP-каталога не сразу, а только по истечению некоторого периода, продолжительность которого определяется политикой удержания.

Для того, чтобы никто не смог воспользоваться аккаунтом компьютера, который выведен из домена, при выполнении этой процедуры на клиентском компьютере утилита astra-freeipa-client автоматически удаляет из LDAP-каталога Kerberos-пароль для учетной записи этого компьютера.

Если выполнение команд на стороне клиента невозможно, то для удаления Kerberos-пароля хоста из LDAP-каталога вы можете воспользоваться командой host-disable утилиты ipa:

admin@dc-1:~$ ipa host-disable pc-1.ald.company.lan
ipa: ERROR: Эта запись уже отключена

Как можно заметить, запись хоста уже отключена в домене, поэтому ничего больше не требуется. Запускать эту команду можно с любого компьютера в домене, совсем не обязательно, чтобы это был контроллер. Вам будет достаточно, чтобы в связке ключей был валидный TGT-билет доменного пользователя, обладающего достаточными привилегиями.

Если же вы захотите привести LDAP-каталог в исходное состояние, как до ввода компьютера в домен, то нужно будет полностью удалить аккаунт компьютера и его DNS-записи. Сделать это можно из терминала следующими командами:

kinit admin
ipa dnsrecord-del ald.company.lan. pc-1 --del-all
ipa host-del pc-1.ald.company.lan

Результаты выполнения команд:

admin@dc-1:~$ kinit admin

admin@dc-1:~$ ipa dnsrecord-del ald.company.lan. pc-1 --del-all
---------------------
Удалена запись "pc-1"
---------------------

admin@dc-1:~$ ipa host-del pc-1.ald.company.lan
----------------------------------
Удалён узел "pc-1.ald.company.lan"
----------------------------------

Графическая утилита

Если запустить утилиту aldpro-client-installer без параметров, то откроется окно графического интерфейса, см. рис. 176. Однако следует принять во внимание, что графический режим стандартной утилиты предоставляет только базовые возможности для интерактивного заполнения полей и считается уже устаревшим.

../_images/aldpro_mod2_image26.png

рис. 176 Устаревший графический интерфейс для ввода компьютера в домен

Для удобства присоединения компьютеров Astra Linux к домену ALD Pro была разработана дополнительная графическая утилита aldpro-join, которая предоставляет Windows-администраторам знакомый интерфейс и дополнительные преимущества, в том числе возможность присоединения компьютера в заданное структурное подразделение. Утилита опубликована через личный кабинет в составе релиза 2.5.0, но поддерживает работу в том числе и с предыдущей LTS-версией 2.4.0. В последующих релизах утилита будет включена уже в состав репозитория продукта.

Ввод компьютера в домен

Для присоединения компьютера к домену с помощью графической утилиты все предыдущие этапы по подготовке виртуальной машины должны быть точно такими же, включая настройку сетевого интерфейса и добавление репозиториев продукта. Устанавливать пакеты клиентской части продукта необязательно, так как они будут установлены автоматически по зависимостям при установке пакета графической утилиты.

Далее нужно выполнить следующие действия:

  1. Скачайте deb-пакет по прямой ссылке или из личного кабинета и установите его следующей командой:

sudo DEBIAN_FRONTEND=noninteractive \
  apt-get install -y -q ./aldpro-join_2.0-2_amd64.deb
  1. Запустите утилиту из меню Пуск ‣ ALD Pro ‣ Ввод компьютера в домен ALD Pro v2.0, этот ярлык использует команду aldpro-join --gui.

../_images/aldpro_mod2_image61.png

рис. 177 Запуск приложения для присоединения к домену v2.0

  1. Чтобы изменить имя компьютера, нажмите кнопку Изменить… напротив имени компьютера и установите желаемое значение, например, pc-14.

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

../_images/aldpro_mod2_image62.png

рис. 178 Изменение имени компьютера

  1. Установите переключатель в положение Участник домена ALD Pro и введите имя домена, например, ald.company.lan. Нажмите кнопку ОК, чтобы начать присоединение компьютера к домену.

  2. В окне аутентификации введите учетные данные доменного администратора. Это может быть пользователь admin, но можно создать отдельную учетную запись, привилегий которой будет достаточно только для ввода машин в домен. Информация представлена в руководстве администратора.

../_images/aldpro_mod2_image63.png

рис. 179 Ввод имени администратора домена для присоединения компьютера

Примечание

В нашем сообществе профессионалов мы регулярно проводим фокус-группы по обсуждению новых функций, которые планируется включить в состав продукта. В рамках работы одной из таких групп в графической утилите был обнаружен дефект, который препятствует возможности использования паролей с символом доллара. Указанное ограничение будет устранено уже в следующем релизе утилиты.

  1. Выберите организационное подразделение, в котором требуется создать учетную запись компьютера.

../_images/aldpro_mod2_image64.png

рис. 180 Выбор организационного подразделения

  1. Если процедура присоединения компьютера ALSE к домену прошла успешно, вы увидите соответствующее уведомление. Обратите внимание, что утилита сразу применяет групповые политики, политики ПО и задания автоматизации, поэтому процедура может занять некоторое время, наберитесь терпения.

../_images/aldpro_mod2_image65.png

рис. 181 Выполните перезагрузку системы

Журнал событий вы сможете посмотреть в файле /var/log/.aldpro-join.log. После перезагрузки компьютера вам станет доступен вход в систему доменным пользователем.

Вывод компьютера из домена

Если вы захотите вывести компьютер из домена, вам достаточно будет запустить приложение еще раз из-под локального администратора localadmin, установить переключатель в положение Недоменный компьютер и нажать кнопку ОК. Учетная запись компьютера и его DNS-записи будут удалены из домена.

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

Проверка доверия с доменом

При вводе компьютера в домен для него создается учетная запись, пароль которой сохраняется в файле /etc/krb5.keytab. Если компьютер располагает актуальным паролем от своей учетной записи в домене, говорят, что между компьютером и доменом установлены доверительные отношения (англ. Trust relationship between a domain-joined device and its domain).

Срок действия пароля компьютера не ограничен, но в домене MS AD он обновляется каждые 30 дней, поэтому при восстановлении компьютера из старой резервной копии вы можете столкнуться с тем, что он потеряет доверие с доменом. В домене FreeIPA пароль компьютера автоматически не обновляется, но вы можете настроить доп. параметр групповой политики ALD Pro, с помощью которого реализовать ту же логику, поэтому в утилиту aldpro-join встроен механизм для проверки и восстановления доверия с доменом.

Чтобы проверить актуальность пароля компьютера, нажмите кнопку Проверить… напротив имени домена. В поле Версия ключа и дата выдачи будет отображать значение в следующем формате: <Версия пароля> <Дата изменения пароля> <Время изменения пароля>.

../_images/aldpro_mod2_image66.png

рис. 182 Проверка доверия с доменом

Обновление пароля компьютера и восстановление доверия с доменом

Если нажать кнопку Обновить, то приложение установит компьютеру новый пароль и сохранит его в файл /etc/krb5.keytab.

../_images/aldpro_mod2_image67.png

рис. 183 Обновление пароля компьютера

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

Повышение безопасности при вводе компьютеров в домен

При вводе машины в домен происходит выполнение утилиты ipa-getkeytab, которая устанавливает Kerberos-пароль для учетной записи компьютера в домене, используя привилегированную учетную запись. В небольших компаниях для этого используют учетную запись admin или включают персональную учетную запись сотрудника в группу admins, но это не подходит для крупных организаций с большим штатом ИТ-специалистов, где эту задачу поручают сотрудникам, не имеющим отношения к администрированию серверной группировки. Рассмотрим несколько способов повышения безопасности процедуры ввода компьютера в домен.

Присоединение к домену из-под учетной записи с ограниченными правами

Хорошей практикой считается предоставлять сотрудникам только те права, которые действительно необходимы им для выполнения должностных обязанностей.

Права доступа в службе каталога FreeIPA делегируются с помощью трехуровневой модели безопасности, которая включает в себя Роли (Roles), Привилегии (Privileges) и Разрешения (Permissions). На базовом уровне разрешениям соответствуют инструкции управления доступом 389 Directory Server (Access Control Instructions, ACI), с помощью которых можно предоставить доступ на чтение, запись, поиск и другие действия применительно ко всему каталогу, его ветке или конкретной записи. Разрешения группируются в привилегии, привилегии группируются в роли, а роли уже назначаются пользователям.

В службе каталога FreeIPA уже есть роль Enrollment Administrator, но у нее нет разрешения на создание хостов System: Add Hosts, поэтому она подходит для присоединения к домену только тех компьютеров, у которых уже есть учетная запись в домене:

admin@dc-1:~$ ipa role-show 'Enrollment Administrator'
  Имя роли: Enrollment Administrator
  Описание: Участники роли имеют привилегии, необходимые для регистрации компьютеров в домене: - регистрация компьютеров в домене; - управление аутентификационными данными компьютеров.
  Privileges: Host Enrollment

admin@dc-1:~$ ipa privilege-show 'Host Enrollment'
  Имя привилегии: Host Enrollment
  Описание: Host Enrollment
  Разрешения: System: Add krbPrincipalName to a Host, System: Enroll a Host, System: Manage Host Certificates, System: Manage Host Enrollment Password, System: Manage Host Keytab,
              System: Manage Host Principals
  Предоставление привилегий ролям: Enrollment Administrator

Чтобы с помощью этой роли можно было присоединять к домену новые компьютеры, которых еще нет в службе каталога, мы могли бы добавить разрешение System: Add Hosts к привилегии Host Enrollment, которой обладает роль Enrollment Administrator, но лучше будет создать новую роль, которая будет вбирать в себя все необходимые разрешения.

Создадим новую роль Enrollment Manager, которой в дополнение к существующей привилегии Host Enrollment добавим новую привилегию Host Creation с разрешением System: Add Hosts:

ipa privilege-add 'Host Creation' \
  --desc='Создание новых хостов в домене'

ipa privilege-add-permission 'Host Creation' \
  --permissions='System: Add Hosts'

ipa role-add 'Enrollment Manager' \
  --desc='Участники имеют право создавать хосты и присоединять их к домену'

ipa role-add-privilege 'Enrollment Manager' \
  --privileges='Host Creation' \
  --privileges='Host Enrollment'

Результат выполнения команд:

admin@dc-1:~$ ipa privilege-add 'Host Creation' \
>      --desc='Создание новых хостов в домене'
------------------------------------
Добавлена привилегия "Host Creation"
------------------------------------
Имя привилегии: Host Creation
Описание: Создание новых хостов в домене

admin@dc-1:~$ ipa privilege-add-permission 'Host Creation' \
>      --permissions='System: Add Hosts'
Имя привилегии: Host Creation
Описание: Создание новых хостов в домене
Разрешения: System: Add Hosts
-----------------------------------
Количество добавленных разрешений 1
-----------------------------------

admin@dc-1:~$ ipa role-add 'Enrollment Manager' \
>      --desc='Участники имеют право создавать хосты и присоединять их к домену'
-----------------------------------
Добавлена роль "Enrollment Manager"
-----------------------------------
Имя роли: Enrollment Manager
Описание: Участники имеют право создавать хосты и присоединять их к домену

admin@dc-1:~$ ipa role-add-privilege 'Enrollment Manager' \
>      --privileges='Host Creation' \
>      --privileges='Host Enrollment'
Имя роли: Enrollment Manager
Описание: Участники имеют право создавать хосты и присоединять их к домену
Privileges: Host Enrollment, Host Creation
-----------------------------------
Количество добавленных привилегий 2
-----------------------------------

Создадим нового пользователя Tech Support Engineer и назначим ему роль Enrollment Manager:

ipa user-add tse --first='Tech Support' --last='Engineer' --random

ipa role-add-member 'Enrollment Manager' --users=tse

Результат выполнения команд:

admin@dc-1:~$ ipa user-add tse --first='Tech Support' --last='Engineer' --random
---------------------------
Добавлен пользователь "tse"
---------------------------
  Имя учётной записи пользователя: tse
  Имя: Tech Support
  Фамилия: Engineer
  Полное имя: Tech Support Engineer
  ...

admin@dc-1:~$ ipa role-add-member 'Enrollment Manager' --users=tse
  Имя роли: Enrollment Manager
  Описание: Участники имеют право создавать хосты и присоединять их к домену
  Пользователи-участники: tse
  Privileges: Host Enrollment, Host Creation
-----------------------------------
Количество добавленных участников 1
-----------------------------------

Возможности по управлению системными ролями и привилегиями на портале несколько ограничены, но вы можете назначать эти роли через веб-интерфейс на вкладке Роли страницы Пользователи и компьютеры ‣ Пользователи ‣ Пользователь, см. рис. 184. Для этого достаточно выполнить следующие три действия:

  1. Найти нужную запись в списке всех ролей с помощью поиска по подстроке «enroll».

  2. Кликнуть по стрелке «влево», чтобы перенести найденную запись в список назначенных (выбранных) ролей.

  3. Нажать кнопку Сохранить, чтобы зафиксировать изменения.

../_images/aldpro_mod2_image27.png

рис. 184 Назначение роли «Enrollment Manager»

После назначения роли Enrollment Manager пользователь сможет создавать компьютеры в домене и присоединять их к домену, не имея при этом полных административных прав в домене. Но следует принимать во внимание, что кроме прав в домене администратору потребуются также права суперпользователя на локальной машине.

Присоединение к домену с помощью одноразового пароля

Чтобы уменьшить риск разглашения паролей доменных администраторов при вводе компьютеров домен, в FreeIPA есть возможность присоединения машин по собственному паролю компьютера. В качестве такого пароля может выступать одноразовый LDAP-пароль или Kerberos-ключи компьютера. В этом курсе мы рассмотрим способ с использованием временного LDAP-пароля.

Этот способ обладает несколькими преимуществами:

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

  • Учетную запись хоста можно сразу включить во все группы, чтобы на него распространялось действие необходимых правил HBAC и SUDO.

  • Для ввода машины в домен на стороне рабочей станции не нужно будет использовать пароль привилегированной учетной записи.

Продемонстрируем работу данного сценария на примере утилиты aldpro-client-install.

Сначала администратор домена должен создать учетную запись хоста с помощью команды ipa host-add, используя ключ --random для генерации одноразового пароля:

ipa host-add pc-2.ald.company.lan --random --ip-address=10.0.1.52 \
  --force --department='ou=Московский офис,ou=ald.company.lan,cn=orgunits,cn=accounts,dc=ald,dc=company,dc=lan'

Где:

  • Параметр pc-2.ald.company.lan — имя компьютера в формате FQDN.

  • Ключ random — это опция указывающая на требование сгенерировать случайный одноразовый пароль.

  • Параметр ip-address — адрес компьютера для создания DNS-записи в домене.

  • Ключ force — опция, которая позволяет принудительно установить значение имени узла, даже если такого имени нет в DNS.

  • Параметр --department — аргумент, который позволяет создать хост в нужном подразделении.

В результате выполнения команды будет создана учетная запись компьютера, которой будет назначен одноразовый пароль для присоединения к домену:

admin@dc-1:~$ ipa host-add pc-2.ald.company.lan --random --ip-address=10.0.1.52 \
>      --force --department='ou=Московский офис,ou=ald.company.lan,cn=orgunits,cn=accounts,dc=ald,dc=company,dc=lan'
------------------------------------
Добавлен узел "pc-2.ald.company.lan"
------------------------------------
   Имя узла: pc-2.ald.company.lan
   Случайный пароль: 2LyXwGJItweZbvJP3LLqFCT
   Link to department: ou=Московский
         офис,ou=ald.company.lan,cn=orgunits,cn=accounts,dc=ald,dc=company,dc=lan
   Link to head department: Московский офис
   Пароль: True
   Таблица ключей: False
   Managed by: pc-2.ald.company.lan

С помощью такой учетной записи компьютера мы можем присоединить его к домену, не используя учетных данных администратора. В этом случае вместо ключа --account нам нужно будет указать ключ --pc, а в качестве пароля ввести одноразовый пароль самой машины:

sudo /opt/rbta/aldpro/client/bin/aldpro-client-installer --host pc-2 \
  --domain ald.company.lan --pc --password '2LyXwGJItweZbvJP3LLqFCT' \
  --gui --force

Практика и тестирование

Заключение

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

Дополнительные источники информации

  • Astra Linux 1.7.6.11-26.08.24_17.26.iso

  • Рекомендуем ознакомиться также с видеороликами нашего хорошего товарища на канале «ИТ-Проповедник». Учитывайте, что ролики записаны для версии 2.2.1, поэтому часть информации потеряла актуальность, но в целом они могут быть крайне полезны.

    • ALD PRO 2.2.1 - развертывание первого контроллера домена

    • Сервер разрешения имен BIND 9 в ALD Pro 2.2.1

    • ALD PRO 2.2.1 - ввод клиента в домен

Обратная связь

Если остались вопросы, то их всегда можно задать в специальной теме.