Ошибка krb5 клиента ald

— ОШИБКА:

Не удалось отправить широковещательное сообщение ‘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 не внесены данные о резервном сервере.

— ОШИБКА:

Не удалось отправить широковещательное сообщение ‘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.

Источник

В этом посте мы решили рассказать о доменной аутентификации в Linux, с использованием смарт-карт и USB-токенов JaCarta PKI в качестве второго фактора аутентификации. Если о локальной аутентификации через PAM-модуль информации существует довольно много, то вопрос доменной инфраструктуры и аутентификация по Kerberos-билетам в Linux рассмотрен слабо, особенно на русском языке. В качестве операционной системы возьмем Astra Linux и на примере Astra Linux Directory (ALD) это и покажем.

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

Немного вводных об Astra Linux Directory (ALD) и JaCarta PKI

Домен Astra Linux Directory (ALD) предназначен для организации единого пространства пользователей (домена локальной вычислительной сети) в автоматизированных системах.

ALD использует технологии LDAP, Kerberos5, Samba/CIFS и обеспечивает:

  • централизованное хранение и управление учетными записями пользователей и групп;
  • сквозную аутентификацию пользователей в домене с использованием протокола Kerberos5;
  • функционирование глобального хранилища домашних директорий, доступных по Samba/CIFS;
  • автоматическую настройку файлов конфигурации UNIX, LDAP, Kerberos, Samba, PAM;
  • поддержку соответствия БД LDAP и Kerberos;
  • создание резервных копий БД LDAP и Kerberos с возможностью восстановления;
  • интеграцию в домен входящих в дистрибутив СУБД, серверов электронной почты, Web-серверов, серверов печати и другие возможности.

JaCarta PKI — это линейка PKI-токенов для строгой аутентификации пользователей в корпоративных системах, безопасного хранения ключевых контейнеров программных СКЗИ и цифровых сертификатов российского производителя – компании «Аладдин Р.Д.».

В среде Astra Linux Directory (ALD) электронные ключи JaCarta PKI могут использоваться для двухфакторной аутентификации пользователя в домене ALD и отказа от паролей. Кроме того, с этими же электронными ключами можно выполнять различные сценарии внутри ОС, после аутентификации, такие, как: электронная подпись, хранение ключевых контейнеров, доступ к Web-ресурсам, проброс ключа в сессии MS Windows. Доступ к VDI сервисам, таким, как VmWare или Citrix.

Процесс настройки

Пример демо-зоны

  • Сервер — Astra Linux Smolensk SE 1.5 4.2.0-23-generic, x86_64, с установленными пакетами:
    • JaCarta IDProtect 6.37;
    • libccid;
    • pcscd;
    • libpcsclite1;
    • krb5-pkinit;
    • libengine-pkcs11-openssl;
    • opensc.
  • Клиент — Astra Linux Smolensk SE 1.5 4.2.0-23-generic, x86_64, с установленными пакетами:
    • JaCarta IDProtect 6.37;
    • libccid;
    • pcscd;
    • libpcsclite1;
    • krb5-pkinit.

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

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

Для обеспечения работы со смарт-картой JaCarta PKI на клиенте и сервере установите следующие пакеты: libccid, pcscd, libpcsclite1. После установки этих обязательных пакетов установите пакет драйверов IDProtectClient, который можно загрузить с официального сайта «Аладдин Р.Д.».

Для обеспечения работы со смарт-картой подсистемы Kerberos добавочно к предустановленным пакетам ald/kerberos установите пакет krb5-pkinit на клиенте и сервере.

Для обеспечения возможности выпуска ключей и сертификатов на JaCarta PKI на сервере также установите пакеты libengine-pkcs11-openssl и opensc.

Установка и настройка центра сертификации на сервере

В качестве центра сертификации (CA) будет использован OpenSSL.

OpenSSL — криптографический пакет с открытым исходным кодом для работы с SSL/TLS. Позволяет создавать ключи RSA, DH, DSA и сертификаты X.509, подписывать их, формировать CSR и CRT.

Все настройки в руководстве выполняются для тестового домена EXAMPLE.RU. Примем, что сервер и клиент принадлежат домену EXAMPLE.RU, имя сервера – kdc, а клиента – client. При настройке используйте имя вашего домена, сервера и клиента. Выполните следующие действия.

  1. Создайте каталог CA командой mkdir /etc/ssl/CA и перейдите в него. В этом каталоге будут размещаться сгенерированные ключи и сертификаты.
  2. Создайте ключ и сертификат CA:
    $ openssl genrsa -out cakey.pem 2048
    $ openssl req -key cakey.pem -new -x509 –days 365 -out cacert.pem
    В диалоге заполните необходимую информацию о вашем центре сертификации. В Common name указать EXAMPLE.RU.
  3. Создайте ключ и сертификат KDC:
    $ openssl genrsa -out kdckey.pem 2048
    $ openssl req -new -out kdc.req -key kdckey.pem
    В диалоге заполните необходимую информацию о вашем сервере. В Common name указать kdc.
  4. Установите переменные среды. Переменные среды устанавливаются в рамках сессии и не устанавливаются для других сессий и не сохраняются после закрытия сессии.
    export REALM=EXAMPLE.RU — Ваш домен
    export CLIENT=kdc — Вашего сервер
  5. Загрузите файл pkinit_extensions — http://dms.aladdin-rd.ru/970c5538-afbf-4a26-a7ef-d76550cbc435

Содержимое файла pkinit_extensions (его следует положить в тот каталог, откуда вы выполняете команды):

 [ kdc_cert ]
basicConstraints=CA:FALSE
 
# Here are some examples of the usage of nsCertType. If it is omitted
keyUsage = nonRepudiation, digitalSignature, keyEncipherment, keyAgreement
 
#Pkinit EKU
extendedKeyUsage = 1.3.6.1.5.2.3.5
 
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid,issuer
 
# Copy subject details
 
issuerAltName=issuer:copy
 
# Add id-pkinit-san (pkinit subjectAlternativeName)
subjectAltName=otherName:1.3.6.1.5.2.2;SEQUENCE:kdc_princ_name
 
[kdc_princ_name]
realm = EXP:0, GeneralString:${ENV::REALM}
principal_name = EXP:1, SEQUENCE:kdc_principal_seq
 
[kdc_principal_seq]
name_type = EXP:0, INTEGER:1
name_string = EXP:1, SEQUENCE:kdc_principals
 
[kdc_principals]
princ1 = GeneralString:krbtgt
princ2 = GeneralString:${ENV::REALM}
 
[ client_cert ]
 
# These extensions are added when 'ca' signs a request.
 
basicConstraints=CA:FALSE
 
keyUsage = digitalSignature, keyEncipherment, keyAgreement
 
extendedKeyUsage =  1.3.6.1.5.2.3.4
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid,issuer
 
 
subjectAltName=otherName:1.3.6.1.5.2.2;SEQUENCE:princ_name
 
 
# Copy subject details
 
issuerAltName=issuer:copy
 
[princ_name]
realm = EXP:0, GeneralString:${ENV::REALM}
principal_name = EXP:1, SEQUENCE:principal_seq
 
[principal_seq]
name_type = EXP:0, INTEGER:1
name_string = EXP:1, SEQUENCE:principals
 
[principals]
princ1 = GeneralString:${ENV::CLIENT} 
  1. Выпустите сертификат KDC:
    $ openssl x509 -req -in kdc.req -CAkey cakey.pem -CA cacert.pem -out kdc.pem -extfile pkinit_extensions -extensions kdc_cert –CAcreateserial –days 365
  2. Файлы kdc.pem, kdckey.pem, cacert.pem перенесите в /var/lib/krb5kdc/
  3. Создайте резервную копию файла /etc/krb5kdc/kdc.conf. Отредактируйте /etc/krb5kdc/kdc.conf, дополнив секцию [kdcdefaults] следующими записями:
    pkinit_identity = FILE:/var/lib/krb5kdc/kdc.pem,/var/lib/krb5kdc/kdckey.pem
    pkinit_anchors = FILE:/var/lib/krb5kdc/cacert.pem
    Первая запись задает ключи и сертификат сервера, а вторая указывает на корневой сертификат центра сертификации.
  4. Для принятия изменений выполните:
    /etc/init.d/krb5-admin-server restart
    /etc/init.d/krb5-kdc restart

Подготовка смарт-карты. Выпуск ключей и сертификата пользователя

Убедитесь в том, что установлены пакеты libengine-pkcs11-openssl и opensc. Подключите устройство, которое следует подготовить.

Проинициализируйте устройство, установите PIN-код пользователя. Помните, что инициализация устройства удалит все данные на JaCarta PKI без возможности восстановления.

Для инициализации необходимо воспользоваться утилитой pkcs11-tool.

pkcs11-tool —slot 0 —init-token —so-pin 00000000 —label ‘JaCarta PKI’ —module /lib64/libASEP11.so,

где:

—slot 0 — указывает, в какой виртуальный слот подключено устройство. Как правило, это слот 0, но могут быть и другие значения – 1,2 и т.д.;

—init-token – команда инициализации токена;

—so-pin 00000000 – PIN-код администратора JaCarta PKI. По умолчанию имеет значение 00000000;

—label ‘JaCarta PKI’ – метка устройства;

—module /lib64/libASEP11.so — указывает путь до библиотеки libASEP11.so. Устанавливается в рамках пакета idprotectclient см. раздел «Установка драйверов на сервер и клиент».

Для задания PIN-кода пользователя используйте команду:

pkcs11-tool —slot 0 —init-pin —so-pin 00000000 —login —pin 11111111 —module /lib64/libASEP11.so,

где:

—slot 0 — указывает, в какой виртуальный слот подключено устройство. Как правило, это слот 0, но могут быть и другие значения – 1,2 и т.д.;

—init-pin – команда установки PIN-кода пользователя;

—so-pin 00000000 – PIN-код администратора JaCarta PKI. По умолчанию имеет значение 00000000;

—login – команда логина;

—pin 11111111 – задаваемый PIN-код пользователя;

—module /lib64/libASEP11.so — указывает путь до библиотеки libASEP11.so. Устанавливается в рамках пакета idprotectclient см. раздел «Установка драйверов на сервер и клиент».

Сгенерируйте ключи на устройстве, для этого введите следующую команду:

pkcs11-tool —slot 0 —login —pin 11111111 —keypairgen —key-type rsa:2048 —id 42 —label “test1 key” —module /lib64/libASEP11.so,

где:

—slot 0 — указывает, в какой виртуальный слот подключено устройство. Как правило, это слот 0, но могут быть и другие значения – 1,2 и т.д.;

—login —pin 11111111 — указывает, что следует произвести логин под пользователем с PIN-кодом «11111111». Если у Вашей карты другой PIN-код пользователя, укажите его;

—keypairgen —key-type rsa:2048 — указывает, что должны быть сгенерированы ключи длиной 2048 бит;

—id 42 — устанавливает атрибут CKA_ID ключа. CKA_ID может быть любым;

Запомните это значение! Оно необходимо для дальнейших шагов подготовки устройства к работе.

—label “test1 key” — устанавливает атрибут CKA_LABEL ключа. Атрибут может быть любым;

—module /lib64/libASEP11.so — указывает путь до библиотеки libASEP11.so. Устанавливается в рамках пакета idprotectclient см. раздел «Установка драйверов на сервер и клиент».

Сгенерируйте запрос на сертификат с помощью утилиты openssl. Для этого введите следующие команды:

#openssl
OpenSSL> engine dynamic -pre SO_PATH:/usr/lib/ssl/engines/engine_pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1 -pre LOAD -pre MODULE_PATH:/lib64/libASEP11.so
OpenSSL> req -engine pkcs11 -new -key 0:42 -keyform engine -out client.req -subj "/C=RU/ST=Moscow/L=Moscow/O=Aladdin/OU=dev/CN=test1 (!Ваш_Пользователь!)/emailAddress=test1@mail.com"
OpenSSL>quit. 

Обратите внимание на -new -key 0:42, где 0 — номер виртуального слота с устройством, 42 — атрибут CKA_ID сгенерированных раннее ключей.

Информацию, которую необходимо указать в запросе, следует задавать в поле «/C=RU/ST=Moscow/L=Moscow/O=Aladdin/OU=dev/CN=test1 (! Ваш_Пользователь!)/emailAddress=test1@mail.com».

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

$ export REALM=EXAMPLE.RU #Ваш домен
$ export CLIENT=test1 #Ваш пользователь

и выпустить сертификат на пользователя.

$ openssl x509 -CAkey cakey.pem -CA cacert.pem -req -in client.req -extensions client_cert -extfile pkinit_extensions -out client.pem –days 365

Далее перекодируйте полученный сертификат из PEM в DER.

# openssl x509 -in client.pem -out client.cer -inform PEM -outform DER

Запишите полученный сертификат на токен.

pkcs11-tool —slot 0 —login —pin 11111111 —write-object client.cer —type ‘cert’ —label ‘Certificate’ —id 42 —module /lib/libASEP11.so,

где:

—slot 0 — указывает, в какой виртуальный слот подключено устройство. Как правило, это слот 0, но могут быть и другие значения – 1,2 и т.д.;

—login —pin 11111111 — указывает, что следует произвести логин под пользователем с PIN-кодом «11111111». Если у Вашей карты другой PIN-код пользователя, укажите его;

—write-object ./client.cer — указывает, что необходимо записать объект и путь до него;

—type ‘cert’ — указывает, что тип записываемого объекта – сертификат;

‘cert’ —label ‘Certificate’ — устанавливает атрибут CKA_LABEL сертификата. Атрибут может быть любым;

id 42 — устанавливает атрибут CKA_ID сертификата. Должен быть указан тот же CKA_ID, что и для ключей;

module /lib64/libASEP11.so — указывает путь до библиотеки libASEP11.so.

Настройка клиента. Проверка работоспособности

Создайте на клиенте каталог /etc/krb5/. Скопируйте в /etc/krb5/ сертификат CA (cacert.pem) c сервера.

Настройте kerberos в /etc/krb5.conf. Секцию [libdefaults] дополните следующими строками.

 [libdefaults]
default_realm = EXAMPLE.RU
pkinit_anchors = FILE:/etc/krb5/cacert.pem
# для аутентификации по токену
pkinit_identities = PKCS11:/lib64/libASEP11.so

Выполните проверку:

kinit Когда появится строка запроса PIN-кода к карте, введите его.

Для проверки того, что kerberos-тикет был успешно получен для пользователя, введите команду klist. Для удаления тикета — kdestroy.

Для входа в домен по смарт-карте на экране входа в ОС вместо пароля введите PIN-код от смарт-карты.

На этом настройка окончена. Да, к сожалению, система сама не поменяет и не подстроит login окно под смарт-карту, и оно будет стандартным, но если приложить немного секретных усилий, можно добиться красивого результата.

Содержание

  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 и к файлу таблицы ключей:

Источник

Содержание

  1. Failed to start kerberos 5 key distribution center astra linux
  2. Host Names
  3. Наличие соединения
  4. Синхронизация времени
  5. Брандмауэры
  6. Проверка модели устройства
  7. Операционные системы Astra Linux
  8. Операционные системы Astra Linux
  9. Failed to start kerberos 5 key distribution center astra linux
  10. Apache. Аутентификация Kerberos

Failed to start kerberos 5 key distribution center astra linux

Выбор хорошего имени для 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.

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

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

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

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

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

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

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

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

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

Брандмауэры

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

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

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

lsusb

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

Источник

Операционные системы Astra Linux

Оперативные обновления и методические указания

Операционные системы Astra Linux предназначены для применения в составе информационных (автоматизированных) систем в целях обработки и защиты 1) информации любой категории доступа 2) : общедоступной информации, а также информации, доступ к которой ограничен федеральными законами (информации ограниченного доступа).

1) от несанкционированного доступа;
2) в соответствии с Федеральным законом от 27.07.2006 № 149-ФЗ «Об информации, информационных технологиях и о защите информации» (статья 5, пункт 2).

Операционные системы Astra Linux Common Edition и Astra Linux Special Edition разработаны коллективом открытого акционерного общества «Научно-производственное объединение Русские базовые информационные технологии» и основаны на свободном программном обеспечении. С 17 декабря 2019 года правообладателем, разработчиком и производителем операционной системы специального назначения «Astra Linux Special Edition» является ООО «РусБИТех-Астра».

На web-сайтах https://astralinux.ru/ и https://wiki.astralinux.ru представлена подробная информация о разработанных операционных системах семейства Astra Linux, а также техническая документация для пользователей операционных систем и разработчиков программного обеспечения.

Мы будем признательны Вам за вопросы и предложения, которые позволят совершенствовать наши изделия в Ваших интересах и адаптировать их под решаемые Вами задачи!

Репозитория открытого доступа в сети Интернет для операционной системы Astra Linux Special Edition нет. Операционная система распространяется посредством DVD-дисков.

Информацию о сетевых репозиториях операционной системы Astra Linux Common Edition Вы можете получить в статье Подключение репозиториев с пакетами в ОС Astra Linux и установка пакетов.

В целях обеспечения соответствия сертифицированных операционных систем Astra Linux Special Edition требованиям, предъявляемым к безопасности информации, ООО «РусБИтех-Астра» осуществляет выпуск очередных и оперативных обновлений.

Очередные обновления (версии) предназначены для:

Оперативные обновления предназначены для оперативного устранения уязвимостей в экземплярах, находящихся в эксплуатации, и представляют собой бюллетень безопасности, который доступен в виде:

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

Источник

Операционные системы Astra Linux

Оперативные обновления и методические указания

Операционные системы Astra Linux предназначены для применения в составе информационных (автоматизированных) систем в целях обработки и защиты 1) информации любой категории доступа 2) : общедоступной информации, а также информации, доступ к которой ограничен федеральными законами (информации ограниченного доступа).

1) от несанкционированного доступа;
2) в соответствии с Федеральным законом от 27.07.2006 № 149-ФЗ «Об информации, информационных технологиях и о защите информации» (статья 5, пункт 2).

Операционные системы Astra Linux Common Edition и Astra Linux Special Edition разработаны коллективом открытого акционерного общества «Научно-производственное объединение Русские базовые информационные технологии» и основаны на свободном программном обеспечении. С 17 декабря 2019 года правообладателем, разработчиком и производителем операционной системы специального назначения «Astra Linux Special Edition» является ООО «РусБИТех-Астра».

На web-сайтах https://astralinux.ru/ и https://wiki.astralinux.ru представлена подробная информация о разработанных операционных системах семейства Astra Linux, а также техническая документация для пользователей операционных систем и разработчиков программного обеспечения.

Мы будем признательны Вам за вопросы и предложения, которые позволят совершенствовать наши изделия в Ваших интересах и адаптировать их под решаемые Вами задачи!

Репозитория открытого доступа в сети Интернет для операционной системы Astra Linux Special Edition нет. Операционная система распространяется посредством DVD-дисков.

Информацию о сетевых репозиториях операционной системы Astra Linux Common Edition Вы можете получить в статье Подключение репозиториев с пакетами в ОС Astra Linux и установка пакетов.

В целях обеспечения соответствия сертифицированных операционных систем Astra Linux Special Edition требованиям, предъявляемым к безопасности информации, ООО «РусБИтех-Астра» осуществляет выпуск очередных и оперативных обновлений.

Очередные обновления (версии) предназначены для:

Оперативные обновления предназначены для оперативного устранения уязвимостей в экземплярах, находящихся в эксплуатации, и представляют собой бюллетень безопасности, который доступен в виде:

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

Источник

Failed to start kerberos 5 key distribution center astra linux

russia

Junior Member Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Ситуация такая:

В компании есть сервак под инет на нем стоит win 2003 sp1, fierwall winrote kerio (Раздает инет). Авторизация пользователей доступа в инет через Active Directory который стоит на другом серваке.

Проблема: Слетела на инет серваке служба «The Kerberos Key Distribution Center» которая отвечает за авторизацию пользователей (грубо говоря).

Выходит следующая ошибка:
Could not start The Kerberos Key Distribution Center service on Local Computer. Error 0x80090339: The local mashine must be a Kerberos KDS (domain controller) and it is not.

Log ошибки:
Event Type: Error
Event Source: Service Control Manager
Event Category: None
Event ID: 7023
Date: 07.05.07
Time: 14:31:26
User: N/A
Computer: NETSERVER
Description:
The Kerberos Key Distribution Center service terminated with the following error:
The local machine must be a Kerberos KDC (domain controller) and it is not.

Господа помогите пожалуйста. Уже какую неделю ищу в инете по этой проблеме инфу, но натыкаюсь только на всякую мелоч, но не на решение проблемы. Всего записей: 76 | Зарегистр. 22-12-2006 | Отправлено: 15:08 07-05-2007 | Исправлено: edgi, 15:18 07-05-2007

se111

se111

Цитата:

Проблема: Слетела на инет серваке служба «The Kerberos Key Distribution Center» которая отвечает за авторизацию пользователей (грубо говоря).

не могла она слететь если он не контроллер домена. ну не как не могла. т.к. просто напроста её там не было.

Всего записей: 782 | Зарегистр. 21-04-2005 | Отправлено: 20:18 10-05-2007

bga83

Проверка базы AD утилитой ntdsutil не выявила никакого криминала.

Источник

Apache. Аутентификация Kerberos

Как и обещал, давайте рассмотрим установку метода аутентификации Kerberos. (на примере Astra Linux)

apache authentication for the separate directory

1.Проверим состояние работы единого простраства пользователей командой :

2.Проверим разрешение имен в файле /etc/hosts ( полное имя)

Начнем с установки пакетов :

apt-get install libapache2-mod-auth-kerb

Отключим метод аутентификации PAM:

Активируем метод Kerberos:

Теперь отредактируем конфигурационной файл /etc/apache2/sites-available/,
приведя его к виду :

AuthType Kerberos
KrbAuthRealms REALM
KrbServiceName HTTP/web.itsecforu.ru
Krb5Keytab /etc/apache2/keytab
KrbMethodNegotiate on
KrbMethodK5Passwd off
require valid-user

Создадим в KDC принципал для нашего Web-сервера:

ald-admin service-add HTTP/web.itsecforu.ru

Добавим созданный принципал в группу mac:

ald-admin sgroup-svc-add HTTP/web.itsecforu.ru –sgroup=mac

Создадим файл ключа:
ald-client update-svc-keytab HTTP/web.itsecforu.ru
–ktfile=”/etc/apache2/keytab”

Назначим владельцем файла системного пользователя www-data:
chown www-data /etc/apache2/keytab

Разрешим чтение остальным:
chmod 644 /etc/apache2/keytab

service apache2 restart

Откром браузер (на примере Mazilla):

В строке состояния браузера впишем about:config.
На все опасности берем риски на себя, обещаем быть осторожными и тд.
В параметрах, выделенных на рисунке, указываем значения :

123

При успешной настройке мы увидим надпись “It works”

Источник

Adblock
detector

 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 г.

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

  • Ссылка

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

На Astra Linux 1.6 пытаюсь настроить вывод мандатных меток в браузер. При выключенном Astra Mode выдает дефолтную страницу Apache «it`s works!», при включенном index.html. Тоесть WSGI ни в какую работать не хочет, пробовала с разными скриптами.

Логи:
Apache

astra_mode - ap_invoke_handler: user name is not set, referer: http://aldserver.name.ru/
Authentication not configured

Kerberos:

NEEDED_PREAUTH: user@NAME.RU for krbtgt/NAME.RU@NAME.RU, Additional pre-authentication required 

Конфиг Apache:

<VirtualHost *:80>
        # имя web-сервера
        ServerName aldserver.name.ru 
 
        ServerAdmin webmaster@localhost
        # директория, в котором лежат скрипты приложения
        DocumentRoot /var/www/name.ru
 
        # указываем, какой скрипт запускать при обращении к aldserver.name.ru/
        WSGIScriptAlias / /var/www/name.ru/app.wsgi 
 
        # настройки для корректной авторизации через Kerberos
        <Directory /var/www/name.ru>
                AuthType Kerberos
                KrbAuthRealms REALM
                KrbServiceName HTTP/aldserver.name.ru
                Krb5Keytab /etc/apache2/keytab
                KrbMethodNegotiate on
                KrbMethodK5Passwd off
                KrbSaveCredentials on
                require valid-user
        </Directory>
         
        # для откладки
        LogLevel debug
 
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
 
</VirtualHost>

App.wsgi:

import sys
import subprocess
from os import getuid
sys.path.insert(0, 'var/www/name.ru')
 
def application(env, start_response):
        status = '200 OK'
        id = subprocess.check_output(['pdp-id'])
  
        output = "UID: " + str(getuid()) + "<br/><br/>" + id # возвращаем uid пользователя, заупустившего процесс и его мандатные атрибуты
        response_headers = [('Content-type', 'text/html'), ('Encoding', 'utf-8'), ('Content-Length', str(len(output)))]  # заголовки ответа
 
        start_response(status, response_headers)
 
        return [output]

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

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

$ lsusb

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

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

Введение

Pluggable Authentication Modules (PAM, подключаемые модули аутентификации) — это набор разделяемых библиотек, которые позволяют интегрировать различные низкоуровневые методы аутентификации в виде единого высокоуровневого API. Это позволяет предоставить единые механизмы для управления, встраивания прикладных программ в процесс аутентификации.

Общий порядок действий для настройки PAM следующий:

  1. Сгенерировать на токене ключевую пару RSA (проверено, что работает для длины ключа 2048 бит, с 1024 были проблемы)
  2. Если требуется сертификат, то с помощью OpenSSL или другого ПО сгенерировать сертификат и записать его на токен
  3. Записать открытый ключ или сертификат в необходимый каталог

В итоге выглядит это так:

Предварительная подготовка

Демонстрация работы проводится на Ubuntu 18.04. Описанная последовательность действий актуальна также для других версий Ubuntu и систем, основанных на Debian.

Для конфигурации модуля PAM необходимо установить пакеты:

  • pcscd
  • OpenSC
  • OpenSSL
  • libpam-p11
  • libengine-pkcs11-openssl

Sudo apt-get install pcscd opensc openssl libpam-p11 libengine-pkcs11-openssl

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

Общий порядок действий

Настройка pam_p11

До начала работы с токеном стоит настроить модуль pam_p11:

    Создать файл /usr/share/pam-configs/p11 со следующим содержанием:

    Name: Pam_p11
    Default: yes
    Priority: 800
    Auth-Type: Primary
    Auth: sufficient pam_p11_opensc.so /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so

    Если вы используете не Ubuntu 18.04, вам необходимо проверить местонахождение opensc-pkcs11.so. Он может находится, например, в

    /usr/lib/opensc-pkcs11.so. Если его найти не удается воспользуйтесь командой find

    Обновить конфигурацию PAM:

    Sudo pam-auth-update

  1. В появившемся диалоге необходимо удостовериться, что выбран pam_p11. Если вы хотите отключить аутентификацию по паролям, то можно отключить Unix authentication.

    Создание ключей на токене

  2. Подготовим токен.

    $ pkcs15-init -E
    $ 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

    В параметрах pin и so-pin можно указать желаемые пин-коды пользователя и администратора.

    Создаем ключевую пару RSA длины 2048 бит c ID «45» (id стоит запомнить, он понадобится при создании сертификата). Аутентификация на токене происходит под сущностью пользователя.

    $ pkcs15-init —generate-key rsa/2048 —auth-id 02 —id 45
    <вводим PIN пользователя>

    Проверим сгенерированный ключ:

    $ pkcs15-tool —list-keys
    Using reader with a card: Aktiv Rutoken ECP 00 00
    Private RSA Key
    Object Flags: , private, modifiable
    Usage: , sign
    Access Flags: , sensitive, alwaysSensitive, neverExtract, local
    ModLength: 2048
    Key ref: 1 (0x1)
    Native: yes
    Path: 3f001000100060020001
    Auth ID: 02
    ID: 45

    Создание сертификата и импорт его на токен

  3. Запускаем openssl

    Подгружаем модуль поддержки pkcs11:

    OpenSSL> engine dynamic -pre SO_PATH:/usr/lib/x86_64-linux-gnu/engines-1.1/pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1 -pre LOAD -pre MODULE_PATH:/usr/lib/x86_64-linux-gnu/opensc-pkcs11.so
    (dynamic) Dynamic engine loading support
    : SO_PATH:/usr/lib/x86_64-linux-gnu/engines-1.1/pkcs11.so
    : ID:pkcs11
    : LIST_ADD:1
    : LOAD
    : MODULE_PATH:/usr/lib/x86_64-linux-gnu/opensc-pkcs11.so
    Loaded: (pkcs11) pkcs11 engine
    OpenSSL>

    Если вы используете не Ubuntu 18.04, вам необходимо проверить местонахождение pkcs11.so. Он может располагаться, например, в /usr/lib/openssl/engines/ . Если его найти не удается воспользуйтесь командой find

    Создаем самоподписанный сертификат в PEM-формате:

    OpenSSL> req -engine pkcs11 -new -key 0:45 -keyform engine -x509 -out cert.pem -text

    Где 0:45 — это пара slot:id (который мы указывали в п.5). OpenSSL предложит ввести PIN-код и заполнить информацию о сертификате. Если у вас возникла ошибка, проверьте, не подключены ли другие USB-токены или считыватели смарт-карт к компьютеру.

    Проверяем созданный сертификат. В текущем каталоге должен создаться файл самоподписанного сертификата с именем cert.pem.
    Примечание: если при создании сертификата в OpenSSL убрать ключ -x509, то на выходе получим заявку на сертификат.

    Примечание

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

Н
едавно мы меняли пароль пользователя в Linux, когда столкнулись с ошибкой: Authentication Token Manipulation Error’.

Мы использовали обычную команду passwd, чтобы изменить пароль, и он выдал нам эту ошибку, и пароль не был изменен.

Sudo passwd my_user_name
Changing password for user my_user_name
Changing password for tecmint
(current) UNIX password:
passwd: Authentication token manipulation error
passwd: password unchanged

Исправление ошибки манипуляции токеном аутентификации в Ubuntu

«Authentication Token Manipulation Error’» означает, что по некоторым причинам смена пароля не удалась.

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

No password supplied
passwd: Authentication token manipulation error
passwd: password unchanged

Точно так же, если повторный ввод пароля не совпадает, он также покажет эту информацию:

Sorry, passwords do not match
passwd: Authentication token manipulation error
passwd: password unchanged

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

Давайте посмотрим на некоторые из этих случаев и исправим эту проблему.

Способ 1

Если вы знакомы со структурой каталогов Linux , вы знаете, что каталог/etc/shadow хранит пароль в зашифрованном формате вместе с другой информацией о пользователях и их паролях.

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

Если это не так, вы должны установить правильное разрешение:

Sudo chmod 640 /etc/shadow

Способ 2

Метод 1 будет работать в большинстве случаев. Но в нашем случае нам пришлось перемонтировать корневой раздел с правами на чтение и запись. Мы пытались сбросить пароль администратора в Ubuntu.

Mount -rw -o remount /

В некоторых редких случаях ваш диск может быть настолько заполнен, что вы не сможете внести какие-либо изменения в файл /etc/shadow. Но если это так, то вы столкнетесь и со многими другими проблемами.

Это сработало для вас?

Мы поделились тем, что сработало для нас, и мы можем только надеяться, что это сработало и для вас. Сделали это? Какой метод работал для вас? Упоминайте это в комментариях.

В этом посте мы решили рассказать о доменной аутентификации в Linux, с использованием смарт-карт и USB-токенов JaCarta PKI в качестве второго фактора аутентификации. Если о локальной аутентификации через PAM-модуль информации существует довольно много, то вопрос доменной инфраструктуры и аутентификация по Kerberos-билетам в Linux рассмотрен слабо, особенно на русском языке. В качестве операционной системы возьмём Astra Linux и на примере Astra Linux Directory (ALD) это и покажем.

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

Немного вводных об Astra Linux Directory (ALD) и JaCarta PKI

Домен Astra Linux Directory (ALD)
предназначен для организации единого пространства пользователей (домена локальной вычислительной сети) в автоматизированных системах.

ALD
использует технологии LDAP, Kerberos5, Samba/CIFS и обеспечивает:

  • централизованное хранение и управление учётными записями пользователей и групп;
  • сквозную аутентификацию пользователей в домене с использованием протокола Kerberos5;
  • функционирование глобального хранилища домашних директорий, доступных по Samba/CIFS;
  • автоматическую настройку файлов конфигурации UNIX, LDAP, Kerberos, Samba, PAM;
  • поддержку соответствия БД LDAP и Kerberos;
  • создание резервных копий БД LDAP и Kerberos с возможностью восстановления;
  • интеграцию в домен входящих в дистрибутив СУБД, серверов электронной почты, Web-серверов, серверов печати и другие возможности.

В среде Astra Linux Directory (ALD)
электронные ключи JaCarta PKI
могут использоваться для двухфакторной аутентификации пользователя в домене ALD
и отказа от паролей. Кроме того, с этими же электронными ключами можно выполнять различные сценарии внутри ОС, после аутентификации, такие, как: электронная подпись, хранение ключевых контейнеров, доступ к Web-ресурсам, проброс ключа в сессии MS Windows. Доступ к VDI сервисам, таким, как VmWare или Citrix.

Процесс настройки

Пример демо-зоны

  • Сервер — Astra Linux Smolensk

    • JaCarta IDProtect 6.37
      ;
    • libccid;
    • pcscd;
    • libpcsclite1;
    • krb5-pkinit;
    • libengine-pkcs11-openssl;
    • opensc.
  • Клиент — Astra Linux Smolensk
    SE 1.5 4.2.0-23-generic, x86_64, с установленными пакетами:

    • JaCarta IDProtect 6.37
      ;
    • libccid;
    • pcscd;
    • libpcsclite1;
    • krb5-pkinit.

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

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

Для обеспечения работы со смарт-картой JaCarta PKI
на клиенте и сервере установите следующие пакеты: libccid, pcscd, libpcsclite1
. После установки этих обязательных пакетов установите , который можно загрузить с официального сайта «Аладдин Р.Д.».

Для обеспечения работы со смарт-картой подсистемы Kerberos добавочно к предустановленным пакетам ald/kerberos
установите пакет krb5-pkinit
на клиенте и сервере.

Для обеспечения возможности выпуска ключей и сертификатов на JaCarta PKI
на сервере также установите пакеты libengine-pkcs11-openssl
и opensc
.

Установка и настройка центра сертификации на сервере

В качестве центра сертификации (CA)
будет использован OpenSSL
.

OpenSSL
— криптографический пакет с открытым исходным кодом для работы с SSL/TLS. Позволяет создавать ключи RSA, DH, DSA и сертификаты X.509, подписывать их, формировать CSR и CRT.

Все настройки в руководстве выполняются для тестового домена EXAMPLE.RU. Примем, что сервер и клиент принадлежат домену EXAMPLE.RU, имя сервера – kdc, а клиента – client. При настройке используйте имя вашего домена, сервера и клиента. Выполните следующие действия.

  1. Создайте каталог CA командой mkdir /etc/ssl/CA и перейдите в него. В этом каталоге будут размещаться сгенерированные ключи и сертификаты.
  2. Создайте ключ и сертификат CA:
    $ openssl genrsa -out cakey.pem 2048
    $ openssl req -key cakey.pem -new -x509 –days 365 -out cacert.pem
    В диалоге заполните необходимую информацию о вашем центре сертификации. В Common name указать EXAMPLE.RU.
  3. Создайте ключ и сертификат KDC:
    $ openssl genrsa -out kdckey.pem 2048
    $ openssl req -new -out kdc.req -key kdckey.pem
    В диалоге заполните необходимую информацию о вашем сервере. В Common name указать kdc.
  4. Установите переменные среды. Переменные среды устанавливаются в рамках сессии и не устанавливаются для других сессий и не сохраняются после закрытия сессии.
    export REALM=EXAMPLE.RU — Ваш домен
    export CLIENT=kdc — Вашего сервер
  5. Загрузите файл pkinit_extensions

Содержимое файла pkinit_extensions
(его следует положить в тот каталог, откуда вы выполняете команды):

[ kdc_cert ]
basicConstraints=CA:FALSE
# Here are some examples of the usage of nsCertType. If it is omitted
keyUsage = nonRepudiation, digitalSignature, keyEncipherment, keyAgreement
#Pkinit EKU
extendedKeyUsage = 1.3.6.1.5.2.3.5
subjectKeyIdentifier=hash

# Copy subject details
issuerAltName=issuer:copy
# Add id-pkinit-san (pkinit subjectAlternativeName)
subjectAltName=otherName:1.3.6.1.5.2.2;SEQUENCE:kdc_princ_name

principal_name = EXP:1, SEQUENCE:kdc_principal_seq
name_type = EXP:0, INTEGER:1
name_string = EXP:1, SEQUENCE:kdc_principals
princ1 = GeneralString:krbtgt
princ2 = GeneralString:${ENV::REALM}
[ client_cert ]
# These extensions are added when «ca» signs a request.
basicConstraints=CA:FALSE
keyUsage = digitalSignature, keyEncipherment, keyAgreement
extendedKeyUsage = 1.3.6.1.5.2.3.4
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid,issuer
subjectAltName=otherName:1.3.6.1.5.2.2;SEQUENCE:princ_name
# Copy subject details
issuerAltName=issuer:copy
realm = EXP:0, GeneralString:${ENV::REALM}
principal_name = EXP:1, SEQUENCE:principal_seq
name_type = EXP:0, INTEGER:1
name_string = EXP:1, SEQUENCE:principals
princ1 = GeneralString:${ENV::CLIENT}

  1. Выпустите сертификат KDC:
    $ openssl x509 -req -in kdc.req -CAkey cakey.pem -CA cacert.pem -out kdc.pem -extfile pkinit_extensions -extensions kdc_cert –CAcreateserial –days 365
  2. Файлы kdc.pem, kdckey.pem, cacert.pem
    перенесите в /var/lib/krb5kdc/
  3. Создайте резервную копию файла /etc/krb5kdc/kdc.conf. Отредактируйте /etc/krb5kdc/kdc.conf, дополнив секцию следующими записями:
    pkinit_identity = FILE:/var/lib/krb5kdc/kdc.pem,/var/lib/krb5kdc/kdckey.pem
    pkinit_anchors = FILE:/var/lib/krb5kdc/cacert.pem
    Первая запись задаёт ключи и сертификат сервера, а вторая указывает на корневой сертификат центра сертификации.
  4. Для принятия изменений выполните:
    /etc/init.d/krb5-admin-server restart
    /etc/init.d/krb5-kdc restart

Подготовка смарт-карты. Выпуск ключей и сертификата пользователя

Убедитесь в том, что установлены пакеты libengine-pkcs11-openssl
и opensc
. Подключите устройство, которое следует подготовить.

Проинициализируйте устройство, установите PIN-код пользователя. Помните, что инициализация устройства удалит все данные на JaCarta PKI без возможности восстановления.

Для инициализации необходимо воспользоваться утилитой pkcs11-tool
.

Pkcs11-tool —slot 0 —init-token —so-pin 00000000 —label «JaCarta PKI» —module /lib64/libASEP11.so,
—slot 0

—init-token
– команда инициализации токена;

—so-pin 00000000

—label «JaCarta PKI»
– метка устройства;

—module /lib64/libASEP11.so

Для задания PIN-кода пользователя используйте команду:/

Pkcs11-tool —slot 0 —init-pin —so-pin 00000000 —login —pin 11111111 —module /lib64/libASEP11.so,

—slot 0
— указывает, в какой виртуальный слот подключено устройство. Как правило, это слот 0, но могут быть и другие значения – 1,2 и т.д.;

—init-pin
– команда установки PIN-кода пользователя;

—so-pin 00000000
– PIN-код администратора JaCarta PKI. По умолчанию имеет значение 00000000;

—login
– команда логина;

—pin 11111111
– задаваемый PIN-код пользователя;

—module /lib64/libASEP11.so
— указывает путь до библиотеки libASEP11.so. Устанавливается в рамках пакета idprotectclient см. раздел «Установка драйверов на сервер и клиент».

Сгенерируйте ключи на устройстве, для этого введите следующую команду:

Pkcs11-tool —slot 0 —login —pin 11111111 —keypairgen —key-type rsa:2048 —id 42 —label “test1 key” —module /lib64/libASEP11.so,
—slot 0
— указывает, в какой виртуальный слот подключено устройство. Как правило, это слот 0, но могут быть и другие значения – 1,2 и т.д.;

—login —pin 11111111

—keypairgen —key-type rsa:2048
— указывает, что должны быть сгенерированы ключи длиной 2048 бит;

—id 42
— устанавливает атрибут CKA_ID ключа. CKA_ID может быть любым;

Запомните это значение! Оно необходимо для дальнейших шагов подготовки устройства к работе.

—label “test1 key”
— устанавливает атрибут CKA_LABEL ключа. Атрибут может быть любым;

—module /lib64/libASEP11.so
— указывает путь до библиотеки libASEP11.so. Устанавливается в рамках пакета idprotectclient см. раздел «Установка драйверов на сервер и клиент».

Сгенерируйте запрос на сертификат с помощью утилиты openssl. Для этого введите следующие команды:

#openssl
OpenSSL> engine dynamic -pre SO_PATH:/usr/lib/ssl/engines/engine_pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1 -pre LOAD -pre MODULE_PATH:/lib64/libASEP11.so
OpenSSL> req -engine pkcs11 -new -key 0:42 -keyform engine -out client.req -subj
«/C=RU/ST=Moscow/L=Moscow/O=Aladdin/OU=dev/CN=test1 (!Ваш_Пользователь!)/[email protected]»
OpenSSL>quit.
Обратите внимание на -new -key 0:42
, где 0
— номер виртуального слота с устройством, 42
— атрибут CKA_ID сгенерированных раннее ключей.
Информацию, которую необходимо указать в запросе, следует задавать в поле
«/C=RU/ST=Moscow/L=Moscow/O=Aladdin/OU=dev/CN=test1 (!Ваш_Пользователь!)/[email protected]».

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

$ export REALM=EXAMPLE.RU #Ваш домен
$ export CLIENT=test1 #Ваш пользователь
и выпустить сертификат на пользователя.

$ openssl x509 -CAkey cakey.pem -CA cacert.pem -req -in client.req -extensions client_cert -extfile pkinit_extensions -out client.pem –days 365

Далее перекодируйте полученный сертификат из PEM в DER.

# openssl x509 -in client.pem -out client.cer -inform PEM -outform DER

Запишите полученный сертификат на токен.

pkcs11-tool —slot 0 —login —pin 11111111 —write-object client.cer —type «cert» —label «Certificate» —id 42 —module /lib/libASEP11.so,

где:

—slot 0
— указывает, в какой виртуальный слот подключено устройство. Как правило, это слот 0, но могут быть и другие значения – 1,2 и т.д.;

—login —pin 11111111
— указывает, что следует произвести логин под пользователем с PIN-кодом «11111111». Если у Вашей карты другой PIN-код пользователя, укажите его;

—write-object ./client.cer
— указывает, что необходимо записать объект и путь до него;

—type «cert»
— указывает, что тип записываемого объекта – сертификат;

«cert» —label «Certificate»
— устанавливает атрибут CKA_LABEL сертификата. Атрибут может быть любым;

id 42
— устанавливает атрибут CKA_ID сертификата. Должен быть указан тот же CKA_ID, что и для ключей;

module /lib64/libASEP11.so
— указывает путь до библиотеки libASEP11.so.

Настройка клиента. Проверка работоспособности

Создайте на клиенте каталог /etc/krb5/
. Скопируйте в /etc/krb5/
сертификат CA (cacert.pem)
c сервера.

Настройте kerberos в /etc/krb5.conf. Секцию дополните следующими строками.

default_realm = EXAMPLE.RU
pkinit_anchors = FILE:/etc/krb5/cacert.pem
# для аутентификации по токену
pkinit_identities = PKCS11:/lib64/libASEP11.so
Выполните проверку:

kinit

Когда появится строка запроса PIN-кода к карте, введите его.

Для проверки того, что kerberos-тикет был успешно получен для пользователя, введите команду klist. Для удаления тикета — kdestroy.

Для входа в домен по смарт-карте на экране входа в ОС вместо пароля введите PIN-код от смарт-карты.

На этом настройка окончена. Да, к сожалению, система сама не поменяет и не подстроит login окно под смарт-карту, и оно будет стандартным, но если приложить немного секретных усилий, можно добиться красивого результата.

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

Linux позволяет настроить компьютер так, что войти в консоль, рабочий стол или через Secure Shell будет нельзя без кода двухфакторной аутентификации, привязанного к этой машине. Рассмотрим весь процесс настройки на системе Ubuntu Server 16.04.

Введение

Прежде чем начать, нужно учесть один факт — после настройки двухфакторной аутентификации вы не сможете получить доступ к вашему компьютеру без сгенерированных третьей стороной кодов. Каждый раз, когда вы захотите войти в систему, вам понадобится либо ваш смартфон, либо экстренные коды (emergency codes), которые можно настроить в процессе.

Нам понадобится сервер или десктоп Linux. Убедитесь, что система в актуальном состоянии, а ваши данные скопированы на случай непредвиденных обстоятельств. Для создания двухфакторных кодов будем использовать стороннее приложение, например, Authy или Google Authenticator. Условно будем пользоваться Google Authenticator, которое нужно предварительно установить.

Установка

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

  1. Откройте окно терминала.
  2. Выполните команду: sudo apt install libpam-google-authenticator
    .
  3. Введите пароль sudo и нажмите Enter.
  4. Если появится запрос на подтверждение, введите «y» и нажмите Enter.
  5. Дождитесь конца установки.

Теперь пришло время настроить компьютер на двухфакторную аутентификацию.

Конфигурация

Вернитесь в окно терминала и введите команду: sudo nano /etc/pam.d/common-auth
. Добавьте следующую строку в конец файла:

Сохраните и закройте этот файл.

Теперь мы должны настроить Google Authenticator для каждого пользователя, кто должен иметь доступ в систему. Для этого нужно вернуться в окно терминала и от лица пользователя, которому планируется предоставить доступ, запустить команду google-authenticator. Здесь придется ответить на пару вопросов.

Первый вопрос: «Хотите ли вы, чтобы токены аутентификации были основаны на времени (y/n)» («Do you want authentication tokens to be time-based (y/n)»). Ответьте «y», вам будет предоставлен QR-код. Откройте на своем смартфоне двухфакторное приложение, добавьте учетную запись и отсканируйте этот QR-код.

Рисунок 1. Полученный QR-код

После того, как вы добавите код, останется ответить еще на несколько вопросов:

  • Do you want me to update your «/home/jlwallen/.google_authenticator» file (y/n) — Хотите ли вы обновить файл/home/jlwallen/.google_authenticator;
  • Do you want to disallow multiple uses of the same authentication token (y/n)? — Хотите ли вы отключить возможность многократного использования одного токена? Эта настройка позволяет выполнять только один вход в систему каждые 30 секунд. Если эта опция активирована, ваши шансы заметить или даже предотвратить атаку вида « » (man-in-the-middle) возрастают.
  • Поскольку значением по умолчанию является 30 секунд, а время сервера и клиента может незначительно отличаться, есть возможность использовать некий дополнительный токен. Следовательно, если у вас возникают проблемы с синхронизацией, вы можете увеличить время окна примерно до 4 минут. Хотите ли вы это сделать? — Do you want to do so (y/n).
  • Если вы сомневаетесь в защите вашего компьютера от атак типа брутфорс (brute-force), вы можете активировать ограничение скорости для модуля аутентификации. По умолчанию это не более 3 попыток входа в систему каждые 30 секунд. Хотите ли вы включить ограничение скорости? — Do you want to enable rate-limiting (y/n)

Ответим на каждый вопрос утвердительно, введя «y» и нажав Enter.

Настройка SSH

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

Сначала надо включить модуль PAM. Для этого набираем команду: sudo nano /etc/pam.d/sshd
. Открыв файл, добавляем следующую строку в конец файла:

auth required pam_google_authenticator.so nullok

Сохраняем этот файл, а затем выполняем команду: sudo nano /etc/ssh/sshd_config
. В этом файле находим:

ChallengeResponseAuthentication no

И меняем на:

ChallengeResponseAuthentication yes

Сохраняем этот файл и перезапускаем sshd — sudo systemctl restart sshd
.

Вход в систему

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

Выводы

Windows уже довольно давно поставляется в комплекте с интегрированной системой сетевой проверки подлинности и единого входа. До Windows 2000 контроллеры доменов Windows NT предоставляли клиентам Windows службы проверки подлинности, используя протокол NTLM. Хотя NTLM не был так защищен, как казалось первоначально, он был очень полезен, поскольку давал удобное решение проблеме необходимости поддерживать дубликаты учетных записей пользователя на различных серверах сети.

Начиная с Windows 2000, корпорация Майкрософт перешла с NTLM на Active Directory и ее интегрированные службы проверки подлинности Kerberos. Kerberos был значительно защищеннее NTLM, а также лучше масштабировался. К тому же, Kerberos был стандартом отрасли, уже используемым системами Linux и UNIX, что открыло врата интеграции этих платформ с Windows.

Проверка подлинности Linux

Первоначально Linux (а также средства и библиотеки GNU, работавшие на нем) не рассчитывался на единый механизм проверки подлинности. Как следствие этого, разработчики приложений Linux обычно брались за разработки собственных схем проверки подлинности. Им удавалось добиться этого либо за счет поиска хэш-кодов имен и паролей в /etc/passwd (текстовом файле, традиционно содержащем учетные данные пользователей Linux) или предоставления совершенно иного (и отдельного механизма).

Получившийся ассортимент механизмов проверки подлинности был неуправляемым. В 1995 г. компания Sun предложила механизм, именуемый подключаемыми модулями проверки подлинности (Pluggable Authentication Modules — PAM). PAM предоставляли общий набор интерфейсов API проверки подлинности, который мог использоваться всеми разработчиками приложений, а также настраиваемый администратором серверный элемент, позволяющий использовать различные «подключаемые» схемы проверки подлинности. Использование интерфейсов API PAM для проверки подлинности и интерфейсов API переключателя сервера имен (Name Server Switch — NSS) для поиска сведений о пользователе позволило разработчикам приложений Linux писать меньше кода, а администраторам Linux управлять процессом проверки подлинности и настраивать его из одного места.

Большинство выпусков Linux снабжались несколькими модулями проверки подлинности PAM, включая модули, поддерживающие проверку подлинности в каталоге LDAP и проверку подлинности с использованием Kerberos. Эти модули можно использовать для проверки подлинности в Active Directory, но на это существуют значительные ограничения, о которых я расскажу ниже в данной статье.

Samba и Winbind

Samba
— это проект с открытым исходным кодом, целью которого является интеграция между средами Windows и Linux. Samba содержит компоненты, дающие компьютерам Linux доступ к службам файлов и печати Windows, а также предоставляющие службы на основе Linux, которые имитируют контроллеры доменов Windows NT 4.0. Используя клиентские компоненты Samba, компьютеры Linux могут пользоваться службами проверки подлинности Windows, предоставляемыми контроллерами доменов Windows NT и Active Directory.

Для нас особо интересна часть Samba, именуемая Winbind. Winbind — это демон («служба» в терминах Windows), работающий на клиентах Samba и действующий как прокси для связи между PAM и NSS, работающими на компьютере Linux, с одной стороны, и Active Directory, работающей на контроллере домена, с другой. В частности, Winbind использует Kerberos для проверки подлинности с помощью Active Directory и LDAP для получения информации о пользователях и группах. Winbind также предоставляет дополнительные услуги, такие, как возможность обнаруживать контролер домена, используя алгоритм, подобный DCLOCATOR в Active Directory, и возможность сбрасывать пароли Active Directory, связываясь с контроллером домена при помощи RPC.

Winbind решает ряд проблем, сохраняющихся при простом использовании Kerberos с помощью PAM. В частности, вместо жесткого кодирования контроллера домена для проверки подлинности PAM Winbind выбирает контроллер домена путем поиска по записям локатора DNS подобно тому, как это делает модуль DC LOCATOR Майкрософт.

Три стратегии проверки подлинности

Учитывая доступность LDAP, Kerberos и Winbind на компьютерах Linux, существуют три различные стратегии реализации, которые можно применить, чтобы дать компьютеру Linux возможность использовать Active Directory для проверки подлинности.

Использование проверки подлинности LDAP
Простейший, но наименее удовлетворительный способ использования Active Directory для проверки подлинности — настроить PAM на использование проверки подлинности LDAP, как показано на рис. 1
. Хотя Active Directory и является службой LDAPv3, клиенты Windows используют для проверки подлинности Kerberos (с NTLM в качестве резервного варианта), а не LDAP.

При проверке подлинности LDAP (именуемой привязкой LDAP) имя пользователя и пароль передаются открытым текстом через сеть. Это небезопасно и недопустимо для большинства целей.

Рис 1. Проверка подлинности в Active Directory с использованием LDAP

Единственным способом смягчения этого риска открытой передачи учетных данных является шифрование канала связи клиент-Active Directory с использованием чего-нибудь вроде SSL. Это определенно возможно, но возлагает дополнительную нагрузку управления сертификатами SSL как на компьютер контроллера домена, так и на компьютер Linux. Вдобавок, использование модуля LDAP PAM не поддерживает изменения сброшенных или истекших паролей.

Использование LDAP и Kerberos
Другой стратегией использования Active Directory для проверки подлинности Linux является настройка PAM на использование проверки подлинности Kerberos и NSS на использование LDAP для поиска информации о пользователях и группах, как показано на рис. 2
. Эта схема имеет преимущество относительной защищенности, и в ней используются «встроенные» возможности Linux. Но она не использует записи расположения службы (SRV) DNS, публикуемые контроллерами доменов Active Directory, что заставляет проверить определенный набор контроллеров домена, чтобы проверить подлинность по ним. Это также не дает особенно интуитивного способа управления истекающими паролями Active Directory или, до недавнего времени, адекватного поиска членов групп.

Рис 2. Проверка подлинности в Active Directory с использованием LDAP и Kerberos

Использование Winbind
Третьим способом использования Active Directory для проверки подлинности Linux является настройка PAM и NSS на выполнение вызовов к управляющей программе Winbind. Winbind переведет различные запросы PAM и NSS в соответствующие вызовы Active Directory, используя LDAP, Kerberos или RPC, в зависимости от того, что будет наиболее подходящим. На рис. 3
приведен наглядный пример данной стратегии.

Рис 3. Проверка подлинности в Active Directory с использованием Winbind

Наш план реализации

Усовершенствованная интеграция с Active Directory заставила меня выбрать Winbind на Red Hat Enterprise Linux 5 (RHEL5) для моего проекта интеграции Linux-Active Directory. RHEL5 — текущая версия коммерческого выпуска Red Hat Linux, и она довольно популярна в корпоративных центрах обработки данных.

Чтобы RHEL5 проверял подлинность через Active Directory, нужны, по сути, пять следующих отдельных действий:

  1. Найти и загрузить подходящий пакет Samba и другие зависимые компоненты.
  2. Собрать Samba.
  3. Установить и настроить Samba.
  4. Настроить Linux, конкретно PAM и NSS.
  5. Настроить Active Directory.

В нескольких следующих разделах этой статьи данные действия описаны более подробно.

Поиск нужных программ

Одним из крупнейших различий между Linux и Windows является то, что Linux состоит из маленького ядра операционной системы и огромной коллекции отдельно загружаемых и устанавливаемых компонентов. Это делает возможным создание очень тщательно подобранных комплектов Linux, оптимальных для определенных задач, но также делает очень сложными настройку сервера и управление им. Различные дистрибутивы справляются с этим различными способами. Red Hat (и его некоммерческая родственница Fedora) используют для установки этих компонентом и управления ими диспетчер пакетов Red Hat Package Manager (RPM).

Компоненты Linux для Red Hat имеют две формы. Файлы RPM содержат двоичные файлы, которые были заранее скомпилированы и собраны для определенного сочетания версии компонента, выпуска Linux и архитектуры ЦП. Так что можно загрузить и установить, для примера, версию 1.3.8-5 стандартной системы печати UNIX (Common UNIX Printing System — CUPS), собранную для Fedora версии 10, работающей на ЦП архитектуры Intel x86. Учитывая наличие дюжины различных архитектур ЦП, более чем 100 выпусков Linux и тысяч пакетов и версий, можно увидеть, что выбирать приходится из невероятного количества двоичных пакетов RPM.

Исходные файлы RPM, с другой стороны, содержат реальный исходный код для данного пакета. От пользователя ожидается, что он загрузит и установит исходные файлы, настроит параметры сборки, после чего сам скомпилирует и скомпонует двоичные файлы. Идея сборки собственной операционной системы является устрашающей для специалиста по Windows, привыкшего устанавливать то, что Майкрософт предоставляет на компакт-диске установки Windows, но диспетчер пакетов делает процесс относительно безболезненным и на удивление надежным. Группа Samba выпускает обновления и исправления безопасности бешеными темпами; лишь за июль и август 2008 вышло четыре выпуска Samba 3.2, всего содержавших свыше 100 устраненных ошибок и исправлений безопасности. Для этого проекта я загрузил файлы исходного кода для последней стабильной версии Samba, версии 3.0.31.

Почему я загрузил исходный код Samba вместо заранее скомпилированного набора двоичных файлов? Поначалу я, конечно, попытался сделать первое. Но после многих часов с отладчиком я обнаружил, что загруженные мною двоичные файлы не были собраны нужным для поддержки проверки подлинности Active Directory образом. В частности, код, поддерживающий сопоставление идентификаторов Linux в Active Directory, был отключен в сборках по умолчанию, так что мне пришлось перестраивать Samba с должными параметрами сборки. Я подробно рассмотрю вопрос сопоставления идентификаторов ниже.

Даже хотя Linux, сам по себе, является маленьким ядром, в выпуске Red Hat Enterprise заранее установлено множество пакетов. Обычно это серьезно упрощает жизнь, позволяя начать с полной и работающей операционной системы, но заранее установленные пакеты порой конфликтуют с программами, которые предполагается установить позже.

Я не включил Samba в свою установку Red Hat (обычно Samba устанавливается по умолчанию), поскольку мне нужно было использовать более новую версию. Однако более новая версия Samba требует новых версий нескольких других библиотек и служебных программ, которые уже были установлены. Проблемы, связанные с подобной зависимостью, действуют на нервы, но их можно легко решить, используя RPM.

Существует множество веб-узлов, на которых размещаются двоичные пакеты RPM. Тот, что использовал я (просто потому, что он нашелся первым), именуется PBONE и расположен на rpm.pbone.net. У него имеется удобный способ поиска пакетов, и на нем есть все двоичные файлы, которые были необходимы для моей архитектуры ЦП (i386) и выпусков операционной системы (Red Hat Enterprise Linux 5/Fedora 7 и 8).

Мне пришлось загрузить и обновить пакеты, перечисленные на рис. 4
, чтобы собрать и установить последнюю версию Samba 3.0 (существует еще более новое дерево версий 3.2, работать с которым я не пробовал). Отметьте, что все эти пакеты предназначены для выпуска Fedora Core (fc). Дистрибутив Red Hat основан на тех же исходных кодах, что используются в Fedora, и полностью совместим с ней. Пакеты, собранные для Fedora Core 7 и более поздних версий, будут работать в RHEL5 без изменений. Поместите загруженные файлы RPM в каталог /usr/src/redhat/RPMS.

Рис. 4. Пакеты, необходимые для сборки и установки Samba 3.0.31

Сборка Samba

Первый этап сборки Samba заключается в загрузке верного исходного пакета RPM. Я загрузил пакет RPM исходных кодов для Samba 3.0.31 с веб-узла PBONE. Далее поместите загруженный файл RPM исходных кодов в /usr/src/redhat/SRPMS; это стандартный каталог для пакетов RPM исходных кодов в ходе процесса сборки.

Откройте сеанс терминала («окно командной строки» в терминах Windows) и перейдите к папке SRPMS. После того, как это сделано, установите пакет исходных кодов, используя команду, как показано на рис. 5
.

Рис. 5. Установка пакета RPM исходных кодов Samba

Если появится предупреждение об ошибке «user mockbuild does not exist—using root» («макетной сборки пользователя не существует — используется корень»), не волнуйтесь. Эта ошибка указывает, что служебные программы макетной сборки не установлены. Процесс сборки будет работать и без них.

Далее перейдите к каталогу /usr/src/redhat/SPECS и исправьте файл samba.spec, содержащий параметры сборки Samba. Найдите строку, начинающуюся с «CFLAGS=», и убедитесь, что параметр «—with-shared-modules=idmap_ad,idmap_rid» существует. Этот параметр гарантирует, что в процессе сборки будет включен код, правильно преобразующий уникальные идентификаторы (unique identifiers — UID) Linux для Active Directory. На рис. 6
приведен этот параметр.

Рис. 6. Параметр сборки with-shared-modules («с совместно используемыми модулями»)

Далее может понадобиться обновить некоторые из библиотек на компьютере, чтобы должным образом собрать и установить Samba; это зависит от того, какие версии библиотек уже установлены. В моем случае мне пришлось установить пакеты, перечисленные на рис. 4
, используя команду rpm -install; в некоторых случаях мне пришлось, впрочем, использовать вариант —force, чтобы преодолеть некоторые из проблем зависимости.

Чтобы собрать Samba, перейдите к каталогу /usr/src/redhat и выполните команду rpmbuild -bb SPECS/samba.spec, как показано на рис. 7
. В результате этой процедуры новый файл RPM samba-3.0.31-0.i386 останется в каталоге /usr/src/redhat/RPMS. Мы установим этот файл RPM позже по ходу проекта.

Рис. 7. Создание двоичного файла RPM Samba

Настройка работы Linux с сетью

Чтобы проверять подлинность с помощью Active Directory, компьютер Linux должен иметь возможность связываться с контроллером домена. Чтобы это могло произойти, необходимо настроить три параметра сети.

Во-первых, важно убедиться, что сетевой интерфейс на компьютере Linux настроен должным образом либо путем использования протокола DHCP, либо путем назначения ему соответствующего IP-адреса и сетевой маски с помощью команды ifconfig. В случае RHEL5 можно настроить работу с сетью, выбрав ее (Network) из меню System | Administration (Система | Администрирование), как показано на рис. 8
.

Рис 8. Настройка сети

Далее убедитесь, что служба разрешения имен DNS для компьютера Linux установлена на использование того же сервера имен DNS, который используют контроллеры домена; в большинстве случаев это контроллер домена в домене, к которому требуется присоединить компьютер Linux, предполагая, что используется DNS, интегрированная с Active Directory. Средство разрешения DNS настраивается на вкладке DNS той же служебной программы настройки сети, которая использовалась для настройки сети, как показано на рис. 9
.

Рис 9. Установка основного средства разрешения DNS

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

Вместо этого измените файл /etc/hosts и добавьте запись под записью localhost.localdomain в форме <полное доменное имя> <имя компьютера>. (Пример: «10.7.5.2 rhel5.linuxauth.local linuxauth».) Мне следует отметить, что если этого не сделать, то после присоединения компьютера Linux к домену в каталоге будет создан неверный объект компьютера.

Настройка синхронизации времени в Linux

Протокол Kerberos полагается на наличие у систем проверки подлинности часов с достаточно высокой точностью синхронизации. По умолчанию, Active Directory допускает максимальное отклонение по времени в пять минут. Чтобы гарантировать пребывание систем Linux и часов систем контроллеров домена в пределах этого значения, необходимо настроить системы Linux на использование службы протокола NTP контроллера домена.

Далее на сервере Linux запустите служебную программу Date & Time («Дата и время») из меню System | Administration и выберите вкладку протокола NTP. Установите флажок Enable Network Time Protocol («Включить протокол NTP») и добавьте IP-адрес контроллера домена, который нужно использовать как сетевой источник времени. Обратите внимание, что обычно это должен быть контроллер домена в домене, содержащим роль FSMO имитатора основного контроллера домена (primary domain controller — PDC). На рис. 10
приведен пример установки сетевого источника времени для Linux.

Рис 10. Настройка протокола NTP

Настройка PAM и NSS

PAM и NSS предоставляют средство соединения приложения Linux, такого как рабочая среда, и Winbind. Подобно многим службам Linux, PAM и NSS настраиваются через текстовые файлы. Сначала мы рассмотрим настройку PAM.

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

Файлы настройки PAM в Red Hat хранятся в каталоге /etc/pam.d, в котором будет находиться текстовый файл для каждого приложения, использующего PAM для проверки подлинности. Например, файл /etc/pam.d/gdm содержит информацию о настройке PAM для Gnome Desktop Manager (GDM), оконной среды по умолчанию в Red Hat. В каждом файла настройки PAM содержатся несколько строк, каждая из которых определяет какой-либо аспект процесса проверки подлинности PAM. На рис. 11
показано содержимое файла настройки PAM для GDM.

Рис. 11. Файл настройки РАМ для Gnome Desktop Manager

Каждая запись в файле настройки PAM имеет форму <группа управления> <элемент управления> <модуль> <параметры>, где <группа управления> соответствует средству, к которому относится запись настройки: проверки подлинности, учетных записей, паролей или сеансов. Управляющие ключевые слова, описанные на рис. 12
, говорят PAM, как обработать запись настройки. Третий столбец файла содержит имя общей библиотеки PAM в каталоге безопасности /lib/. Общие библиотеки содержат динамически загружаемый исполняемый код, подобный DLL в Windows. Дополнительные термины после имени модуля — это параметры, передаваемые модулем PAM общей библиотеке.

Рис. 12. Управляющие ключевые слова PAM

Ключевое слово

Описание

Required («Обязательно») Если модуль срабатывает успешно, то PAM продолжает вычислять остающиеся записи для группы управления, и результаты будут определены результатами остающихся модулей. Если нет, то PAM продолжит вычисление, но возвратит сбой вызывавшему приложению.
Requisite («Необходимо») Если модуль срабатывает успешно, PAM продолжает вычислять записи группы управления. Если нет, то PAM произведет возврат вызывавшему приложению без дальнейшей обработки.
Sufficient («Достаточно») Если модуль сработает успешно, то PAM возвратит успешный результат вызывавшему приложению. Если нет, то PAM продолжит вычисление, но результаты будут определены последующими модулями.
Optional («Необязательно») PAM игнорирует результаты модуля, если это не единственный модуль, указанный для группы управления.
Include («Включить») PAM включает в себя содержимое файла настройки PAM, на который дается ссылка, а также содержащиеся в нем процессы и записи.

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

Можно заметить, что в файле настройки PAM для GDM есть system-auth для всех групп управления. Это способ, которым PAM устанавливает поведение при проверке подлинности по умолчанию для GDM. Модифицируя system-auth, можно модифицировать это поведение для всех приложений, в которых есть файл system-auth в настройках PAM. Файл system-auth по умолчанию показан на рис. 13
.

Рис. 13. Файл system-auth модуля PAM

Модуль переключателя блока преобразования имен (NSS) скрывает конкретные сведения о хранилище данных систем от разработчика приложения, примерно так же, как PAM скрывает подробности проверки подлинности. NSS позволяет администратору указать способ, которым хранятся базы данных системы. В частности, администратор может указать, как хранится информация об имени пользователя и пароле. Поскольку нам нужно, чтобы приложения искали информацию о пользователях в Active Directory при помощи Winbind, нам нужно изменить настройку NSS, чтобы показать это.

Red Hat включает небольшую графическую программку для настройки PAM и NSS, называемую system-config-authentication. Она заботится о большинстве изменений (но не о всех), которые необходимо ввести в файлы system-auth и nss.conf.

Запустите приложение system-config-authentication, и можно будет увидеть диалог, подобный показанному на рис. 14
. Установите флажок Winbind как на вкладке User Information («Информация о пользователе», она настраивает файл nss.conf), так и на вкладке Authentication («Проверка подлинности», она модифицирует файл system-auth).

Рис. 14. Диалог systemconfig-authentication

Нажмите кнопку Configure Winbind, и будет отображен диалог, приведенный на рис. 15
. Введите имя домена, в котором должна проверяться подлинность пользователей, в поле Winbind Domain и выберите «объявления» как модель безопасности. Введите доменное имя DNS домена Active Directory в поле Winbind ADS Realm. В поле Winbind Domain Controllers введите либо имя контроллера домена, с помощью которого нужно проверять подлинность для этой системы Linux, или звездочку, указывающую, чтоWinbind следует выбрать контроллер домена, запрашивая записи SRV в DNS.

Рис. 15. Настройка диалога Winbind

Выберите подходящий интерпретатор команд по умолчанию, который должны иметь пользователи Active Directory; в данном случае я выбрал bash (Bourne-again Shell). Не пытайтесь воспользоваться кнопкой «Join Domain» («Присоединиться к домену») на этом этапе. Компьютер будет присоединен к домену позже.

В файл /etc/pam.d/system-auth необходимо внести еще одно дополнительное изменение после того, как он был модифицирован для поддержки Winbind. Когда пользователь Linux входит в систему, система требует от пользователя наличия домашнего каталога. Домашний каталог содержит многие параметры и элементы настройки конкретного пользователя во многом подобно реестру Windows. Проблема здесь состоит в том, что поскольку пользователи создаются в Active Directory, Linux не будет автоматически создавать домашний каталог пользователя. К счастью, PAM можно настроить на выполнение этого в качестве части настройки сеанса.

Откройте файл the /etc/pam.d/system-auth, затем прокрутите экран вниз и вставьте строку «session optional map_mkhomedir.so skel=/etc/skel umask=0644» перед последней строкой в разделе сеанса (см. рис. 16
). Эта строка настраивает PAM на создание домашнего каталога для пользователя, если такового еще не существует. Она будет использовать /etc/skel в качестве «скелета» шаблона и назначит маску прав 0644 (чтение и запись для владельца, чтение для основной группы и чтение для всех остальных) новой папке.

Рис. 16. Создание домашнего каталога для пользователей

Установка и настройка Samba

Чтобы установить только что созданные двоичные файлы Samba, перейдите в каталог /usr/src/redhat/RPMS. Все файлы RPM, созданные командой rpmbuild, появятся в этом каталоге. Помните, что Samba включает двоичные файлы, позволяющие клиенту Linux получить доступ к общему хранилищу файлов Windows (или Samba), а также к коду, позволяющему системе Linux действовать как файловый сервер Windows, сервер печати Windows и контроллер домена в стиле Windows NT 4.0.

Чтобы позволить Linux производить проверку подлинности в Active Directory, всего этого не нужно; достаточно общих файлов Samba и двоичных файлов клиента Samba. Эти файлы для нашего удобства разбиты на два файла RPM: samba-client-3.0.31-0.i386.rpm и samba-common-3.0.31-0.i386.rpm. Установите файлы RPM, используя команду rpm —install. Приведу пример: rpm —install samba-common-3.0.31-0.i386.rpm. (Отметьте, что перед этим нужно установить файл RPM -common.)

После установки двоичных файлов клиента Samba необходимо модифицировать настройку Samba по умолчанию, чтобы убедиться, что Winbind обрабатывает проверку подлинности должным образом с помощью Active Directory. Всю информацию о настройке Samba (и клиента, и сервера) можно найти в текстовом файле smb.conf, который по умолчанию находится в каталоге /etc/samba. Smb.conf может содержать огромное количество параметров настройки, и полный рассказ о его содержимом выходит за рамки данной статьи. На веб-узле samba.org и в справочной системе Linux о smb.conf рассказано подробнее.

Первым этапом настройки Winbind является использование Active Directory для проверки подлинности. Модель безопасности в smb.conf необходимо установить на «объявления». Служебная программа system-config-authentication уже должна была установить это сама, но проверка никогда не помешает. Откройте для правки файл smb.conf и найдите раздел, помеченный Domain Member Options («Параметры члена домена»). Найдите строку, начинающуюся с «security» и убедитесь, что она читается как «security = ads». На следующем этапе настройки определяется, как Winbind сопоставит участников безопасности Windows, таких как пользователи и группы, с идентификаторами Linux, и это требует несколько более подробного объяснения.

Проблема сопоставления идентификаторов

У проверки подлинности пользователей Linux с помощью Active Directory существует одна большая и пока что не упомянутая мной проблема — проблема уникальных идентификаторов (UID) для пользователей и групп. Внутренне ни Linux, ни Windows не называют пользователей их реальными именами, используя вместо этого уникальный внутренний идентификатор. В Windows используются идентификаторы безопасности (Security Identifier — SID), являющиеся структурой переменной длины и дающие уникальное средство опознания каждого пользователя в домене Windows. SID также содержит уникальный идентификатор домена, чтобы Windows могла различать пользователей в различных доменах.

Схема Linux гораздо проще. Каждый пользователь на компьютере Linux имеет идентификатор UID, представляющий из себя просто 32-разрядное целое число. Но область действия идентификатора UID ограничена самим компьютером. Нет никакой гарантии, что пользователь с идентификатором UID 436 на одном компьютере Linux идентичен пользователю с идентификатором UID 436 на другом компьютере Linux. Как следствие, пользователю необходимо подключаться к каждому компьютеру, доступ к которому ему нужен, что является нежелательной ситуацией.

Сетевые администраторы Linux обычно решают эту проблему, предоставляя сетевую проверку подлинности с помощью либо сетевой информационной системы (Network Information System — NIS), либо общего каталога LDAP. Сетевая система проверки подлинности предоставляет идентификатор UID для пользователя, и все компьютеры Linux, пользующиеся этой системой, будут пользоваться теми же идентификаторами пользователя и группы. В этой ситуации я использую Active Directory для предоставления уникальных идентификаторов пользователей и групп.

Для решения этой проблемы я использую две стратегии. Первая (а также наиболее очевидная) стратегия — создать идентификатор UID для каждого пользователя и группы и сохранить этот идентификатор с помощью соответствующего объекта в Active Directory. При ее применении, когда Winbind проверяет подлинность пользователя, я могу взглянуть на его идентификатор UID и предоставить его Linux в качестве внутреннего идентификатора данного пользователя. Winbind ссылается на эту схему как на сопоставление идентификаторов Active Directory (или idmap_ad). На рис. 17
показан процесс сопоставления идентификаторов Active Directory.

Рис 17. Процесс сопоставления идентификаторов Active Directory

Единственным недостатком сопоставления идентификаторов Active Directory является необходимость предоставления механизма наличия идентификаторов у каждого пользователя и группы, а также их уникальности в пределах леса. Более подробную информацию можно найти на боковой панели «Настройка Active Directory для сопоставления идентификаторов Active Directory».

К счастью, существует еще одна стратегия сопоставления идентификаторов, влекущая гораздо меньше административных издержек. Вспомним, что идентификатор SID Windows уникально идентифицирует пользователя внутри домена, а также сам домен. Часть идентификатора SID, уникально идентифицирующая пользователя внутри домена, именуется относительным идентификатором (RID) и является на самом деле 32-разрядным целым числом. Так что Winbind может просто извлечь RID из SID при входе пользователя в систему и затем использовать RID как уникальный внутренний идентификатор UID. Winbind ссылается на эту стратегию как на сопоставление идентификаторов RID или idmap_rid. На рис. 18
показано, как реально работает сопоставление RID.

Рис. 18. Сопоставление RID

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

Чтобы настроить стратегию сопоставления ID в Winbind, откройте файл /etc/samba/smb.conf для правки снова и добавьте строку «idmap backend = ad» для использования стратегии сопоставления Active Directory, либо «idmap backend = rid» для использования стратегии сопоставления RID. Убедитесь в отсутствии других строк, указывающих стратегию сопоставления в файле.

Существует ряд других параметров настройки, которые нужно добавить к файлу smb.conf для Winbind. Даже если PAM установлен на создание домашнего каталога для каждого пользователя при его входе в систему, необходимо сказать Winbind, что это за имя. Мы делаем это путем добавления строки «template homedir = /home/%U» к smb.conf (см. рис. 19
). Это говорит Winbind, что домашним каталогом для каждого пользователя, удостоверившего свою подлинность с помощью Active Directory, будет /home/<имя пользователя>. Не забудьте сначала создать каталог /home.

Рис. 19. Указание имени домашнего каталога

Присоединение к домену и вход в систему

Теперь, когда сеть, PAM, NSS и Samba Winbind настроены верно, пора присоединить компьютер Linux к домену. Это можно сделать с помощью команды net программы Samba. В запросе интерпретатора команд выполните «net ads join -U <имя администратора>». Замените <имя администратора> именем учетной записи, имеющей достаточно полномочий для присоединения компьютеров к домену.

Команда net запросит пароль пользователя. Если все сработает нормально, она присоединится к нужному компьютеру в домене. Для обнаружения созданной учетной записи компьютера можно использовать оснастку «Active Directory — пользователи и компьютеры».

Протестировать состояние присоединения можно с помощью тестового средства Winbind, именуемого wbinfo. Если выполнить wbinfo -t, будут протестированы отношения доверия между компьютером и доменом. В результате выполнения wbinfo -u будут перечислены все пользователи в домене, а wbinfo -g — все группы.

В случае успешного присоединения компьютера Linux к домену следующим этапом будет попытка входа в систему с помощью учетной записи пользователя и пароля Active Directory. Выйдите из системы на компьютере Linux и войдите в систему, используя имя пользователя Active Directory. Если всё сработает верно, то возможность входа в систему должна присутствовать.

Настройка Active Directory для процесса сопоставления идентификаторов Active Directory

Эта информация применима только к тем, кто использует сопоставление идентификаторов Active Directory. Те, то решил использовать сопоставление RID, могут спокойно не обращать внимания на эту панель.

Перед тем, как войти в систему на сервере Red Hat, используя учетную запись Active Directory, необходимо внести некоторые изменения в саму Active Directory. В-первых, в схему Active Directory придется внести атрибуты, используемые Winbind для хранения информации пользователя. При работе с Windows Server 2003 R2 схема готова к применению. В случае наличия более ранней версии схемы Active Directory ее придется расширить, используя пакет служб Microsoft Services for UNIX (SFU).

Дополнительную информацию можно найти по адресу Services for UNIX на TechNet . SFU также включает дополнительную страницу свойств для пользователей Active Directory Users и оснастку консоли управления компьютерами Майкрософт (Computers Microsoft Management Console — MMC), позволяющую управлять информацией об индивидуальном и групповом модификаторах, требуемой Linux.

После того, как схема установлена должным образом, необходимо предоставить идентификаторы Linux для всех пользователей (и групп, членами которых они являются), которые могут зайти на компьютер Linux. Это значит, что необходимо определить значения для атрибутов uidNumber и gidNumber для пользователей и групп, которые могут зайти на компьютер Linux. Но следует помнить о некоторых требованиях к этим атрибутам:

  1. Linux требует идентификатор UID для каждого пользователя, удостоверяющего свою подлинность. Поскольку нам необходимо управлять информацией о пользователях в Active Directory, то каждая учетная запись пользователя, который будет входить в систему на компьютере Linux, должна иметь уникальный атрибут uidNumber. Конкретное значение, используемое для uidNumber, несущественно, но оно должно быть уникальным для всех пользователей, которые могут заходить на компьютер Linux.
  2. Каждый пользователь Linux должен также иметь идентификатор группы по умолчанию, так что каждый пользователь Active Directory, входящий на компьютер Linux, требует значения также для атрибута gidNumber. Это значение не обязано быть уникальным среди пользователей, но оно должно уникально определять группу.
  3. Каждая группа в Active Directory должна иметь уникальное значение для своего атрибута gidNumber. Строго говоря, для групп вполне нормально не иметь значения для атрибута gidNumber, но при проверке подлинности пользователя Winbind ожидает, что каждая группа, к которой тот принадлежит, будет иметь уникальное значение gidNumber. Вероятно, гораздо проще просто убедиться в наличии у каждой группы уникального значения gidNumber.
  4. Winbind ожидает, что каждый пользователь, находимый им в Active Directory, будет членом группы пользователей домена, так что он также ожидает, что группа пользователей домена имеет значения для своего атрибута gidNumber.

А если это не заработает?

Установка компьютера Linux на проверку подлинности с помощью Active Directory и через Winbind — нетривиальный проект. Существует масса элементов, которые нужно настроить, и масса вещей, которые можно сделать неправильно. Тот факт, что каждая версия Linux или Samba несколько различаются по своим возможностям, не облегчает этой задачи. Но существует ряд источников, содержащих информацию о происходящем.

Во-первых, это файл журнала системы Linux, ведущийся в /var/log/messages. Samba будет помещать в этот файл сообщения о значительных событиях, таких как пропажа файлов или плохая настройка. В дополнение к файлу журнала системы, свои файлы журнала есть у Samba и Winbind. Их можно найти в /var/log/samba, и они предоставят пользователю некоторую дополнительную информацию.

Подробность (и объем) сообщений журналов, выдаваемых Winbind, можно увеличить, изменив его сценарий запуска для установки уровня отладки. Отредактируйте сценарий интерпретатора команд /etc/init.d/winbind и добавьте «-d 5» к команде winbind. Это увеличит уровень отладки до 5 (допустимые значения от 1 до 10), что заставит winbind создавать более детальные сообщения об ошибках.

Если Winbind доходит до связи с контроллером домена, можно провести запись сетевых пакетов с помощью служебной программы вроде Netmon 3.1. Это позволяет проанализировать, что именно Winbind пытается сделать. Можно также изучить журнал безопасности Windows на контроллере домена, в который будут занесены попытки проверки подлинности.

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

Если все слаженно работает, то теперь имеется возможность входить в системы Linux, используя учетные данные, поддерживаемые в Active Directory. Это огромное улучшение по сравнению с локальным управлением идентификацией на компьютере Linux или использованием небезопасной системы вроде NIS. Это позволяет централизовать управление пользователями в одном хранилище удостоверений: Active Directory.

Но здесь не хватает некоторых вещей, которые могли бы сделать это решение действительно полезным. Во-первых, получение технической поддержки здесь — дело удачи. Многие организации Linux не очень-то разбираются в Active Directory, а поддержка, которую можно получить от сообщества Linux, целиком зависит от того, кто прочитал ваше сообщение и его настроения на сегодняшний день.

Кроме того, пакет Samba не снабжен средствами переноса или развертывания. В случае наличия существующих учетных записей Linux, с которыми связаны идентификаторы пользователей и полномочия, необходимо вручную убедиться, что они сохраняют свои идентификаторы UID при переносе их в Active Directory.

Наконец, одно из наиболее важных приложений Active Directory, групповая политика, не доступно с Samba, хотя над этим идет работа. Хотя систему Linux можно присоединить к Active Directory с помощью Samba, ей нельзя управлять, используя групповую политику.

Решения от сторонних производителей

Проверка подлинности для компьютеров Linux с помощью Active Directory — очевидно, хорошее дело, но создание собственного решения с помощью Samba Winbind утомительно, если не просто кошмарно. Читатели могут подумать, что кто-то из изобретательных поставщиков ПО должен выступить с более простым в использовании решением, и они будут правы.

Четыре поставщика коммерческого ПО разработали простые в установке и использовании версии того, что я продемонстрировал в этой статье. Они предоставляют код и средства переноса для почти всех популярных версий Linux, UNIX и Apple Macintosh, а также поддержку управления компьютерами Linux с помощью групповой политики.

Четыре компании это: Centrify , Likewise Software , Quest Software и Symark . Все четыре поставщика предоставляют похожие функции, включая управление групповой политикой в широком спектре выпусков Linux. Likewise Software недавно открыла код своей реализации, именуемой Likewise Open, хотя ее компонент групповой политики остается коммерческим продуктом. Likewise Open будет доступен для нескольких крупных выпусков Linux. (Раскрою секрет: пока я писал эту статью, моя компания, NetPro, была приобретена Quest Software.)

Имеет ли смысл строить собственную систему проверки подлинности, используя Samba и Winbind, когда доступны коммерческие варианты? Если бюджет не предусматривает денег на программы интеграции, то использование Samba с его открытым кодом имеет преимущество бесплатности. При этом также получаешь весь исходный код, что может быть заманчивым достоинством. Но перенос существующих компьютеров Linux и их существующих идентификаторов UID — весьма тернистая проблема.

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

Но любое решение по интеграции проверки подлинности системами Linux с Active Directory сокращает усилия, уходящие на управление несколькими учетными записями пользователей, улучшает безопасность системы и предоставляет единое хранилище удостоверений для управления и аудита. И это достаточно основательные причины, чтобы попытаться применить его.

Джил Киркпатрик

  • Вперёд >

Не получить вовсе — не страшно, но лишиться полученного обидно (Клавдий Элиан).

Устранение неполадок аутентификации Kerberos в LinuxКак и многие другие протоколы аутентификации, вы часто можете столкнуться с проблемами при настройке Linux для аутентификации с помощью Kerberos. Конечно, проблемы всегда различаются в зависимости от вашего этапа аутентификации.

В этой статье рассматриваются некоторые проблемы, которые могут возникнуть. Некоторые из вопросов, которые мы включаем здесь:

  • Проблемы, возникающие при настройке системы
  • Проблемы, возникающие из-за клиентских утилит и сбоев в использовании или управлении средой Kerberos
  • Проблемы с шифрованием KDC
  • Проблемы с клавиатурой

Устранение неполадок системы Linux Kerberos и проблем с мониторингом

Примечательно, что проблемы, с которыми вы можете столкнуться при использовании Linux Kerberos, часто начинаются на этапе установки. И единственный способ свести к минимуму проблемы с настройкой и мониторингом — это выполнить следующие шаги:

Шаг 1: Убедитесь, что на обеих машинах правильно установлен работающий протокол Kerberos.

Шаг 2: Синхронизируйте время на обеих машинах, чтобы убедиться, что они работают в одинаковых временных рамках. В частности, используйте сетевую синхронизацию времени (NTS), чтобы компьютеры находились в пределах 5 минут друг от друга.

Шаг 3: Проверьте, все ли узлы в сетевой службе домена (DNS) имеют правильные записи. При этом убедитесь, что каждая запись в файле хоста имеет соответствующие IP-адреса, имена хостов и полные доменные имена (FQDN). Хорошая запись должна выглядеть так:

IP_address 
FQDN hostname

Устранение неполадок клиентской утилиты Linux Kerberos

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

Способ 1: использование команды Klist

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

bash-2.05$ klist
Ticket cache: /tmp/krb5cc_1002
Default principal: HTTP/sol8sunone.test.com @TEST.COM
Valid starting                    Expires                    Service principal

Tue Nov 22 16:14:03 2022         Tue Nov 22 22:46:03 2014   krbtgt/ www.MaxDestroyer@ANDREYEX.RU

Способ 2: использование команды Kinit для проверки проблем на клиенте KDC

Вы также можете использовать команду Kinit, чтобы подтвердить, есть ли у вас какие-либо проблемы с вашим хостом KDC и клиентом KDC. Утилита Kinit поможет вам получить и кэшировать билет на выдачу билетов для субъекта-службы и пользователя. Проблемы с клиентской утилитой всегда могут возникать из-за неправильного имени участника или неправильного имени пользователя.

Ниже приведен синтаксис Kinit для принципала пользователя:

kinit username

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

С другой стороны, синтаксис Kinit для субъекта-службы аналогичен деталям на снимке экрана ниже. Обратите внимание, что это может варьироваться от одного хоста к другому:

kinit -k[-t keytab_file] principal_name

Интересно, что команда Kinit для субъекта-службы не будет запрашивать никаких паролей, поскольку для проверки подлинности субъекта-службы используется файл вкладки ключа в квадратных скобках.

Способ 3: использование команды kinit для проверки проблем с SMP

Вы также можете запустить приведенную ниже команду независимо от того, сработала ли приведенная выше команда комплекта или нет. Это помогает определить, есть ли какие-либо проблемы с хостом SMP. Примечательно, что это более полезно при тестировании вашего сервера на mail.company.com.

Ваша команда kinit будет иметь следующую структуру:

kbd>kinit -S host/mail.company.com@SERVER01.COMPANY.COM

Способ 4: использование команды ktpass

Иногда проблема может быть связана с вашими паролями. Чтобы убедиться, что это не является причиной ваших проблем с Linux Kerberos, вы можете проверить версию утилиты ktpass.

Устранение проблем с поддержкой KDC

Kerberos часто может дать сбой из-за множества проблем. Но иногда проблемы могут быть связаны с поддержкой шифрования KDC. Примечательно, что такая проблема приведет к следующему сообщению:

kinit: KDC has no support for encryption type while getting initial credentials

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

  • Убедитесь, что ваши настройки KDC блокируют или ограничивают какие-либо типы шифрования.
  • Убедитесь, что в вашей учетной записи сервера проверены все типы шифрования.

Устранение неполадок с Keytab

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

Шаг 1: Убедитесь, что расположение и имя файла вкладки ключа для хоста аналогичны данным в файле krb5.conf.

Шаг 2: Убедитесь, что хост и клиентские серверы имеют основные имена.

Шаг 3: Подтвердите тип шифрования перед созданием файла вкладки ключа.

Шаг 4: Проверьте правильность файла вкладки ключа, выполнив приведенную ниже команду kinit:

kinit -t C:LinuxMaxDestroyer.keytab HTTP/MaxDestroyer@ANDREYEX.RU

kinit host/fqdn@ANDREYEX.COM

Приведенная выше команда не должна возвращать ошибку, если у вас есть действительный файл вкладки ключа. Но в случае ошибки вы можете проверить действительность имени участника-службы с помощью этой команды:

kinit -t C:LinuxMaxDestroyer.keytab HTTP/MaxDestroyer@ANDREYEX.RU

kinit host/fqdn@ANDREYEX.COM

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

Выше приведены некоторые распространенные проблемы, с которыми вы можете столкнуться при настройке или аутентификации с помощью Linux Kerberos. Эта статья также содержит возможные решения для каждой из проблем, с которыми вы можете столкнуться.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Загрузка…


0

1

На Astra Linux 1.6 пытаюсь настроить вывод мандатных меток в браузер. При выключенном Astra Mode выдает дефолтную страницу Apache «it`s works!», при включенном index.html. Тоесть WSGI ни в какую работать не хочет, пробовала с разными скриптами.

Логи:
Apache

    astra_mode - ap_invoke_handler: user name is not set, referer: http://aldserver.name.ru/
    Authentication not configured

Kerberos:

    NEEDED_PREAUTH: user@NAME.RU for krbtgt/NAME.RU@NAME.RU, Additional pre-authentication required	

Конфиг Apache:

    <VirtualHost *:80>
            # имя web-сервера
            ServerName aldserver.name.ru 
     
            ServerAdmin webmaster@localhost
            # директория, в котором лежат скрипты приложения
            DocumentRoot /var/www/name.ru
     
            # указываем, какой скрипт запускать при обращении к aldserver.name.ru/
            WSGIScriptAlias / /var/www/name.ru/app.wsgi 
     
            # настройки для корректной авторизации через Kerberos
            <Directory /var/www/name.ru>
                    AuthType Kerberos
                    KrbAuthRealms REALM
                    KrbServiceName HTTP/aldserver.name.ru
                    Krb5Keytab /etc/apache2/keytab
                    KrbMethodNegotiate on
                    KrbMethodK5Passwd off
                    KrbSaveCredentials on
                    require valid-user
            </Directory>
             
            # для откладки
            LogLevel debug
     
            ErrorLog ${APACHE_LOG_DIR}/error.log
            CustomLog ${APACHE_LOG_DIR}/access.log combined
     
    </VirtualHost>

App.wsgi:

    import sys
    import subprocess
    from os import getuid
    sys.path.insert(0, 'var/www/name.ru')
     
    def application(env, start_response):
            status = '200 OK'
            id = subprocess.check_output(['pdp-id'])
      
            output = "UID: " + str(getuid()) + "<br/><br/>" + id # возвращаем uid пользователя, заупустившего процесс и его мандатные атрибуты
            response_headers = [('Content-type', 'text/html'), ('Encoding', 'utf-8'), ('Content-Length', str(len(output)))]  # заголовки ответа
     
            start_response(status, response_headers)
     
            return [output]

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

  • Ошибка krb ap err modified
  • Ошибка kpdl принтер kyocera 2040
  • Ошибка kpdl задание отменено
  • Ошибка kontur 1c plugin host
  • Ошибка kontakt 5 this instrument belongs to a library that is