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

Настройка Kerberos

Kerberos необходим для реализации функции единого входа (SSO), чтобы пользователи могли войти в десктоп-клиент или на портал администрирования и запускать приложения без ввода учетных данных.

Kerberos можно настроить отдельно для каждого каталога. Если он не настроен, будет использоваться аутентификация по имени пользователя и паролю.

Настройка Kerberos состоит из нескольких этапов.

При использовании сквозной Kerberos-аутентификации в сценарии, когда пользователи и терминальные серверы/ВРМ размещены в разных доверенных доменах одного леса, требуется выполнить дополнительные настройки:

  1. Добавьте все домены, в которых находятся пользователи и серверы, в раздел LDAP-каталоги Termit.

  2. Для каждого добавленного домена загрузите keytab-файл, выпущенный на том домене, где размещены терминальные серверы/ВРМ.

  1. Kerberos не работает на веб-клиентах.

  2. Сценарий подключения десктоп-клиента на ОС Linux к ТС/ВРМ на ОС Windows с Kerberos недоступен, если ТС/ВРМ работают под управлением Windows Server 2012, поскольку используемый при сквозной аутентификации Remote Credential Guard поддерживается начиная с Windows Server 2016.

Создание keytab-файла

AD

Чтобы сгенерировать keytab-файл, на контроллере домена:

  1. Создайте сервисную учетную запись в домене, например krb-trm.

  2. В свойствах учетной записи включите поддержу шифрования AES128 и AES256.

  3. Сгенерируйте keytab-файл с помощью команды:

    • После символа @ доменное имя должно быть указано заглавными буквами.

    • Команда выполняется от имени администратора домена.

    ktpass /out krb-trm.keytab /princ HTTP/broker.termit.local@TERMIT.LOCAL /pass * /mapuser krb-trm@TERMIT.LOCAL /ptype KRB5_NT_PRINCIPAL /crypto AES256-SHA1

    Где:

    • krb-trm — имя сервисной учетной записи, созданной на шаге 1.

    • krb-trm.keytab — целевой keytab-файл, сгенерированный на основе сервисной учетной записи krb-trm

    • broker.termit.local — FQDN брокера

    • TERMIT.LOCAL — доменное имя

Сгенерированный keytab-файл будет сохранен в текущей директории, в которой была выполнена команда, если не указан другой путь для вывода (например /out /path/to/directory/krb-trm.keytab). Далее полученный keytab-файл загрузите в настройках Kerberos.

Samba DC

Чтобы сгенерировать keytab-файл, на контроллере домена:

  1. Создайте сервисную учетную запись в домене, например krb-trm:

    sudo samba-tool user create krb-trm --description=”Service account”

    Задайте пароль для сервисной учётной записи (будет запрошен интерактивно).

  2. В свойствах учетной записи включите поддержу шифрования AES128 и AES256. Для этого:

    1. Отредактируйте атрибуты пользователя:

      sudo samba-tool user edit krb-trm
    2. В открывшемся текстовом редакторе добавьте или измените строку:

      msDS-SupportedEncryptionTypes: 24

      Сохраните изменения и выйдите из редактора.

      Значение 24 включает алгоритмы шифрования AES128 и AES256 и отключает устаревшие DES и RC4.

  3. Добавьте SPN к сервисной учетной записи:

    sudo samba-tool spn add HTTP/broker.termit.local krb-trm
  4. Сгенерируйте keytab-файл с помощью команды:

    sudo samba-tool domain exportkeytab krb-trm.keytab --principal=HTTP/broker.termit.local

    Где:

    • krb-trm.keytab — целевой keytab-файл, сгенерированный на основе сервисной учетной записи krb-trm;

    • broker.termit.local — FQDN брокера.

Сгенерированный keytab-файл будет сохранен в текущей директории, в которой была выполнена команда, если не указан другой путь для вывода (например /out /path/to/directory/krb-trm.keytab). Далее полученный keytab-файл загрузите в настройках Kerberos.

FreeIPA/ALD Pro

Чтобы сгенерировать keytab-файл, на сервере каталогов:

  1. Создайте службу FreeIPA с именем брокера с помощью команды:

     ipa service-add --force --skip-host-check HTTP/broker.termit.local

    Где:

    • ipa — утилита командной строки для работы с FreeIPA;

    • service-add — команда для добавления нового сервиса в FreeIPA;

    • --force — принудительное добавление сервиса в FreeIPA;

    • --skip-host-check — пропуск проверки наличия хоста в IPA при добавлении сервиса;

    • HTTP/broker.termit.local — имя сервиса в формате тип/хост, где:

      • HTTP – тип сервиса (в данном случае - для веб-приложений);

      • broker.termit.local — доменное имя.

  2. Сгенерируйте keytab-файл с помощью команды:

    ipa-getkeytab -p HTTP/broker.termit.local -k ~/krb_file.keytab

    Где:

    • ipa-getkeytab — утилита для получения (выгрузки) keytab-файла из FreeIPA;

    • -p HTTP/broker.termit.local — указывает principal (учетную запись Kerberos) в формате тип/хост, где:

      • HTTP – тип сервиса (для веб-приложений);

      • broker.termit.local – имя хоста, для которого создается keytab-файл;

      • -k ~/krb_file.keytab — путь к файлу, в который будет сохранен keytab.

Далее полученный keytab-файл загрузите в настройках Kerberos.

Загрузка keytab-файла

Чтобы загрузить keytab-файл:

  1. На портале администрирования в левом меню выберите раздел Настройки.

  2. Перейдите на вкладку LDAP-каталоги и наведите курсор на полное имя каталога.

  3. Нажмите b  kerberos.

  4. Чтобы включить использование Kerberos, активируйте опцию Включить.

  5. Чтобы загрузить файл, нажмите на поле keytab-файл.

  6. Нажмите Сохранить.

Keytab-файл будет загружен.

Настройка ТС/ВРМ/АРМ

Настройка ТС/ВРМ/АРМ ОС Linux

Для работы аутентификации по Kerberos на терминальных серверах под управлением Linux, включая поддерживаемые операционные системы (РЕД ОС, Astra Linux, Debian, ALT Linux, OpenSUSE):

  1. В файле конфигурации sshd (/etc/ssh/sshd_config) в параметре GSSAPIAuthentication, укажите значение «yes».

    В ALT Linux файл конфигурации sshd находится по пути: /etc/openssh/sshd_config.

  2. В файле конфигурации sshd (/etc/ssh/sshd_config) параметр AuthenticationMethods должен быть задан в соответствии с рекомендациями.

  3. Перезагрузите sshd с помощью команды:

    sudo systemctl restart sshd
  4. В LDAP в свойствах объектов Linux терминальных серверов/ВРМ на вкладке Делегирование выберите Доверять компьютеру делегирование любых служб (только Kerberos).

    Только для подключения с клиентских устройств под управлением ОС Windows.

    s  ad samba

Терминальный сервер будет настроен для работы аутентификации по Kerberos.

Настройка ТС/ВРМ/АРМ ОС Windows

Для настройки аутентификации по Kerberos выполните следующие шаги:

  1. Откройте редактор локальной групповой политики, выполнив команду в командной строке Windows (CMD):

    gpedit.msc
  2. Включите политики Удаленный узел позволяет делегирование неэкспортируемых учетных данных и Ограничить делегирование учетных данных удаленным серверам по следующему пути: Конфигурации компьютера  Политики  Административные шаблоны  Система  Передача учетных данных.

  3. Убедитесь, что в десктоп-клиенте на ОС Linux в файле /etc/krb5.conf в секции [libdefaults] задан следующий параметр:

    forwardable = true

На Windows Server 2016 политика «Удаленный узел позволяет делегирование неэкспортируемых учетных данных» (Remote host allows delegation of non-exportable credentials) отсутствует. Для настройки делегирования выполните команду в командной строке Windows (CMD):

reg.exe add HKLM\SYSTEM\CurrentControlSet\Control\Lsa /v DisableRestrictedAdmin /d 0 /t REG_DWORD /f

Настройка десктоп-клиента

Перед началом настройки убедитесь, что клиентское устройство, на которое установлен десктоп-клиент, и ТС/ВРМ/АРМ введены в один домен.

Десктоп-клиент на ОС Linux

Аутентификация на брокере Termit в браузере

Chrome
  1. Создайте в каталоге /etc/chromium/policies/managed/ файл mydomain.json с повышенными правами root, если он не был создан ранее, и добавьте в него параметры:

    {
    "AuthServerAllowlist": "*.termit.local",
    "AuthNegotiateDelegateAllowlist": "*.termit.local"
    }
  2. Откройте в браузере Google Chrome страницу chrome://policy и проверьте, что настройки применились.

    s  chrome rules

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

Firefox
  1. Откройте браузер Mozilla Firefox и перейдите на страницу конфигурации about:config.

  2. Добавьте параметр .termit.local для опций:

    • network.negotiate-auth.trusted-uris;

    • network.automatic-ntlm-auth.trusted-uris;

    • network.negotiate-auth.delegation-uris;

      s  firefox rules
  3. Примените изменения и перезапустите браузер.

Аутентификация на Linux ТС/ВРМ/АРМ Termit

Убедитесь, что на клиентском устройстве Linux в /etc/krb5.conf в [libdefaults] секции задан параметр forwardable = true.

Десктоп-клиент на ОС Windows

Аутентификация на брокере Termit в десктоп-клиенте и браузере

  1. Добавьте адрес внутреннего балансировщика (при «High Availability» развертывании) или брокера (при «Standalone» развертывании) в надежные сайты. В качестве примера будем рассматривать адрес broker.termit.local. Это можно сделать через групповые политики или настройки системы.

    • Групповые политики:

      1. Перейдите в Конфигурация пользователя  Административные шаблоны  Компоненты Windows  Internet Explorer  Панель управления браузером  Вкладка «Безопасность»  Список назначений зоны для веб-сайтов.

      2. Включите политику, нажмите Показать…​.

      3. В поле Имя значения добавьте необходимый адрес, в нашем примере — https://broker.termit.local/.

      4. В поле Значение укажите 2 (это «Зона надёжных сайтов»).

    • Настройки системы:

      1. В Панель управления  Сеть и Интернет  Свойства браузера  Безопасность выберите Надёжные сайты, нажмите Сайты и добавьте необходимый узел в зону. В нашем примере — запись https://broker.termit.local/.

  2. Включите опцию Автоматический вход с текущим именем пользователя и паролем в параметрах безопасности доверенных сайтов. Это можно сделать через групповые политики или настройки системы.

    • Групповые политики:

      1. Перейдите в Конфигурация пользователя  Административные шаблоны  Компоненты Windows  Internet Explorer  Панель управления браузером  Вкладка «Безопасность»  Зона надежных сайтов  Параметры входа.

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

    • Настройки системы:

      1. В Панель управления  Сеть и Интернет  Свойства браузера  Безопасность выберите Надёжные сайты, нажмите Другой и выберите опцию Проверка подлинности  Ввод  Автоматический вход в сеть с текущим именем пользователя и паролем.

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

Аутентификация на брокере Termit в десктоп-клиенте и браузере будет работать без ввода учетных данных.

Аутентификация на Windows терминальном сервере/ВРМ Termit

  1. Убедитесь, что аутентификация на брокере Termit в десктоп-клиенте осуществляется без ввода учётных данных.

  2. В групповых политиках в разделе Конфигурация компьютера  Административные шаблоны  Система  Передача учетных данных настройте параметры Разрешить передачу учетных данных, установленных по умолчанию и Разрешить передачу учетных данных, установленных по умолчанию, с проверкой подлинности сервера «только NTLM».

    Укажите в них SPN для терминальных серверов. Например:

    • TERMSRV/terminal1.termit.local — для включения Kerberos при доступе на сервер terminal1.termit.local.

    • TERMSRV/*.termit.local — для включения Kerberos при доступе ко всем серверам из домена termit.local.