Kerberos-аутентификация в STAL
Общие сведения
STAL поддерживает Kerberos-аутентификацию в домене MS AD при доступе пользователя к РМ.
Kerberos-аутентификация возможна, если:
-
для доступа к STAL используется домен аутентификации Termidesk VDI, поддерживающий функционал Kerberos и настроенный на его использование;
-
узел STAL был введен в домен с использованием утилиты
sssd(при использовании службы каталогов MS AD утилитаwinbindне должна использоваться); -
в компоненте «Сессионный агент» используется параметр
USE_USER_PRINCIPAL_NAMEсо значениямиAutoилиTrue; -
в «Портале администратора» Termidesk VDI заданы политики:
-
«Автоматический вход в систему при подключении к РМ (RDP, SPICE, TERA)» в значение «Включен»;
-
«Аутентификация на уровне сети (RDP)» в значение «NLA» или «Автосогласование»;
-
-
в «Портале администратора» Termidesk VDI поставщик ресурсов «Сервер терминалов» добавлен по FQDN;
-
выполнена настройка узла STAL, как приведено ниже.
Настройка узла STAL состоит из:
-
подготовки узла с настройкой службы
SSSD; -
получении
keytab; -
настройки конфигурации
stal-config.json.
Подготовка узла
Требования к имени узла (hostname):
-
имя узла не должно превышать 15 символов;
-
имя узла должно совпадать с
ComputerNameв службе каталогов Active Directory с точностью до регистра символов.
Пример: если ComputerName = OS-STAL, то и hostname должен быть OS-STAL (регистр не учитывается разрешением имен, но для keytab это критично).
|
Требования к DNS-записям:
-
в DNS-зоне домена должны присутствовать корректные A (или AAAA) и PTR-записи для данного узла.
Если узел не прописан в DNS, при создании keytab не будут сгенерированы записи для FQDN, что приведет к ошибкам аутентификации.
|
Для настройки службы SSSD нужно:
-
отредактировать файл
/etc/sssd/sssd.conf, присвоив параметруuse_fully_qualified_namesзначениеTrue; -
перезапустить службу
sssd:
sudo systemctl restart sssd
Получение keytab
Для получения keytab нужно:
-
получить билет администратора домена. Имя администратора домена и имя домена необходимо уточнить у администраторов инфраструктуры:
sudo kinit <Администратор_домена>@<ИМЯ_ДОМЕНА>
|
Пример:
|
-
установить утилиту
msktutil, доступную в репозитории Termidesk VDI:
sudo apt install msktutil
-
создать учетную запись узла и создать
keytab:-
выполнить предварительное создание:
msktutil --server <КОНТРОЛЛЕР_ДОМЕНА> \ --precreate \ --host <ИМЯ_УЗЛА> \ --computer-name <ИМЯ_КОМПЬЮТЕРА_В_ВЕРХНЕМ_РЕГИСТРЕ> \ -b cn=computers \ --service TERMSRV \ --enctypes 24 \ -N -
выполнить обновление и выгрузку
keytab. В результате выполнения команды будет создан файлtemp.keytab:msktutil --server <КОНТРОЛЛЕР_ДОМЕНА> \ --auto-update \ --computer-name <ИМЯ_КОМПЬЮТЕРА_В_ВЕРХНЕМ_РЕГИСТРЕ> \ --keytab temp.keytab \ --host <ИМЯ_УЗЛА> \ -N
-
-
заменить существующий файл
/etc/krb5.keytabновым и установить корректные права доступа:
mv temp.keytab /etc/krb5.keytab
chown root:stal-proxy /etc/krb5.keytab
chmod 640 /etc/krb5.keytab
Для проверки корректности keytab нужно:
-
просмотреть содержимое
keytab:
sudo klist -kt /etc/krb5.keytab
-
убедиться, что в выводе команды присутствуют следующие обязательные типы записей:
-
запись имени узла с символом
$(в верхнем регистре). Пример:OS-STAL$@LAN.LOC; -
запись службы
TERMSRV. Примеры:TERMSRV/os-stal@LAN.LOC, TERMSRV/os-stal.lan.loc@LAN.LOC; -
записи
hostиRestrictedKrbHostдля обоих вариантов имени (короткого и FQDN);
-
-
убедиться, что в выводе команды отсутствует запись имени узла в нижнем регистре с символом
$в конце:-
неправильно:
os-stal$@LAN.LOC; -
правильно:
OS-STAL$@LAN.LOC.
-
Настройка конфигурации stal-config.json
В конфигурационном файле /etc/stal/stal-config.json необходимо добавить (или раскомментировать) следующие параметры, отвечающие за Kerberos-аутентификацию:
// ...
"kerberos": {
"realm": "TST.LOC",
"keytab": "/etc/krb5.keytab",
"check:domain": true
},
// ...
Где LAN.LOC - имя домена.