Ошибка rpc ошибка mit kerberos v5

— ОШИБКА:

Не удалось отправить широковещательное сообщение ‘bc-check-dc:.domena.net’:Сеть недоступна

Сеть не настроена или настроена не полностью:

Настройка сети через interfaces:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
     address i.i.i.i
     netmask 255.255.m.m
     gateway g.g.g.g

Если во время настройки и перезагрузки сети появляются ошибки, например «Failed to bring up eth0», то можно «очистить» интерфейс командой:

ip addr flush eth0

ald-client join


— ОШИБКА:

Не удалось отправить широковещательное сообщение ‘bc-check-dc:.da’: Сеть недоступна

— ОШИБКА:

Astra Linux Directory не сконфигурирована.

Заполните конфигурационный файл ‘/etc/ald/ald.conf’.

Не указан gateway в настройках сети клиента.

Не заполнен /etc/ald/ald.conf

ald-client join


— ОШИБКА:

Не удалось отправить широковещательное сообщение ‘bc-check-dc:.da’: Сеть недоступна

— ПРЕДУПРЕЖДЕНИЕ:

ALD сервер домена ‘.da’ не обнаружен.

— ОШИБКА:

Не удалось отправить широковещательное сообщение ‘bc-check-dc:.da’: Сеть недоступна

Не указан gateway в настройках сети клиента.

ald-client status


— ОШИБКА:

Не удалось отправить широковещательное сообщение ‘bc-check-dc:.da’: Сеть недоступна

— ПРЕДУПРЕЖДЕНИЕ:

ALD сервер домена ‘.da’ не обнаружен.

Не указан gateway в настройках сети клиента.

ald-client join server.da


— ПРЕДУПРЕЖДЕНИЕ:

Ошибка разрешения имени компьютера ‘server.da’.

Некорректно настроены имя и ip адрес, например в /etc/hosts отсутствует длинное имя машин:

127.0.0.1 localhost
192.168.1.1  myserver
192.168.1.2	 client

ald-init init


— ОШИБКА:

Триггер ‘ald-cfg-nfs:DoNFSInitFS’ вызвал исключение!

Ошибка RPC: Ошибка Krb5 сервера ALD: Ошибка проверки сообщения KRB-PRIV. в ADKrb5Server.cpp:248(decode)

:> Incorrect net address

:> (rpc-creds)

Ошибка может быть вызвана применением антивируса или изменением правил iptables.

ald-init init или ald-client join


— ОШИБКА: Ошибка аутентификации пользователя ‘admin/admin’: Ошибка MIT Kerberos V5:

Ошибка инициализации интерфейса администрирования kadm5. в ALDKadm5Connection.cpp:345(ConnectPassword)

:> GSS-API (or Kerberos) error

Некорректно настроены имя и ip адрес, например в /etc/hosts (разрешение имен может быть настроено и с помощью сервера DNS) следует указать ip, длинное и короткое имя и исключить запись «127.0.1.1 myserver»:

127.0.0.1 localhost
192.168.1.1 myserver.example.ru myserver
192.168.1.2	client.example.ru client

В /etc/ald/ald.conf не указаны длинное имя машины и домен:

DOMAIN=.example.ru
 
SERVER=myserver.example.ru

Недостаточно энтропии во время инициализации домена.

  • При вводе клиента (ald-client join), ошибка(345) возникает из-за несовпадения времени на машинах.

Утилита hostname должна выдавать короткое имя. После внесения изменений в файл /etc/hostname необходимо перезагрузить машину.

ald-init init или ald-client join


— ОШИБКА:

Ошибка OpenLDAP при GSSAPI соединения — Local error в ALDLDapConnection.cpp:734(Connect)

:> SASL(1): generic failure: GSSAPI Error: Unspecified GSS failure. Minor code may provide more information (Server ldap/dc.test.test not found in Kerberos database)

Разрешение имен настроено не верно, перепутаны местами длинное и короткое имя, пример:

127.0.0.1 localhost
192.168.1.1  myserver myserver.example.ru
192.168.1.2  client client.example.ru

ald-admin test-integrity —admin=ald-admin


Вход от имени пользователя ‘ald-admin’…

Введите пароль администратора ALD ‘ald-admin’: *

Проверка конфигурации домена…………………………….ok

Проверка модулей LDAP…………………………………..ok

Проверка индексов LDAP………………………………….ok

Проверка ограничений уникальности LDAP……………………ok

Проверка системных принципалов…………………………..— ОШИБКА:

Ошибка RPC: Ошибка MIT Kerberos V5: Не удалось получить список принципалов Kerberos. в ALDKadm5Connection.cpp:924(Principals)

:> Operation requires «list» privilege

:> (rpc-princ-list)

После добавления astra-admin в ALLOWED_LOCAL_GROUPS и выполнения ald-init commit-config снять права администратора домена, применить, установить права администратора домена, применить.

  • При выполнении: ald-client commit-config

— ОШИБКА:
Ошибка OpenLDAP при запросе ‘cn=client.ru,ou=hosts,dc=ru (objectClass=x-ald-host-object)’ — Can’tcontact LDAP server в ALDLdapConnection.cpp:213(Search)

На клиенте в файле /etc/hosts не внесены данные о резервном сервере.

Содержание

  1. Astra Linux 1.5 проблема с ALD
  2. Astra.
  3. Astra Linux 1.5 проблема с ALD
  4. Astra Linux 1.5 проблема с ALD
  5. Ошибки инициализации домена
  6. 17 Комментариев
  7. Дмитрий Анохов
  8. Дмитрий Анохов
  9. Дмитрий Анохов
  10. Дмитрий Анохов
  11. Дмитрий Анохов
  12. Константин Ковалевский
  13. Дмитрий Андреев
  14. Дмитрий Андреев
  15. Дмитрий Анохов
  16. Дмитрий Андреев
  17. Константин Ковалевский
  18. Егор Сураев
  19. Константин Ковалевский
  20. Егор Сураев
  21. Дмитрий Анохов
  22. Марина Яловега
  23. Константин Ковалевский
  24. ‘Ald-rpc не найден’ на Astra Linux 1.6
  25. Irbis88
  26. CrashBldash
  27. Irbis88
  28. Установка Astra Linux Directory
  29. Краткое описание служб каталогов ALD
  30. Планируемая схема установки
  31. Подготовка операционных систем
  32. Настройка сервера Astra Linux Directory
  33. Настройка BIND
  34. Установка служб Astra Linux Directory
  35. Проверка работы серверных служб ALD
  36. Создание тестовых пользователей
  37. Присоединение клиента к домену ALD
  38. Процесс присоединения к домену
  39. Проверка работы клиента ALD
  40. Установка Astra Linux Directory : 8 комментариев

Astra Linux 1.5 проблема с ALD

Столкнулся с такой проблемой собрал домен на Астре (domain.mil.zs), вроде бы собрался без ошибок. Но при попытке подключить подключить клиент выдает «Домен domain.mil.zs не обнаружен». Кто знает в каком направлении копать?

Astra.

Интересно) давай глуши, нужно более детально все рассказать.

Астра она такая, непредсказуемая. Был опыт работы с АЛД, можешь поподробнее описать, все делал по инструкции из руководства пользователя? Напишешь на почту? chekin88@yandex.ru

Нужно настраивать по руководству администратора, ч.2.

ошибка наверху лежит. что есть у тебя в файле /etc/hosts, /etc/resolv.conf, /etc/network/interfaces?

Есть ль возможность подключиться удаленно?

Astra Linux 1.5 проблема с ALD

Прилагаю содержимое файлов:

/etc/hosts 127.0.0.1 localhost 10.20.120.35 ns1.domain.mil.zs ns1

/etc/resolv.conf domain domain.mil.zs search domain.mil.zs nameserver 10.20.120.35

/etc/network/interfaces auto eth0 iface eth0 inet static address 10.20.120.35 netmask 255.255.255.224 gateway 10.20.120.34 network 10.20.120.0 broadcast 10.20.120.255 dns-nameserver 10.20.120.35

У тебя настройки сети в тьме какой-то.

Адрес сети не бьёт..

А клиент как настроен? На самом сервере авторизацтя проходит?

Astra Linux 1.5 проблема с ALD

С доменом разобрались. С почтой поможешь? Проблема тоже на Астре.

Источник

Ошибки инициализации домена

Не удалось отправить широковещательное сообщение ‘bc-check-dc:.domena.net’:Сеть недоступна

Настройка сети через interfaces:

Если во время настройки и перезагрузки сети появляются ошибки, например «Failed to bring up eth0», то можно «очистить» интерфейс командой:

ip addr flush eth0

Не удалось отправить широковещательное сообщение ‘bc-check-dc:.da’: Сеть недоступна

Astra Linux Directory не сконфигурирована.

Заполните конфигурационный файл ‘/etc/ald/ald.conf’.

Не заполнен /etc/ald/ald.conf

Не удалось отправить широковещательное сообщение ‘bc-check-dc:.da’: Сеть недоступна

ALD сервер домена ‘.da’ не обнаружен.

Не удалось отправить широковещательное сообщение ‘bc-check-dc:.da’: Сеть недоступна

Не удалось отправить широковещательное сообщение ‘bc-check-dc:.da’: Сеть недоступна

ALD сервер домена ‘.da’ не обнаружен.

Ошибка разрешения имени компьютера ‘server.da’.

Некорректно настроены имя и ip адрес, например в /etc/hosts отсутствует длинное имя машин:

Триггер ‘ald-cfg-nfs:DoNFSInitFS’ вызвал исключение!

Ошибка RPC: Ошибка Krb5 сервера ALD: Ошибка проверки сообщения KRB-PRIV. в ADKrb5Server.cpp:248(decode)

:> Incorrect net address

— ОШИБКА: Ошибка аутентификации пользователя ‘admin/admin’: Ошибка MIT Kerberos V5:

Ошибка инициализации интерфейса администрирования kadm5. в ALDKadm5Connection.cpp:345(ConnectPassword)

:> GSS-API (or Kerberos) error

В /etc/ald/ald.conf не указаны длинное имя машины и домен:

Недостаточно энтропии во время инициализации домена.

    При вводе клиента (ald-client join), ошибка( 345 ) возникает из-за несовпадения времени на машинах.

Утилита hostname должна выдавать короткое имя. После внесения изменений в файл /etc/hostname необходимо перезагрузить машину.

Ошибка OpenLDAP при GSSAPI соединения — Local error в ALDLDapConnection.cpp:734(Connect)

:> SASL(1): generic failure: GSSAPI Error: Unspecified GSS failure. Minor code may provide more information (Server ldap/dc.test.test not found in Kerberos database)

Вход от имени пользователя ‘ald-admin’.

Введите пароль администратора ALD ‘ald-admin’: *

Проверка конфигурации домена. ok

Проверка модулей LDAP. ok

Проверка индексов LDAP. ok

Проверка ограничений уникальности LDAP. ok

Проверка системных принципалов. — ОШИБКА:

Ошибка RPC: Ошибка MIT Kerberos V5: Не удалось получить список принципалов Kerberos. в ALDKadm5Connection.cpp:924(Principals)

:> Operation requires «list» privilege

  • При выполнении: ald-client commit-config

17 Комментариев

Дмитрий Анохов

ald-init init возникает ошибка:

Ошибка при установке ALD соединения.

Ошибка OpenLDAP при GSSAPI соединения — Local error в ALDLDapConnection.cpp: 734 (Connect)

:> SASL(1): generic failure: GSSAPI Error: Unspecified GSS failure. Minor code may provide more information (Server ldap/dc.test.test not found in Kerberos database)

Дмитрий Анохов

При попытки ввести на сервере Ald-init init выводит ошибку:
— ОШИБКА:
Триггер ‘ald-cfg-parsec-ald:DoInitParsecAudLdapSchema’ Вызвал исключение!
Не удалось именить права доступа к ‘/etc/ldap/slapd.d/cn=config.ldif’.

— ОШИБКА:
Не удалось создать базу данных LDAP.

Дмитрий Анохов

Но при попытке подключить АРМ к домену ald-client join ns1. astra.da.nu происходит следующее, сначала выходит сообщение:

домен astra.da.nu не обнаружен.

компьютер будет подключен к домену astra.da.nu .

Дмитрий Анохов

Ошибка аутентификации пользователя ‘admin/admin’: Ошибка MIT Kerberos V5: Ошибка инициализации аутентификационных данных krb5 пользователя. в ALDKadm5Connection.cpp:283(ConnectPassword)

:> Client ‘admin/admin@168.32.216’ not found in Kerberos database

Нет записи в hosts на обоих машинах. ald-client join по ip.

Дмитрий Анохов

Ошибка аутентификации пользователя ‘admin/admin’: Ошибка MIT Kerberos V5: Ошибка инициализации аутентификационных данных krb5 пользователя. в ALDKadm5Connection.cpp:283(ConnectPassword)

:> Client ‘admin/admin@NU.DA’ not found in Kerberos database

Неверная запись имени сервера в hosts клиента

Константин Ковалевский

— ОШИБКА:
Ошибка OpenLDAP при запросе ‘cn=client.ru,ou=hosts,dc=ru (objectClass=x-ald-host-object)’ — Can’tcontact LDAP server в ALDLdapConnection.cpp:213(Search)

На клиенте в файле /etc/hosts не внесены данные о резервном сервере.

Дмитрий Андреев

root@server:/home/u# ald-init init
— ОШИБКА:
Конфигурационный параметр ‘DOMAIN’ содержит неверное значение ‘.domain.ald ‘.

При попадании табов и пробелов в конце имени домена в параметре DOMAIN=.domain.ald файла /etc/ald/ald.conf

Дмитрий Андреев

Ошибка MIT Kerberos V5: Ошибка получения ключей принципала Kerberos ‘host/client@DA.NU’. в ALDKadm5Connection.cpp:1581(KeytabAddPrincipal)

:> Principal does not exist

В /etc/hosts указано не длинное имя клиента.

Дмитрий Анохов

Не указано длинное имя клиента* ?

Дмитрий Андреев

Константин Ковалевский

[31m— ERROR:RPC error: Ошибка Krb5 сервера ALD: Ошибка проверки сообщения KRB-PRIV. в ADKrb5Server.cpp:263(decode):> Incorrect net address:> (rpc-creds)

Ошибка может быть вызвана применением антивируса или изменением правил iptables.

Проблема оказалась в Dr. Web ESS 10. Spider Gate блокирует порты RPC, его необходимо отключать. При чём, настройки Spider Gate для Linux недоступны, необходимо отключать Spider Gate в ЦУ Dr. Web для группы Everyone для Windows. Ну, или использовать на клиентах не Dr. Web for Workstations а Dr.Web for Fileservers, где этой проблемы не наблюдается.

Егор Сураев

Ошибка при установке ALD соединения.

Ошибка аутентификации пользователя ‘admin/admin’: Ошибка MIT Kerberos V5: Ошибка инициализации аутентификационных данных krb5 пользователя. в ALDKadm5Connection.cpp:283(ConnectPassword)

:> Client ‘admin/admin@NU.DA’ not found in Kerberos database

Ошибка может быть вызвана вводом неправильного пароля при ald-init promote резервного сервера.

Константин Ковалевский

Если при перезапуске ALD выходит ошибка:

— ОШИБКА:
Триггер ‘ald-cfg-smb:DoSambaStartFS’ вызвал исключение!
Не удалось запустить сервис nmbd. Код возврата 256.

А перезапуск сервиса nmbd выводит такую информацию:
root@server:/home/u# systemctl status nmbd
● nmbd.service
Loaded: masked (/dev/null; bad)
Active: inactive (dead)

Необходимо выполнить команды:

systemctl unmask nmbd
systemctl enable nmbd
systemctl restart nmbd

Егор Сураев

cpp:144 чето там при попытке администрирования из графики — означает, что ранее уже был получен билет администратора и необходимо сначала уничтожить предыдущий билет командой:

Далее получить новый уже из графики.

Дмитрий Анохов

Ошибка MIT Kerberos V5: Ошибка получения ключей принципала Kerberos ‘host/arm@DOMAIN’. В ALDKadm5Connection.cpp:1528(KeytabAddPrincipal) Principal does not exist.

Если на контроллере домена создаётся принципал с именем ‘host/arm@DOMAIN’, тогда выполните на клиенте ald-client update-svc-keytab ‘host/arm@DOMAIN’.

Марина Яловега

При возникновении ошибки 111 ( Смоленск 1.5):

Решение от клиента

  1. Добавить в конфигурационный файл /etc/ald/ald.conf параметр USE_RPC, равный нулю

2. Выполнить ald-init restart

Константин Ковалевский

При создании резервного сервера командой sudo ald-init init —slave выходит ошибка:

Источник

‘Ald-rpc не найден’ на Astra Linux 1.6

Irbis88

New member

;source /etc/network/interfaces.d/*
auto lo
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet static
address 192.168.73.74
netmask 255.255.255.0
gateway 192.168.73.1
dns-domain test.ru
dns-nameservers 192.168.73.1​

source /etc/network/interfaces.d/*
auto lo
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet static
address 192.168.73.73
netmask 255.255.255.0
gateway 192.168.73.1
dns-domain test.ru
dns-nameservers 192.168.73.1​

CrashBldash

New member

Irbis88

New member

Мною найдена иная информация:

Host-only/VMnet1. Второго рода сеть соединяет гостевую виртуальную машину и хостовый компьютер, образуя частную сеть. Данное подключение обеспечивает сетевое соединение между виртуальной машиной и физическим компьютером (хостом), используя виртуальный сетевой адаптер доступный операционной системе хоста.
При этом типе подключения, виртуальная машина не имеет доступ к локальной сети и Интернету. Поскольку виртуальные машины не имеют доступа к физической сети, VMware Workstation предусматривает использование DHCP службы для назначения TCPIP параметров виртуальным машинам. Для host-only виртуальной сети используется определенная подсеть, в нашем случае это 192.168.52.0-254, где виртуальный адаптер на физическом компьютере имеет IP адрес 192.168.52.1, а все гостевые виртуальные машины использующие host-only подключение получают адреса от VMware DHCP server.
Виртуальные машины использующие host-only сеть могут взаимодействовать между собой в этой сети.

Источник

Установка 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. Актуализация репозиториев:

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

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

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

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

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

Настройка BIND

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. Устанавливаем основной пакет ALD сервера и графический интерфейс администрирования Fly:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Добрый день!
Вход в домен приходиться выполнять каждый раз (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.

Источник

— ОШИБКА:

Не удалось отправить широковещательное сообщение ‘bc-check-dc:.domena.net’:Сеть недоступна

Сеть не настроена или настроена не полностью:

Настройка сети через interfaces:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
     address i.i.i.i
     netmask 255.255.m.m
     gateway g.g.g.g

Если во время настройки и перезагрузки сети появляются ошибки, например «Failed to bring up eth0», то можно «очистить» интерфейс командой:

ip addr flush eth0

ald-client join


— ОШИБКА:

Не удалось отправить широковещательное сообщение ‘bc-check-dc:.da’: Сеть недоступна

— ОШИБКА:

Astra Linux Directory не сконфигурирована.

Заполните конфигурационный файл ‘/etc/ald/ald.conf’.

Не указан gateway в настройках сети клиента.

Не заполнен /etc/ald/ald.conf

ald-client join


— ОШИБКА:

Не удалось отправить широковещательное сообщение ‘bc-check-dc:.da’: Сеть недоступна

— ПРЕДУПРЕЖДЕНИЕ:

ALD сервер домена ‘.da’ не обнаружен.

— ОШИБКА:

Не удалось отправить широковещательное сообщение ‘bc-check-dc:.da’: Сеть недоступна

Не указан gateway в настройках сети клиента.

ald-client status


— ОШИБКА:

Не удалось отправить широковещательное сообщение ‘bc-check-dc:.da’: Сеть недоступна

— ПРЕДУПРЕЖДЕНИЕ:

ALD сервер домена ‘.da’ не обнаружен.

Не указан gateway в настройках сети клиента.

ald-client join server.da


— ПРЕДУПРЕЖДЕНИЕ:

Ошибка разрешения имени компьютера ‘server.da’.

Некорректно настроены имя и ip адрес, например в /etc/hosts отсутствует длинное имя машин:

127.0.0.1 localhost
192.168.1.1  myserver
192.168.1.2	 client

ald-init init


— ОШИБКА:

Триггер ‘ald-cfg-nfs:DoNFSInitFS’ вызвал исключение!

Ошибка RPC: Ошибка Krb5 сервера ALD: Ошибка проверки сообщения KRB-PRIV. в ADKrb5Server.cpp:248(decode)

:> Incorrect net address

:> (rpc-creds)

Ошибка может быть вызвана применением антивируса или изменением правил iptables.

ald-init init или ald-client join


— ОШИБКА: Ошибка аутентификации пользователя ‘admin/admin’: Ошибка MIT Kerberos V5:

Ошибка инициализации интерфейса администрирования kadm5. в ALDKadm5Connection.cpp:345(ConnectPassword)

:> GSS-API (or Kerberos) error

Некорректно настроены имя и ip адрес, например в /etc/hosts (разрешение имен может быть настроено и с помощью сервера DNS) следует указать ip, длинное и короткое имя и исключить запись «127.0.1.1 myserver»:

127.0.0.1 localhost
192.168.1.1 myserver.example.ru myserver
192.168.1.2	client.example.ru client

В /etc/ald/ald.conf не указаны длинное имя машины и домен:

DOMAIN=.example.ru
 
SERVER=myserver.example.ru

Недостаточно энтропии во время инициализации домена.

  • При вводе клиента (ald-client join), ошибка(345) возникает из-за несовпадения времени на машинах.

Утилита hostname должна выдавать короткое имя. После внесения изменений в файл /etc/hostname необходимо перезагрузить машину.

ald-init init или ald-client join


— ОШИБКА:

Ошибка OpenLDAP при GSSAPI соединения — Local error в ALDLDapConnection.cpp:734(Connect)

:> SASL(1): generic failure: GSSAPI Error: Unspecified GSS failure. Minor code may provide more information (Server ldap/dc.test.test not found in Kerberos database)

Разрешение имен настроено не верно, перепутаны местами длинное и короткое имя, пример:

127.0.0.1 localhost
192.168.1.1  myserver myserver.example.ru
192.168.1.2  client client.example.ru

ald-admin test-integrity —admin=ald-admin


Вход от имени пользователя ‘ald-admin’…

Введите пароль администратора ALD ‘ald-admin’: *

Проверка конфигурации домена…………………………….ok

Проверка модулей LDAP…………………………………..ok

Проверка индексов LDAP………………………………….ok

Проверка ограничений уникальности LDAP……………………ok

Проверка системных принципалов…………………………..— ОШИБКА:

Ошибка RPC: Ошибка MIT Kerberos V5: Не удалось получить список принципалов Kerberos. в ALDKadm5Connection.cpp:924(Principals)

:> Operation requires «list» privilege

:> (rpc-princ-list)

После добавления astra-admin в ALLOWED_LOCAL_GROUPS и выполнения ald-init commit-config снять права администратора домена, применить, установить права администратора домена, применить.

  • При выполнении: ald-client commit-config

— ОШИБКА:
Ошибка OpenLDAP при запросе ‘cn=client.ru,ou=hosts,dc=ru (objectClass=x-ald-host-object)’ — Can’tcontact LDAP server в ALDLdapConnection.cpp:213(Search)

На клиенте в файле /etc/hosts не внесены данные о резервном сервере.

Содержание

  1. Astra Linux 1.5 проблема с ALD
  2. Astra.
  3. Astra Linux 1.5 проблема с ALD
  4. Astra Linux 1.5 проблема с ALD
  5. Ошибки инициализации домена
  6. 17 Комментариев
  7. Дмитрий Анохов
  8. Дмитрий Анохов
  9. Дмитрий Анохов
  10. Дмитрий Анохов
  11. Дмитрий Анохов
  12. Константин Ковалевский
  13. Дмитрий Андреев
  14. Дмитрий Андреев
  15. Дмитрий Анохов
  16. Дмитрий Андреев
  17. Константин Ковалевский
  18. Егор Сураев
  19. Константин Ковалевский
  20. Егор Сураев
  21. Дмитрий Анохов
  22. Марина Яловега
  23. Константин Ковалевский
  24. ‘Ald-rpc не найден’ на Astra Linux 1.6
  25. Irbis88
  26. CrashBldash
  27. Irbis88
  28. Установка Astra Linux Directory
  29. Краткое описание служб каталогов ALD
  30. Планируемая схема установки
  31. Подготовка операционных систем
  32. Настройка сервера Astra Linux Directory
  33. Настройка BIND
  34. Установка служб Astra Linux Directory
  35. Проверка работы серверных служб ALD
  36. Создание тестовых пользователей
  37. Присоединение клиента к домену ALD
  38. Процесс присоединения к домену
  39. Проверка работы клиента ALD
  40. Установка Astra Linux Directory : 8 комментариев

Astra Linux 1.5 проблема с ALD

Столкнулся с такой проблемой собрал домен на Астре (domain.mil.zs), вроде бы собрался без ошибок. Но при попытке подключить подключить клиент выдает «Домен domain.mil.zs не обнаружен». Кто знает в каком направлении копать?

Astra.

Интересно) давай глуши, нужно более детально все рассказать.

Астра она такая, непредсказуемая. Был опыт работы с АЛД, можешь поподробнее описать, все делал по инструкции из руководства пользователя? Напишешь на почту? chekin88@yandex.ru

Нужно настраивать по руководству администратора, ч.2.

ошибка наверху лежит. что есть у тебя в файле /etc/hosts, /etc/resolv.conf, /etc/network/interfaces?

Есть ль возможность подключиться удаленно?

Astra Linux 1.5 проблема с ALD

Прилагаю содержимое файлов:

/etc/hosts 127.0.0.1 localhost 10.20.120.35 ns1.domain.mil.zs ns1

/etc/resolv.conf domain domain.mil.zs search domain.mil.zs nameserver 10.20.120.35

/etc/network/interfaces auto eth0 iface eth0 inet static address 10.20.120.35 netmask 255.255.255.224 gateway 10.20.120.34 network 10.20.120.0 broadcast 10.20.120.255 dns-nameserver 10.20.120.35

У тебя настройки сети в тьме какой-то.

Адрес сети не бьёт..

А клиент как настроен? На самом сервере авторизацтя проходит?

Astra Linux 1.5 проблема с ALD

С доменом разобрались. С почтой поможешь? Проблема тоже на Астре.

Источник

Ошибки инициализации домена

Не удалось отправить широковещательное сообщение ‘bc-check-dc:.domena.net’:Сеть недоступна

Настройка сети через interfaces:

Если во время настройки и перезагрузки сети появляются ошибки, например «Failed to bring up eth0», то можно «очистить» интерфейс командой:

ip addr flush eth0

Не удалось отправить широковещательное сообщение ‘bc-check-dc:.da’: Сеть недоступна

Astra Linux Directory не сконфигурирована.

Заполните конфигурационный файл ‘/etc/ald/ald.conf’.

Не заполнен /etc/ald/ald.conf

Не удалось отправить широковещательное сообщение ‘bc-check-dc:.da’: Сеть недоступна

ALD сервер домена ‘.da’ не обнаружен.

Не удалось отправить широковещательное сообщение ‘bc-check-dc:.da’: Сеть недоступна

Не удалось отправить широковещательное сообщение ‘bc-check-dc:.da’: Сеть недоступна

ALD сервер домена ‘.da’ не обнаружен.

Ошибка разрешения имени компьютера ‘server.da’.

Некорректно настроены имя и ip адрес, например в /etc/hosts отсутствует длинное имя машин:

Триггер ‘ald-cfg-nfs:DoNFSInitFS’ вызвал исключение!

Ошибка RPC: Ошибка Krb5 сервера ALD: Ошибка проверки сообщения KRB-PRIV. в ADKrb5Server.cpp:248(decode)

:> Incorrect net address

— ОШИБКА: Ошибка аутентификации пользователя ‘admin/admin’: Ошибка MIT Kerberos V5:

Ошибка инициализации интерфейса администрирования kadm5. в ALDKadm5Connection.cpp:345(ConnectPassword)

:> GSS-API (or Kerberos) error

В /etc/ald/ald.conf не указаны длинное имя машины и домен:

Недостаточно энтропии во время инициализации домена.

    При вводе клиента (ald-client join), ошибка( 345 ) возникает из-за несовпадения времени на машинах.

Утилита hostname должна выдавать короткое имя. После внесения изменений в файл /etc/hostname необходимо перезагрузить машину.

Ошибка OpenLDAP при GSSAPI соединения — Local error в ALDLDapConnection.cpp:734(Connect)

:> SASL(1): generic failure: GSSAPI Error: Unspecified GSS failure. Minor code may provide more information (Server ldap/dc.test.test not found in Kerberos database)

Вход от имени пользователя ‘ald-admin’.

Введите пароль администратора ALD ‘ald-admin’: *

Проверка конфигурации домена. ok

Проверка модулей LDAP. ok

Проверка индексов LDAP. ok

Проверка ограничений уникальности LDAP. ok

Проверка системных принципалов. — ОШИБКА:

Ошибка RPC: Ошибка MIT Kerberos V5: Не удалось получить список принципалов Kerberos. в ALDKadm5Connection.cpp:924(Principals)

:> Operation requires «list» privilege

  • При выполнении: ald-client commit-config

17 Комментариев

Дмитрий Анохов

ald-init init возникает ошибка:

Ошибка при установке ALD соединения.

Ошибка OpenLDAP при GSSAPI соединения — Local error в ALDLDapConnection.cpp: 734 (Connect)

:> SASL(1): generic failure: GSSAPI Error: Unspecified GSS failure. Minor code may provide more information (Server ldap/dc.test.test not found in Kerberos database)

Дмитрий Анохов

При попытки ввести на сервере Ald-init init выводит ошибку:
— ОШИБКА:
Триггер ‘ald-cfg-parsec-ald:DoInitParsecAudLdapSchema’ Вызвал исключение!
Не удалось именить права доступа к ‘/etc/ldap/slapd.d/cn=config.ldif’.

— ОШИБКА:
Не удалось создать базу данных LDAP.

Дмитрий Анохов

Но при попытке подключить АРМ к домену ald-client join ns1. astra.da.nu происходит следующее, сначала выходит сообщение:

домен astra.da.nu не обнаружен.

компьютер будет подключен к домену astra.da.nu .

Дмитрий Анохов

Ошибка аутентификации пользователя ‘admin/admin’: Ошибка MIT Kerberos V5: Ошибка инициализации аутентификационных данных krb5 пользователя. в ALDKadm5Connection.cpp:283(ConnectPassword)

:> Client ‘admin/admin@168.32.216’ not found in Kerberos database

Нет записи в hosts на обоих машинах. ald-client join по ip.

Дмитрий Анохов

Ошибка аутентификации пользователя ‘admin/admin’: Ошибка MIT Kerberos V5: Ошибка инициализации аутентификационных данных krb5 пользователя. в ALDKadm5Connection.cpp:283(ConnectPassword)

:> Client ‘admin/admin@NU.DA’ not found in Kerberos database

Неверная запись имени сервера в hosts клиента

Константин Ковалевский

— ОШИБКА:
Ошибка OpenLDAP при запросе ‘cn=client.ru,ou=hosts,dc=ru (objectClass=x-ald-host-object)’ — Can’tcontact LDAP server в ALDLdapConnection.cpp:213(Search)

На клиенте в файле /etc/hosts не внесены данные о резервном сервере.

Дмитрий Андреев

root@server:/home/u# ald-init init
— ОШИБКА:
Конфигурационный параметр ‘DOMAIN’ содержит неверное значение ‘.domain.ald ‘.

При попадании табов и пробелов в конце имени домена в параметре DOMAIN=.domain.ald файла /etc/ald/ald.conf

Дмитрий Андреев

Ошибка MIT Kerberos V5: Ошибка получения ключей принципала Kerberos ‘host/client@DA.NU’. в ALDKadm5Connection.cpp:1581(KeytabAddPrincipal)

:> Principal does not exist

В /etc/hosts указано не длинное имя клиента.

Дмитрий Анохов

Не указано длинное имя клиента* ?

Дмитрий Андреев

Константин Ковалевский

[31m— ERROR:RPC error: Ошибка Krb5 сервера ALD: Ошибка проверки сообщения KRB-PRIV. в ADKrb5Server.cpp:263(decode):> Incorrect net address:> (rpc-creds)

Ошибка может быть вызвана применением антивируса или изменением правил iptables.

Проблема оказалась в Dr. Web ESS 10. Spider Gate блокирует порты RPC, его необходимо отключать. При чём, настройки Spider Gate для Linux недоступны, необходимо отключать Spider Gate в ЦУ Dr. Web для группы Everyone для Windows. Ну, или использовать на клиентах не Dr. Web for Workstations а Dr.Web for Fileservers, где этой проблемы не наблюдается.

Егор Сураев

Ошибка при установке ALD соединения.

Ошибка аутентификации пользователя ‘admin/admin’: Ошибка MIT Kerberos V5: Ошибка инициализации аутентификационных данных krb5 пользователя. в ALDKadm5Connection.cpp:283(ConnectPassword)

:> Client ‘admin/admin@NU.DA’ not found in Kerberos database

Ошибка может быть вызвана вводом неправильного пароля при ald-init promote резервного сервера.

Константин Ковалевский

Если при перезапуске ALD выходит ошибка:

— ОШИБКА:
Триггер ‘ald-cfg-smb:DoSambaStartFS’ вызвал исключение!
Не удалось запустить сервис nmbd. Код возврата 256.

А перезапуск сервиса nmbd выводит такую информацию:
root@server:/home/u# systemctl status nmbd
● nmbd.service
Loaded: masked (/dev/null; bad)
Active: inactive (dead)

Необходимо выполнить команды:

systemctl unmask nmbd
systemctl enable nmbd
systemctl restart nmbd

Егор Сураев

cpp:144 чето там при попытке администрирования из графики — означает, что ранее уже был получен билет администратора и необходимо сначала уничтожить предыдущий билет командой:

Далее получить новый уже из графики.

Дмитрий Анохов

Ошибка MIT Kerberos V5: Ошибка получения ключей принципала Kerberos ‘host/arm@DOMAIN’. В ALDKadm5Connection.cpp:1528(KeytabAddPrincipal) Principal does not exist.

Если на контроллере домена создаётся принципал с именем ‘host/arm@DOMAIN’, тогда выполните на клиенте ald-client update-svc-keytab ‘host/arm@DOMAIN’.

Марина Яловега

При возникновении ошибки 111 ( Смоленск 1.5):

Решение от клиента

  1. Добавить в конфигурационный файл /etc/ald/ald.conf параметр USE_RPC, равный нулю

2. Выполнить ald-init restart

Константин Ковалевский

При создании резервного сервера командой sudo ald-init init —slave выходит ошибка:

Источник

‘Ald-rpc не найден’ на Astra Linux 1.6

Irbis88

New member

;source /etc/network/interfaces.d/*
auto lo
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet static
address 192.168.73.74
netmask 255.255.255.0
gateway 192.168.73.1
dns-domain test.ru
dns-nameservers 192.168.73.1​

source /etc/network/interfaces.d/*
auto lo
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet static
address 192.168.73.73
netmask 255.255.255.0
gateway 192.168.73.1
dns-domain test.ru
dns-nameservers 192.168.73.1​

CrashBldash

New member

Irbis88

New member

Мною найдена иная информация:

Host-only/VMnet1. Второго рода сеть соединяет гостевую виртуальную машину и хостовый компьютер, образуя частную сеть. Данное подключение обеспечивает сетевое соединение между виртуальной машиной и физическим компьютером (хостом), используя виртуальный сетевой адаптер доступный операционной системе хоста.
При этом типе подключения, виртуальная машина не имеет доступ к локальной сети и Интернету. Поскольку виртуальные машины не имеют доступа к физической сети, VMware Workstation предусматривает использование DHCP службы для назначения TCPIP параметров виртуальным машинам. Для host-only виртуальной сети используется определенная подсеть, в нашем случае это 192.168.52.0-254, где виртуальный адаптер на физическом компьютере имеет IP адрес 192.168.52.1, а все гостевые виртуальные машины использующие host-only подключение получают адреса от VMware DHCP server.
Виртуальные машины использующие host-only сеть могут взаимодействовать между собой в этой сети.

Источник

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

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

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

Существует две версии продукта – 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. Актуализация репозиториев:

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

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

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

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

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

Настройка BIND

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. Устанавливаем основной пакет ALD сервера и графический интерфейс администрирования Fly:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Добрый день!
Вход в домен приходиться выполнять каждый раз (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.

Источник

 domain controller, join


0

1

Столкнулся с такой проблемой собрал домен на Астре (domain.mil.zs), вроде бы собрался без ошибок. Но при попытке подключить подключить клиент выдает «Домен domain.mil.zs не обнаружен». Кто знает в каком направлении копать?

  • Ссылка

Astra????

Интересно) давай глуши, нужно более детально все рассказать.

  • Ссылка

Астра она такая, непредсказуемая.
Был опыт работы с АЛД, можешь поподробнее описать, все делал по инструкции из руководства пользователя?
Напишешь на почту? chekin88@yandex.ru

chekin

(11.05.18 11:12:10 MSK)

  • Показать ответ
  • Ссылка

Нужно настраивать по руководству администратора, ч.2.

ошибка наверху лежит.
что есть у тебя в файле /etc/hosts, /etc/resolv.conf, /etc/network/interfaces?

Есть ль возможность подключиться удаленно?

  • Показать ответ
  • Ссылка

Ответ на:

комментарий
от a_slepov 11.05.18 11:42:47 MSK

Astra Linux 1.5 проблема с ALD

Прилагаю содержимое файлов:

/etc/hosts
127.0.0.1 localhost
10.20.120.35 ns1.domain.mil.zs ns1

/etc/resolv.conf
domain domain.mil.zs
search domain.mil.zs
nameserver 10.20.120.35

/etc/network/interfaces
auto eth0
iface eth0 inet static
address 10.20.120.35
netmask 255.255.255.224
gateway 10.20.120.34
network 10.20.120.0
broadcast 10.20.120.255
dns-nameserver 10.20.120.35

KOTTOK

(15.05.18 17:08:14 MSK)

  • Показать ответы
  • Ссылка

У тебя настройки сети в тьме какой-то….

Адрес сети не бьёт..

  • Ссылка

А клиент как настроен?
На самом сервере авторизацтя проходит?

  • Ссылка

Ответ на:

комментарий
от chekin 11.05.18 11:12:10 MSK

Astra Linux 1.5 проблема с ALD

С доменом разобрались.
С почтой поможешь? Проблема тоже на Астре.

KOTTOK

(14.06.18 21:39:30 MSK)

  • Показать ответы
  • Ссылка

Re: Astra Linux 1.5 проблема с ALD

как устранили проблему с сервером ald

anonymous

(13.07.18 15:29:47 MSK)

  • Показать ответ
  • Ссылка

Re: Astra Linux 1.5 проблема с ALD

как устранили проблему с ald?

anonymous

(13.07.18 15:31:04 MSK)

  • Показать ответ
  • Ссылка

Re: Astra Linux 1.5 проблема с ALD

как устранили проблему с ald сервером?
ответь в личку afhsp@mail.ru

anonymous

(13.07.18 15:32:59 MSK)

  • Показать ответ
  • Ссылка

12 сентября 2018 г.

Re: Astra Linux 1.5 проблема с ALD

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

user8

(12.09.18 20:31:20 MSK)

  • Ссылка

24 августа 2019 г.

Добрый вечер, подскажите как решили проблему, очень нужно!!!!

  • Ссылка

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.

Содержание

  1. Основные способы ввода ПК в домен Windows AD
  2. Основные ошибки при вводе клиента в домен Windows AD
  3. Ошибка «Failed to join domain: failed to lookup DC info for domain ‘win.ad’ over rpc: The attempted logon is invalid. This is either due to a bad username or authentication information.»
  4. Ошибка: «Failed to join domain: Invalid configuration («workgroup» set to ‘ASTRA’, should be ‘WIN’) and configuration modification was not requested»
  5. Ошибка: «Failed to join domain: Failed to set account flags for machine account (NT_STATUS_ACCESS_DENIED)»
  6. Проблема с авторизацией после ввода в домен
  7. Конфликтующие модули в pam-стеке (winbind и sssd)
  8. Исправление параметров в файле /etc/krb5.conf при использовании winbind
  9. Ошибка «Проблема установки» при использовании sssd
  10. Ошибка: «Your account has been locked. Please contact your System administrator»
  11. Ошибка «Не могу войти в домашний каталог. Временный каталог будет использован»
  12. ПК вводится в домен, но не создаются и не обновляются DNS записи при использовании sssd
  13. Astra linux started authorization manager
  14. Host Names
  15. Наличие соединения
  16. Синхронизация времени
  17. Брандмауэры
  18. Проверка модели устройства
  19. Astra linux started authorization manager
  20. 1 Доустанавливаем необходимые пакеты с диска
  21. 2 Добавляем библиотеку librtpkcs11ecp.so
  22. 3 Проверяем что Рутокен ЭЦП работает в системе
  23. 4 Считываем сертификат
  24. Ввод Astra Linux SE 1.5 в AD Windows и настройка SSO
  25. Ввод Astra Linux в домен Windows
  26. Разблокирование суперпользователя (root)
  27. Настройка сети
  28. Установка требуемых пакетов
  29. Настройка конфигурационных файлов
  30. Настройка Apache и Postgresql на работу с Kerberos

Основные способы ввода ПК в домен Windows AD

Графический инструмент fly-admin-ad-client (ввод в домен с использованием winbind): Быстрый ввод Astra Linux в AD Windows

Инструмент командной строки astra-ad-sssd-client (ввод в домен с использованием SSSD): Подключение Astra Linux к домену Microsoft Windows с помощью astra-ad-sssd-client

Основные ошибки при вводе клиента в домен Windows AD

Ошибка «Failed to join domain: failed to lookup DC info for domain ‘win.ad’ over rpc: The attempted logon is invalid. This is either due to a bad username or authentication information.»

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

  • Указанный пользователь не имеет необходимых прав;
  • В файле /etc/resolv.conf указаны неверные данные, либо данные отсутствуют;
  • Неправильно указаны данные (например, после смостоятельного внесения изменений) в файле /etc/nsswitch.conf.
  • Использовать правильный логин или пароль, а также проверить вход от имени администратора домена;
  • При настройке сети указать правильные данные сервера (серверов) DNS и правильный поисковый домен;
  • Вернуть файл /etc/nsswitch.conf к исходному состоянию.

Ошибка: «Failed to join domain: Invalid configuration («workgroup» set to ‘ASTRA’, should be ‘WIN’) and configuration modification was not requested»

Причина: неправильно указано имя рабочей группы (NetBIOS).

Решение: указать правильное имя рабочей группы (NetBIOS).

Ошибка: «Failed to join domain: Failed to set account flags for machine account (NT_STATUS_ACCESS_DENIED)»

Причина: в команде ввода в домен указано имя компьютера уже испольованное в домене AD (например, имя другого ПК).

  1. Изменить имя компьютера, вводимого в домен:
    1. Изменить имя ПК в файле /etc/hosts и в файле /etc/hostname;
    2. Перезагрузить ПК;
    3. повторить ввод в домен AD;
  2. Удалить ненужные записи в контроллере домена.

Проблема с авторизацией после ввода в домен

Вход в домен не выпоняется, записи об ошибках входа в журналах отсутствуют, возмжно появление на экране входа сообщения «Ошибка входа».

Причина: не синхронизировано время контроллера домена и клиента.

Решение: проверить синхронизацию времени с контроллером домена AD, для чего выполнить команду:

net time set -S winserv.win.ad

Дополнительно проверить синхронизацию времени с контроллером домена AD, если нет информации об ошибке. В /var/log/auth.log отображается следующее:
Основные ошибки при работе с доменом Windows AD в ОС Astra Linux > image2021-7-2_14-15-9.png» data-location=»Справочный центр > Основные ошибки при работе с доменом Windows AD в ОС Astra Linux > image2021-7-2_14-15-9.png» data-image-height=»31″ data-image-width=»1100″>

Конфликтующие модули в pam-стеке (winbind и sssd)

На экране авторизации отображается ошибка «Вход неудачен». В файлах журналов отсутствует информация о попытке входа доменным пользователем, однако в /var/log/auth.log содержатся сообщения вида:

Причина: одновременное использование пакетов winbind и sssd.

Решение: использовать только пакеты winbind или только sssd. Для удаления ненужного пакета выполнить команду:

Для удаления пакета sssd:

sudo apt purge *sss*

или для удаления пакета winbind:

sudo apt purge *winbind*

Если в дальнейшем будет использоваться пакет winbind, то выполнить команду:

где в появившемся окне снять чек-бокс с модуля sss authentication:
Основные ошибки при работе с доменом Windows AD в ОС Astra Linux > image2021-7-2_14-17-17.png» data-location=»Справочный центр > Основные ошибки при работе с доменом Windows AD в ОС Astra Linux > image2021-7-2_14-17-17.png» data-image-height=»524″ data-image-width=»840″>

См. также следующий раздел «Исправление параметров в файле /etc/krb5.conf при использовании winbind»

Исправление параметров в файле /etc/krb5.conf при использовании winbind

Если иные способы не помогают, то при проблемах с входом пользователя можно попробовать д обавить в файл /etc/krb5.conf в секцию [realms] следующие параметры:

Вместо «@WINDOMAIN.AD» и «@windomain.ad» указать свой домен:
Основные ошибки при работе с доменом Windows AD в ОС Astra Linux > image2021-7-2_14-20-19.png» data-location=»Справочный центр > Основные ошибки при работе с доменом Windows AD в ОС Astra Linux > image2021-7-2_14-20-19.png» data-image-height=»153″ data-image-width=»658″>

Если после изменения файла /etc/krb5.conf возникает ошибка входа, необходимо проверить правильность написания параметров.

Ошибка «Проблема установки» при использовании sssd

Причина: ошибка «проблема установки» может возникать, если раннее ПК был введен в домен AD с использованием winbind.

Решение: выполнить следующие команды:

sudo apt purge *winbind*
sudo astra-ad-sssd-client -U -y

После чего перезагрузить ПК и повторить ввод в домен AD.

Ошибка: «Your account has been locked. Please contact your System administrator»

Причина: пользователь заблокирован на контроллере домена AD.

Решение: разблокировать доменного пользователя на контроллере домена AD.

Ошибка «Не могу войти в домашний каталог. Временный каталог будет использован»

Причина: компьютер ранее вводился в домен разными способами (winbind или sssd).

Проверить настройку PAM-стека;

Временно перенести папку .fly из домашнего каталога проблемного пользователя в любое удобное место;

При использовании Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6) установить обновление БЮЛЛЕТЕНЬ № 20210611SE16 (оперативное обновление 7), где исправлена данная ошибка.

ПК вводится в домен, но не создаются и не обновляются DNS записи при использовании sssd

Причина: для динамического обновления записей DNS необходима утилита nsupdate, которая содержится в пакете dnsutils, не устанавливаемом по умолчанию.

Источник

Центральной частью схемы аутентификации Kerberos является третья доверенная сторона — Key Distribution Center (KDC), которая является централизованным хранилищем информации о пользователях. Перед разворачиванием Kerberos, должен быть выбран сервер, который будет выполнять роль KDC. Физическая и сетевая безопасность критичны для этого сервера, так как его компрометация ведет к компрометации всего realm.

Выбор хорошего имени для realm так же важен. По правилам, имя realm это доменное имя сайта в верхнем регистре. Например, для сайта или доменной зоны example.com рекомендуется выбрать EXAMPLE.COM в качестве имени realm.

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

Host Names

Каждый сервер внутри Kerberos realm должен иметь Fully Qualified Domain Name (FQDN).

Kerberos так же ожидает, что FQDN сервера является reverse-resolvable. Если выяснение доменного имени по IP недоступно, то установите значение переменной rdns в значение false на клиентах в файле krb5.conf.

Active Directory сильно зависит от DNS, поэтому весьма вероятно что ваш Active Directory Domain Controller уже имеет роль DNS. В этом случае убедитесь в том, что каждый сервер имеет свое FQDN перед выполнением тестов, описанных ниже в этом разделе.

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

Если вы используете Astra Linux (или другой дистрибутив), то для установки программы nslookup, вам необходимо установить пакет dnsutils.

Вы можете воспользоваться Synaptic Package Manager или выполнить из командной строки $ apt-get install dnsutils

Вывод первой команды должен содержать IP адрес сервера. Вывод второй команды должен содержать FQDN сервера.

Если у сервера нет назначенного FQDN и сервис DNS не доступен, то вы можете отредактировать локальные файлы hosts (обычно они находятся в /etc) на сервере добавив туда следующую строку:

А на каждом клиенте добавить строку

Где IP-address — это IP адрес сервера. В нашем примере это будет 10.0.0.1.

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

Наличие соединения

Для проверки соединения между хостами, выполните ping для каждого хоста по его FQDN:

Вывод команды ping показывает успешное определение IP адреса по FQDN, и простой ответ от сервера. Ответ от сервера является подтверждением того, что между хостом и сервером есть соединение.

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

Синхронизация времени

Протокол Kerberos требует синхронизации времени сервера и клиента: если системные часы клиентов и сервера расходятся, то аутентификация не будет выполнена. Простейший способ синхронизировать системные часы — использование Network Time Protocol (NTP) сервера. Некоторый линуксы, например, Astra Linux по-умолчанию синхронизирует время с российскими NTP-серверами. Для настройки собственного NTP-сервера смотрите документацию на ваш дистрибутив (например, UbuntuTime для Ubuntu).

Брандмауэры

Так же как и все остальные сетевые службы, Kerberos должен иметь возможность проходить через любые брандмауэры между хостами. Инструкция Kerberos System Administration Manual имеет детальное описание портов, которые необходимо открыть при настройке брандмауэров.

Проверка модели устройства

  1. Подключите USB-токен к компьютеру.
  2. Для определения названия модели USB-токена откройте Терминал и введите команду:

В результате в окне Терминала отобразится название модели USB-токена:

Убедитесь, что используете: Aktiv Rutoken ECP

Источник

Astra linux started authorization manager

В результате в окне Терминала отобразится название модели USB-токена:

Убедитесь, что используете: Aktiv Rutoken ECP

1 Доустанавливаем необходимые пакеты с диска

Пуск — Настройки — Менеджер пакетов

через Быстрый фильтр или через поиск находим и отмечаем к установке следующие пакеты:

  • libccid
  • pcscd
  • libpam-p11
  • libpam-pkcs11
  • libp11-2
  • libengine-pkcs11-openssl
  • opensc

В Astra Linux SE 1.6 pkcs11 libengine-pkcs11-openssl версии 1.0.2 не совместим с библиотекой librtpkcs11ecp.so. Для корректного функционирования, следует скачать и установить п одписанный пакет libengine-pkcs11-openssl1.1 версии 0.4.4-4 для Смоленска 1.6:

2 Добавляем библиотеку librtpkcs11ecp.so

Загружаем библиотеку через браузер.

Для 64-битной системы используйте ссылку:

Для 32-битной системы используйте ссылку:

или через консоль

Пуск — Утилиты — Терминал Fly

Для 64-битной системы используйте:

Для 32-битной системы используйте:

Копируем в системную папку.

Для 32- и 64-битной системы используйте:

3 Проверяем что Рутокен ЭЦП работает в системе

Пуск — утилиты — Терминал Fly

В случае если увидите вот такую строку, значит все хорошо.

4 Считываем сертификат

Проверяем что на устройстве есть сертификат

Пуск — утилиты — Терминал Fly

Если после строчки

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

Если после строчки

выводится информация о ключах и сертификатах то необходимо считать сертификат

вместо нужно подставить ID который вы увидите в выводе команды

Источник

Описание процесса настройки Astra Linux для ввода в домен Windows. Настройка SAMBA, Winbind, Apache и Postgresql.

Данная статья применима к:

  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.5)

Напоминаем о том, что перед вводом клиента в AD или ALD необходимо корректно настроить сеть.

Ввод Astra Linux в домен Windows

Исходные данные:

Разблокирование суперпользователя (root)

Для более удобной работы разблокируем учётную запись root:

По завершении настроек учётную запись root необходимо заблокировать!

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

В начало файла /etc/hosts добавить строки:

Строку с 127.0.1.1 ws3 удалить.

Убедиться, что в файле /etc/hostname правильно указано имя машины:

Назначим статический ip-адрес. В файл /etc/network/interfaces добавить строки:

Создать файл /etc/resolv.conf и добавить строки:

Перезапустим сетевую службу:

Установка требуемых пакетов

Проверить установлены ли samba, winbind, ntp, apache2 и postgresql:

Настройка конфигурационных файлов

Редактируем файл /etc/krb5.conf и добавляем недостающую информацию в соответствующие разделы:

Редактируем файл /etc/samba/smb.conf. Если каких-то параметров нет, то добавляем:

Если в дальнейшем будет изменятся конфигурационный файл samba, обязательно требуется очистка каталогов /var/cache/samba/* и /var/lib/samba/*

Проверим, нет ли ошибок в конфигурации samba, выполнив команду:

Редактируем файл /etc/security/limits.conf. Добавляем в конец:

Редактируем файл /etc/pam.d/common-session. Добавляем в конец:

Настройка Apache и Postgresql на работу с Kerberos

Редактируем файл /etc/apache2/sites-available/default. Настраиваем директорию на использование Kerberos:

Принципал, задаваемый параметром KrbServiceName, должен быть в файле таблицы ключей /etc/krb5.keytab. Проверить можно командой:

Редактируем файл /etc/postgresql/9.4/main/pg_hba.conf:

Назначим права для пользователя postgres, от имени которого работает Postgresql, для доступа к macdb и к файлу таблицы ключей:

Источник

Иногда домен ALD с операционной системой Astra Linux 1.6 начинает тупить, и доменный пользователь не может залогиниться в домене со своей рабочей станции. В окне логина появляется сообщение «Вход неудачен».

Причины такого поведения, обычно, две: либо на рабочей станции не настроена синхронизация времени, и время сильно «съехало» относительно доменного сервера, либо перестал нормально работать сервис nslcd, отвечающий за работу с доменом.

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

Ручная перезагрузка сервиса nslcd

Если залогиниться доменным пользователем не получается, надо сделать следующее.

1. Залогиниться локальным администратором или рутом на рабочей станции. Логиниться необходимо в отдельной текстовой консоли, переключившись на нее через клавиши Ctrl+Alt+F1 из окна графического логина.

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

systemctl restart nslcd

3. Выйти из текстовой консоли и переключиться на графический вход по клавишам Ctrl+Alt+F7.

После этих действий вход в домен ALD должен заработать.

Настройка systemd-подсистемы

Чтобы заставить сервис nslcd запускаться позднее, чем конфигурируется сетевая подсистема Astra Linux, необходимо создать файл /lib/systemd/system/nslcd.service (не путать с nscd.service — это другой сервис, его название отличается на одну букву). Если таковой файл уже есть в системе, его надо отредактировать.

Содержимое файла должно быть таким:

# systemd service file for nslcd

[Unit]

Description=Naming services LDAP client daemon.

[Service]

Type=forking

ExecStart=/usr/sbin/nslcd

ExecStartPre=/bin/sleep 5

PIDFile=/run/nslcd/nslcd.pid

[Install]

WantedBy=multi-user.target

Здесь значимым параметром является строка ExecStartPre. Команда sleep, прописанная в данной строке, заставляет задержать запуск сервиса на указанное количество секунд. Задержку надо подобрать экспериментально. На медленных системах вместо 5 секунд можно указать 10.

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

Введение

Вот уже более года я занимаюсь администрированием Astra Linux, которая построена на базе ОС Debian. В плане администрирования данные операционные системы имеют различия. Также в Astra Linux есть службы собственной разработки. 

В посте пойдет речь об администрировании ald домена, серверной, клиентской части, а также о поднятии резервного сервера.

Серверная часть

Настройку произвожу на виртуальных машинах в virtualbox, на сервере ip адрес 192.168.1.1, также на данном сервере расположен репозиторий(настройка ip адресов и репозиториев ничем не отличаются от настроек в debian). Первое, что необходимо настроить — это синхронизацию времени: поднимем ntp сервер, который будет брать время с текущей машины. Для это достаточно отредактировать файл /etc/ntp.conf, внеся в него следующие изменения:


server 127.127.1.0

fudge 127.127.1.0 stratum 10

restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

Параметры подсети укажите в соответсвии с вашими ip адресами.

Запустим службу:

systemctl enable ntp

systemctl start ntp

Так как в ald отсутствует собственный dns сервер, его заменой служит корректно настроенный файл /etc/hosts, который должен быть одинаковый на всех машинах в домене. Перед редактированием данного файла, зададим корректное hostname для сервера:

hostnamectl set-hostname dc1.local

В данной ситуации hostname сервера будет dc1, а имя домена, соответственно, local, именно на эти параметры будет ориентироваться ald-server при инициализации. Последним штрихом перед инициализацией ald сервера буден корректная настройка файла /etc/hosts:

127.0.0.1 localhost

#127.0.1.1 hostname

192.168.1.1 dc1.local dc1

192.168.1.2 dc2.local dc2

192.168.1.101 host1.local host1

192.168.1.102 host2.local host2

Обязательно необходимо «закомментировать» 127.0.1.1, а также важна последовательность указания полного имени хоста, т. е. первым должно быть указано имя хоста с доменом, и только потом имя хоста без домена.

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

sudo apt install ald-server-common fly-admin-ald-server smolensk-security-ald

Пакет smolensk-security-ald — добавит возможность администрировать ald сервер в стандартной утилите fly-admin-smc (об этом будет рассказано далее).

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

ВАЖНО: Если по каким то причинам у Вас сбились настройки сервера, то их можно отредактировать в файле /etc/ald/ald.conf, в текущем файле важен параметр DOMAIN, значение данного параметра всегда должно начинаться с . (точки), т.е. в текущем примере данная строка будет выглядеть так:

DOMAIN = .local

Инициализируем сервер командой:

ald-init init

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

Рис. 1

Рис. 1

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

Клиентская часть

Достаточно настроить ntp клиента для синхронизации времени, скопировать файл hosts с сервера, задать имя хоста, а также настроить /etc/ald/ald.conf. В файле /etc/ntp.conf необходимо добавить строки:

server dc1.local

Запустим службу ntp:

systemctl start ntp

systemctl enable ntp

Зададим имя хоста (в данном пример ip адрес хоста 192.168.1.101):

hostnamectl set-hostname host1

Перед настройкой ald.conf необходимо установит необходимые пакеты:

sudo apt install fly-admin-ald-client ald-client

На рисунке 2 представлен пример файла ald.conf (данный файл аналогичен файлу ald.conf с сервера).

Рис. 2

Рис. 2

После данным манипуляций можно ввести машину в домен командой:

ald-client join

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

Если все прошло удачно, то на экране отобразится текст как на рисунке 3

Рис. 3

Рис. 3

Резервный сервер ald

Создать резервный сервер также довольно просто. Для этого на будущем резервном сервере (на резервном сервере также необходимо расположить корректный файл hosts), необходимо установить пакеты:

sudo apt install ald-server-common smolensk-security-ald

И отредактировать файл /etc/ald/ald.conf, изменив один параметр:

Рис. 4

Рис. 4

SERVER_ID=2

Далее зададим корректное имя хоста для резервного сервера:

sudo hostnamectl set-hostname dc2.local

Теперь инициализируем резервный сервер командой:

sudo ald-init init --slave

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

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

sudo ald-init promote

Дополнительно необходимо на всех клиентских рабочих станциях отредактировать файл /etc/ald/ald.conf, как это сделать одной командой будет рассказано в разделе «Дополнительно».

Рис. 5

Рис. 5

В данном файле необходимо изменить параметр SERVER и SERVER_ID:

SERVER=dc2.local #dc2.local – резервный сервер

SERVER_ID=2 #2 – id резервного сервера

После манипуляций необходимо выполнить команду:

sudo ald-client commit-config

Администрирование ald сервера

Как было написано ранее, администрирование можно производить через стандартную системную утилиту fly-admin-smc. Ее можно запустить через консоль, либо в панели управления, перейдя на вкладку «Безопасность» и запустив аплет «Политика безопасности». Первым делом необходимо настроить политику паролей в соответствии с вашими требованиями:

Рис. 6

Рис. 6

На рисунке 6 представлена вкладка политики паролей. После настройки политики можно приступить к созданию пользователей и настройке их прав.

Рис. 7

Рис. 7

На вкладке «Пользователи» необходимо нажать на кнопку +, ввести имя, тип файловой системы установить local (также можно хранить каталоги на сетевых ресурсах), а также убрать галку «новая» напротив надписи «Первичная группа». При этом пользователь будет добавлен в группу «domain user». Далее создадим пароль для пользователя.

Рис. 8

Рис. 8

На вкладке «Привилегии домена» можно сделать пользователя «администратором» домена, а также разрешить авторизацию с конкретных доменных машин, или с любых машин, входящих в домен.

Рис. 9

Рис. 9

Рис. 10

Рис. 10

На вкладке «МРД» указываем, к каким меткам пользователь имеет доступ, а также уровень целостности.

Рис. 11

Рис. 11

Дополнительно

Представьте такую ситуацию, в будущий домен будет входить 100, или более машин, раскидать в ручную файл hosts будет довольно проблематично, в данной ситуации поможет bash с СИ подобным синтаксисом.

На тестовом стенде имеется подсеть 192.168.1.0/24, 192.168.1.1 — сервер, 192.168.1.2-192.168.1.100 — рабочие станции. На каждой машине(в том числе и на сервере) имеется пользователь user, с паролем 12345678. Данный пользователь должен быть полноценным администратором(с доступом к sudo, во время установки системы создается пользователь имеющий данные права) системы и иметь уровень целостности 63, для выполнения данной цели необходимо выполнить следующие команды:

sudo usermod -aG astra-admin,astra-console user

sudo pdpl-user -l 0:0 -i 63 user

Если пользователь user отсутствует в системе — выполним следующие команды:

sudo useradd -m -G astra-admin,astra-console -s /bin/bash user

sudo passwd user

sudo pdpl-user -l 0:0 -i 63 user

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

sudo apt install sshpass

После данным манипуляций можно приступить к формированию ключа(без sudo, с правами пользователя user), для без парольного доступа:

shh-keygen -t rsa -b 1024

Распространим ключи на рабочие станции:

for((i=2;i<101;i++)); do sshpass -p 12345678 ssh-copy-id -f -o StrictHostKeyChecking=no user@192.168.1.$i; done

Скопируем файл hosts на все машины с помощью утилиты scp:

for((i=2;i<101;i++)); do scp /etc/hosts user@192.168.1.$i:/home/user; ssh user@192.168.1.$i sudo cp /home/user/hosts /etc/hosts; done

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

Таким же образом можно редактировать данный файл на всех хостах в домене(например необходимо удалить строку с именем хоста — host40):

for((i=2;i<102;i++)); do ssh user@192.168.1.$i sudo sed -i '/host40/d' /etc/hosts; done

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

for((i=2;i<102;i++)); do ssh user@192.168.1.$i sudo sed -i ‘s/SERVER=dc1.local/SERVER=dc2.local/g’ /etc/ald/ald.conf; sudo sed -i ‘s/SERVER_ID=1/SERVER_ID=2/g’ /etc/ald/ald.conf; sudo ald-client commit-config -f; done

Заключение

Как видно из данной публикации ald домен довольно просто разворачивать, а также очень просто администрировать используя стандартную системную утилиту fly-admin-smc.

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

Обновлено на дату 26.10.2022

Компонентная схема ALD Pro

Компонентная схема устройства Astra Linux Directory Pro для лучшего понимания что спрятано под капотом и как увязано с друг другом для простоты администрирования рядовым администратором.

Компонентная схема устройства Astra Linux Directory Pro

Главная инструкция по развёртыванию ALD Pro комплекса: ПРОГРАММНЫЙ КОМПЛЕКС «ALD PRO» Руководство администратора. Версия 1.1.2

Всегда отслеживайте репозиторий https://download.astralinux.ru/aldpro/stable/repository-main/dists/ и обновляйте свои тестовые стенды для получения актуальной версии.

Что пока не нравится

Ещё раз напомню, что я не хейтер Astra Linux вообще и ALD Pro в частности. Я линуксоид, хоть и люблю службу каталогов MS Active Directory, так как она мне известна и близка. Но я открыт к новому и к другим концепциям таких каталогов как FreeIPA под капотом у ALD Pro.

  • Версия ALD Pro уже 1.x, но продукт ещё сырой и тянет на альфу. Тем самым разработчики нарушили негласное правило, указав 1.х как некую готовность к производству. На словах у них всё типа готово, а в логах строки вида — использование settings.DEBUG приводит к утечкам памяти и настоятельно запрещается использовать в производственной среде.

    [2022-08-23 06:06:53,229: WARNING/MainProcess] /usr/lib/python3/dist-packages/celery/fixups/django.py:204: UserWarning: Using settings.DEBUG leads to a memory leak, never use this setting in production environments!

  • Много торчат ушей жёстковшитых параметров типа ASTRA.LOCAL, паролей Admin:zabbix и SSH логин saltuser с паролем qwerty$4 в файле /etc/salt/master.d/master.conf. Представляете у всех одни и те же пароли. Вот радость то местным кулхацкерам.
  • Архитектурно ALD Pro намекает на армаду серверов хоть и виртуальных с нехилыми требованиями, что для небольших контор будет более чем затратно и избыточно. Не в укор, но для MS AD достаточно для надёжности через избыточность добавить ещё 1 или 2 сервера-контроллера домена, разнести роли хозяев операций (Flexible single-master operations, FSMO) и получить действительно отказоустойчивую систему с master-to-master репликацией. Даже потом, разумно нагружая 2-3 сервера дополнительными ролями, можно удержаться от разрастания серверной платформы. А в ALD Pro намёк что чуть ли не с пелёнок вынь да полож over 8 серверов и получишь все плюшки.

Снова не применяются настройки серверов времени. Октябрь 2022

Уже делал тикет на эту проблему, когда ваши настройки и хотелки своих серверов времени не применяются. В рамках тикета мне чётко сказали что проблему устранили в версии ALD Pro 1.1.2. Вот думайте что угодно — соврали и не сделали или снова сломали, но мой тестовый стенд стал версии 1.1.3, а я снова вижу эту проблему. Снова тикет и снова ответ — Проблема известна разработчикам, ожидается исправление в ALD Pro версии 1.2.0.


Я сломал Salt. Октябрь 2022

Целиком и полностью моя вина! Вышел из отпуска и к этому моменту вышла версия 1.1.2, до которой и хотелось обновить свой тестовый стенд. Традиционно в мире Debian, прежде чем прыгать на новую версию, настоятельно рекомендуется вначале обновить систему в рамках релиза и уже потом прыгать в бездну. Запустил просто apt update && apt -y full-upgrade и не заметил как сломал Salt в рамках релиза 1.1.1. В ранее созданных тикетах разработчики часто просили вывод команды sudo salt '*' test.ping, который легко и просто опрашивает всех миньонов. Команда показала что у меня отвалились 2 сервера из 4 в моей будущей армаде серверов ALD Pro .

В логах /var/log/salt/minion на проблемных серверах на каждый вызов sudo salt '*' test.ping можно наблюдать строки:

2022-10-04 09:15:06,812 [salt.crypt :788 ][ERROR ][1451] Sign-in attempt failed: {‘enc’: ‘pub’, ‘pub_key’: ‘—-BEGIN PUBLIC KEY—-
nMIIBIjANB…….’}
2022-10-04 09:15:06,814 [salt.minion :1149][ERROR ][1451] Error while bringing up minion for multi-master. Is master at dc1.company.ru responding?
2022-10-04 09:15:16,581 [salt.minion :1095][ERROR ][1451] Minion unable to successfully connect to a Salt Master.

Гуглёж показал верный ответ, но в то время я его не понял и не был готов воспринять, так как не знаком с Salt. Ошибка намекает на разницу в версиях, но это чуть позже мне разжевал лишь специалист из компании Astra. Из предоставленных отчётов команды sos report он выяснил что я где-то забыл мозги и на проблемных серверах указал совершенно не те адреса репозиториев, нарушив инструкцию.

Адреса репозитория для самой Astra Linux SE как платформы для ALD Pro должны быть пока версии 1.7.1
deb http://download.astralinux.ru/astra/frozen/1.7_x86-64/1.7.1/ repository-base 1.7_x86-64 main non-free contrib
deb http://download.astralinux.ru/astra/frozen/1.7_x86-64/1.7.1/ repository-extended 1.7_x86-64 main contrib non-free

Вот цитата ответа специалиста:
Тестирование ПК ALD Pro с ОС Astra Linux Special Edition версии 1.7.2 не окончено. Рекомендуем воздержаться от использования обновления 1.7.2 до окончания тестирования, так как мы не можем гарантировать беспроблемную работу ПК ALD Pro с ОС Astra Linux Special Edition версии 1.7 с установленным оперативным обновлением 2. Совместимость c Astra Linux Special Edition 1.7.2 будет добавлена в будущих версиях ALD Pro. Проблема с работой Salt вероятнее всего была вызвана отличием версий Salt, установленных на контроллере домена и «проблемных серверах».

Команда dpkg -l | grep salt подтвердила расхождение в версиях. Решил сделать ход конём: обновить стенд до версии 1.1.2 и исправить ситуацию с Salt через механизм понижения версии (apt downgrade).

Адреса репозиториев на проблемных серверах были исправлены согласно инструкции и выполнена команда sudo apt install salt-api=3004+ds-1 salt-common=3004+ds-1 salt-master=3004+ds-1 salt-minion=3004+ds-1 salt-ssh=3004+ds-1
dpkg: предупреждение: снижение версии salt-ssh с 3004.2+ds-1 до 3004+ds-1
dpkg: предупреждение: снижение версии salt-minion с 3004.2+ds-1 до 3004+ds-1
dpkg: предупреждение: снижение версии salt-master с 3004.2+ds-1 до 3004+ds-1
dpkg: предупреждение: снижение версии salt-common с 3004.2+ds-1 до 3004+ds-1
dpkg: предупреждение: снижение версии salt-api с 3004.2+ds-1 до 3004+ds-1

После рестарта сервисов sudo systemctl restart salt-master; sudo systemctl restart salt-api; sudo systemctl restart salt-minion ситуация была исправлена.

Мораль сей басни? Быть более внимательным, поменьше отсебятины, безукоснительно следовать инструкции.


Неработоспособность раздела Пользователи при огромном количестве учётных записей. Август 2022

Решено было протестировать работоспособность проекта ALD Pro на большом количестве учётных записей, чтобы рассмотреть ALD Pro НЕ как службу каталогов с кучей функционала, а хотя бы как Identity management (IdM). Обратились в рамках выделенного канала поддержки к разработчикам с вопросом, а есть ли готовые инструменты и/или API ALD Pro? И если нет, то можно ли безопасно использовать инструменты и/или API проекта FreeIPA, который трудится под капотом? Ответ был — вот держите скрипт ald.py, который явно показал что даже сами разработчики не используют API и просто формируют в питоновском скрипте вызовы консольной команды ipa. Данный скрипт так же не подошёл из-за того что просто тупо генерируются учётные записи вида user0, user1 … userN, где N желаемое вами число. Хотелось заранее поучиться массовой заливке учётных записей с заполнением стандартных и своих атрибутов и желательно данными, максимально приближенные к реальности. Жизнь может и часто приподносит сюрпризы.

Попросил у коллег обезличенные данные (ФИО, должность, код подразделения). Знаете ли вы, что Отчество это не обязательно одно слово и может быть несколько слов через пробел? Другими словами, есть мужчины, у которых полное имя состоит из нескольких слов (привет от капитана Очевидность ).

С помощью простого bash скрипта из Comma-Separated Values (CSV) файла создал примерно ~10000 учётных записей в ALD Pro. Учётные записи для теста создавались по следующей схеме:

  • Русские ФИО преобразовались транслитом в английские буквы с добавлением кода подразделения, чтобы полные тёзки получали уникальную тестовую учётную запись. Так Иванов Иван Иванович из бухгалтерии (код подразделения 010) получит учётку ivanoff.ivan.i.010
  • В цикле while команды ipa собственно создавали нужное
    ipa user-add ${name} --first="${I}" --last="${F}"
    ipa passwd ${name} 12345678
    ipa user-mod ${name} --title="${TITLE}"
    ipa user-mod ${name} --setattr=rbtamiddlename="${O}"

После 18 часов работы, так как не оптимизированная версия bash скрипта тратила почти 6 секунд на 1 учётку, тестовый сервер ALD Pro для чистоты эксперимента был перезагружен после заполнения данными.

Работа в веб-интерфейсе показала полную непригодность использования ALD Pro в качестве хотя бы Identity management (IdM):

  • Консольная команда ipa user-find находит, к примеру, учётные записи с фамилией Петров. Веб интерфейс — не находит ничего, ни по-русски, ни по-английски по имени учётки petroff!
  • Ожидаешь что при большом количестве учётных записей в веб-интерфейсе в разделе Пользователи появится большое количество экранов-страниц (page), но кнопка Далее позволяет лишь «дойти» до цифры 14 (и то иногда), после чего происходит некий сброс-сбой и ты оказываешься на странице с номером 10 или 11, как карта ляжет. На экране будет — не найдено!
    Много учётных записей вызывают проблемы в ALD Pro

Суть проблемы неясна, идёт разбирательство. Конкретная дата исправления пока не ясна. В рамках решения проблемы с поломкой центра помощи ALD Pro был обновлён до версии 1.1.1. Проблема частично сдвинулась с мёртвой точки: страницы (paging) начали работать и корректно оформляют ~10000 записей, но поиск не работает до сих пор.

Разработчик в рамках вебинара от 29.09.2022 рассказал что при таких огромных количествах учётных записей требуется создание дополнительных сайтов (site). Но это нужно всё перепроверить в тестовой среде и многое остаётся не понятным. Под капотом многие данные хранятся в PostgreSQL и такие смешные цифры ~10000 точно не его ограничение. Пользователи домена и вся информация в атрибутах нормально хранится в LDAP каталоге и нормально оперируется консольными утилитами FreeIPA. Такие смешные проблемы с цифрами выше 10000 это скорее всего ограничение смузихлёбного интерфейса, построенного с помощью Django и ReactJS.

Если нет 2 часа свободного времени, то лучше будет просто посмотреть концовку и ответы на вопросы участников.

Так же разработчик упомянул что доступна новая версия ALD Pro 1.1.2, в которой ряд проблем возможно решены. Всегда отслеживайте репозиторий https://download.astralinux.ru/aldpro/stable/repository-main/dists/ и обновляйте свои тестовые стенды для получения актуальной версии.


Проблема с развёртыванием сервера событий. Август 2022

Журнал заданий автоматизации уведомил об успешном развёртывании роли сервера событий на отдельном выделенном для этих целей сервере (назовём его audit.company.ru), но в разделе «Серверы журнала событий» по-прежнему пусто и если опять нажать кнопку — «Развернуть сервер журнала событий» снова предлагается audit.company.ru как свободный для установки, словно на него и не развёртывалась ранее роль сервера событий.

В рамках поддержки разработчики попросили ввести команду sudo salt '*' test.ping с главного контроллера домена dc1, которая выявила что на втором-контроллере-домена-реплике dc2.company.ru не доступен (не работает, не отвечает) salt-minion: Minion did not return. [Not connected].

Рестарт службы salt-minion на dc2 и sudo salt '*' test.ping рапортует что всё успешно — напротив всех серверов True. После чего развёртывание службы роли сервера событий прошло успешно и сервер audit.company.ru отобразился в разделе «Серверы журнала событий».

По иронии судьбы, рестарт служб salt так же помог с проблемой развёртывания сервера мониторинга. Мне впредь наука — прежде чем делать тикеты, смотреть статус и рестартить службы Salt. Это объясняет, но не извиняет разработчиков. У меня, как у пользователя-потребителя, должно всё работать искаропки. Их лозунги: «Простое управление службой каталогов» и «Простое решение сложных задач».

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

ALD Pro! Простое решение сложных задач

С ALD Pro не требуется консоль и глубокие знания Linux. Обо всём позаботились разработчики


Безграничный журнал Bind. Август 2022

Для DNS службы в файле /etc/bind/named.conf определён файл журнала /var/cache/bind/named.run

options {
  directory «/var/cache/bind»;
  …
};

logging {
  channel default_debug {
    file «named.run»;
    severity dynamic;
    print-time yes;
  };
};

Но нет ограничивающих параметров в размере файл-журнала средствами самого Bind типа versions 10 size 100m; или, как принято в linux системах, файл-параметр для LogRotate в каталоге /etc/logrotate.d/, регламентирующий смену (rotate) файла журнала и/или упаковку старых журналов Bind.

Файл-журнал /var/cache/bind/named.run довольно быстро нарастает в размере, особенно в изолированных от Интернет сегментах сети из-за недоступности сайтов родительских (upstream) проектов и/или протокола IPv6.

Типа такого
02-Aug-2022 09:42:09.954 network unreachable resolving ‘grafana.com/AAAA/IN’: 2001:503:ba3e::2:30#53
02-Aug-2022 09:42:10.740 host unreachable resolving ‘grafana.com/A/IN’: 202.12.27.33#53

Считаю что неограниченный ничем рост журнала Bind это упущение, требующее контроля и/или ограничений. Место на диске не резиновое и рано или поздно закончится.

Конкретная дата исправления пока не ясна.


Мониторинг не собирается мониторить. Август 2022

Разработчики упустили тот момент, что сервер мониторинга не обязательно будет развёрнут последним, чтобы он принялся обнаруживать (discovery) остальные сервера из группы ipaservers, которые были развёрнуты до него. Глупая и досадная оплошность. Через веб-интерфейс Zabbix в разделе Configuration — Discovery можно наблюдать правило atk_drule, которое НЕ изменилось с даты развёртывания самого сервера мониторинга и НЕ содержит какие либо IP адреса серверов ПОСЛЕ. Поэтому логично что в разделе Configuration — Hosts нет новичков и на мониторинг они не поставлены.

Конкретная дата исправления пока не ясна.


Не применяются настройки серверов времени. Июль 2022

В разделе «Служба синхронизации времени» вкладка «Внешний пул NTP серверов» если указать ваши сервера времени для обкатки работы домена в изолированном сегменте сети без прямого доступа к Интернет, то они не применяются. Если вы вручную измените содержимое /etc/chrony/chrony.conf, то значение естественно будет сброшено Salt в дефолт.

Разработчики вскоре исправят ситуацию, а пока, как обходной манёвр, можно добавить свои сервера напрямую в файл и повесить атрибут неизменяемости (immutable) sudo chattr +i /etc/chrony/chrony.conf

РЕШЕНО в версии ALD Pro 1.1.2.


Поломка Справочного Центра. Июль 2022

К данному моменту ALD Pro был штатно обновлён на новую версию 1.1.0 обязательно через sudo apt update && sudo apt full-upgrade
Не сразу понял что справка сломалась.

Поломка Справочного Центра ALD Pro

Советы НЕ помогли:
cd /opt/rbta/aldpro/mp/api/help-center
python3 manage.py migrate
tar -xzf dump.json.tar.gz
python3 manage.py loaddata dump.json
sudo apachectl graceful

РЕШЕНО в версии ALD Pro 1.1.1.


Поломка системы после ввода мониторинга. Июль 2022

Поломка ALD Pro после ввода системы мониторинга

Оказалось что какой-то из разработчиков не доглядел при написании задач для Salt и указал жёстковшитый домен ASTRA-LOCAL вместо вашего домена в виде элемента dirsrv@DOMAIN-NAME.service у Zabbix. В этом месте меня напряг совет исправить ситуацию напрямую в веб-интерфейсе Zabbix с входом через дефолтный логин Admin и пароль zabbix.

жёстковшитое значение ASTRA-LOCAL в сервере мониторинга ALD Pro

Что-то я пока не представляю как мне оптимальнее спрятать армаду серверов ALD Pro от пользователей, кроме как упросить сетевиков-коллег отделить ALD Pro в отдельную подсеть с жёсткой фильтрацией доступа.


Нельзя русскую букву Ё в русской службе каталога. Июль 2022

Просто ужас, когда отгрёб такую дичь. Ответ: Указанная ошибка будет исправлена в версии ALD Pro 1.2.0. Планируемая дата выхода — сентябрь 2022 года.

Нельзя русскую букву Ё в русской службе каталога ALD Pro


Ошибки развёртывания сервера мониторинга. Июль 2022

По документу ПРОГРАММНЫЙ КОМПЛЕКС «ALD PRO» Руководство администратора. была попытка развернуть штатно через GUI сервер мониторинга. Сервер мониторинга был установлен, настроен и введён в домен. Оставалось лишь развернуть роль, но задача завершалась с ошибкой.

Помог совет: Попробуйте перед запуском задания установку роли выполнить на контроллере домена команды:
sudo systemctl restart salt-master
sudo systemctl restart salt-api
sudo systemctl restart salt-minion

На сервере мониторинга перед запуском задания выполните команду: sudo systemctl restart salt-minion


Ошибки запроса к LDAP по мере ввода букв. Июль 2022

В поле «Руководитель подразделения» можно указать учётную запись из ниспадающего списка, но в больших организациях при огромном количестве учёток проще начинать набирать нужное в надежде что фильтр начнёт убавлять список. Но возникала ошибка запроса. Ситуация исправлена в ALD Pro версии 1.1.0.

Ошибки запроса к LDAP ALD Pro


Полезные видеоматериалы ALD Pro на моём канале

Собственное изучение ALD Pro. Ролики воссоздают задания, которые шли к тестовому полигону из 8 готовых виртуальных машин.

Видео ALD Pro от разработчиков.

Дата последней правки: 2023-01-13 17:10:31

В этой статье будет рассмотрена установка 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 включает в себя следующие верхнеуровневые шаги:

  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:

Предварительно на клиентском ПК необходимо указать в качестве 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 и хочу рассказать о своем видении настройки ALD домена: серверной части, клиентской, использовании файла hosts (по сравнению с DNS сервером). Также дам описание настройки резервного сервера.

ALD мне интересен в первую очередь потому, что уже имеет интеграцию с Astra Linux. Статья будет вам полезна, если вы собираетесь узнать больше о Astra Linux не только из официальной wiki. Кроме того, эту операционную систему (вместе с рядом других решений компании «Астра») смогут поставить на виртуальную машину клиенты публичного облака #CloudMTS.

Серверная часть

Настройку произвожу на виртуальных машинах в virtualbox, на сервере ip-адрес 192.168.1.1, также на данном сервере расположен репозиторий (настройка ip-адресов и репозиториев ничем не отличаются от настроек в Debian, на базе которой построена Astra). Первое, что необходимо настроить — это синхронизацию времени: поднимем ntp сервер, который будет брать время с текущей машины. Для это нужно отредактировать файл /etc/ntp.conf, внеся в него следующие изменения:

server 127.127.1.0
fudge 127.127.1.0 stratum 10
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

Параметры подсети укажите в соответствии с вашими ip адресами.

Запустим службу:

systemctl enable ntp
systemctl start ntp

Вы можете использовать DNS сервер — bind, например. Он присутствует в стандартном репозитории Astra Linux. На мой взгляд, использование файл hosts — это более простая реализация, чем полноценный DNS сервер. При этом корректно настроенный файл /etc/hosts должен быть одинаковый на всех машинах в домене. Перед редактированием данного файла зададим корректное hostname для сервера:

hostnamectl set-hostname dc1.local

В данной ситуации hostname сервера будет dc1, а имя домена, соответственно, local, именно на эти параметры будет ориентироваться ald-server при инициализации. Последним штрихом перед инициализацией ald сервера будет корректная настройка файла /etc/hosts:

127.0.0.1   localhost
#127.0.1.1 hostname
192.168.1.1     dc1.local     dc1
192.168.1.2     dc2.local     dc2
192.168.1.101   host1.local host1
192.168.1.102   host2.local host2

Обязательно необходимо «закомментировать» 127.0.1.1, а также важна последовательность указания полного имени хоста, т. е. первым должно быть указано имя хоста с доменом, и только потом имя хоста без домена.

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

sudo apt install ald-server-common fly-admin-ald-server smolensk-security-ald

Пакет smolensk-security-ald добавит возможность администрировать ald сервер в стандартной утилите fly-admin-smc (об этом будет рассказано далее).

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

ВАЖНО. Если по каким-то причинам у вас сбились настройки сервера, то их можно отредактировать в файле /etc/ald/ald.conf. В текущем файле важен параметр DOMAIN, значение данного параметра всегда должно начинаться с . (точки), т.е. в текущем примере данная строка будет выглядеть так:

DOMAIN = .local

Инициализируем сервер командой:

ald-init init

После инициализации необходимо перезагрузить сервер. В процессе инициализации домена будет еще запрос на создание пароля администратора домена, а также запрос на создание пароля на базу данных kerberos. Если все прошло удачно, то на экране появится сообщение:

Теперь приступим к настройке клиентской части.

Клиентская часть

Настроим ntp клиента для синхронизации времени, скопируем файл hosts с сервера, зададим имя хоста, а также настроим /etc/ald/ald.conf. В файле /etc/ntp.conf необходимо добавить строки:

server dc1.local

Запустим службу ntp:

systemctl start ntp
systemctl enable ntp

Зададим имя хоста (в данном пример ip адрес хоста 192.168.1.101):

hostnamectl set-hostname host1

Перед настройкой ald.conf необходимо установить необходимые пакеты:

sudo apt install fly-admin-ald-client ald-client

Ниже представлен пример файла ald.conf (данный файл аналогичен файлу ald.conf с сервера):

Теперь можно ввести машину в домен командой:

ald-client join

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

Если все прошло удачно, то на экране отобразится следующий текст:

Резервный сервер ald

На будущем резервном сервере необходимо установить пакеты:

sudo apt install ald-server-common smolensk-security-ald

И отредактировать файл /etc/ald/ald.conf, изменив один параметр:

SERVER_ID=2

Далее зададим корректное имя хоста для резервного сервера:

sudo hostnamectl set-hostname dc2.local

Теперь инициализируем резервный сервер командой:

sudo ald-init init --slave

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

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

sudo ald-init promote

Необходимо на всех клиентских рабочих станциях отредактировать файл /etc/ald/ald.conf. Как это сделать одной командой — расскажу в разделе «Дополнительно».

В данном файле необходимо изменить параметры SERVER и SERVER_ID:

SERVER=dc2.local #dc2.local – резервный сервер

SERVER_ID=2 #2 – id резервного сервера

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

sudo ald-client commit-config

Администрирование ald сервера

Как было написано ранее, администрирование можно производить через стандартную системную утилиту fly-admin-smc. Ее можно запустить через консоль, либо в панели управления, перейдя на вкладку «Безопасность» и запустив аплет «Политика безопасности». Первым делом необходимо настроить политику паролей в соответствии с вашими требованиями:

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

На вкладке «Пользователи» необходимо нажать кнопку +, ввести имя пользователя, тип файловой системы, установить local (также можно хранить каталоги на сетевых ресурсах), а также убрать галку «новая» напротив надписи «Первичная группа». При этом пользователь будет добавлен в группу «domain user». Далее создадим пароль для пользователя.

На вкладке «Привилегии домена» можно сделать пользователя «администратором» домена, а также разрешить авторизацию с конкретных доменных машин, или с любых машин, входящих в домен.

На вкладке «МРД» указываем, к каким меткам пользователь имеет доступ, а также уровень целостности.

Дополнительно: «заливка» hosts на все рабочие станции

Представьте ситуацию, в будущий домен будет входить 100 или более машин. Раскидать в ручную файл hosts проблематично. В данной ситуации поможет bash с СИ подобным синтаксисом.

На тестовом стенде имеется подсеть 192.168.1.0/24, 192.168.1.1 — сервер, 192.168.1.2 — 192.168.1.100 — рабочие станции. На каждой машине (в том числе и на сервере) имеется пользователь user с паролем 12345678. Данный пользователь должен быть полноценным администратором (с доступом к sudo, во время установки системы создается пользователь имеющий данные права) и иметь уровень целостности 63. Для данной цели необходимо выполнить следующие команды:

sudo usermod -aG astra-admin,astra-console user
sudo pdpl-user -l 0:0 -i 63 user

Если пользователь user отсутствует в системе, выполним следующие команды:

sudo useradd -m -G astra-admin,astra-console -s /bin/bash user
sudo passwd user
sudo pdpl-user -l 0:0 -i 63 user 

Чтобы не вводить пароль при распространении ключей, необходимо установить утилиту sshpass:

sudo apt install sshpass

Теперь можно приступить к формированию ключа (без sudo, с правами пользователя user), для беспарольного доступа:

shh-keygen -t rsa -b 1024

Распространим ключи на рабочие станции:

for((i=2;i<101;i++)); do sshpass -p 12345678 ssh-copy-id -f -o  StrictHostKeyChecking=no user@192.168.1.$i; done

Скопируем файл hosts на все машины с помощью утилиты scp:

for((i=2;i<101;i++)); do scp /etc/hosts user@192.168.1.$i:/home/user; ssh user@192.168.1.$i sudo cp /home/user/hosts /etc/hosts; done

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

Таким же образом можно редактировать данный файл на всех хостах в домене. Например, нам необходимо удалить строку с именем хоста host40:

for((i=2;i<102;i++)); do ssh user@192.168.1.$i sudo sed -i '/host40/d' /etc/hosts; done

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

for((i=2;i<102;i++)); do ssh user@192.168.1.$i sudo sed -i 's/SERVER=dc1.local/SERVER=dc2.local/g' /etc/ald/ald.conf; sudo sed -i 's/SERVER_ID=1/SERVER_ID=2/g' /etc/ald/ald.conf; sudo ald-client commit-config -f; done

На этом у меня сегодня всё, спасибо за ваше внимание.

Делитесь в комментариях вашим опытом.

Выбрать готовые образы программных решений для виртуальных машин IaaS можно в личном кабинете на сайте #CloudMTS.

Error Messages to Fear

The oldest and strongest emotion of mankind is fear, and the oldest and strongest kind of fear is fear of the unknown.

Supernatural Horror in Literature, HP Lovecraft, 1927.

Security error messages appear to take pride in providing limited information. In particular,
they are usually some generic IOException wrapping a generic security exception. There is some
text in the message, but it is often Failure unspecified at GSS-API level, which means
«something went wrong».

Generally a stack trace with UGI in it is a security problem, though it can be a network problem
surfacing in the security code
.

The underlying causes of problems are usually the standard ones of distributed systems: networking
and configuration.

Some of the OS-level messages are covered in Oracle’s Troubleshooting Kerberos docs.

  • Common Kerberos Error Messages (A-M)
  • Common Kerberos Error Messages (N-Z)

Here are some of the common ones seen in Hadoop stack traces and what we think are possible causes

That is: on one or more occasions, the listed cause was the one which, when corrected, made
the stack trace go away.

GSS initiate failed —no further details provided

WARN  ipc.Client (Client.java:run(676)) - Couldn't setup connection for rm@EXAMPLE.COM to /172.22.97.127:8020
org.apache.hadoop.ipc.RemoteException(javax.security.sasl.SaslException): GSS initiate failed
  at org.apache.hadoop.security.SaslRpcClient.saslConnect(SaslRpcClient.java:375)
  at org.apache.hadoop.ipc.Client$Connection.setupSaslConnection(Client.java:558)

This is widely agreed to be one of the most useless of error messages you can see. The only
ones that are worse than this are those which disguise a Kerberos problem, such as when ZK
closes the connection rather than saying «it couldn’t authenticate».

If you see this connection, work out which service it was trying to talk to —and look in its
logs instead. Maybe, just maybe, there will be more information there.

Server not found in Kerberos database (7) or service ticket not found in the subject

  • DNS is a mess and your machine does not know its own name.
  • Your machine has a hostname, but the service principal is a /_HOST wildcard and the hostname
    is not one there’s an entry in the keytab for.

We’ve seen this in the stdout of a NN

TGS_REQ { ... }UNKNOWN_SERVER: authtime 0, hdfs@EXAMPLE.COM for krbtgt/NOVALOCAL@EXAMPLE.COM, Server not found in Kerberos database

Variant as a client talking to a remote service over an HTTPS connection and with SPNEGO auth.

2019-01-28 11:44:13,345 [main] INFO  (DurationInfo.java:<init>(70)) - Starting: Fetching status from https://server-1542663976389-48660-01-000003.example.org.site:8443/gateway/v1/
Debug is  true storeKey false useTicketCache true useKeyTab false doNotPrompt true ticketCache is null isInitiator true KeyTab is null refreshKrb5Config is false principal is null tryFirstPass is false useFirstPass is false storePass is false clearPass is false
Acquire TGT from Cache
Principal is qa@EXAMPLE.COM
Commit Succeeded 

Search Subject for SPNEGO INIT cred (<<DEF>>, sun.security.jgss.spnego.SpNegoCredElement)
Search Subject for Kerberos V5 INIT cred (<<DEF>>, sun.security.jgss.krb5.Krb5InitCredential)
2019-01-28 11:44:14,642 [main] WARN  auth.HttpAuthenticator (HttpAuthenticator.java:generateAuthResponse(207)) - NEGOTIATE authentication error: No valid credentials provided (Mechanism level: No valid credentials provided (Mechanism level: Server not found in Kerberos database (7) - LOOKING_UP_SERVER))

After printing this warning, the application continued to make the HTTP Reqeust (using httpclient BTW) and then fail with 401 Unauth.
That is: the failure to negotiate didn’t tricker the immediate failure with a useful message, but simply downgraded to a 401 unauth, which is so broad it’s not useful.

No valid credentials provided (Mechanism level: Illegal key size)]

Your JVM doesn’t have the extended cryptography package and can’t talk to the KDC.
Switch to openjdk or go to your JVM supplier (Oracle, IBM) and download the JCE
extension package, and install it in the hosts where you want Kerberos to work.

Encryption type AES256 CTS mode with HMAC SHA1-96 is not supported/enabled

[javax.security.sasl.SaslException: GSS initiate failed
[Caused by GSSException: Failure unspecified at GSS-API level
(Mechanism level: Encryption type AES256 CTS mode with HMAC SHA1-96 is not supported/enabled)]]

This has surfaced in the distant past.

Assume it means the same as above: the JVM doesn’t have the JCE JAR installed.

No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt

This may appear in a stack trace starting with something like:

javax.security.sasl.SaslException:
GSS initiate failed [Caused by GSSException:
No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)]

It’s very common, and essentially means «you weren’t authenticated»

Possible causes:

  1. You aren’t logged in via kinit.
  2. You have logged in with kinit, but the tickets you were issued with have expired.
  3. Your process was issued with a ticket, which has now expired.
  4. You did specify a keytab but it isn’t there or is somehow otherwise invalid
  5. You don’t have the Java Cryptography Extensions installed.
  6. The principal isn’t in the same realm as the service, so a matching TGT cannot be found.
    That is: you have a TGT, it’s just for the wrong realm.
  7. Your Active Directory tree has the same principal in more than one place in the tree.
  8. Your cached ticket list has been contaminated with a realmless-ticket, and the JVM is now
    unhappy. (See «The Principal With No Realm»)
  9. The program you are running may be trying to log in with a keytab, but it’s got a Hadoop
    FileSystem instance before that login took place. Even if the service is not logged in. that
    FS instance is unauthenticated.

Apache HBase also has an unintentionally aggravating addition to the
generic GSSException which is likely to further drive the user into madness.

ipc.AbstractRpcClient – SASL authentication failed.
The most likely cause is missing or invalid credentials. Consider ‘kinit’.
javax.security.sasl.SaslException: GSS initiate failed
[Caused by GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)]

Failure unspecified at GSS-API level (Mechanism level: Checksum failed)

One of the classics

  1. The password is wrong. A kinit command doesn’t send the password to the KDC —it sends some hashed things
    to prove to the KDC that the caller has the password. If the password is wrong, so is the hash, hence
    an error about checksums.
  2. There was a keytab, but it didn’t work: the JVM has fallen back to trying to log in as the user.
  3. Your keytab contains an old version of the keytab credentials, and cannot parse the
    information coming from the KDC, as it lacks the up to date credentials.
  4. SPENGO/REST: Kerberos is very strict about hostnames and DNS; this can somehow trigger the problem.
    http://stackoverflow.com/questions/12229658/java-spnego-unwanted-spn-canonicalization;
  5. SPENGO/REST: Java 8 behaves differently from Java 6 and 7 which can cause problems
    HADOOP-11628.

javax.security.auth.login.LoginException: No password provided

When this surfaces in a server log, it means the server couldn’t log in as the user. That is,
there isn’t an entry in the supplied keytab for that user and the system (obviously) doesn’t
want to fall back to user-prompted password entry.

Some of the possible causes

  • The wrong keytab was specified.
  • The configuration key names used for specifying keytab or principal were wrong.
  • There isn’t an entry in the keytab for the user.
  • The spelling of the principal is wrong.
  • The hostname of the machine doesn’t match that of a user in the keytab, so a match of service/host
    fails.

Ideally, services list the keytab and username at fault here. In a less than ideal world —that is
the one we live in— things are sometimes less helpful

Here, for example, is a Zookeeper trace, saying it is the user null that is at fault.

2015-12-15 17:16:23,517 - WARN  [main:SaslServerCallbackHandler@105] - No password found for user: null
2015-12-15 17:16:23,536 - ERROR [main:ZooKeeperServerMain@63] - Unexpected exception, exiting abnormally
java.io.IOException: Could not configure server because SASL configuration did
not allow the ZooKeeper server to authenticate itself properly: javax.security.auth.login.LoginException: No password provided
  at org.apache.zookeeper.server.ServerCnxnFactory.configureSaslLogin(ServerCnxnFactory.java:207)
  at org.apache.zookeeper.server.NIOServerCnxnFactory.configure(NIOServerCnxnFactory.java:87)
  at org.apache.zookeeper.server.ZooKeeperServerMain.runFromConfig(ZooKeeperServerMain.java:111)
  at org.apache.zookeeper.server.ZooKeeperServerMain.initializeAndRun(ZooKeeperServerMain.java:86)
  at org.apache.zookeeper.server.ZooKeeperServerMain.main(ZooKeeperServerMain.java:52)
  at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:116)
  at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:78)

javax.security.auth.login.LoginException: Unable to obtain password from user

Believed to be the same as the No password provided

Exception in thread "main" java.io.IOException:
   Login failure for alice@REALM from keytab /etc/security/keytabs/spark.headless.keytab:
  javax.security.auth.login.LoginException: Unable to obtain password from user
  at org.apache.hadoop.security.UserGroupInformation.loginUserFromKeytab(UserGroupInformation.java:962)
  at org.apache.spark.deploy.SparkSubmit$.prepareSubmitEnvironment(SparkSubmit.scala:564)
  at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:154)
  at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:121)
  at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
Caused by: javax.security.auth.login.LoginException: Unable to obtain password from user
  at com.sun.security.auth.module.Krb5LoginModule.promptForPass(Krb5LoginModule.java:856)
  at com.sun.security.auth.module.Krb5LoginModule.attemptAuthentication(Krb5LoginModule.java:719)

The JVM Kerberos code needs to have the password for the user to login to kerberos with,
but Hadoop has told it «don’t ask for a password’», so the JVM raises an exception.

Root causes should be the same as for the other message.

failure to login using ticket cache file

You aren’t logged via kinit, the application isn’t configured to use a keytab. So: no ticket,
no authentication, no access to cluster services.

you can use klist -v to show your current ticket cache

fix: log in with kinit

Clock skew too great

GSSException: No valid credentials provided
(Mechanism level: Attempt to obtain new INITIATE credentials failed! (null))
 . . . Caused by: javax.security.auth.login.LoginException: Clock skew too great

GSSException: No valid credentials provided (Mechanism level: Clock skew too great (37) - PROCESS_TGS

kinit: krb5_get_init_creds: time skew (343) larger than max (300)

This comes from the clocks on the machines being too far out of sync.

This can surface if you are doing Hadoop work on some VMs and have been suspending and resuming them;
they’ve lost track of when they are. Reboot them.

If it’s a physical cluster, make sure that your NTP daemons are pointing at the same NTP server,
one that is actually reachable from the Hadoop cluster.
And that the timezone settings of all the hosts are consistent.

KDC has no support for encryption type

This crops up on the MiniKDC if you are trying to be clever about encryption types. It doesn’t support many.

GSSException: No valid credentials provided (Mechanism level: Fail to create credential. (63) - No service creds)

Rarely seen. Switching kerberos to use TCP rather than UDP makes it go away

In /etc/krb5.conf:

[libdefaults]
  udp_preference_limit = 1

Note also UDP is a lot slower to time out.

Receive timed out

Usually in a stack trace like

Caused by: java.net.SocketTimeoutException: Receive timed out
  at java.net.PlainDatagramSocketImpl.receive0(Native Method)
  at java.net.AbstractPlainDatagramSocketImpl.receive(AbstractPlainDatagramSocketImpl.java:146)
  at java.net.DatagramSocket.receive(DatagramSocket.java:816)
  at sun.security.krb5.internal.UDPClient.receive(NetClient.java:207)
  at sun.security.krb5.KdcComm$KdcCommunication.run(KdcComm.java:390)
  at sun.security.krb5.KdcComm$KdcCommunication.run(KdcComm.java:343)
  at java.security.AccessController.doPrivileged(Native Method)
  at sun.security.krb5.KdcComm.send(KdcComm.java:327)
  at sun.security.krb5.KdcComm.send(KdcComm.java:219)
  at sun.security.krb5.KdcComm.send(KdcComm.java:191)
  at sun.security.krb5.KrbAsReqBuilder.send(KrbAsReqBuilder.java:319)
  at sun.security.krb5.KrbAsReqBuilder.action(KrbAsReqBuilder.java:364)
  at com.sun.security.auth.module.Krb5LoginModule.attemptAuthentication(Krb5LoginModule.java:735)

This means the UDP socket awaiting a response from KDC eventually gave up.

  • The hostname of the KDC is wrong
  • The IP address of the KDC is wrong
  • There’s nothing at the far end listening for requests.
  • A firewall on either client or server is blocking UDP packets

Kerberos waits ~90 seconds before timing out, which is a long time to notice there’s a problem.

Switch to TCP —at the very least, it will fail faster.

javax.security.auth.login.LoginException: connect timed out

Happens when the system is set up to use TCP as an authentication channel, and the far end
KDC didn’t respond in time.

  • The hostname of the KDC is wrong
  • The IP address of the KDC is wrong
  • There’s nothing at the far end listening for requests.
  • A firewall somewhere is blocking TCP connections

GSSException: No valid credentials provided (Mechanism level: Connection reset)

We’ve seen this triggered in Hadoop tests after the MiniKDC through an exception; its thread
exited and hence the Kerberos client got a connection error.

When you see this assume network connectivity problems, or something up at the KDC itself.

Principal not found

The hostname is wrong (or there is more than one hostname listed with different IP addresses) and so a principal
of the form user/_HOST@REALM is coming back with the wrong host, and the KDC doesn’t find it.

See the comments above about DNS for some more possibilities.

Defective token detected (Mechanism level: GSSHeader did not find the right tag)

Seen during SPNEGO Authentication: the token supplied by the client is not accepted by the server.

This apparently surfaces in Java 8 version 8u40;
if Kerberos server doesn’t support the first authentication mechanism which the client
offers, then the client fails. Workaround: don’t use those versions of Java.

This is now acknowledged by Oracle and
has been fixed in 8u60.

Specified version of key is not available (44)

Client failed to SASL authenticate:
  javax.security.sasl.SaslException:
    GSS initiate failed [Caused by GSSException: Failure unspecified at GSS-API level
     (Mechanism level: Specified version of key is not available (44))]

The meaning of this message —or how to fix it— is a mystery to all.

There is some tentative coverage in Stack Overflow

One possibility is that the keys in your keytab have expired. Did you know that can happen? It does.
One day your cluster works happily. The next your client requests are failing, with this message
surfacing in the logs.

$ klist -kt zk.service.keytab 
Keytab name: FILE:zk.service.keytab
KVNO Timestamp         Principal
---- ----------------- --------------------------------------------------------
   5 12/16/14 11:46:05 zookeeper/devix.cotham.uk@COTHAM
   5 12/16/14 11:46:05 zookeeper/devix.cotham.uk@COTHAM
   5 12/16/14 11:46:05 zookeeper/devix.cotham.uk@COTHAM
   5 12/16/14 11:46:05 zookeeper/devix.cotham.uk@COTHAM

One thing to see there is the version number in the KVNO table.

Oracle describe the JRE’s handling of version numbers in their bug database.

From an account logged in to the system, you can look at the client’s version number

$ kvno zookeeper/devix@COTHAM
zookeeper/devix@COTHAM: kvno = 1

Recommended strategy

Rebuild your keytabs.

  1. Take a copy of your current keytab dir, for easy reverting.
  2. Use ktlist -kt to list the entries in each keytab.
  3. Use ls -al to record their user + group values + permissions.
  4. In kadmin.local, re-export every key to the keytabs which needed it with xst -norandkey
  5. Make sure the file owners and permissions are as before.
  6. Restart everything.

kinit: Client not found in Kerberos database while getting initial credentials

This is fun: it means that the user is not known.

Possible causes

  1. The user isn’t in the database.
  2. You are trying to connect to a different KDC than the one you thought you were using.
  3. You aren’t who you thought you were.

SIMPLE authentication is not enabled. Available:[TOKEN]"

This surfaces on RPC connections when the client is trying to use «SIMPLE» (i.e. unauthenticated)
RPC, when the service is set to only support Kerberos («TOKEN»)

in the client configuration, set hadoop.security.authentication to kerberos.

(There is a configuration option to tell clients that they can support downgrading to simple, but
as it shouldn’t be used, this document doesn’t list it.

Request is a replay (34))

The destination thinks the caller is attempting some kind of replay attack

  1. The KDC is seeing too many attempts by the caller to authenticate as a specific principal,
    assumes some kind of attack and rejects the request. This can happen if you have too many processes/
    nodes all sharing the same principal. Fix: make sure you have service/_HOST@REALM principals
    for all the services, rather than simple service@REALM principals.

  2. The timestamps of the systems are out of sync, so it looks like an old token be re-issued.
    Check them all, including that of the KDC, make sure NTP is working, etc, etc.

AuthenticationToken ignored

This has been seen in the HTTP logs of Hadoop REST/Web UIs:

WARN org.apache.hadoop.security.authentication.server.AuthenticationFilter:
AuthenticationToken ignored:
org.apache.hadoop.security.authentication.util.SignerException: Invalid signature

This means that the caller did not have the credentials to talk to a Kerberos-secured channel.

  1. The caller may not be logged in.
  2. The caller may have been logged in, but its kerberos token has expired, so its authentication headers are not considered valid any more.
  3. The time limit of a negotiated token for the HTTP connection has expired. Here the calling app is expected to recognise this, discard its old token and renegotiate a new one. If the calling app is a YARN hosted service, then something should have been refreshing the tokens for you.

Found unsupported keytype (8)

Happens when the keytype supported by the KDC isn’t supported by the JVM

Generate a keytab with a supported key encryption type.

«User: MyUserName is not allowed to impersonate ProxyUser»

Your code has tried to create a proxy user and talk to a Hadoop service with it, but
you do not have the right to impersonate that user. Only specific Hadoop services (Oozie, YARN RM)
have the right to do what is the Hadoop equivalent of (su $user)

See Proxy user — Superusers Acting On Behalf Of Other Users

Kerberos credential has expired

Seen on an IBM JVM in HADOOP-9969

javax.security.sasl.SaslException:
  Failure to initialize security context [Caused by org.ietf.jgss.GSSException, major code: 8, minor code: 0
  major string: Credential expired
  minor string: Kerberos credential has expired]

The kerberos ticket has expired and not been renewed.

Possible causes

  • The renewer thread somehow failed to start.
  • The renewer did start, but didn’t try to renew in time.
  • A JVM/Hadoop code incompatibility stopped renewing from working.
  • Renewal failed for some other reason.
  • The client was kinited in and the token expired.
  • Your VM clock has jumped forward and the ticket now out of date without any renewal taking place.

SASL No common protection layer between client and server

Not Kerberos, SASL itself:

16/01/22 09:44:17 WARN Client: Exception encountered while connecting to the server : 
javax.security.sasl.SaslException: DIGEST-MD5: No common protection layer between client and server
  at com.sun.security.sasl.digest.DigestMD5Client.checkQopSupport(DigestMD5Client.java:418)
  at com.sun.security.sasl.digest.DigestMD5Client.evaluateChallenge(DigestMD5Client.java:221)
  at org.apache.hadoop.security.SaslRpcClient.saslConnect(SaslRpcClient.java:413)
  at org.apache.hadoop.ipc.Client$Connection.setupSaslConnection(Client.java:558)
  at org.apache.hadoop.ipc.Client$Connection.access$1800(Client.java:373)
  at org.apache.hadoop.ipc.Client$Connection$2.run(Client.java:727)
  at org.apache.hadoop.ipc.Client$Connection$2.run(Client.java:723)
  at java.security.AccessController.doPrivileged(Native Method)
  at javax.security.auth.Subject.doAs(Subject.java:422)
  at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657)
  at org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:722)
  at org.apache.hadoop.ipc.Client$Connection.access$2800(Client.java:373)
  at org.apache.hadoop.ipc.Client.getConnection(Client.java:1493)
  at org.apache.hadoop.ipc.Client.call(Client.java:1397)
  at org.apache.hadoop.ipc.Client.call(Client.java:1358)
  at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:229)
  at com.sun.proxy.$Proxy23.renewLease(Unknown Source)
  at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.renewLease(ClientNamenodeProtocolTranslatorPB.java:590)
  at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:497)

On windows: No authority could be contacted for authentication

Reported on windows clients, especially related to the Hive ODBC client. This is kerberos, just
someone else’s library.

  1. Make sure that your system is happy in the AD realm, etc. Do this first.
  2. Make sure you’ve configured the ODBC driver according to the instructions.

During service startup java.lang.RuntimeException: Could not resolve Kerberos principal name: + unknown error

This something which can arise in the logs of a service. Here, for example, is a datanode failure.

Could not resolve Kerberos principal name: java.net.UnknownHostException: xubunty: xubunty: unknown error

This is not a kerberos problem. It is a network problem being misinterpreted as a Kerberos problem, purely
because it surfaces in security code which assumes that all failures must be Kerberos related.

2016-04-06 11:00:35,796 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: Exception in secureMain java.io.IOException: java.lang.RuntimeException: Could not resolve Kerberos principal name: java.net.UnknownHostException: xubunty: xubunty: unknown error
  at org.apache.hadoop.http.HttpServer2.<init>(HttpServer2.java:347)
  at org.apache.hadoop.http.HttpServer2.<init>(HttpServer2.java:114)
  at org.apache.hadoop.http.HttpServer2$Builder.build(HttpServer2.java:290)
  at org.apache.hadoop.hdfs.server.datanode.web.DatanodeHttpServer.<init>(DatanodeHttpServer.java:108)
  at org.apache.hadoop.hdfs.server.datanode.DataNode.startInfoServer(DataNode.java:781)
  at org.apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNode.java:1138)
  at org.apache.hadoop.hdfs.server.datanode.DataNode.<init>(DataNode.java:432)
  at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:2423)
  at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:2310)
  at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:2357)
  at org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.java:2538)
  at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:2562)
Caused by: java.lang.RuntimeException: Could not resolve Kerberos principal name: java.net.UnknownHostException: xubunty: xubunty: unknown error
  at org.apache.hadoop.security.AuthenticationFilterInitializer.getFilterConfigMap(AuthenticationFilterInitializer.java:90)
  at org.apache.hadoop.http.HttpServer2.getFilterProperties(HttpServer2.java:455)
  at org.apache.hadoop.http.HttpServer2.constructSecretProvider(HttpServer2.java:445)
  at org.apache.hadoop.http.HttpServer2.<init>(HttpServer2.java:340)
  ... 11 more
Caused by: java.net.UnknownHostException: xubunty: xubunty: unknown error
  at java.net.InetAddress.getLocalHost(InetAddress.java:1505)
  at org.apache.hadoop.security.SecurityUtil.getLocalHostName(SecurityUtil.java:224)
  at org.apache.hadoop.security.SecurityUtil.replacePattern(SecurityUtil.java:192)
  at org.apache.hadoop.security.SecurityUtil.getServerPrincipal(SecurityUtil.java:147)
  at org.apache.hadoop.security.AuthenticationFilterInitializer.getFilterConfigMap(AuthenticationFilterInitializer.java:87)
  ... 14 more
Caused by: java.net.UnknownHostException: xubunty: unknown error
  at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method)
  at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:928)
  at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1323)
  at java.net.InetAddress.getLocalHost(InetAddress.java:1500)
  ... 18 more2016-04-06 11:00:35,799 INFO org.apache.hadoop.util.ExitUtil: Exiting with status 12016-04-06 11:00:35,806 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: SHUTDOWN_MSG:
{code}

The root cause here was that the host xubunty which a service was configured to start on did not have an entry in /etc/hosts, nor DNS support.
The attempt to look up the IP address of the local host failed.

The fix: add the short name of the host to /etc/hosts.

This example shows why errors reported as Kerberos problems,
be they from the Hadoop stack or in the OS/Java code underneath,
are not always Kerberos problems.
Kerberos is fussy about networking; the Hadoop services have to initialize Kerberos
before doing any other work. As a result, networking problems often surface first
in stack traces belonging to the security classes, wrapped with exception messages
implying a Kerberos problem. Always follow down to the innermost exception in a trace
as the immediate symptom of a problem, the layers above attempts to interpret that,
attempts which may or may not be correct.

Against Active Directory: Realm not local to KDC while getting initial credentials

Nobody quite knows.

It’s believed to be related to Active Directory cross-realm/forest stuff, but there
are hints that it can also be raised when the kerberos client is trying to auth
with a KDC, but supplying a hostname rather than the realm.

This may be because you have intentionally or unintentionally created A Disjoint Namespace)

If you read that article, you will get the distinct impression that even the Microsoft
Active Directory team are scared of Disjoint Namespaces, and so are going to a lot of
effort to convince you not to go there. It may seem poignant that even the developers of
AD are scared of this, but consider that these are probably inheritors of the codebase,
not the original authors, and the final support line for when things don’t work. Their
very position in the company means that they get the worst-of-the-worst Kerberos-related
problems. If they say «Don’t go there», it’ll be based on experience of fielding those
support calls and from having seen the Active Directory source code.

  • Kerberos and the Disjoint Namespace
  • Kerberos Principal Name Canonicalization and Cross-Realm Referrals

Can't get Master Kerberos principal

The application wants to talk to a service (HDFS, YARN, HBase, …), but it cannot
determine the Kerberos principal which it should obtain a ticket for.
This usually means that the client configuration doesn’t declare the principal in
the appropriate option —for example «dfs.namenode.kerberos.principal».

This can surface in client applications when delegation tokens are being collected.

java.io.IOException: Can't get Master Kerberos principal for use as renewer
  at org.apache.hadoop.mapreduce.security.TokenCache.obtainTokensForNamenodesInternal(TokenCache.java:134)
  at org.apache.hadoop.mapreduce.security.TokenCache.obtainTokensForNamenodesInternal(TokenCache.java:102)
  at org.apache.hadoop.mapreduce.security.TokenCache.obtainTokensForNamenodes(TokenCache.java:81)
  at org.apache.hadoop.tools.SimpleCopyListing.validatePaths(SimpleCopyListing.java:199)
  at org.apache.hadoop.tools.CopyListing.buildListing(CopyListing.java:85)
  at org.apache.hadoop.tools.GlobbedCopyListing.doBuildListing(GlobbedCopyListing.java:89)
  at org.apache.hadoop.tools.CopyListing.buildListing(CopyListing.java:86)
  at org.apache.hadoop.tools.DistCp.createInputFileListing(DistCp.java:368)
  at org.apache.hadoop.tools.DistCp.prepareFileListing(DistCp.java:96)
  at org.apache.hadoop.tools.DistCp.createAndSubmitJob(DistCp.java:205)
  at org.apache.hadoop.tools.DistCp.execute(DistCp.java:182)
  at org.apache.hadoop.tools.DistCp.run(DistCp.java:153)
  at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76)
  at org.apache.hadoop.tools.DistCp.main(DistCp.java:432)

Each DT is requested from the source/dest filesystems with the YARN RM as the
renewer -and so it needs to know who that renewer is. That’s set in the property
For YARN token collection, the principal is found in the property
yarn.resourcemanager.principal

<property>
  <name>yarn.resourcemanager.principal</name>
  <value>rm/_HOST@EXAMPLE.COM</value>
</property>

If this property is empty, you get the stack trace above.

Note: looking at the code it seems that if all the filesystems you want
to collect delegation tokens from have their hostname listed in mapreduce.job.hdfs-servers.token-renewal.exclude
then it will not need that yarn.resourcemanager.principal:

<property>
  <name>mapreduce.job.hdfs-servers.token-renewal.exclude</name>
  <value>hdfs2, us-west1, us-east</value>
</property>

This is particularly relevant for the S3A object store, whose delegation tokens
are not renewable.

SIMPLE authentication is not enabled. Available:[TOKEN, KERBEROS]

This surfaces in the client:

org.apache.hadoop.security.AccessControlException: SIMPLE authentication is not enabled. Available:[TOKEN, KERBEROS]

The client doesn’t think security is enabled; it’s only trying to use «SIMPLE» authentication, —the caller is
whoever they say they are. However, the server will only take Kerberos tickets or Hadoop delegation tokens which
were previously acquired by by a caller with a valid Kerberos ticket. It is rejecting
the authentication request.

Null realm name (601)

Null realm name (601) - default realm not specified

Comes from the JDK, Oracle docs say

Cause: The default realm is not specified in the Kerberos configuration file
krb5.conf (if used), provided as a part of the user name, or specified via the
java.security.krb5.realm system property.

Solution: Verify that your Kerberos configuration file (if used)
contains an entry specifying the default realm, or directly specify it by
setting the value of the java.security.krb5.realm system property and/or
including it in your user name when authenticating using Kerberos.»

This happens when the JVM option java.security.krb5.realm is set to «».

Who would do that? hadoop-env.sh does it by default on MacOS: in
HADOOP-8719 someone
deliberately patched hadoop-env.sh to clear the kerberos realm settings
when running on macos

While this may have been valid in 2014, it is not valid any longer.

Fix: open the hadoop-env shell script, search for the string
java.security.krb5.realm; delete the entire clause where it and its
sibling options are cleared when OS == Darwin.

Fixed in HADOOP-15966 for
Hadoop 3.0.4+, 3.1.3 and 3.2.1+

After enabled Kerberos, impala daemon for all data nodes doesn’t start, but at the same time Impala Catalog Server and Impala StateStore have been started successfully (with Kerberos).

Log file created at: 2018/06/01 12:03:58
Running on machine: hadoop-srv01.STAT.RO
Log line format: [IWEF]mmdd hh:mm:ss.uuuuuu threadid file:line] msg
I0601 12:03:58.609741  1344 logging.cc:125] stdout will be logged to this file.
E0601 12:03:58.610020  1344 logging.cc:126] stderr will be logged to this file.
I0601 12:03:58.610366  1344 minidump.cc:231] Setting minidump size limit to 20971520.
I0601 12:03:58.610431  1344 atomicops-internals-x86.cc:98] vendor GenuineIntel  family 6  model 15  sse2 1  cmpxchg16b 1
I0601 12:03:58.619076  1344 authentication.cc:722] Using internal kerberos principal «impala/hadoop-srv01.STAT.RO@MAIN.STAT.RO»
I0601 12:03:58.619089  1344 authentication.cc:1058] Internal communication is authenticated with Kerberos
I0601 12:03:58.619333  1344 authentication.cc:840] Waiting for Kerberos ticket for principal: impala/hadoop-srv01.STAT.RO@MAIN.STAT.RO
I0601 12:03:58.619376  1411 authentication.cc:498] Registering impala/hadoop-srv01.STAT.RO@MAIN.STAT.RO, keytab file /var/run/cloudera-scm-agent/process/288-impala-IMPALAD/impala.keytab
I0601 12:03:58.636188  1344 authentication.cc:842] Kerberos ticket granted to impala/hadoop-srv01.STAT.RO@MAIN.STAT.RO
I0601 12:03:58.636248  1344 authentication.cc:722] Using external kerberos principal «impala/hadoop-srv01.STAT.RO@MAIN.STAT.RO»
I0601 12:03:58.636255  1344 authentication.cc:1074] External communication is authenticated with Kerberos
I0601 12:03:58.636765  1344 init.cc:221] impalad version 2.10.0-cdh5.13.1 RELEASE (build 1e4b23c4eb52dac95c5be6316f49685c41783c51)
Built on Thu Nov  9 08:29:47 PST 2017
I0601 12:03:58.636775  1344 init.cc:222] Using hostname: hadoop-srv01.STAT.RO
I0601 12:03:58.637948  1344 logging.cc:161] Flags (see also /varz are on debug webserver):
—catalog_service_port=26000
—initial_hms_cnxn_timeout_s=120
—load_catalog_in_background=false
—num_metadata_loading_threads=16
—sentry_catalog_polling_frequency_s=60
—sentry_config=
—asm_module_dir=
—disable_optimization_passes=false
—dump_ir=false
—opt_module_dir=
—perf_map=false
—print_llvm_ir_instruction_count=false
—unopt_module_dir=
—abort_on_config_error=true
—be_port=22000
—be_principal=
—buffer_pool_clean_pages_limit=10%
—buffer_pool_limit=80%
—compact_catalog_topic=false
—disable_kudu=false
—disable_mem_pools=false
—enable_accept_queue_server=true
—enable_minidumps=true
—enable_process_lifetime_heap_profiling=false
—enable_stats_extrapolation=false
—heap_profile_dir=
—hostname=hadoop-srv01.STAT.RO
—inc_stats_size_limit_bytes=209715200
—keytab_file=/var/run/cloudera-scm-agent/process/288-impala-IMPALAD/impala.keytab
—krb5_conf=
—krb5_debug_file=
—kudu_operation_timeout_ms=180000
—load_auth_to_local_rules=false
—max_minidumps=9
—mem_limit=49893343232
—min_buffer_size=65536
—minidump_path=/var/log/impala-minidumps/impalad
—minidump_size_limit_hint_kb=20480
—principal=impala/hadoop-srv01.STAT.RO@MAIN.STAT.RO
—redaction_rules_file=
—local_library_dir=/var/lib/impala/udfs
—max_audit_event_log_files=0
—max_log_files=10
—memory_maintenance_sleep_time_ms=10000
—pause_monitor_sleep_time_ms=500
—pause_monitor_warn_threshold_ms=10000
—log_filename=impalad
—redirect_stdout_stderr=true
—data_source_batch_size=1024
—exchg_node_buffer_size_bytes=10485760
—enable_quadratic_probing=true
—skip_lzo_version_check=false
—parquet_min_filter_reject_ratio=0.10000000000000001
—runtime_filter_wait_time_ms=1000
—suppress_unknown_disk_id_warnings=false
—max_row_batches=0
—kudu_max_row_batches=0
—kudu_read_mode=READ_LATEST
—kudu_scanner_keep_alive_period_sec=15
—pick_only_leaders_for_tests=false
—kudu_mutation_buffer_size=10485760
—kudu_sink_mem_required=20971520
—convert_legacy_hive_parquet_utc_timestamps=false
—max_page_header_size=8388608
—accepted_cnxn_queue_depth=10000
—enable_ldap_auth=false
—internal_principals_whitelist=hdfs
—kerberos_reinit_interval=60
—ldap_allow_anonymous_binds=false
—ldap_baseDN=
—ldap_bind_pattern=
—ldap_ca_certificate=
—ldap_domain=
—ldap_manual_config=false
—ldap_passwords_in_clear_ok=false
—ldap_tls=false
—ldap_uri=
—sasl_path=
—concurrent_scratch_ios_per_device=2
—madvise_huge_pages=true
—mmap_buffers=false
—insert_inherit_permissions=false
—datastream_sender_timeout_ms=120000
—adls_read_chunk_size=131072
—use_hdfs_pread=false
—max_cached_file_handles=0
—max_free_io_buffers=128
—num_adls_io_threads=16
—num_disks=0
—num_io_threads_per_rotational_disk=0
—num_io_threads_per_solid_state_disk=0
—num_remote_hdfs_io_threads=8
—num_s3_io_threads=16
—num_threads_per_disk=0
—read_size=8388608
—unused_file_handle_timeout_sec=270
—backend_client_connection_num_retries=3
—backend_client_rpc_timeout_ms=300000
—catalog_client_connection_num_retries=3
—catalog_client_rpc_timeout_ms=0
—catalog_service_host=hadoop-mgmt01.STAT.RO
—coordinator_rpc_threads=12
—disable_admission_control=false
—enable_webserver=true
—num_hdfs_worker_threads=16
—state_store_host=hadoop-mgmt01.STAT.RO
—state_store_subscriber_port=23000
—status_report_interval=5
—s3a_access_key_cmd=
—s3a_secret_key_cmd=
—log_mem_usage_interval=0
—max_filter_error_rate=0.75
—num_threads_per_core=3
—use_local_tz_for_unix_timestamp_conversions=false
—allow_multiple_scratch_dirs_per_device=false
—disk_spill_encryption=false
—scratch_dirs=/data/data01/impala/impalad,/data/data02/impala/impalad,/data/data03/impala/impalad,/data/data04/impala/impalad,/data/data05/impala/impalad,/data/data06/impala/impalad,/data/data07/impala/impalad,/data/data08/impala/impalad,/data/data09/impala/impalad,/data/data10/impala/impalad,/data/data11/impala/impalad,/data/data12/impala/impalad,/data/data13/impala/impalad
—queue_wait_timeout_ms=60000
—default_pool_max_queued=200
—default_pool_max_requests=-1
—default_pool_mem_limit=
—disable_pool_max_requests=false
—disable_pool_mem_limits=false
—fair_scheduler_allocation_path=/var/run/cloudera-scm-agent/process/288-impala-IMPALAD/impala-conf/fair-scheduler.xml
—llama_site_path=/var/run/cloudera-scm-agent/process/288-impala-IMPALAD/impala-conf/llama-site.xml
—require_username=false
—authorization_policy_file=
—authorization_policy_provider_class=org.apache.sentry.provider.common.HadoopGroupResourceAuthorizationProvider
—authorized_proxy_user_config=
—authorized_proxy_user_config_delimiter=,
—kudu_master_hosts=
—server_name=
—abort_on_failed_audit_event=false
—abort_on_failed_lineage_event=true
—audit_event_log_dir=/var/log/impalad/audit
—beeswax_port=21000
—cancellation_thread_pool_size=5
—default_query_options=
—fe_service_threads=64
—hs2_port=21050
—idle_query_timeout=0
—idle_session_timeout=0
—is_coordinator=true
—is_executor=true
—lineage_event_log_dir=/var/log/impalad/lineage
—log_query_to_file=true
—max_audit_event_log_file_size=5000
—max_lineage_log_file_size=5000
—max_profile_log_file_size=5000
—max_profile_log_files=10
—max_result_cache_size=100000
—profile_log_dir=
—query_log_size=25
—ssl_cipher_list=
—ssl_client_ca_certificate=
—ssl_minimum_version=tlsv1
—ssl_private_key=
—ssl_private_key_password_cmd=
—ssl_server_certificate=
—statestore_subscriber_cnxn_attempts=10
—statestore_subscriber_cnxn_retry_interval_ms=3000
—statestore_subscriber_timeout_seconds=30
—state_store_port=24000
—statestore_heartbeat_frequency_ms=1000
—statestore_heartbeat_tcp_timeout_seconds=3
—statestore_max_missed_heartbeats=10
—statestore_num_heartbeat_threads=10
—statestore_num_update_threads=10
—statestore_update_frequency_ms=2000
—statestore_update_tcp_timeout_seconds=300
—force_lowercase_usernames=false
—num_cores=0
—web_log_bytes=1048576
—non_impala_java_vlog=0
—periodic_counter_update_period_ms=500
—enable_webserver_doc_root=true
—webserver_authentication_domain=
—webserver_certificate_file=
—webserver_doc_root=/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala
—webserver_interface=
—webserver_password_file=
—webserver_port=25000
—webserver_private_key_file=
—webserver_private_key_password_cmd=
—webserver_x_frame_options=DENY
—flagfile=/var/run/cloudera-scm-agent/process/288-impala-IMPALAD/impala-conf/impalad_flags
—fromenv=
—tryfromenv=
—undefok=
—tab_completion_columns=80
—tab_completion_word=
—help=false
—helpfull=false
—helpmatch=
—helpon=
—helppackage=false
—helpshort=false
—helpxml=false
—version=false
—alsologtoemail=
—alsologtostderr=false
—colorlogtostderr=false
—drop_log_memory=true
—log_backtrace_at=
—log_dir=/var/log/impalad
—log_link=
—log_prefix=true
—logbuflevel=0
—logbufsecs=30
—logemaillevel=999
—logmailer=/bin/mail
—logtostderr=false
—max_log_size=200
—minloglevel=0
—stderrthreshold=4
—stop_logging_if_full_disk=false
—symbolize_stacktrace=true
—v=1
—vmodule=
I0601 12:03:58.638094  1344 init.cc:227] Cpu Info:
  Model: Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz
  Cores: 40
  Max Possible Cores: 40
  L1 Cache: 32.00 KB (Line: 64.00 B)
  L2 Cache: 256.00 KB (Line: 64.00 B)
  L3 Cache: 25.00 MB (Line: 64.00 B)
  Hardware Supports:
    ssse3
    sse4_1
    sse4_2
    popcnt
    avx
    avx2
  Numa Nodes: 2
  Numa Nodes of Cores: 0->0 | 1->0 | 2->0 | 3->0 | 4->0 | 5->0 | 6->0 | 7->0 | 8->0 | 9->0 | 10->1 | 11->1 | 12->1 | 13->1 | 14->1 | 15->1 | 16->1 | 17->1 | 18->1 | 19->1 | 20->0 | 21->0 | 22->0 | 23->0 | 24->0 | 25->0 | 26->0 | 27->0 | 28->0 | 29->0 | 30->1 | 31->1 | 32->1 | 33->1 | 34->1 | 35->1 | 36->1 | 37->1 | 38->1 | 39->1 |
I0601 12:03:58.638119  1344 init.cc:228] Disk Info:
  Num disks 15:
    sdc (rotational=true)
    sde (rotational=true)
    sdf (rotational=true)
    sdh (rotational=true)
    sdb (rotational=true)
    sdd (rotational=true)
    sdj (rotational=true)
    sdi (rotational=true)
    sdg (rotational=true)
    sda (rotational=false)
    sdk (rotational=true)
    sdm (rotational=true)
    sdn (rotational=true)
    sdl (rotational=true)
    dm- (rotational=true)

I0601 12:03:58.638208  1344 init.cc:229] Physical Memory: 126.04 GB
Transparent Huge Pages Config:
  enabled: always madvise [never]
  defrag: always madvise [never]
  khugepaged defrag: [yes] no
I0601 12:03:58.638216  1344 init.cc:230] OS version: Linux version 2.6.32-696.16.1.el6.x86_64 (mockbuild@c1bl.rdu2.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC) ) #1 SMP Wed Nov 15 16:51:15 UTC 2017
Clock: clocksource: ‘tsc’, clockid_t: CLOCK_MONOTONIC
I0601 12:03:58.638221  1344 init.cc:231] Process ID: 1344
I0601 12:04:00.055625  1344 llvm-codegen.cc:136] CPU class for runtime code generation: broadwell
I0601 12:04:00.055665  1344 llvm-codegen.cc:139] CPU flags for runtime code generation: -sse4a,-avx512bw,+cx16,-tbm,+xsave,-fma4,-avx512vl,+prfchw,+bmi2,+adx,-xsavec,+fsgsbase,+avx,-avx512cd,-avx512pf,+rtm,+popcnt,+fma,+bmi,+aes,+rdrnd,-xsaves,+sse4.1,+sse4.2,+avx2,-avx512er,+sse,+lzcnt,+pclmul,-avx512f,+f16c,+ssse3,+mmx,-pku,+cmov,-xop,+rdseed,+movbe,+hle,+xsaveopt,-sha,+sse2,+sse3,-avx512dq
I0601 12:04:00.749959  1344 GlogAppender.java:137] Logging (re)initialized. Impala: VLOG, All other: INFO
I0601 12:04:00.752050  1344 JniFrontend.java:139] Authorization is ‘DISABLED’.
I0601 12:04:00.752928  1344 JniFrontend.java:141] Java Input arguments:
-Djava.library.path=/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/bin/../lib/impala/lib
Java System properties:
java.vm.version:24.65-b04
awt.toolkit:sun.awt.X11.XToolkit
java.vendor.url:http://java.oracle.com/
sun.jnu.encoding:UTF-8
java.vm.info:mixed mode
sun.boot.library.path:/usr/java/jdk1.7.0_67-cloudera/jre/lib/amd64
java.home:/usr/java/jdk1.7.0_67-cloudera/jre
user.dir:/var/run/cloudera-scm-agent/process/288-impala-IMPALAD
java.vm.name:Java HotSpot(TM) 64-Bit Server VM
sun.cpu.isalist:
java.awt.graphicsenv:sun.awt.X11GraphicsEnvironment
sun.os.patch.level:unknown
java.endorsed.dirs:/usr/java/jdk1.7.0_67-cloudera/jre/lib/endorsed
sun.management.compiler:HotSpot 64-Bit Tiered Compilers
user.home:/var/lib/impala
java.runtime.name:Java(TM) SE Runtime Environment
java.io.tmpdir:/tmp
java.awt.printerjob:sun.print.PSPrinterJob
java.version:1.7.0_67
file.encoding.pkg:sun.io
java.library.path:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/bin/../lib/impala/lib
file.separator:/
java.vendor.url.bug:http://bugreport.sun.com/bugreport/
java.specification.vendor:Oracle Corporation
file.encoding:UTF-8
line.separator:

java.vm.specification.version:1.7
java.vm.specification.vendor:Oracle Corporation
user.timezone:Europe/Tiraspol
os.name:Linux
java.vm.vendor:Oracle Corporation
path.separator::
java.ext.dirs:/usr/java/jdk1.7.0_67-cloudera/jre/lib/ext:/usr/java/packages/lib/ext
java.class.path:/usr/share/java/mysql-connector-java.jar:/usr/share/cmf/lib/postgresql-9.0-801.jdbc4.jar:/usr/share/java/oracle-connector-java.jar:/var/lib/impala/*.jar:/usr/share/java/mysql-connector-java.jar:/var/run/cloudera-scm-agent/process/288-impala-IMPALAD/impala-conf:/var/run/cloudera-scm-agent/process/288-impala-IMPALAD/hadoop-conf:/var/run/cloudera-scm-agent/process/288-impala-IMPALAD/hive-conf:/var/run/cloudera-scm-agent/process/288-impala-IMPALAD/hbase-conf:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/libthrift-0.9.0.jar::/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/ST4-4.0.4.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/activation-1.1.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/ant-1.5.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/ant-1.9.1.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/ant-contrib-1.0b3.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/ant-launcher-1.9.1.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/antlr-2.7.7.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/antlr-runtime-3.3.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/aopalliance-1.0.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/apache-log4j-extras-1.2.17.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/apacheds-i18n-2.0.0-M15.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/apacheds-jdbm1-2.0.0-M2.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/apacheds-kerberos-codec-2.0.0-M15.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/api-asn1-api-1.0.0-M20.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/api-util-1.0.0-M20.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/asm-3.1.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/asm-commons-3.1.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/asm-tree-3.1.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/async-1.3.1.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/audience-annotations-0.4.0.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/avro.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/aws-java-sdk-bundle-1.11.134.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/azure-data-lake-store-sdk-2.2.3.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/bonecp-0.7.1.RELEASE.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/calcite-avatica-1.0.0-incubating.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/calcite-core-1.0.0-incubating.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/calcite-linq4j-1.0.0-incubating.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/commons-beanutils-1.8.3.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/commons-beanutils-core-1.8.0.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/commons-cli-1.2.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/commons-codec-1.9.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/commons-collections-3.2.2.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/commons-compiler-2.7.6.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/commons-compress-1.4.1.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/commons-configuration-1.6.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/commons-daemon-1.0.13.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/commons-dbcp-1.4.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/commons-digester-1.8.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/commons-el-1.0.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/commons-httpclient-3.1.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/commons-io-2.4.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/commons-lang-2.6.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/commons-lang3-3.1.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/commons-logging-1.1.1.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/commons-math-2.2.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/commons-math3-3.1.1.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/commons-net-3.1.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/commons-pool-1.5.4.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/commons-pool2-2.4.2.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/core-3.1.1.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/curator-client-2.7.1.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/curator-framework-2.7.1.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/curator-recipes-2.7.1.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/curator-test-2.11.1.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/curator-x-discovery-2.11.1.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/datanucleus-api-jdo-3.2.6.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/datanucleus-core-3.2.12.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/datanucleus-rdbms-3.2.12.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/derby-10.10.2.0.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/eigenbase-properties-1.1.4.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/findbugs-annotations-1.3.9-1.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/flatbuffers-java-1.6.0.1.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/geronimo-annotation_1.0_spec-1.1.1.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/geronimo-jaspic_1.0_spec-1.0.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/geronimo-jta_1.1_spec-1.1.1.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/groovy-all-2.4.4.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/gson-2.2.4.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/guava-11.0.2.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/guice-3.0.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/guice-servlet-3.0.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/hadoop-annotations.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/hadoop-archives.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/hadoop-auth.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/hadoop-aws.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/hadoop-azure-datalake.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/hadoop-common.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/hadoop-hdfs.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/hadoop-mapreduce-client-common.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/hadoop-mapreduce-client-core.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/hadoop-mapreduce-client-jobclient.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/hadoop-mapreduce-client-shuffle.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/hadoop-yarn-api.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/hadoop-yarn-client.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/hadoop-yarn-common.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/hadoop-yarn-server-applicationhistoryservice.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/hadoop-yarn-server-common.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/hadoop-yarn-server-nodemanager.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/hadoop-yarn-server-resourcemanager.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/hadoop-yarn-server-web-proxy.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/hbase-annotations.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/hbase-client.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/hbase-common.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/hbase-protocol.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/high-scale-lib-1.1.1.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/hive-ant.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/hive-beeline.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/hive-cli.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/hive-common.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/hive-exec.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/hive-hbase-handler.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/hive-hcatalog-core.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/hive-hcatalog-server-extensions.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/hive-metastore.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/hive-serde.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/hive-service.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/hive-shims-common.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/hive-shims-scheduler.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/hive-shims.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/hsqldb-1.8.0.10.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/htrace-core-3.0.4.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/htrace-core-3.2.0-incubating.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/htrace-core4-4.0.1-incubating.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/httpclient-4.2.5.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/httpcore-4.2.5.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/impala-data-source-api-1.0-SNAPSHOT.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/impala-frontend-0.1-SNAPSHOT.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/ivy-2.4.0.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/jackson-annotations-2.2.3.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/jackson-core-2.2.3.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/jackson-core-asl-1.9.13.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/jackson-databind-2.2.3.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/jackson-jaxrs-1.8.3.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/jackson-mapper-asl-1.9.13.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/jackson-xc-1.8.3.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/jamon-runtime-2.3.1.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/janino-2.7.6.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/jasper-compiler-5.5.23.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/jasper-runtime-5.5.23.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/java-cup-0.11-a-czt02-cdh.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/java-cup-runtime-0.11-a-czt01-cdh.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/java-xmlbuilder-0.4.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/javassist-3.18.1-GA.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/javax.inject-1.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/javax.jdo-3.2.0-m3.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/javax.json-1.0.2.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/javax.servlet-2.5.0.v201103041518.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/jaxb-api-2.2.2.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/jaxb-impl-2.2.3-1.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/jcodings-1.0.8.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/jdo-api-3.0.1.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/jersey-client-1.9.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/jersey-core-1.9.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/jersey-guice-1.9.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/jersey-json-1.9.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/jersey-server-1.9.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/jersey-servlet-1.14.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/jets3t-0.9.0.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/jettison-1.1.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/jetty-6.1.26.cloudera.4.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/jetty-all-7.6.0.v20120127.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/jetty-continuation-7.6.16.v20140903.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/jetty-http-7.6.16.v20140903.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/jetty-io-7.6.16.v20140903.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/jetty-security-7.6.16.v20140903.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/jetty-server-7.6.16.v20140903.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/jetty-servlet-7.6.16.v20140903.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/jetty-util-6.1.26.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/jetty-util-7.6.16.v20140903.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/jline-2.12.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/jms-1.1.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/joda-time-2.8.1.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/joni-2.1.2.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/jpam-1.1.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/jsch-0.1.42.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/json-simple-1.1.1.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/jsp-api-2.1.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/jsr305-3.0.0.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/jta-1.1.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/kudu-client-1.5.0-cdh5.13.1.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/leveldbjni-all-1.8.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/libfb303-0.9.0.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/libgcc_s.so.1:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/libhadoop.so:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/libhadoop.so.1.0.0:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/libhdfs.so:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/libhdfs.so.0.0.0:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/libkudu_client.so.0:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/libkudu_client.so.0.1.0:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/libstdc++.so.6:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/libstdc++.so.6.0.20:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/libthrift-0.9.0.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/log4j-1.2.17.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/logredactor-1.0.3.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/mail-1.4.1.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/metrics-core-2.2.0.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/metrics-core-3.0.2.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/metrics-healthchecks-3.0.2.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/metrics-json-3.0.2.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/metrics-jvm-3.0.2.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/metrics-servlets-3.0.2.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/mockito-all-1.9.5.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/netty-3.10.5.Final.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/netty-all-4.0.23.Final.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/okhttp-2.4.0.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/okio-1.4.0.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/opencsv-2.3.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/oro-2.0.8.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/paranamer-2.3.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/parquet-hadoop-bundle.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/pentaho-aggdesigner-algorithm-5.1.5-jhyde.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/postgresql-9.0-801.jdbc4.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/protobuf-java-2.5.0.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/sentry-binding-hive-conf.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/sentry-binding-hive-follower.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/sentry-binding-hive.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/sentry-core-common.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/sentry-core-model-db.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/sentry-core-model-kafka.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/sentry-core-model-search.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/sentry-hdfs-common.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/sentry-policy-common.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/sentry-policy-db.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/sentry-policy-kafka.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/sentry-policy-search.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/sentry-provider-cache.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/sentry-provider-common.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/sentry-provider-db-sh.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/sentry-provider-file.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/servlet-api-2.5.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/shiro-core-1.2.3.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/slf4j-api-1.7.5.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/slf4j-log4j12-1.7.5.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/snappy-java-1.0.4.1.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/stax-api-1.0-2.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/stax-api-1.0.1.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/stringtemplate-3.2.1.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/super-csv-2.2.0.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/transaction-api-1.1.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/velocity-1.5.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/xercesImpl-2.9.1.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/xml-apis-1.3.04.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/xmlenc-0.52.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/xz-1.0.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/zookeeper.jar:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/openssl::/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/libcrypto.so:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/libcrypto.so.1.0.0:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/libssl.so:/opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/impala/lib/libssl.so.1.0.0::/usr/share/java/mysql-connector-java.jar:/usr/share/cmf/lib/postgresql-9.0-801.jdbc4.jar:/usr/share/java/oracle-connector-java.jar
sun.arch.data.model:64
os.version:2.6.32-696.16.1.el6.x86_64
java.specification.name:Java Platform API Specification
sun.io.unicode.encoding:UnicodeLittle
user.language:en
user.name:impala
os.arch:amd64
java.runtime.version:1.7.0_67-b01
sun.boot.class.path:/usr/java/jdk1.7.0_67-cloudera/jre/lib/resources.jar:/usr/java/jdk1.7.0_67-cloudera/jre/lib/rt.jar:/usr/java/jdk1.7.0_67-cloudera/jre/lib/sunrsasign.jar:/usr/java/jdk1.7.0_67-cloudera/jre/lib/jsse.jar:/usr/java/jdk1.7.0_67-cloudera/jre/lib/jce.jar:/usr/java/jdk1.7.0_67-cloudera/jre/lib/charsets.jar:/usr/java/jdk1.7.0_67-cloudera/jre/lib/jfr.jar:/usr/java/jdk1.7.0_67-cloudera/jre/classes
user.country:US
java.class.version:51.0
java.vendor:Oracle Corporation
java.vm.specification.name:Java Virtual Machine Specification
sun.cpu.endian:little
java.specification.version:1.7
I0601 12:04:01.343031  1344 AllocationFileLoaderService.java:212] Loading allocation file /var/run/cloudera-scm-agent/process/288-impala-IMPALAD/impala-conf/fair-scheduler.xml
I0601 12:04:01.384876  1344 impala-server.cc:1215] Default query options:TQueryOptions {
  01: abort_on_error (bool) = false,
  02: max_errors (i32) = 100,
  03: disable_codegen (bool) = false,
  04: batch_size (i32) = 0,
  05: num_nodes (i32) = 0,
  06: max_scan_range_length (i64) = 0,
  07: num_scanner_threads (i32) = 0,
  08: max_io_buffers (i32) = 0,
  09: allow_unsupported_formats (bool) = false,
  10: default_order_by_limit (i64) = -1,
  11: debug_action (string) = «»,
  12: mem_limit (i64) = 0,
  13: abort_on_default_limit_exceeded (bool) = false,
  15: hbase_caching (i32) = 0,
  16: hbase_cache_blocks (bool) = false,
  17: parquet_file_size (i64) = 0,
  18: explain_level (i32) = 1,
  19: sync_ddl (bool) = false,
  23: disable_cached_reads (bool) = false,
  24: disable_outermost_topn (bool) = false,
  25: rm_initial_mem (i64) = 0,
  26: query_timeout_s (i32) = 0,
  28: appx_count_distinct (bool) = false,
  29: disable_unsafe_spills (bool) = false,
  31: exec_single_node_rows_threshold (i32) = 100,
  32: optimize_partition_key_scans (bool) = false,
  33: replica_preference (i32) = 0,
  34: schedule_random_replica (bool) = false,
  35: scan_node_codegen_threshold (i64) = 1800000,
  36: disable_streaming_preaggregations (bool) = false,
  37: runtime_filter_mode (i32) = 2,
  38: runtime_bloom_filter_size (i32) = 1048576,
  39: runtime_filter_wait_time_ms (i32) = 0,
  40: disable_row_runtime_filtering (bool) = false,
  41: max_num_runtime_filters (i32) = 10,
  42: parquet_annotate_strings_utf8 (bool) = false,
  43: parquet_fallback_schema_resolution (i32) = 0,
  45: s3_skip_insert_staging (bool) = true,
  46: runtime_filter_min_size (i32) = 1048576,
  47: runtime_filter_max_size (i32) = 16777216,
  48: prefetch_mode (i32) = 1,
  49: strict_mode (bool) = false,
  50: scratch_limit (i64) = -1,
  51: enable_expr_rewrites (bool) = true,
  52: decimal_v2 (bool) = false,
  53: parquet_dictionary_filtering (bool) = true,
  54: parquet_array_resolution (i32) = 2,
  55: parquet_read_statistics (bool) = true,
  56: default_join_distribution_mode (i32) = 0,
  57: disable_codegen_rows_threshold (i32) = 50000,
  58: default_spillable_buffer_size (i64) = 2097152,
  59: min_spillable_buffer_size (i64) = 65536,
  60: max_row_size (i64) = 524288,
}
I0601 12:04:01.385177  1460 RequestPoolService.java:150] Loading Llama configuration: /var/run/cloudera-scm-agent/process/288-impala-IMPALAD/impala-conf/llama-site.xml
W0601 12:04:01.491346  1344 UserGroupInformation.java:1920] PriviledgedActionException as:impala (auth:KERBEROS) cause:javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)]
W0601 12:04:01.493019  1344 Client.java:713] Exception encountered while connecting to the server : javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)]
W0601 12:04:01.493314  1344 UserGroupInformation.java:1920] PriviledgedActionException as:impala (auth:KERBEROS) cause:java.io.IOException: javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)]
I0601 12:04:01.506008  1344 status.cc:122] Could not read the root directory at hdfs://hadoop-mgmt01.STAT.RO:8020. Error was:
Failed on local exception: java.io.IOException: javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)]; Host Details : local host is: «hadoop-srv01.STAT.RO/192.168.128.11»; destination host is: «hadoop-mgmt01.STAT.RO»:8020;
    @           0x83e789  impala::Status::Status()
    @           0xa79206  impala::Frontend::ValidateSettings()
    @           0xaa0124  impala::ImpalaServer::ImpalaServer()
    @           0xaa18d6  impala::CreateImpalaServer()
    @           0xb186d7  ImpaladMain()
    @           0x7d9423  main
    @     0x7f3814795d1d  __libc_start_main
    @           0x80c2dd  (unknown)
E0601 12:04:01.506031  1344 impala-server.cc:282] Could not read the root directory at hdfs://hadoop-mgmt01.STAT.RO:8020. Error was:
Failed on local exception: java.io.IOException: javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)]; Host Details : local host is: «hadoop-srv01.STAT.RO/192.168.128.11»; destination host is: «hadoop-mgmt01.STAT.RO»:8020;
E0601 12:04:01.506062  1344 impala-server.cc:285] Aborting Impala Server startup due to improper configuration. Impalad exiting.

Содержание

  1. Astra Linux 1.5 проблема с ALD
  2. Astra.
  3. Astra Linux 1.5 проблема с ALD
  4. Astra Linux 1.5 проблема с ALD
  5. Ошибки инициализации домена
  6. 17 Комментариев
  7. Дмитрий Анохов
  8. Дмитрий Анохов
  9. Дмитрий Анохов
  10. Дмитрий Анохов
  11. Дмитрий Анохов
  12. Константин Ковалевский
  13. Дмитрий Андреев
  14. Дмитрий Андреев
  15. Дмитрий Анохов
  16. Дмитрий Андреев
  17. Константин Ковалевский
  18. Егор Сураев
  19. Константин Ковалевский
  20. Егор Сураев
  21. Дмитрий Анохов
  22. Марина Яловега
  23. Константин Ковалевский
  24. ‘Ald-rpc не найден’ на Astra Linux 1.6
  25. Irbis88
  26. CrashBldash
  27. Irbis88
  28. Установка Astra Linux Directory
  29. Краткое описание служб каталогов ALD
  30. Планируемая схема установки
  31. Подготовка операционных систем
  32. Настройка сервера Astra Linux Directory
  33. Настройка BIND
  34. Установка служб Astra Linux Directory
  35. Проверка работы серверных служб ALD
  36. Создание тестовых пользователей
  37. Присоединение клиента к домену ALD
  38. Процесс присоединения к домену
  39. Проверка работы клиента ALD
  40. Установка Astra Linux Directory : 8 комментариев

Astra Linux 1.5 проблема с ALD

Столкнулся с такой проблемой собрал домен на Астре (domain.mil.zs), вроде бы собрался без ошибок. Но при попытке подключить подключить клиент выдает «Домен domain.mil.zs не обнаружен». Кто знает в каком направлении копать?

Astra.

Интересно) давай глуши, нужно более детально все рассказать.

Астра она такая, непредсказуемая. Был опыт работы с АЛД, можешь поподробнее описать, все делал по инструкции из руководства пользователя? Напишешь на почту? chekin88@yandex.ru

Нужно настраивать по руководству администратора, ч.2.

ошибка наверху лежит. что есть у тебя в файле /etc/hosts, /etc/resolv.conf, /etc/network/interfaces?

Есть ль возможность подключиться удаленно?

Astra Linux 1.5 проблема с ALD

Прилагаю содержимое файлов:

/etc/hosts 127.0.0.1 localhost 10.20.120.35 ns1.domain.mil.zs ns1

/etc/resolv.conf domain domain.mil.zs search domain.mil.zs nameserver 10.20.120.35

/etc/network/interfaces auto eth0 iface eth0 inet static address 10.20.120.35 netmask 255.255.255.224 gateway 10.20.120.34 network 10.20.120.0 broadcast 10.20.120.255 dns-nameserver 10.20.120.35

У тебя настройки сети в тьме какой-то.

Адрес сети не бьёт..

А клиент как настроен? На самом сервере авторизацтя проходит?

Astra Linux 1.5 проблема с ALD

С доменом разобрались. С почтой поможешь? Проблема тоже на Астре.

Источник

Ошибки инициализации домена

Не удалось отправить широковещательное сообщение ‘bc-check-dc:.domena.net’:Сеть недоступна

Настройка сети через interfaces:

Если во время настройки и перезагрузки сети появляются ошибки, например «Failed to bring up eth0», то можно «очистить» интерфейс командой:

ip addr flush eth0

Не удалось отправить широковещательное сообщение ‘bc-check-dc:.da’: Сеть недоступна

Astra Linux Directory не сконфигурирована.

Заполните конфигурационный файл ‘/etc/ald/ald.conf’.

Не заполнен /etc/ald/ald.conf

Не удалось отправить широковещательное сообщение ‘bc-check-dc:.da’: Сеть недоступна

ALD сервер домена ‘.da’ не обнаружен.

Не удалось отправить широковещательное сообщение ‘bc-check-dc:.da’: Сеть недоступна

Не удалось отправить широковещательное сообщение ‘bc-check-dc:.da’: Сеть недоступна

ALD сервер домена ‘.da’ не обнаружен.

Ошибка разрешения имени компьютера ‘server.da’.

Некорректно настроены имя и ip адрес, например в /etc/hosts отсутствует длинное имя машин:

Триггер ‘ald-cfg-nfs:DoNFSInitFS’ вызвал исключение!

Ошибка RPC: Ошибка Krb5 сервера ALD: Ошибка проверки сообщения KRB-PRIV. в ADKrb5Server.cpp:248(decode)

:> Incorrect net address

— ОШИБКА: Ошибка аутентификации пользователя ‘admin/admin’: Ошибка MIT Kerberos V5:

Ошибка инициализации интерфейса администрирования kadm5. в ALDKadm5Connection.cpp:345(ConnectPassword)

:> GSS-API (or Kerberos) error

В /etc/ald/ald.conf не указаны длинное имя машины и домен:

Недостаточно энтропии во время инициализации домена.

    При вводе клиента (ald-client join), ошибка( 345 ) возникает из-за несовпадения времени на машинах.

Утилита hostname должна выдавать короткое имя. После внесения изменений в файл /etc/hostname необходимо перезагрузить машину.

Ошибка OpenLDAP при GSSAPI соединения — Local error в ALDLDapConnection.cpp:734(Connect)

:> SASL(1): generic failure: GSSAPI Error: Unspecified GSS failure. Minor code may provide more information (Server ldap/dc.test.test not found in Kerberos database)

Вход от имени пользователя ‘ald-admin’.

Введите пароль администратора ALD ‘ald-admin’: *

Проверка конфигурации домена. ok

Проверка модулей LDAP. ok

Проверка индексов LDAP. ok

Проверка ограничений уникальности LDAP. ok

Проверка системных принципалов. — ОШИБКА:

Ошибка RPC: Ошибка MIT Kerberos V5: Не удалось получить список принципалов Kerberos. в ALDKadm5Connection.cpp:924(Principals)

:> Operation requires «list» privilege

  • При выполнении: ald-client commit-config

17 Комментариев

Дмитрий Анохов

ald-init init возникает ошибка:

Ошибка при установке ALD соединения.

Ошибка OpenLDAP при GSSAPI соединения — Local error в ALDLDapConnection.cpp: 734 (Connect)

:> SASL(1): generic failure: GSSAPI Error: Unspecified GSS failure. Minor code may provide more information (Server ldap/dc.test.test not found in Kerberos database)

Дмитрий Анохов

При попытки ввести на сервере Ald-init init выводит ошибку:
— ОШИБКА:
Триггер ‘ald-cfg-parsec-ald:DoInitParsecAudLdapSchema’ Вызвал исключение!
Не удалось именить права доступа к ‘/etc/ldap/slapd.d/cn=config.ldif’.

— ОШИБКА:
Не удалось создать базу данных LDAP.

Дмитрий Анохов

Но при попытке подключить АРМ к домену ald-client join ns1. astra.da.nu происходит следующее, сначала выходит сообщение:

домен astra.da.nu не обнаружен.

компьютер будет подключен к домену astra.da.nu .

Дмитрий Анохов

Ошибка аутентификации пользователя ‘admin/admin’: Ошибка MIT Kerberos V5: Ошибка инициализации аутентификационных данных krb5 пользователя. в ALDKadm5Connection.cpp:283(ConnectPassword)

:> Client ‘admin/admin@168.32.216’ not found in Kerberos database

Нет записи в hosts на обоих машинах. ald-client join по ip.

Дмитрий Анохов

Ошибка аутентификации пользователя ‘admin/admin’: Ошибка MIT Kerberos V5: Ошибка инициализации аутентификационных данных krb5 пользователя. в ALDKadm5Connection.cpp:283(ConnectPassword)

:> Client ‘admin/admin@NU.DA’ not found in Kerberos database

Неверная запись имени сервера в hosts клиента

Константин Ковалевский

— ОШИБКА:
Ошибка OpenLDAP при запросе ‘cn=client.ru,ou=hosts,dc=ru (objectClass=x-ald-host-object)’ — Can’tcontact LDAP server в ALDLdapConnection.cpp:213(Search)

На клиенте в файле /etc/hosts не внесены данные о резервном сервере.

Дмитрий Андреев

root@server:/home/u# ald-init init
— ОШИБКА:
Конфигурационный параметр ‘DOMAIN’ содержит неверное значение ‘.domain.ald ‘.

При попадании табов и пробелов в конце имени домена в параметре DOMAIN=.domain.ald файла /etc/ald/ald.conf

Дмитрий Андреев

Ошибка MIT Kerberos V5: Ошибка получения ключей принципала Kerberos ‘host/client@DA.NU’. в ALDKadm5Connection.cpp:1581(KeytabAddPrincipal)

:> Principal does not exist

В /etc/hosts указано не длинное имя клиента.

Дмитрий Анохов

Не указано длинное имя клиента* ?

Дмитрий Андреев

Константин Ковалевский

[31m— ERROR:RPC error: Ошибка Krb5 сервера ALD: Ошибка проверки сообщения KRB-PRIV. в ADKrb5Server.cpp:263(decode):> Incorrect net address:> (rpc-creds)

Ошибка может быть вызвана применением антивируса или изменением правил iptables.

Проблема оказалась в Dr. Web ESS 10. Spider Gate блокирует порты RPC, его необходимо отключать. При чём, настройки Spider Gate для Linux недоступны, необходимо отключать Spider Gate в ЦУ Dr. Web для группы Everyone для Windows. Ну, или использовать на клиентах не Dr. Web for Workstations а Dr.Web for Fileservers, где этой проблемы не наблюдается.

Егор Сураев

Ошибка при установке ALD соединения.

Ошибка аутентификации пользователя ‘admin/admin’: Ошибка MIT Kerberos V5: Ошибка инициализации аутентификационных данных krb5 пользователя. в ALDKadm5Connection.cpp:283(ConnectPassword)

:> Client ‘admin/admin@NU.DA’ not found in Kerberos database

Ошибка может быть вызвана вводом неправильного пароля при ald-init promote резервного сервера.

Константин Ковалевский

Если при перезапуске ALD выходит ошибка:

— ОШИБКА:
Триггер ‘ald-cfg-smb:DoSambaStartFS’ вызвал исключение!
Не удалось запустить сервис nmbd. Код возврата 256.

А перезапуск сервиса nmbd выводит такую информацию:
root@server:/home/u# systemctl status nmbd
● nmbd.service
Loaded: masked (/dev/null; bad)
Active: inactive (dead)

Необходимо выполнить команды:

systemctl unmask nmbd
systemctl enable nmbd
systemctl restart nmbd

Егор Сураев

cpp:144 чето там при попытке администрирования из графики — означает, что ранее уже был получен билет администратора и необходимо сначала уничтожить предыдущий билет командой:

Далее получить новый уже из графики.

Дмитрий Анохов

Ошибка MIT Kerberos V5: Ошибка получения ключей принципала Kerberos ‘host/arm@DOMAIN’. В ALDKadm5Connection.cpp:1528(KeytabAddPrincipal) Principal does not exist.

Если на контроллере домена создаётся принципал с именем ‘host/arm@DOMAIN’, тогда выполните на клиенте ald-client update-svc-keytab ‘host/arm@DOMAIN’.

Марина Яловега

При возникновении ошибки 111 ( Смоленск 1.5):

Решение от клиента

  1. Добавить в конфигурационный файл /etc/ald/ald.conf параметр USE_RPC, равный нулю

2. Выполнить ald-init restart

Константин Ковалевский

При создании резервного сервера командой sudo ald-init init —slave выходит ошибка:

Источник

‘Ald-rpc не найден’ на Astra Linux 1.6

Irbis88

New member

;source /etc/network/interfaces.d/*
auto lo
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet static
address 192.168.73.74
netmask 255.255.255.0
gateway 192.168.73.1
dns-domain test.ru
dns-nameservers 192.168.73.1​

source /etc/network/interfaces.d/*
auto lo
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet static
address 192.168.73.73
netmask 255.255.255.0
gateway 192.168.73.1
dns-domain test.ru
dns-nameservers 192.168.73.1​

CrashBldash

New member

Irbis88

New member

Мною найдена иная информация:

Host-only/VMnet1. Второго рода сеть соединяет гостевую виртуальную машину и хостовый компьютер, образуя частную сеть. Данное подключение обеспечивает сетевое соединение между виртуальной машиной и физическим компьютером (хостом), используя виртуальный сетевой адаптер доступный операционной системе хоста.
При этом типе подключения, виртуальная машина не имеет доступ к локальной сети и Интернету. Поскольку виртуальные машины не имеют доступа к физической сети, VMware Workstation предусматривает использование DHCP службы для назначения TCPIP параметров виртуальным машинам. Для host-only виртуальной сети используется определенная подсеть, в нашем случае это 192.168.52.0-254, где виртуальный адаптер на физическом компьютере имеет IP адрес 192.168.52.1, а все гостевые виртуальные машины использующие host-only подключение получают адреса от VMware DHCP server.
Виртуальные машины использующие host-only сеть могут взаимодействовать между собой в этой сети.

Источник

Установка 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. Актуализация репозиториев:

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

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

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

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

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

Настройка BIND

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. Устанавливаем основной пакет ALD сервера и графический интерфейс администрирования Fly:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Добрый день!
Вход в домен приходиться выполнять каждый раз (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.

Источник

Время прочтения
7 мин

Просмотры 104K

В продолжение давней темы про использование двухфакторной аутентификации в ОС GNU/Linux позвольте рассказать про схему работы и настройку аутентификации с помощью Kerberos. В этой статье мы рассмотрим процесс настройки MIT Kerberos для аутентификации пользователей по сертификатам и ключевым парам, находящимся на USB-токене. Также материалы, изложенные в статье, можно использовать для настройки аутентификации в домене Windows.

Краткое введение

Для начала проведем небольшой ликбез по терминологии Kerberos и рассмотрим доступные реализации этого протокола в ОС на базе GNU/Linux. Сразу оговорюсь, что мне не удалось найти однозначного перевода терминов, использующихся в Kerberos, поэтому для избежания путаницы основные термины я буду дублировать на английском.
Итак, начнем. Если процитировать Википедию, то

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

Стоит отметить, что Kerberos в первую очередь является протоколом, а не конкретной системой аутентификации. Его реализации используются в различных операционных системах, в том числе и в Windows, как метод аутентификации пользователей в домене. Существует несколько open source реализаций протокола Kerberos, например оригинальная MIT Kerberos и Heimdal. Такой зоопарк возник из-за ограничений США на экспорт криптографических средств защиты информации, на сегодня эта ситуация вокруг MIT Kerberos уже улеглась. В статье мы рассмотрим процесс настройки для MIT Kerberos V5.

  • Билет (ticket) – временные данные, выдаваемые клиенту для аутентификации на сервере, на котором располагается необходимая служба.
  • Клиент (client) – некая сущность в сети (пользователь, хост или сервис), которая может получить билет от Kerberos.
  • Центр выдачи ключей (key distribution center, KDC) – сервис, выдающий билеты Kerberos.
  • Область (realm) – сеть, используемая Kerberos, состоящая из серверов KDC и множества клиентов. Имя realm регистрозависимо, обычно пишется в верхнем регистре и совпадает с именем домена.
  • Принципал (principal) – уникальное имя для клиента, для которого разрешается аутентификация в Kerberos. Записывается в виде root[/instance]@REALM.

Файлы настроек Kerberos

На сервере:
  • /etc/krb5kdc/kdc.conf — настройки KDC
На клиенте и сервере:
  • /etc/kbr5.conf — настройки сервера аутентификации (описание realms, доменных имен и других настроек)

Настройка рабочего окружения

Для начала необходимо развернуть среду, в которой будет производиться аутентификация. Наиболее просто это сделать, взяв две виртуальные машины, находящиеся в одной подсети. Достаточно установить на одну виртуальную машину какую-нибудь Ubuntu (это будет наш сервер), а затем клонировать ее и получить клиента. При написании статьи я воспользовался свежей Ubuntu 12.10 (x86) и виртуальной машиной от VMWare. Чтобы виртуальным машинам было удобнее видеть друг друга по сети, стоит переключить сетевые карты в Bridged-режим.
Важно! Следите за тем, чтобы время на клиенте и сервере было синхронизировано, это необходимо для корректной работы Kerberos.

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

Клиенты Kerberos ищут свои сервера по доменным именам, поэтому необходимо настроить DNS и убедиться, что имена серверов успешно разрешаются. В нашем примере достаточно занести доменное имя сервера в /etc/hosts, что я и сделал. Схема «сети» изображена ниже.

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

На сервере нам потребуются:
  • krb5-kdc – сервис KDC
  • krb5-admin-server – административный сервер Kerberos (он ведет контроль учетных записей пользователей)
  • krb5-pkinit – модуль расширения Kerberos для аутентификации по сертификатам
На клиент надо поставить следующие пакеты:
  • krb5-user – базовый набор утилит для работы клиентской аутентификации
  • krb5-config – файлы настроек Kerberos
  • krb5-pkinit
  • libpam-krb5 – модуль PAM для использования Kerberos-аутентификации
  • pcscd, opensc, libengine-pkcs11-openssl – пакеты, необходимые для работы с токенами

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

  • Default realm: AKTIV-TEST.RU
  • Имена серверов (admin server и KDC): aktiv-test.ru (он же прописан в /etc/hosts на клиенте)
  • Пользователь: testuser@AKTIV-TEST.RU

Настройка Kerberos

Базовые настройки

После установки пакетов на сервере нужно инициализировать realm командой

$ sudo krb5_newrealm

А на клиенте – обновить файлы конфигурации:

$ sudo dpkg-reconfigure krb5-config

Также на клиенте и сервере надо добавить следующие строки в /etc/krb5.conf:

[domain_realm]
.aktiv-test.ru = AKTIV-TEST.RU
aktiv-test.ru = AKTIV-TEST.RU

Теперь создадим на сервере нового пользователя c именем testuser

$ sudo kadmin.local
# username = testuser
# password = test
# добавляем нового пользователя и устанавливаем его пароль
kadmin.local:$ addprinc testuser
# ...
kadmin.local:$ quit

На клиенте теперь можно проверить, правильно ли мы настроили сеть и Kerberos:

$ kinit testuser@AKTIV-TEST.RU
# вводим пароль пользователя
$ klist
# и видим выданный ticket, после чего его можно удалить следующей командой
$ kdestroy

Настройка аутентификации по открытому ключу

Для работы модуля pkinit нам придется воспользоваться openssl в качестве мини-УЦ, чтобы создать ключевые пары и сертификаты клиента и сервера.

На сервере:

Создадим ключевую пару и сертификат нашего «УЦ». Здесь мы сгененируем ключ УЦ и создадим самоподписанный сертификат с помощью openssl. В реальном мире ключ естественно надо надежно защитить от попадания в чужие руки.

$ openssl genrsa -out cakey.pem 2048 
# ...
$ openssl req -key cakey.pem -new -x509 -out cacert.pem
# ...

Создадим ключевую пару для KDC, заявку на сертификат и выпишем его сами себе.
Здесь нам потребуется специальный файл расширений OpenSSL (pkinit_extensions), в котором будут указаны дополнительные поля сертификатов, используемых в Kerberos. В частности, мы зададим:

  • Extended Key Usage (EKU) – идентификатор (OID), говорящий о том, как планируется использовать сертификат
  • otherName – поле, задающее нашего принципала, для которого выписывается сертификат
$ openssl genrsa -out kdckey.pem 2048 
# создание запроса
$ openssl req -new -out kdc.req -key kdckey.pem
# подпись запроса
$ REALM=AKTIV-TEST.RU; export REALM
$ CLIENT=aktiv-test.ru; export CLIENT
# содержимое файла pkinit_extensions см. по ссылке выше
$ openssl x509 -req -in kdc.req -CAkey cakey.pem -CA cacert.pem -out kdc.pem -extfile pkinit_extensions -extensions kdc_cert –CAcreateserial

После этого перенесем следующие файлы в /var/lib/krb5kdc/:

  • kdc.pem
  • kdckey.pem
  • cacert.pem

На сервере отредактируем настройки Kerberos (файл /etc/krb5kdc/kdc.conf) для использования ключей и сертификатов сервера и УЦ:

[kdcdefaults]
    kdc_tcp_ports = 88
    pkinit_identity = FILE:/var/lib/krb5kdc/kdc.pem,/var/lib/krb5kdc/kdckey.pem
    pkinit_anchors = FILE:/var/lib/krb5kdc/cacert.pem
[realms]
    AKTIV-TEST.RU = {
        database_name = /var/lib/krb5kdc/principal
        admin_keytab = FILE:/etc/krb5kdc/kadm5.keytab
        acl_file = /etc/krb5kdc/kadm5.acl
        key_stash_file = /etc/krb5kdc/stash
        max_life = 10h 0m 0s
        max_renewable_life = 7d 0h 0m 0s
        master_key_type = des3-hmac-sha1
        supported_enctypes = aes256-cts:normal arcfour-hmac:normal des3-hmac-sha1:normal des-cbc-crc:normal des:normal des:v4 des:norealm des:onlyrealm des:afs3
        default_principal_flags = +preauth
    }

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

$ kadmin.local
kadmin.local$: modprinc +requires_preauth testuser
Дальнейшие действия будем выполнять на клиенте

Отформатируем токен

$ pkcs15-init --erase-card -p rutoken_ecp
$ pkcs15-init --create-pkcs15 --so-pin "87654321" --so-puk ""
$ pkcs15-init --store-pin --label "User PIN" --auth-id 02 --pin "12345678" --puk "" --so-pin "87654321" –finalize

Сгенерируем на токене ключевую пару RSA 2048 бит и создадим заявку на сертификат. Важно заметить, что пути до библиотек engine_pkcs11.so и opensc-pkcs11.so на вашей системе могут отличатся, поэтому сначала стоит проверить их расположение.

# на данном шаге важно запомнить ID ключевой пары, его мы используем позже
$ pkcs15-init -G rsa/2048 --auth-id 02 --id 42 --label "testuser's key" --public-key-label "testuser's public key"
# ...
$ openssl
# на multiarch-системах opensc-pkcs11.so и engine_pkcs11.so могут лежать в других местах
OpenSSL> engine dynamic -pre SO_PATH:/usr/lib/openssl/engines/engine_pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1 -pre LOAD -pre MODULE_PATH:opensc-pkcs11.so
(dynamic) Dynamic engine loading support
[Success]: SO_PATH:/usr/lib/openssl/engines/engine_pkcs11.so
[Success]: ID:pkcs11
[Success]: LIST_ADD:1
[Success]: LOAD
[Success]: MODULE_PATH:opensc-pkcs11.so
Loaded: (pkcs11) pkcs11 engine
OpenSSL> req -engine pkcs11 -new -key 1:42 -keyform engine -out client.req -subj "/C=RU/ST=Moscow/L=Moscow/O=Aktiv/OU=dev/CN=testuser/emailAddress=testuser@mail.com"
engine "pkcs11" set.
PKCS#11 token PIN: 
OpenSSL> quit

После этого мы получим файл-заявку client.req, которую необходимо поместить на сервер и выписать сертификат пользователя на основе данных УЦ:

$ REALM=AKTIV-TEST.RU; export REALM
$ CLIENT=testuser; export CLIENT
$ openssl x509 -CAkey cakey.pem -CA cacert.pem -req -in client.req -extensions client_cert -extfile pkinit_extensions -out client.pem

Затем стоит перезапустить сервер и KDC:

$ /etc/init.d/krb5-admin-server restart
$ /etc/init.d/krb5-kdc restart

На выходе работы openssl мы получим файл с сертификатом клиента client.pem. Его нужно перенести на клиентскую машину, положить в /etc/krb5/ и записать на токен:

$ pkcs15-init --store-certificate client.pem --auth-id 02 --id 42 --format pem

И в завершение нам потребуется внести в файл конфигурации Kerberos настройку, которая укажет, какие данные использовать для аутентификации (в нашем случае это сертификат УЦ и путь до модуля PKCS#11). В документации MIT Kerberos указаны различные параметры, которые позволяют настроить выбор аутентификационных данных на токене, в нашем же случае мы просто указываем модуль PKCS#11, поскольку в данной ситуации этого достаточно.

[libdefaults]
    default_realm = AKTIV-TEST.RU
# путь к сертификату УЦ
    pkinit_anchors = FILE:/etc/krb5/cacert.pem
# путь к модулю PKCS#11
    pkinit_identities = PKCS11:/usr/lib/opensc-pkcs11.so

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

$ kinit testuser
# на этом этапе у нас должны спросить PIN-код от токена
$ klist	

Настройка PAM-аутентификации с использованием Kerberos

Ранее при настройке клиентской машины мы поставили пакет libpam-krb5. Он поможет нам выполнить аутентификацию в Kerberos при входе в систему, а также в приложениях, использующих системную аутентификацию (например login, lightdm и проч.). Для подключения модуля PAM достаточно выполнить команду

$ sudo pam-auth-update

и выбрать в диалоге необходимые модули аутентификации. Для более тонкой настройки можно заглянуть в файл /etc/pam.d/common-auth и отредактировать его по желанию. Структуру файла я описывал в предыдущей статье.

Заключение

Применение протокола Kerberos для централизованной аутентификации в связке с централизованным созданием хранением и раздачей учетных записей (например, посредством каталога на базе OpenLDAP) позволяет создать «домен UNIX», полностью состоящий из машин под управлением свободного программного обеспечения. Такое решение может применяться в корпоративном секторе, а аутентификация по смарт-картам будет приятным бонусом как для администраторов, так и для пользователей сети компании.

Полезные ссылки

  • Описание протокола Kerberos
  • Официальная документация
  • Инструкция по настройке от сообщества Ubuntu
  • Настройка PKINIT

I’m having trouble authenticating over AD to windows machines from my ansible host. I have a valid kerberos ticket —

klist
Credentials cache: FILE:/tmp/krb5cc_1000
        Principal: ansible@SOMEDOMAIN.LOCAL

  Issued                Expires               Principal
Mar 10 09:15:27 2017  Mar 10 19:15:24 2017  krbtgt/SOMEDOMAIN.LOCAL@SOMEDOMAIN.LOCAL

My kerberos config looks fine to me —

cat /etc/krb5.conf
[libdefaults]
        default_realm = SOMEDOMAIN.LOCAL
#       dns_lookup_realm = true
#       dns_lookup_kdc = true
#       ticket_lifetime = 24h
#       renew_lifetime = 7d
#       forwardable = true

# The following krb5.conf variables are only for MIT Kerberos.
#       kdc_timesync = 1
#       forwardable = true
#       proxiable = true

# The following encryption type specification will be used by MIT Kerberos
# if uncommented.  In general, the defaults in the MIT Kerberos code are
# correct and overriding these specifications only serves to disable new
# encryption types as they are added, creating interoperability problems.
#
# Thie only time when you might need to uncomment these lines and change
# the enctypes is if you have local software that will break on ticket
# caches containing ticket encryption types it doesn't know about (such as
# old versions of Sun Java).

#       default_tgs_enctypes = des3-hmac-sha1
#       default_tkt_enctypes = des3-hmac-sha1
#       permitted_enctypes = des3-hmac-sha1

# The following libdefaults parameters are only for Heimdal Kerberos.
#       v4_instance_resolve = false
#       v4_name_convert = {
#               host = {
#                       rcmd = host
#                       ftp = ftp
#               }
#               plain = {
#                       something = something-else
#               }
#       }
#       fcc-mit-ticketflags = true

[realms]
        SOMEDOMAIN.LOCAL = {
                kdc = prosperitydc1.somedomain.local
                kdc = prosperitydc2.somedomain.local
                default_domain = somedomain.local
                admin_server = somedomain.local
        }
[domain_realm]
        .somedomain.local = SOMEDOMAIN.LOCAL
        somedomain.local = SOMEDOMAIN.LOCAL

When running a test command — ansible windows -m win_ping -vvvvv I get

'Server not found in Kerberos database'.
     ansible windows -m win_ping -vvvvv
    Using /etc/ansible/ansible.cfg as config file
    Loading callback plugin minimal of type stdout, v2.0 from /usr/lib/python2.7/dist-packages/ansible/plugins/callback/__init__.pyc
    Using module file /usr/lib/python2.7/dist-packages/ansible/modules/core/windows/win_ping.ps1
    <kerberostest.somedomain.local> ESTABLISH WINRM CONNECTION FOR USER: ansible@SOMEDOMAIN.LOCAL on PORT 5986 TO kerberostest.somedomain.local
    <kerberostest.somedomain.local> WINRM CONNECT: transport=kerberos endpoint=https://kerberostest.somedomain.local:5986/wsman
    <kerberostest.somedomain.local> WINRM CONNECTION ERROR: authGSSClientStep() failed: (('Unspecified GSS failure.  Minor code may provide more information', 851968), ('Server not found in Kerberos database', -1765328377))
    Traceback (most recent call last):
      File "/usr/lib/python2.7/dist-packages/ansible/plugins/connection/winrm.py", line 154, in _winrm_connect
        self.shell_id = protocol.open_shell(codepage=65001)  # UTF-8
      File "/home/prosperity/.local/lib/python2.7/site-packages/winrm/protocol.py", line 132, in open_shell
        res = self.send_message(xmltodict.unparse(req))
      File "/home/prosperity/.local/lib/python2.7/site-packages/winrm/protocol.py", line 207, in send_message
        return self.transport.send_message(message)
      File "/home/prosperity/.local/lib/python2.7/site-packages/winrm/transport.py", line 181, in send_message
        prepared_request = self.session.prepare_request(request)
      File "/home/prosperity/.local/lib/python2.7/site-packages/requests/sessions.py", line 407, in prepare_request
        hooks=merge_hooks(request.hooks, self.hooks),
      File "/home/prosperity/.local/lib/python2.7/site-packages/requests/models.py", line 306, in prepare
        self.prepare_auth(auth, url)
      File "/home/prosperity/.local/lib/python2.7/site-packages/requests/models.py", line 543, in prepare_auth
        r = auth(self)
      File "/home/prosperity/.local/lib/python2.7/site-packages/requests_kerberos/kerberos_.py", line 308, in __call__
        auth_header = self.generate_request_header(None, host, is_preemptive=True)
      File "/home/prosperity/.local/lib/python2.7/site-packages/requests_kerberos/kerberos_.py", line 148, in generate_request_header
        raise KerberosExchangeError("%s failed: %s" % (kerb_stage, str(error.args)))
    KerberosExchangeError: authGSSClientStep() failed: (('Unspecified GSS failure.  Minor code may provide more information', 851968), ('Server not found in Kerberos database', -1765328377))

    kerberostest.somedomain.local | UNREACHABLE! => {
        "changed": false,
        "msg": "kerberos: authGSSClientStep() failed: (('Unspecified GSS failure.  Minor code may provide more information', 851968), ('Server not found in Kerberos database', -1765328377))",
        "unreachable": true
    }

I am able to ssh to the target machine

 ssh -v1 kerberostest.somedomain.local -p 5986
OpenSSH_7.3p1 Ubuntu-1, OpenSSL 1.0.2g  1 Mar 2016
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to kerberostest.somedomain.local [10.10.20.84] port 5986.
debug1: Connection established.

I can also ping all hosts with their hostname. I’m at a loss :(

Here is the ansible host file-

sudo cat /etc/ansible/hosts               
# This is the default ansible 'hosts' file.
#
# It should live in /etc/ansible/hosts
#
#   - Comments begin with the '#' character
#   - Blank lines are ignored
#   - Groups of hosts are delimited by [header] elements
#   - You can enter hostnames or ip addresses
#   - A hostname/ip can be a member of multiple groups

# Ex 1: Ungrouped hosts, specify before any group headers.

## green.example.com
## blue.example.com
## 192.168.100.1
## 192.168.100.10

# Ex 2: A collection of hosts belonging to the 'webservers' group

## [webservers]
## alpha.example.org
## beta.example.org
## 192.168.1.100
## 192.168.1.110

# If you have multiple hosts following a pattern you can specify
# them like this:

## www[001:006].example.com

# Ex 3: A collection of database servers in the 'dbservers' group

## [dbservers]
## 
## db01.intranet.mydomain.net
## db02.intranet.mydomain.net
## 10.25.1.56
## 10.25.1.57

# Here's another example of host ranges, this time there are no
# leading 0s:

## db-[99:101]-node.example.com
[monitoring-servers]
#nagios
10.10.20.75 ansible_connection=ssh ansible_user=nagios

[windows]
#fileserver.somedomain.local#this machine isnt joined to the domain yet.
kerberostest.SOMEDOMAIN.LOCAL


[windows:vars]
#the following works for windows local account authentication
#ansible_ssh_user = prosperity
#ansible_ssh_pass = *********
#ansible_connection = winrm
#ansible_ssh_port = 5986
#ansible_winrm_server_cert_validation = ignore

#vars needed to authenticate on the windows domain using kerberos
ansible_user = ansible@SOMEDOMAIN.LOCAL
ansible_connection = winrm
ansible_winrm_scheme = https
ansible_winrm_transport = kerberos
ansible_winrm_server_cert_validation = ignore

I also tried connecting to the domain with realmd with success, but running the ansible command produced the same result.

  • Ошибка rpc ошибка krb5 сервера ald ошибка проверки сообщения krb priv
  • Ошибка rpc вызвана процессом исполняемого модуля rpc ошибка 1818 callcancelled
  • Ошибка rpc xiaomi что делать
  • Ошибка rpc s call failed 0x800706be
  • Ошибка rp13 на chess com