Агрегатор. Получение и добавление файла keytab для Kerberos-аутентификации
Получение и добавление файла keytab для Kerberos-аутентификации
Для получения keytab-файла на контроллере домена MS AD нужно:
заранее создать учетную запись (сервисный аккаунт), от имени которой будет работать служба. Для создания учетной записи нужно на контроллере домена перейти в стандартную утилиту «Active Directory - пользователи и компьютеры»;
- в свойствах учетной записи во вкладке «Account» активировать параметр «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, где следует сохранить результат выполнения команды.
