AD — как много в этих буквах для сердца нашего слилось… Один из ключевых сервисов в любой средней или крупной организации — это Microsoft Active Directory. А какие есть альтернативы?

Open-source решения от Linux — это здорово, дёшево, но не везде применимо. Нужна высокая квалификация инженеров и администраторов, которые будут готовы взять на себя ответственность и обеспечивать функционирование используемых решений без поддержки со стороны.

Альтернативный вариант – использование этих же open-source решений, но в виде коробочных продуктов с корпоративной поддержкой со стороны российского разработчика. Сейчас для них настало золотое время, которое можно использовать для улучшения качества и количества предлагаемых продуктов и сервисов.

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

Из-за большого объёма информации статья будет состоять из двух частей.

В первой части будут затронуты следующие вопросы:

  • Подготовка ВМ

  • Установка базовой ОС

  • Подготовка к установке ALD Pro

  • Непосредственно установка ALD Pro— развёртывание первого контроллера домена

  • Развёртывание сервера репозиториев ПО

  • Развёртывание сервера DHCP

  • Развёртывание сервера установки ОС по сети

Во второй части рассмотрим:

  • Развёртывание сервера общего доступа к файлам

  • Развёртывание подсистемы мониторинга

  • Создание реплики контроллера домена

  • Создание организационной структуры

  • Заведение учётных записей пользователей

  • Базовые групповые политики

  • Политики установки ПО

  • Задание автоматизации

Итак, часть первая…

ALD Pro (Astra Linux Domain Pro) создавался как альтернатива Microsoft Active Directory и как средство централизованного администрирования и настройки.

ALD Pro используется для администрирования парка компьютеров с ОС Astra Linux, в будущем разработчик планирует добавить поддержку других операционных систем.

ALD Pro — это набор подсистем, которые объединяет единый портал управления. В текущей реализации решения каждая подсистема устанавливается на отдельный физический или виртуальный сервер с ОС Astra Linux Special Edition с максимальным уровнем защищённости — Смоленск.

Требования к аппаратным ресурсам и компонент, на котором основано решение

Подсистема

Требования к ресурсам

На чём основано

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

CPU: 4
RAM: 8 Gb
SSD: 100 Gb
OS: Astra SE Смоленск 1.7.1 – 1.7.3

FreeIPA, BIND9

Контролер домена (реплика) (опционально)

CPU: 4
RAM: 8 Gb
SSD: 100 Gb
OS: Astra SE Смоленск 1.7.1 – 1.7.3

FreeIPA, BIND9

Сервер подсистемы репозиториев программного обеспечения

CPU: 2
RAM: 2 Gb
SSD: 100 Gb
OS: Astra SE Смоленск 1.7.1 – 1.7.3

Reprepo

Сервер подсистемы динамической настройки сети узла (DHCP)

CPU: 2
RAM: 2 Gb
SSD: 30 Gb
OS: Astra SE Смоленск 1.7.1 – 1.7.3

ISC DHCP

Сервер подсистемы установки ОС по сети

CPU: 2
RAM: 2 Gb
SSD: 30 Gb
OS: Astra SE Смоленск 1.7.1 – 1.7.3

TFTP + PXE

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

CPU: 2
RAM: 2 Gb
SSD: 30 Gb
OS: Astra SE Смоленск 1.7.1 – 1.7.3

Zabbix, Grafana

Подсистема печати

CPU: 2
RAM: 2 Gb
SSD: 30 Gb
OS: Astra SE Смоленск 1.7.1 – 1.7.3

CUPS

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

CPU: 2
RAM: 2 Gb
SSD: 30 Gb
OS: Astra SE Смоленск 1.7.1 – 1.7.3

Samba

Подсистема сбора логов и событий

CPU: 2
RAM: 2 Gb
SSD: 30 Gb (по возможности, добавить больший объём для хранения логов)
OS: Astra SE Смоленск 1.7.1 – 1.7.3

Fluentd

В качестве инструмента управления конфигурациями используется SaltStack, служба синхронизации времени – Chrony.

Опыт пилотного внедрения

К нам обратился один из наших постоянных заказчиков с просьбой организовать пилотное внедрение ALD Pro с целью познакомиться с продуктом и оценить возможность его использования в качестве замены аналогичных продуктов Microsoft.

Особенностью пилотного внедрения была замкнутая виртуальная среда без доступа к сети Интернет. Нужно было выполнить развёртывание и установку всех необходимых пакетов локально.

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

Подготовка инфраструктуры

Развёртывание проводим в виртуальной инфраструктуре, нам необходимо подготовить 10 виртуальных машин со следующими ролями:

  1. ВМ с выходом в Интернет, на которой будут создаваться ISO образы репозиториев.
    Для этой ВМ достаточно выделить 2xCPU, 2 Гб RAM и 64 Гб диск. Подойдёт любой Linux, но мы будем использовать Astra SE 1.7.3 в минимальной конфигурации без графического интерфейса;

  2. ВМ для организации временного локального репозитория. Будет использована для настройки ВМ контроллера домена и ВМ репозитория ПО в составе ALD Pro. По ресурсам и ОС идентична предыдущей ВМ;

  3. ВМ для роли контроллера домена;

  4. ВМ для реплики контроллера домена;

  5. ВМ для репозиториев ПО;

  6. ВМ для DHCP;

  7. ВМ для подсистемы установки ОС по сети;

  8. ВМ для файлового сервера;

  9. ВМ для подсистемы мониторинга;

  10. Клиентская ВМ, которая будет использоваться в качестве тестового клиента.

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

Подготовка ВМ, на которой будут созданы ISO образы репозиториев ПО

Эта ВМ должна иметь выход в Интернет, так как на ней будут формироваться образы Интернет репозиториев Астры.

Процесс установки ОС описывать не будем, в нём нет ничего особенного. Кратко рассмотрим процесс подготовки образов репозиториев. Он делится на 2 этапа:

  1. Создание локального зеркала Интернет-репозитория

  2. Конвертация локального репозитория в ISO образ.

Для полноценной работы и развёртывания подсистем ALD Pro необходимо наличие 5 репозиториев:

  1. Репозиторий для установки ОС по сети – для этого используется установочный диск с ОС - 1.7.3-03.11.2022_15.53.iso

  2. Репозиторий ОС Astra Linux – base

    deb http://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.3/repository-base 1.7_x86-64 main non-free contrib

  3. Репозиторий ОС Astra Linux – extended

    deb http://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.3/repository-extended 1.7_x86-64 main contrib non-free

  4. Репозиторий ALD Pro main – используется установочный диск ALD Pro или Интернет-репозиторий

    deb https://dl.astralinux.ru/aldpro/stable/repository-main/1.4.0 main

  5. Репозиторий ALD Pro extended

    deb https://dl.astralinux.ru/aldpro/stable/repository-extended/generic main

Необходимо обратить внимание, что ALD Pro не поддерживает самые новые версии в пакетах операционной системы. Для обеспечения максимальной совместимости необходимо использовать репозитории ветки frozen 1.7.2 или 1.7.3

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

В общем виде команда конвертации репозитория будет выглядеть примерно так:

sudo genisoimage -V 1.7_x86-64 -r -o /home/sysadmin/1.7.3-base.iso /repo/apt-mirror/mirror/dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.3/repository-base/

где
-V - идентификатор репозитория
-o - путь, по которому будет сохранён iso образ
/repo/apt-mirror/mirror/dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.3/repository-base - путь к скопированному репозиторию

Каждый репозиторий конвертируем отдельно:

sudo genisoimage -V 1.7_x86-64 -r -o /home/sysadmin/1.7.3-base.iso /repo/apt-mirror/mirror/dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.3/repository-base/
sudo genisoimage -V 1.7_x86-64 -r -o /home/sysadmin/1.7.3-extended.iso /repo/apt-mirror/mirror/dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.3/repository-extended/
sudo genisoimage -V 1.4.0 -r -o /home/sysadmin/aldpro_1.4.0-main.iso /repo/apt-mirror/mirror/dl.astralinux.ru/aldpro/stable/repository-main/
sudo genisoimage -V 1.4.0 -r -o /home/sysadmin/aldpro_1.4.0-extended.iso /repo/apt-mirror/mirror/dl.astralinux.ru/aldpro/stable/repository-extended/

Сконвертированные ISO образы необходимо сохранить для дальнейшего использования, эта ВМ нам больше не понадобиться.

Создание и подготовка ВМ для использования в качестве временного локального репозитория.

Эта ВМ будет использована в закрытом контуре (в том же контуре, где будут расположены все серверы группировки ALD Pro).

Для этой ВМ достаточно минимальной установки без графического интерфейса.

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

  • Настроить сеть;

  • При смонтированном установочном образе выполнить установку пакета vsftpd - sudo apt update && sudo apt install vsftpd

  • В конфигурационный файл /etc/vsftpd.conf внести следующие данные:

listen=yes
listen_ipv6=no

# Анонимный доступ разрешен
anonymous_enable=YES
local_enable=no
anon_root=/repo
no_anon_password=yes
hide_ids=yes
  • Перезапустить сервис ftp - sudo systemctl restart vsftpd

  • Настроить локальные репозитории

Нам необходимо сохранить заранее подготовленные ISO образы репозиториев на этой ВМ или просто подключить их через гипервизор.

После копирования/подключения образов, их содержимое необходимо скопировать в локальную директорию на ВМ.

Создадим директории, в которых будут размещаться файлы репозиториев

sudo mkdir -p /repo/{base,extended,aldpro-main,aldpro-extended}

Смонтируем ISO образ

sudo mount 1.7.3-base.iso /mnt - если скопировали образ в ВМ
sudo mount /dev/sr0 /mnt – если образ подключали через CD-ROM гипервизора

Скопируем его содержимое в директорию, в которой будут размещены репозитории

sudo cp -r /mnt/* /repo/base
sudo umount /mnt

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

drwxr-xr-x  4 root root 4096 мар 29 18:21 aldpro-extended
drwxr-xr-x  4 root root 4096 мар 29 18:20 aldpro-main
drwxr-xr-x  4 root root 4096 мар 29 17:32 base
drwxr-xr-x  4 root root 4096 мар 29 17:38 extended
root@localrepo:~# du -hs /repo/
25G     /repo/
  • Если ISO образы копировали в ВМ, для экономии места их лучше удалить.

Создание ВМ для подсистем ALD Pro и предварительная настройка

Теперь можно приступать к созданию ВМ, необходимых для подсистем ALD Pro:

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

  • Контролер домена (реплика)

  • Сервер подсистемы репозиториев программного обеспечения

  • Сервер подсистемы динамической настройки сети узла (DHCP)

  • Сервер подсистемы установки ОС по сети

  • Подсистема мониторинга

  • Подсистема общего доступа к файлам

После того как ВМ будут созданы, можно приступать к установке ОС. Напоминаю: важно, чтобы это была ОС с максимальным уровнем защищённости – Смоленск.

После установки ОС выполним первые базовые настройки и подготовку:

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

Если ОС устанавливали с графическим интерфейсом, проще всего сеть настраивать с помощью Network Manager через графический апплет.
Если же ОС установили без интерфейса Fly, сеть можно настроить стандартными средствами, которые используются в Debian – редактированием конфигурационного файла /etc/network/interfaces.

Между всеми ВМ должна быть сетевая связность.

FQDN

sudo hostnamectl set-hostname dc01.astra.lan

Отредактировать /etc/hosts

Привести к виду:

127.0.0.1    localhost.localdomain    localhost

10.1.3.21    dc01.astra.lan    dc01

Подключить временный репозиторий

Это действие выполняется только на ВМ, которая будет выступать в роли контроллера домена ALD Pro и ВМ, которая будет настроена в роли сервера репозиториев
Отредактировать конфигурацию apt на использование подготовленного репозитория.

От рута выполнить

cat <<EOL > /etc/apt/sources.list
deb ftp://10.1.3.20/base 1.7_x86-64 main contrib non-free
deb ftp://10.1.3.20/extended 1.7_x86-64 main contrib non-free
EOL

Добавить репозиторий ALD Pro

Это действие выполняется только на ВМ, которая будет выступать в роли контроллера домена ALD Pro и ВМ, которая будет настроена в роли сервера репозиториев

cat <<EOL > /etc/apt/sources.list.d/aldpro.list
deb ftp://10.1.3.20/aldpro-main 1.4.0 main
deb ftp://10.1.3.20/aldpro-extended generic main
EOL

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

cat <<EOL > /etc/apt/preferences.d/aldpro
Package: *
Pin: release n=generic
Pin-Priority: 900
EOL

Обновить пакеты

Это действие выполняется только на ВМ, которая будет выступать в роли контроллера домена ALD Pro и ВМ, которая будет настроена в роли сервера репозиториев

sudo apt update && sudo apt dist-upgrade -y

AstraLinux рекомендует использовать для обновления собственную утилиту astra-update. Обновление можно выполнить так

astra-update -A -r -T

После создания ВМ и предварительной настройки получили такую картину

Роль

FQDN

IP

Локальный репозиторий (временный)

localrepo

10.1.3.20

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

dc01.astra.lan

10.1.3.21

Контролер домена реплика

dc02.astra.lan

10.1.3.22

Сервер репозиториев ПО

repo.astra.lan

10.1.3.23

Сервер DHCP

dhcp.astra.lan

10.1.3.24

Сервер подсистемы установки ОС по сети

pxe.astra.lan

10.1.3.25

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

mon.astra.lan

10.1.3.26

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

nas.astra.lan

10.1.3.27

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

Для установки всего необходимого для работы контроллера домена ALD Pro используется метапакет aldpro-mp

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

После установки всех пакетов (их будет достаточно много) в настройках резолвера необходимо изменить адрес DNS сервера на 127.0.0.1.

В зависимости от способа настройки сети это делается по-разному:

- если сеть настраивали через Network Manager, проще всего значение прописать в графической утилите

- если настройка производилась путём редактирования /etc/network/interfaces, тогда необходимо внести строку nameserver 127.0.0.1 в файл /etc/resolv.conf

sysadmin@dc01:~$ cat /etc/resolv.conf
nameserver 127.0.0.1

Обращаю внимание, что редактирование файла /etc/resolv.conf стоит делать только если NetworkManager отключен, в противном случае файл будет перезаписан

Инициализация домена

sudo /opt/rbta/aldpro/mp/bin/aldpro-server-install.sh -d <домен> -n <имя_сервера> -p ‘<пароль>’ --ip <IP-адрес_контроллера_домена> --no-reboot

пароль указываем в одинарных кавычках

для просмотра описания возможных параметров

/opt/rbta/aldpro/mp/bin/aldpro-server-install.sh -h

В нашем случае команда выглядит так

sudo /opt/rbta/aldpro/mp/bin/aldpro-server-install.sh -d astra.lan -n dc01 -p ‘P@ssw0rd’ --ip 10.1.3.21 --no-reboot

Завершится выполнение команды сообщением

Summary for local
-------------
Succeeded: 87 (changed=81)
Failed:     0
-------------
Total states run:     87
Total run time:  425.555 s

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

После перезагрузки сервера можем попасть в панель администратора ALD Pro по доменному имени сервера - https://dc01.astra.lan

Обратите внимание на полный адрес - https://dc01.astra.lan/ad/ui/#/

Если в адресе ad заменить на ipa мы попадём в интерфейс FreeIPA, на котором основан контроллер домена

При работе в закрытом контуре это не требуется, но, тем не менее, упомяну об этом — если система работает с выходом в Интернет, нужно настроить разрешение внешних имён, для этого необходимо настроить форвардинг на внешний DNS. Для этого в панели администратора перейдём по пути:

Роли и службы сайта → Служба разрешения имён → Глобальная конфигурация DNS

Если глобальное перенаправление не настраивать, тоже должно работать, т.к. Bind9 может выступать в роли резолвера и разрешать имена, делая обход по всем DNS серверам, начиная с корневой зоны “.”.

Развёртывание ролей ALD Pro

Сервер репозиториев ПО

Мы уже выполнили предварительную настройку сервера:

  • настроили сеть;

  • задали доменное имя;

  • указали адрес локальных репозиториев для установки необходимых пакетов;

  • указали приоритет установки пакетов из репозитория ALD Pro.

Осталось сделать:

  • указать в качестве сервера DNS IP адрес контроллера домена;

  • установить пакеты необходимые для работы в качестве клиента домена ALD Pro

sudo DEBIAN_FRONTEND=noninteractive apt-get install -q -y aldpro-client
  • выполнить ввод в домен

sudo /opt/rbta/aldpro/client/bin/aldpro-client-installer -c <домен> -u admin -p <пароль_администратора_домена> -d <имя_сервера> -i -f

в нашем случае команда выглядит так

sudo /opt/rbta/aldpro/client/bin/aldpro-client-installer -c astra.lan -u admin -p ‘P@ssw0rd’ -d repo -i -f

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

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

Пользователи и компьютеры → Компьютеры

Теперь необходимо на сервере repo.astra.lan настроить роль сервера репозиториев ПО.
Для этого необходимо перейти в раздел Установка и обновление ПО → Репозитории ПО
Нажать на ссылку в центре страницы – развернуть сервер репозиториев ПО

В выпадающих списках указать сервер, на котором разворачиваем роль и Сайт

Нажать кнопку Сохранить 

Процесс развёртывания системы можно видеть в разделе Автоматизация ->
Задания автоматизации → Журнал заданий

После завершения развёртывания статус задания изменится.

Кроме этого ход установки можно наблюдать в журналах apt и salt на целевом хосте,
например, (tail -f /var/log/apt/term.log &); (tail -f /var/log/salt/minion &)

Теперь необходимо создать репозитории ПО и добавить в них наши образы репозиториев, которые мы заранее подготовили

Установка и обновление ПО → Репозитории ПО → Новый репозиторий

Заполним поля имени, описания и адреса репозитория. Они могут быть произвольными

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

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

Нажимаем кнопку + Новая версия 

Указываем путь к установочному ISO образу - 1.7.3-03.11.2022_15.53.iso

Нажимаем Сохранить. Начнётся процесс загрузки образа во временный каталог на сервере репозиториев.

После загрузки начнётся извлечение и индексация пакетов. Это самый продолжительный процесс. Наберёмся терпения и подождём

Заветное изменение состояния ????

Повторяем процедуру с оставшимися четырьмя репозиториями

После публикации всех репозиториев мы должны увидеть адрес, по которому эти
репозитории будут доступны:

Проверим доступность этих репозиториев. На этом же сервере изменим адреса репозиториев в /etc/apt/sources.list, приведём их к виду:

Обратите внимание, что у нас репозитории доступны по https, так как используются самоподписные сертификаты, директивой trusted=yes необходимо явно указать, что мы им доверяем.

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

Ошибок в выводе нет и указаны новые адреса репозиториев. Так же необходимо изменить адрес репозиториев ALD Pro.

На контроллере домена тоже изменим адреса репозиториев. 

Сервер репозиториев в составе ALD Pro развёрнут и функционирует штатно.
С этого сервера по https смогут выполнять обновление и установку пакетов хосты, которые являются членами ALD Pro. Хосты, которые не являются членами домена, смогут подключиться к серверу репозиториев по http.

Больше нам ВМ localrepo не потребуется.

Сервер DHCP

К ранее выполненным настройкам: IP, hostname. Необходимо в качестве DNS указать адрес контроллера домена – 10.1.3.21. Указать адреса репозиториев ОС и ALD Pro

/etc/apt/sources.list
deb [trusted=yes] https://repo.astra.lan/repos/os-base/ 1.7_x86-64 main contrib non-free
deb [trusted=yes] https://repo.astra.lan/repos/os-extended/ 1.7_x86-64 main contrib non-free
/etc/apt/sources.list.d/aldpro.list
deb [trusted=yes] https://repo.astra.lan/repos/aldpro-main/ 1.4.0 main
deb [trusted=yes] https://repo.astra.lan/repos/aldpro-extended/ generic main

Установить приоритет пакетов ALD Pro

/etc/apt/preferences.d/aldpro
Package: *
Pin: release n=generic
Pin-Priority: 900

Выполнить обновление пакетов и установку клиентской части ALD Pro

sudo apt update && sudo apt dist-upgrade -y
sudo DEBIAN_FRONTEND=noninteractive apt-get install -q -y aldpro-client

Ввести в домен в качестве клиента

sudo /opt/rbta/aldpro/client/bin/aldpro-client-installer -c astra.lan -u admin -p ‘P@ssw0rd’ -d dhcp -i -f

и перезагрузить

sudo reboot

После перезагрузки можно добавить роль DHCP в ALD Pro 

Роли и службы сайта → Служба динамической настройки узла → + Новый сервер

Из выпадающего списка выбираем наш хост – dhcp.astra.lan и указываем сайт

Запустится процесс развёртывания DHCP. Следить за процессом можно в разделе Автоматизация → Задания автоматизации → Журнал заданий

После развёртывания подсистемы, её необходимо настроить.

Роли и службы сайта Служба динамической настройки узла → dhcp.astra.lan

На вкладке Настройка сетевых интерфейсов необходимо указать интерфейс, на котором будет работать DHCP сервер. Обязательно необходимо указать комментарий, т.к. используется система контроля версий и сохранением изменений мы выполняем коммит.

На вкладке Конфигурация скрипта необходимо указать настройки DHCP сервера
Примеры настроек указаны во встроенном руководстве, попасть в которое можно нажав на значок ? в верхнем правом углу окна. Если встроенной справки покажется недостаточно, вспоминаем, что под капотом ALD Pro используется ISC DHCP, в
сети полно инструкций по настройке.

authoritative;
log-facility local7;
default-lease-time 600;
max-lease-time 7200;

allow booting;
allow bootp;

subnet 10.1.3.0 netmask 255.255.255.0 {
    range 10.1.3.101 10.1.3.254;
    option broadcast-address 10.1.3.255;
    option domain-name-servers 10.1.3.21;
    option domain-name "astra.lan";
    option routers 10.1.3.9;    # адрес маршрутизатора
    next-server 10.1.3.25;   # pxe сервер
    filename "pxelinux.0";
}

Проверить работу DHCP можно, запустив клиентскую ВМ, которую мы подготовили.

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

Сервер установки ОС по сети

Выполняем предварительные настройки, аналогичные тем, которые делали при подготовке сервера DHCP:

  • IP адрес – 10.1.3.25;

  • имя узла – pxe.astra.lan;

  • в качестве DNS адрес контроллера домена – 10.1.3.21;

  • указываем адрес сервера репозиториев для ОС и ALD Pro. Помним, пока компьютер не является членом домена, доступ к серверу репозиториев есть только по http;

  • указываем приоритет для пакетов ALD Pro;

  • выполняем обновление пакетов;

  • устанавливаем пакеты для клиентской части ALD Pro;

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

  • вводим в домен в качестве клиента;

sudo /opt/rbta/aldpro/client/bin/aldpro-client-installer -c astra.lan -u admin -p ‘P@ssw0rd’ -d pxe -i -f

  • перезагружаем хост;

Установка роли сервера установки ОС по сети в ALD Pro

После ввода сервера pxe.astra.lan в качестве клиента домена, можно приступать к развёртыванию роли.

Автоматизация → Установка ОС по сети → + Новый сервер

Выбираем из списка наш сервер, указываем сайт и DHCP. После нажатия кнопки Сохранить, начнётся развёртывание роли. Следить за состоянием развёртывания можно в разделе Автоматизация → Задания автоматизации → Журнал заданий

Настройка сервера установки ОС по сети

Для возможности установки операционной системы по сети необходимо создать Профиль загрузки, в котором указать параметры установки ОС – preseed, послеустановочный скрипт, скрипт первой загрузки, boot-меню

 Переходим в раздел Автоматизация → Установка ОС по сети → pxe.astra.lan → Профили загрузки → + Новый профиль

После сохранения профиля станут доступны вкладки с настройками, пойдём по порядку:

  1. Preseed
    Пример файла ответов на вопросы есть во встроенной справке, в нашем случае справка доступна по адресу https://dc01.astra.lan/ad/help/ui/45#preseed
    Стоит обратить внимание, что в примере указан адрес репозитория в Интернет, нам это не подходит, поэтому файл необходимо немного модифицировать.

# Подключение сетевого репозитория
d-i mirror/protocol string http
d-i mirror/http/hostname string repo.astra.lan
d-i mirror/http/directory string /repos/os-main
# Установка локали и языка
d-i mirror/country string manual
d-i debian-installer/locale string ru_RU
d-i debian-installer/locale select ru_RU.UTF-8
d-i debian-installer/language string ru
d-i debian-installer/country string RU
d-i debian-installer/keymap string ru
# Выбор клавиатуры
d-i console-tools/archs select at
d-i console-keymaps-at/keymap select ru
d-i console-setup/toggle string Ctrl+Shift
d-i console-setup/layoutcode string ru
d-i keyboard-configuration/toggle select Ctrl+Shift
d-i keyboard-configuration/layoutcode string ru
d-i keyboard-configuration/xkb-keymap select ru
d-i languagechooser/language-name-fb select Russian
d-i countrychooser/country-name select Russia
# Автоматический выбор сетевого интерфейса
d-i netcfg/choose_interface select auto
# Подключение non-free,contrib компонентов в репозитории
d-i apt-setup/non-free boolean true
d-i apt-setup/contrib boolean true
d-i apt-setup/services-select none
# Установка часового пояса UTC
d-i clock-setup/utc boolean true
# Временная зона
d-i time/zone string Europe/Moscow
# Не обновлять время
d-i clock-setup/ntp boolean false
# Автоматическая разметка дисков
d-i partman-base    partman/default_filesystem      string  ext4
d-i partman-auto/init_automatically_partition \
      select Авто - использовать весь диск
d-i partman-auto/method string regular
d-i partman-auto/purge_lvm_from_device boolean true
d-i partman-lvm/confirm boolean true
# Разметка для режима bios
#d-i partman-auto/choose_recipe select atomic
# для UEFI режима:
#d-i partman-auto/choose_recipe select /lib/partman/recipes-amd64-efi/30atomic
# Не задавать вопросов при разметке
d-i partman/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman-auto-crypto/erase_disks     boolean true
d-i partman-basicfilesystems/no_swap boolean    false
d-i partman-target/mount_failed boolean true
d-i partman-partitioning/unknown_label boolean  true
d-i partman-auto/purge_lvm_from_device string   true
d-i partman-lvm/vgdelete_confirm boolean        true
d-i partman/confirm_write_new_label     string  true
d-i partman-lvm/confirm boolean true
d-i partman/confirm_nooverwrite boolean true
d-i anna/no_kernel_modules boolean true
d-i base-installer/kernel/image string linux-image-generic
# Создание пользователя при установке
d-i passwd/make-user boolean true
# Имя пользователя
d-i passwd/user-fullname string sysadmin
d-i passwd/username string sysadmin
# Пароль пользователя
d-i passwd/user-password password P@ssw0rd
d-i passwd/user-password-again password P@ssw0rd
d-i debian-installer/allow_unauthenticated string true
# Выбор рабочего стола Fly
tasksel tasksel/first multiselect Fly, Fly-ssh
tasksel tasksel/astra-feat-setup multiselect
# Дополнительные пакеты
# Специфические настройки Астры
d-i astra-additional-setup/os-check select Base security level Orel
d-i astra-additional-setup/additional-settings-orel multiselect
astra-additional-setup astra-additional-setup/automatic-network-disable multiselect
d-i     astra-additional-setup/automatic-network-disable multiselect
d-i desktop-tablet-mode-switch/tablet-mode multiselect
popularity-contest popularity-contest/participate boolean false
#  В GRUB будет только 1 операционная система
d-i grub-installer/only_debian boolean true
# Установка в mbr
d-i grub-installer/with_other_os boolean true
# Установка пароля Grub
d-i grub-installer/password password P@ssw0rd
d-i grub-installer/password-again password P@ssw0rd
grub-installer grub-installer/password-mismatch error
# Не показывать диалог окончания установки
d-i finish-install/reboot_in_progress note
d-i finish-install/exit/poweroff boolean true
# Команды, выполняемые после установки ОС
d-i preseed/late_command string in-target systemctl enable ssh; \
    in-target bash -c "apt-get -y purge linux-image-*-hardened"; \
    in-target bash -c "apt-get -y autoremove --purge"; \
    in-target bash -c "sed -i 's/deb-src/#deb-src/g' /etc/apt/sources.list"; \
    in-target bash -c "/usr/bin/wget -O /tmp/postinstall.sh http://10.1.3.25/tftp/{PROFILE_UNIQ_NAME}/{POSTINSTALL_FILE_NAME}";\
    in-target bash -c "/bin/sh -x /tmp/postinstall.sh";\
    echo

В примере во встроенной справке присутствует команда смены пароля только что созданного пользователя
in-target bash -c "echo -e \"astra:astra\" | chpasswd"; \

я не стал её использовать и удалил.

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

#!/bin/bash
set -x

sudo systemctl enable ssh
#Добавление репозиториев Astra Linux
cat <<EOL > /etc/apt/sources.list
deb http://repo.astra.lan/repos/os-base/ 1.7_x86-64 main contrib non-free
deb http://repo.astra.lan/repos/os-extended/ 1.7_x86-64 main contrib non-free
EOL
#Добавление репозиториев ALD Pro 
cat <<EOL > /etc/apt/sources.list.d/aldpro.list
deb http://repo.astra.lan/repos/aldpro-main/ 1.4.0 main
deb http://repo.astra.lan/repos/aldpro-extended/ generic main
EOL
#Установка приоритетов репозиториев 
cat <<EOL > /etc/apt/preferences.d/aldpro
Package: *
Pin: release n=generic
Pin-Priority: 900
EOL
# Скачать скрипт первого запуска
# Необходимо заменить IP адрес на ваш сервер ОС 
wget http://10.1.3.25/tftp/{PROFILE_UNIQ_NAME}/{FIRSTSTART_FILE_NAME} -O /usr/bin/firststart.sh
# Подготовка к запуске сервиса первого запуска ОС
cat <<EOL > /etc/systemd/system/firststart.service
[Unit]
Wants=network-online.target
After=network-online.target
 
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/firststart.sh start
 
[Install]
WantedBy=multi-user.target
EOL
# Запуск сервиса 
chmod 774 /usr/bin/firststart.sh
systemctl enable firststart || true
  1. Скрипт первого запуска
    В скрипте первого запуска происходит установка пакетов ALD Pro и ввод компьютера в домен.

#!/bin/bash
set -x
# Установка клиента ALD Pro и ввод компьютера в домен 
case $1 in
    start)
        apt-get update
        export DEBIAN_FRONTEND=noninteractive
        apt-get install -yq aldpro-client wget
        mkdir -p /etc/ssl/freeipa
        wget -O /root/token http://10.1.3.25/tftp/tokens/$(hostname -f).pwd # Указать IP адрес вашего сервера установки ОС
        ipa-client-install --hostname=$(hostname -f) --domain=$(hostname -d) --mkhomedir --password=$(cat /root/token) -U
        rm -f /etc/salt/minion_id
        /usr/bin/python3 /opt/rbta/aldpro/client/bin/aldpro-service-discovery.py
        systemctl restart salt-minion
        ln -s /usr/bin/astra-freeipa-domains-ctl /etc/domains.list.d/
        systemctl disable firststart
        reboot
        ;;
    stop)
        systemctl disable firststart
        ;;
    *)
        echo "$Usage: $0 {start|stop}"
        ;;
esac
  1. BOOT-меню
    Загрузочное меню для клиентов с BIOS

UI vesamenu.c32
 
# 0 - отключение приглашения командной строки. Загрузка начнется сразу
PROMPT 0

# Автоматический выбор меню по таймеру. Секунды вычисляются делением на 10 введенного значения
TIMEOUT 100
 
DEFAULT bootlocal # Выбор по умолчанию загрузки с диска
#DEFAULT pxeinstall # Выбор по умолчанию загрузки по сети
 
menu background isolinux/aldpro_bios.png
menu title User Management Portal Boot Menu
 
# Локальная загрузка с диска
LABEL bootlocal
    menu label Boot from first HDD
    kernel chain.c32
    append hd0 0
TEXT HELP
Normal boot from HDD
ENDTEXT
 
# Загрузка из сети
LABEL pxeinstall
    menu label PXE operation system install
    kernel linux
    append initrd=initrd.gz vga=788 auto=true priority=critical debian-installer/locale=ru_RU console-keymaps-at/keymap=ru hostname={HOSTNAME} domain={DOMAIN_REALM} astra-license/license=true url=http://10.1.3.25/tftp/{PROFILE_UNIQ_NAME}/{PRESEED_FILE_NAME} interface=auto netcfg/dhcp_timeout=60 # Необходимо указать IP адрес Вашего сервера установи ОС по сети
TEXT HELP
Install AstraLinux Operating System
ENDTEXT
  1. GRUB меню
    Загрузочное меню для клиентов UEFI

if loadfont $prefix/font.pf2 ; then
  set gfxmode=800x600
  set gfxpayload=keep
  insmod efi_gop
  insmod efi_uga
  insmod video_bochs
  insmod video_cirrus
  insmod gfxterm
  insmod png
  terminal_output gfxterm
fi
 
if background_image /isolinux/aldpro.png; then
  set color_normal=light-gray/black
  set color_highlight=white/black
else
  set menu_color_normal=cyan/blue
  set menu_color_highlight=white/blue
fi
 
# Установка Astra Linux Special Edition
menuentry 'Install AstraLinux Operating System' {
    set background_color=black
    linux    (http,10.1.3.25)/tftp/linux modprobe.blacklist=evbug debian-installer/allow_unauthenticated=true auto=true priority=critical debian-installer/locale=en_US console-keymaps-at/keymap=ru hostname={HOSTNAME} domain={DOMAIN_REALM} astra-license/license=true url=http://10.1.3.25/tftp/{PROFILE_UNIQ_NAME}/{PRESEED_FILE_NAME} interface=auto netcfg/dhcp_timeout=60
    initrd   (http,10.1.3.25)/tftp/initrd.gz
}

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

 Автоматизация → Установка ОС по сети → pxe.astra.lan → Перечень компьютеров

После добавления компьютера можно его включить и проверить загрузку по сети и установку ОС. Предварительно необходимо изменить приоритет загрузки – установить его на сетевую загрузку

Продолжение следует…

Комментарии (9)


  1. denilenko
    02.06.2023 12:46

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

    CPU: 4
    RAM: 8 Gb
    SSD: 100 Gb

    Хочется надеяться что это максимальные требования для высоконагруженного контроллера домена.


  1. mayorovp
    02.06.2023 12:46

    Насколько безопасно использовать TLD lan.?


    С одной стороны, такого gTLD на данный момент нет, и прямо сейчас вы от атаки через регистрацию "вашего" домена защищены. С другой стороны, local. тоже считалась допустимой к использованию, а потом на неё mDNS "повесили"...


    1. da2001 Автор
      02.06.2023 12:46

      как мне кажется, вы сами ответили на свой вопрос ;)

      lan никем не зарегистрирован, не вижу никаких ограничений к его использованию.


      1. Johan_Palych
        02.06.2023 12:46

        Версия обновилась

        deb https://dl.astralinux.ru/aldpro/stable/repository-main/1.4.1 main


        1. da2001 Автор
          02.06.2023 12:46

          да, новая версия вышла, но в статье описан уже завершённый процесс внедрения


          1. Vanger
            02.06.2023 12:46

            У Вас ошибка в пути к репе:


            deb https://dl.astralinux.ru/aldpro/stable/repositoryextended/generic main

            а должна быть


            deb https://dl.astralinux.ru/aldpro/stable/repository-extended/generic main


            1. da2001 Автор
              02.06.2023 12:46

              верно, спасибо, что обратили внимание. Видимо, при копировании дефис потерялся.


    1. surly
      02.06.2023 12:46
      +1

      RFC 6762, appendix G теперь явным образом приводит рекомендуемые домены для внутреннего использования. .lan в их числе, а также .intranet, .corp, .home, .internal, .private. Так что использование здесь домена .lan вполне грамотно.


  1. vesper-bot
    02.06.2023 12:46
    +1

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