В этой статье будет рассмотрена установка 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:
- Позволяет организовать централизованное хранение и управление учетными записями пользователей и групп.
- Предоставляет сквозную аутентификацию пользователей в домене с использованием протокола Kerberos.
- Обеспечивает функционирование глобального хранилища домашних директорий, доступных по Samba/CIFS.
К основным особенностям я бы отнес следующие:
- Поддерживает только клиенты с ОС Astra Linux.
- Добавление машины ОС MS Windows в домен ALD штатными средствами ОС MS Windows невозможно.
- Одновременной работы нескольких серверов ALD не предусмотрено.
- Переключение на резервный сервер ALD только вручную.
- «Плоская» иерархия пользователей и ПК, т.е. нет возможности, например, создавать 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 включает в себя следующие верхнеуровневые шаги:
- Настройка BIND.
- Установка и настройка серверных служб ALD.
Предварительно неоходимо указать в качестве DNS сервера на сетевом интерфейсе адрес самого сервера.
Настройка BIND
Нам нужен вариант с локальным DNS сервером.
- Устанавливаем пакет 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
- Устанавливаем основной пакет 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:
Предварительно на клиентском ПК необходимо указать в качестве 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 комментариев
Добрый день!
Вход в домен приходиться выполнять каждый раз (ald-client join domain). Авторизация проходит успешно. После перезагрузки все по новой. Это нормальное поведение? Как можно автоматизировать вход с пк в домен?
Добрый день! Нет, так не должно быть. ald-client join domain – это разовая операция.
После перезагрузки не получается под доменной УЗ аутентифицироваться? Какая-то ошибка генерируется?
Здравствуйте
в привилегиях домена не появился подключенный компьютер, там вообще пусто, в разделе компьютеров он есть, все делалось в точности, версия астры 1.6 Смоленск, никаких бюллетеней поверх не установлено
Добрый день! А КД и клиент точно видят друг друга? В процессе присоединения клиента никаких ошибок не генерировалось? Попробуйте еще вот этой командой на клиенте статус проверить: sudo ald-client status
Еще из вариантов – последовательно перезагрудить КД и клиента и выполнить проверку снова.
делал по вашей инструкции но при подключении клиента к домену появляется ошибка: ошибка openldap при gssapi соединения local error в aldldapconnection.cpp:747 connect
Как ее исправить?
Добрый день! Разрешение имен точно работает корректно? КД по имени разрешает IP-адрес клиента и наоборот? Обсуждение подобной проблемы есть на форуме вендора – https://forum.astralinux.ru/threads/484/. Из обсуждения я понял, что по итогу былаиз-за ошибок в файлах конфигурации зоны в bind. Я бы на вашем месте проверил всю подсистему разрешения имен.
Здравствуйте, Роман! спасибо, действительно были опечатки в конфигурационных файлах DNS
Не за что 🙂
DNS – это уже почти классика дебага:
– Это точно не DNS.
– Это не может быть DNS.
– Это был DNS.
Добрый день!
не могли бы вы подсказать.
В некоторых инструкциях значиться такая строчка, якобы отвечающая за запуск BIND в изолированной среде.
для чего она нужна?
OPTIONS=”-u bind -t /var/bind9/chroot”
Добрый день! По большей части это chroot используется как один из инструментов усиления безопасности т.е. при настройке в конфигурации с chroot bind будет видеть только свою отдельную корневую файловую систему (отдельную от корневой файловой системы хоста). Даже если кто-то сможет получить доступ к процессу bind то он не сможет добраться до файловой системы самого хоста. Вот тут есть более подробное описани зачем и в каких случаях chtoot для bind примерним – https://tldp.org/HOWTO/Chroot-BIND-HOWTO-1.html
У меня интересный вопрос: скажите, пожалуйста, т.е. при подключении к ALD нового компа необходимо каждый раз ему прописывать ip в конфиге Bind? Т.е. DHCP для клиентов не существует? Только статика и ручная правка конфигов DNS записей.
Добрый день! Вопрос резонный. Несомненно, для продакшн использования нужен вариант с авторегистрацией DNS записи при выдачи в аренду IP-адреса. Например, как это делается для FreeIPA – https://wiki.astralinux.ru/pages/viewpage.action?pageId=32833574
Как аналогичную конфигурацию настроить для ALD я не разбирался. Но, если честно, то бесплатная ALD еще не выглядит тем вариантом, который я бы был готов развернуть где-то у клиента. FreeIPA выглядит гораздо более зрелым решением. Если нужно отечественной ПО для службы каталогов, то есть платная ALD Pro. Она выглядит уже более привлекательным решением. Кстати, в основе ALD Pro как раз лежит FreeIPA. Только доработанная + к ней прикручены дополнительные “плюшки”.
Добрый день. Можно ли к ALD подключить иные версии Linux? Такие как red OS или Alt?
Добрый день. Насколько я понял из документации – ALD это сугубо технология для Astra Linux. Другие дистрибутивы не поддерживаются.
Более того – даже для платной ALD Pro (по крайней мере примерно год назад) была возможность присоединять к домену только машины с Astra Linux. Возможно, что сейчас список поддерживаемых дистрибутивов изменился, но я не вчитывался в список изменений последних релизов.