Установка Astra Linux Directory

В этой статье будет рассмотрена установка Astra Linux Directory – реализация службы каталогов от компании АО «НПО РусБИТех» (Astra Linux). Особо отмечу, что речь идет про бесплатную версию Astra Linux Directory, а не Pro версию.

Цель статьи – это подготовить руководство для быстрого старта, которое позволило бы вам в разумные строки развернуть стенд для тестирования службы каталогов Astra Linux Directory.

Краткое описание служб каталогов ALD

Существует две версии продукта – Astra Linux Directory и Astra Linux Directory Pro. Как бы это странно не звучало, но технически это два разных продукта. Astra Linux Directory используются свой вариант каталога, а в основе служб каталогов Astra Linux Directory Pro лежит FreeIPA.

Astra Linux Directory доступна из коробки в бесплатной редакции Astra Linux Common Edition.

Кратко опишу основные возможности бесплатной версии Astra Linux Directory:

  1. Позволяет организовать централизованное хранение и управление учетными записями пользователей и групп.
  2. Предоставляет сквозную аутентификацию пользователей в домене с использованием протокола Kerberos.
  3. Обеспечивает функционирование глобального хранилища домашних директорий, доступных по Samba/CIFS.

К основным особенностям я бы отнес следующие:

  1. Поддерживает только клиенты с ОС Astra Linux.
  2. Добавление машины ОС MS Windows в домен ALD штатными средствами ОС MS Windows невозможно.
  3. Одновременной работы нескольких серверов ALD не предусмотрено.
  4. Переключение на резервный сервер ALD только вручную.
  5. «Плоская» иерархия пользователей и ПК, т.е. нет возможности, например, создавать OU.

Все приведенные мной выше умозаключения отражают только мое видение продукта и относятся к версии 1.7.37.

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

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

Она включает в себя один сервер (ADC01) и один клиент (ACLT01). В качестве службы разрешения имен я буду использовать сервер BIND. В целом для такой схемы можно вообще не использовать BIND, а просто сделать соответствующие записи в /etc/hosts.

Подготовка операционных систем

У Astra Linux Directory Common Edition нет градации на серверных и клиентские редакции ОС. Поэтому предварительная подготовка сервера и клиента ничем не отличаются.

Во всех примерах этой статьи использовалась версия Astra Linux Directory Common Edition релиза “Орёл” (2.12.43). Версия ядра – 5.10.0.-1038.40-hardened.

Итого подготовка серверной и клиентской системы включает в себя следующие шаги:

1. Установка и первоначальная настройка операционной системы. Можете использовать как физическое устройство, так и виртуальную машину. В целом можно использовать стандартные параметры установки, но вот версия ядра должна быть именно “hardened”:

2. Актуализация репозиториев:

apt update

3. Обновление установленных пакетов:

apt upgrade

Настройка сервера Astra Linux Directory

Установка Astra Linux Directory включает в себя следующие верхнеуровневые шаги:

  1. Настройка BIND.
  2. Установка и настройка серверных служб ALD.

Предварительно неоходимо указать в качестве DNS сервера на сетевом интерфейсе адрес самого сервера.

Настройка BIND

Нам нужен вариант с локальным DNS сервером.

  1. Устанавливаем пакет BIND:
apt install bind9

2. Устанавливаем пакет утилит для работы с DNS (например, в этот пакет входит утилита dig):

apt install dnsutils

3. Корректируем настройка BIND. Нужно указать на каких IP-адресах сервера прослушивать запросы и на какие внешние DNS следует перенаправлять запросы. Открываем на редактирование конфигурационный файл:

nano /etc/bind/named.conf.options

Нам нужно скорректировать секции “forwarders” и “listen-on”. В секции “forwarders” нужно указать на какие внешние DNS перенаправлять запросы, а в секции “listen-on” нужно указать локальные адреса, на которых сервер будет прослушивать подключения. Пример моего файла конфигурации:

options {
        directory "/var/cache/bind";

        // If there is a firewall between you and nameservers you want
        // to talk to, you may need to fix the firewall to allow multiple
        // ports to talk.  See http://www.kb.cert.org/vuls/id/800113

        // If your ISP provided one or more IP addresses for stable
        // nameservers, you probably want to use them as forwarders.
        // Uncomment the following block, and insert the addresses replacing
        // the all-0's placeholder.

        forwarders {
                8.8.8.8;
        };

        listen-on {
                127.0.0.1;
                10.10.10.37;
        };

        //========================================================================
        // If BIND logs error messages about the root key being expired,
        // you will need to update your keys.  See https://www.isc.org/bind-keys
        //========================================================================
        dnssec-validation auto;

        auth-nxdomain no;    # conform to RFC1035
        listen-on-v6 { any; };
};

4. Теперь необходимо внести информацию и прямой и обратной зоне. В моем случае DNS-имя зоны будет itproblog.ru. Открываем на редактирование конфигурационный файл:

nano /etc/bind/named.conf.local

Пример моего конфигурационного файла named.conf.local:


//
// Do any local configuration here
//

// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";

zone "itproblog.ru"    {
    type master;
    file "/etc/bind/zones/db.itproblog.ru";
};

zone "10.10.10.in-addr.arpa" {
    type master;
    file "/etc/bind/zones/db.10.10.10";
};

В секции type указан тип зоны (основная зона), а в секции file расположение файла с текстом зоны (его мы настроим далее).

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

mkdir /etc/bind/zones
touch /etc/bind/zones/db.itproblog.ru
touch /etc/bind/zones/db.10.10.10
chown -R bind:bind /etc/bind/zones

6. Редактируем файл с прямой зоной:

nano /etc/bind/zones/db.itproblog.ru

Пример моего файла прямой зоны:

$TTL    604800
@       IN      SOA     adc01.itproblog.ru. root.itproblog.ru. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      adc01.itproblog.ru.
adc01   IN      A       10.10.10.37
aclt01  IN      A       10.10.10.36

7. Редактируем файл с обратной зоной:

nano /etc/bind/zones/db.10.10.10

Пример моего файла обратной зоны:

$TTL    604800
@       IN      SOA     itproblog.ru. root.itproblog.ru. (
                              1         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      adc01.itproblog.ru
37     IN      PTR     adc01.itproblog.ru
36     IN      PTR     aclt01.itproblog.ru

8. Проверяем корректность заполнения конфигурационного файла и файлов зон:

named-checkconf
named-checkzone itproblog.ru /etc/bind/zones/db.itproblog.ru
named-checkzone 10.10.10.in-addr.arpa /etc/bind/zones/db.10.10.10

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

9. Перезагружаем сервис BIND:

systemctl restart bind9

10. Проверяем разрешение имени через наш DNS сервер:

dig @localhost adc01.itproblog.ru
dig 10.10.10.37 aclt01.itproblog.ru

т.е. имена сервера и клиента успешно разрешаются в IP-адреса.

Установка служб Astra Linux Directory

  1. Устанавливаем основной пакет ALD сервера и графический интерфейс администрирования Fly:
apt install ald-server-common fly-admin-ald-server

В процессе установки нас попросят указать пароль администратора LDAP. Указываем его:

2. Указываем полное доменное имя сервера:

hostnamectl set-hostname adc01.itproblog.ru

Проверяем:

hostnamectl

Да, полное доменное имя применилось корректно.

3. Перезагружаем сервер.

4. Теперь необходимо создать домен. Переходим по следующему пути в графическом режиме: “Пуск” – “Панель управления” – “Сеть” – “Доменная политика безопасности“.

5. Указываем пароль, который мы задали на этапе установки сервера ALD.

6. Поскольку пока еще сервер ALD не настроен, то могут возникать ошибки в диалоговых окна. Пока просто игнорируем их.

7. Указываем пароль базы данных Kerberos, пароль администратора ALD.

Я также отметил опцию “Использовать свои настройки сети” и выбрал IP-адрес для службы. После этого нажимаем кнопку “Создать сервер”.

8. Нажимаем “Да” в подтверждении о том, что мы согласны с тем, что предыдущая БД будет перезаписана (если она имеется).

9. В случае успешного завершения создания сервера мы получим соответствующее уведомление:

10. Перезагружаем сервер.

Проверка работы серверных служб ALD

Выполнил проверку сервиса ALD:

 ald-init status

Сообщение говорит о том, что сервис сконфигурирован, клиент и сервис работают корректно.

Теперь попробуем открыть графическую оснастку администрирования. Переходим по следующему пути в графическом режиме: “Пуск” – “Панель управления” – “Сеть” – “Доменная политика безопасности“:

Нажимаем кнопку “Подключиться”.

Указываем пароль администратора ALD:

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

Создание тестовых пользователей

Для того, чтобы проверить подключение клиента и работу под доменной УЗ создадим две учетные записи – user1 и user2.

Переходим по следующему пути в графическом режиме: “Пуск” – “Панель управления” – “Сеть” – “Доменная политика безопасности“. Указываем пароль администратора ALD.

В контекстном меню элемента “Пользователи” выбираем пункт “Создать“:

“:

Заполняем имя пользователя и указываем первичную группу “Domain Users”:

Подтверждаем наши намерения создать пользователя (зеленая галочка).

Создаем пароль для учетной записи:

Выполняем аналогичные действия для учетной записи user2.

Итого, в нашей директории должно быть два пользователя – user1 и user2:

Присоединение клиента к домену ALD

Предварительно на клиентском ПК необходимо указать в качестве DNS сервера наш сервер с ALD, т.к. именно там мы настроили BIND DNS.

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

ping adc01.itproblog.ru

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

hostnamectl set-hostname aclt01.itproblog.ru

Процесс присоединения к домену

1. Устанавливаем необходимые пакеты:

apt install ald-client-common ald-admin

2. Для разнообразия присоединим клиент через командную строку. Это можно сделать вот такой небольшой командой:

ald-client join adc01.itproblog.ru

где последним параметром передается имя контроллера домена ALD.

Подтверждаем изменения.

3. На этапе выбора пользователя с правами присоединения к домену нажимаем Enter и указываем пароль администратора ALD.

4. В случае успешного присоединения вы должны увидеть следующий вывод:

Если теперь посмотреть в консоль управления ALD на сервере, то вы можете увидеть новый объект компьютера:

Проверка работы клиента ALD

Если мы попробуем сейчас выполнить вход на клиентский компьютер под доменной учетной записью user1, то увидим следующее сообщение – “Доступ запрещен”:

С кем это связано? Все дело в том, что в оснастке управления ALD для учетной записи пользователя необходимо явно указать – на какие клиентские ПК ему разрешен доступ. Давайте добавим доменному user1 разрешения локального входа на доменный ПК aclt01.itproblog.ru.

Для этого на сервере ALD необходимо открыть оснастку управления ALD и в свойствам УЗ user1 на вкладке “Привилегии домена” добавим компьютер aclt01.itproblog.ru:

Сохраните внесенные изменения.

Попробуем выполнить вход теперь:

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

Установка Astra Linux Directory: 14 комментариев

  1. Добрый день!
    Вход в домен приходиться выполнять каждый раз (ald-client join domain). Авторизация проходит успешно. После перезагрузки все по новой. Это нормальное поведение? Как можно автоматизировать вход с пк в домен?

    1. Добрый день! Нет, так не должно быть. ald-client join domain – это разовая операция.

      После перезагрузки не получается под доменной УЗ аутентифицироваться? Какая-то ошибка генерируется?

  2. Здравствуйте
    в привилегиях домена не появился подключенный компьютер, там вообще пусто, в разделе компьютеров он есть, все делалось в точности, версия астры 1.6 Смоленск, никаких бюллетеней поверх не установлено

    1. Добрый день! А КД и клиент точно видят друг друга? В процессе присоединения клиента никаких ошибок не генерировалось? Попробуйте еще вот этой командой на клиенте статус проверить: sudo ald-client status

      Еще из вариантов – последовательно перезагрудить КД и клиента и выполнить проверку снова.

  3. делал по вашей инструкции но при подключении клиента к домену появляется ошибка: ошибка openldap при gssapi соединения local error в aldldapconnection.cpp:747 connect
    Как ее исправить?

    1. Добрый день! Разрешение имен точно работает корректно? КД по имени разрешает IP-адрес клиента и наоборот? Обсуждение подобной проблемы есть на форуме вендора – https://forum.astralinux.ru/threads/484/. Из обсуждения я понял, что по итогу былаиз-за ошибок в файлах конфигурации зоны в bind. Я бы на вашем месте проверил всю подсистему разрешения имен.

      1. Здравствуйте, Роман! спасибо, действительно были опечатки в конфигурационных файлах DNS

        1. Не за что 🙂

          DNS – это уже почти классика дебага:
          – Это точно не DNS.
          – Это не может быть DNS.
          – Это был DNS.

  4. Добрый день!
    не могли бы вы подсказать.
    В некоторых инструкциях значиться такая строчка, якобы отвечающая за запуск BIND в изолированной среде.
    для чего она нужна?
    OPTIONS=”-u bind -t /var/bind9/chroot”

    1. Добрый день! По большей части это chroot используется как один из инструментов усиления безопасности т.е. при настройке в конфигурации с chroot bind будет видеть только свою отдельную корневую файловую систему (отдельную от корневой файловой системы хоста). Даже если кто-то сможет получить доступ к процессу bind то он не сможет добраться до файловой системы самого хоста. Вот тут есть более подробное описани зачем и в каких случаях chtoot для bind примерним – https://tldp.org/HOWTO/Chroot-BIND-HOWTO-1.html

  5. У меня интересный вопрос: скажите, пожалуйста, т.е. при подключении к ALD нового компа необходимо каждый раз ему прописывать ip в конфиге Bind? Т.е. DHCP для клиентов не существует? Только статика и ручная правка конфигов DNS записей.

    1. Добрый день! Вопрос резонный. Несомненно, для продакшн использования нужен вариант с авторегистрацией DNS записи при выдачи в аренду IP-адреса. Например, как это делается для FreeIPA – https://wiki.astralinux.ru/pages/viewpage.action?pageId=32833574
      Как аналогичную конфигурацию настроить для ALD я не разбирался. Но, если честно, то бесплатная ALD еще не выглядит тем вариантом, который я бы был готов развернуть где-то у клиента. FreeIPA выглядит гораздо более зрелым решением. Если нужно отечественной ПО для службы каталогов, то есть платная ALD Pro. Она выглядит уже более привлекательным решением. Кстати, в основе ALD Pro как раз лежит FreeIPA. Только доработанная + к ней прикручены дополнительные “плюшки”.

  6. Добрый день. Можно ли к ALD подключить иные версии Linux? Такие как red OS или Alt?

    1. Добрый день. Насколько я понял из документации – ALD это сугубо технология для Astra Linux. Другие дистрибутивы не поддерживаются.

      Более того – даже для платной ALD Pro (по крайней мере примерно год назад) была возможность присоединять к домену только машины с Astra Linux. Возможно, что сейчас список поддерживаемых дистрибутивов изменился, но я не вчитывался в список изменений последних релизов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *