Получение и добавление файла keytab для Kerberos-аутентификации

Получение и добавление файла keytab для Kerberos-аутентификации

Для получения keytab-файла на контроллере домена MS AD нужно:

  • заранее создать учетную запись (сервисный аккаунт), от имени которой будет работать служба. Для создания учетной записи нужно на контроллере домена перейти в стандартную утилиту «Active Directory - пользователи и компьютеры»;

  • в свойствах учетной записи во вкладке «Account» активировать параметр «This account supports Kerberos AES 256 bit encryption»;

Активация параметра «This account supports Kerberos AES 256 bit encryption»


  • открыть интерфейс командной строки PowerShell и выполнить команду добавления службы для сервисного аккаунта:

setspn -A HTTP/disp.termidesk.local service_account

где:

service_account - наименование сервисного аккаунта;

  • для просмотра списка служб сервисного аккаунта можно воспользоваться командой:

setspn -L service_account
  • создать файл termidesk-msad.keytab для сервисного аккаунта:

ktpass -princ HTTP/disp.termidesk.local@TERMIDESK.LOCAL -mapuser service_account@TERMIDESK.LOCAL -pass <пароль_сервисного_аккаунта> -ptype KRB5_NT_PRINCIPAL -out termidesk-msad.keytab -crypto AES256-SHA1

где:

HTTP/disp.termidesk.local - указание ранее созданного субъекта-службы;

service_account@TERMIDESK.LOCAL - наименование сервисного аккаунта;

-out termidesk-msad.keytab - сохранение в файл termidesk-msad.keytab;

-crypto AES256-SHA1 - алгоритм для преобразования keytab-файла.

Алгоритм преобразования keytab-файла следует выбирать согласно установленным политикам безопасности MS AD.

Полученный файл termidesk-msad.keytab следует передать на соответствующий узел для хранения. Файл может быть сохранен в файловой системе узла Termidesk или в хранилище OpenBao.

Для передачи файла на целевой узел нужно выполнить команду:

scp C:\Windows\System32\termidesk-msad.keytab localuser@192.0.2.30:termidesk-msad.keytab

где:

C:\Windows\System32\termidesk-msad.keytab - путь к keytab-файлу;

localuser  - имя пользователя целевого узла;

192.0.2.30 - IP-адрес целевого узла.

После передачи файла необходимо выполнить ряд действий в зависимости от выбранного хранилища.

При хранении файла в файловой системе узла Termidesk:

  • переместить файл termidesk-msad.keytab в каталог /etc/opt/termidesk-vdi:

sudo mv /home/user/termidesk-msad.keytab /etc/opt/termidesk-vdi/
  • сделать владельцем этого файла пользователя termidesk:

sudo chown termidesk:termidesk /etc/opt/termidesk-vdi/termidesk-msad.keytab
  • перезапустить службу termidesk-vdi:

sudo systemctl restart termidesk-vdi

При хранении файла в хранилище OpenBao:

  • запустить интерпретатор Python:

sudo python3
  • перевести файл в формат base64:

import base64 with open('/home/user/termidesk-msad.keytab', 'rb') as file: keytab_bytes = file.read() keytab_base64 = base64.b64encode(keytab_bytes).decode('utf-8') keytab_base64

где:

/home/user/termidesk-msad.keytab - путь к keytab-файлу;

  • сохранить результат выполнения команды в хранилище OpenBao:

bao kv put secret/termidesk/ldap keytab='BQIAAABGAAIAC1VTVVA0MDcuTEFOAARIVFRQABJ0ZXJtaWRlc2subXlkb21h aW4AAAABAAAAAAUAFwAQhKQHwhUvWGEJk92QgI/tNA=='

где:

termidesk - значение переменной SECRETS_OPENBAO_TERMIDESK_PATH, заданной в конфигурационном файле /etc/opt/termidesk-vdi/termidesk.conf;

ldap - путь к хранилищу OpenBao, где следует сохранить результат выполнения команды.