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 | FreeIPA, BIND9 |
Контролер домена (реплика) (опционально) | CPU: 4 | FreeIPA, BIND9 |
Сервер подсистемы репозиториев программного обеспечения | CPU: 2 | Reprepo |
Сервер подсистемы динамической настройки сети узла (DHCP) | CPU: 2 | ISC DHCP |
Сервер подсистемы установки ОС по сети | CPU: 2 | TFTP + PXE |
Подсистема мониторинга | CPU: 2 | Zabbix, Grafana |
Подсистема печати | CPU: 2 | CUPS |
Подсистема общего доступа к файлам | CPU: 2 | Samba |
Подсистема сбора логов и событий | CPU: 2 | Fluentd |
В качестве инструмента управления конфигурациями используется SaltStack, служба синхронизации времени – Chrony.
Опыт пилотного внедрения
К нам обратился один из наших постоянных заказчиков с просьбой организовать пилотное внедрение ALD Pro с целью познакомиться с продуктом и оценить возможность его использования в качестве замены аналогичных продуктов Microsoft.
Особенностью пилотного внедрения была замкнутая виртуальная среда без доступа к сети Интернет. Нужно было выполнить развёртывание и установку всех необходимых пакетов локально.
Если бы не ограничение замкнутой программной среды,
все пакеты можно было бы установить из Интернет-репозитория Astra Linux и не
пришлось бы создавать дополнительный локальный репозиторий на период
развёртывания группировки серверов.
Подготовка инфраструктуры
Развёртывание проводим в виртуальной инфраструктуре, нам необходимо подготовить 10 виртуальных машин со следующими ролями:
ВМ с выходом в Интернет, на которой будут создаваться ISO образы репозиториев.
Для этой ВМ достаточно выделить 2xCPU, 2 Гб RAM и 64 Гб диск. Подойдёт любой Linux, но мы будем использовать Astra SE 1.7.3 в минимальной конфигурации без графического интерфейса;ВМ для организации временного локального репозитория. Будет использована для настройки ВМ контроллера домена и ВМ репозитория ПО в составе ALD Pro. По ресурсам и ОС идентична предыдущей ВМ;
ВМ для роли контроллера домена;
ВМ для реплики контроллера домена;
ВМ для репозиториев ПО;
ВМ для DHCP;
ВМ для подсистемы установки ОС по сети;
ВМ для файлового сервера;
ВМ для подсистемы мониторинга;
Клиентская ВМ, которая будет использоваться в качестве тестового клиента.
Сервер печати и сервер сбора логов и событий не разворачивались, так как заказчик не нуждался в этих ролях.
Подготовка ВМ, на которой будут созданы ISO образы репозиториев ПО
Эта ВМ должна иметь выход в Интернет, так как на ней будут формироваться образы Интернет репозиториев Астры.
Процесс установки ОС описывать не будем, в нём нет ничего особенного. Кратко рассмотрим процесс подготовки образов репозиториев. Он делится на 2 этапа:
Создание локального зеркала Интернет-репозитория - https://wiki.astralinux.ru/pages/viewpage.action?pageId=61575159
Конвертация локального репозитория в ISO образ.
Для полноценной работы и развёртывания подсистем ALD Pro необходимо наличие 5 репозиториев:
Репозиторий для установки ОС по сети – для этого используется установочный диск с ОС -
1.7.3-03.11.2022_15.53.iso
Репозиторий ОС 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
Репозиторий ОС 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
Репозиторий ALD Pro main – используется установочный диск ALD Pro или Интернет-репозиторий
deb https://dl.astralinux.ru/aldpro/stable/repository-main/1.4.0 main
Репозиторий ALD Pro extended
deb https://dl.astralinux.ru/aldpro/stable/repositoryextended/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
Между всеми ВМ должна быть сетевая связность.
FQDNsudo 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
Нажимаем Сохранить
Начнётся процесс загрузки образа во временный каталог на сервере репозиториев.
После загрузки начнётся извлечение и индексация пакетов.
Это самый продолжительный процесс. Наберёмся терпения и подождём
Заветное изменение состояния