Ручное создание учетной записи компьютера и SPN в файле ключей Kerberos (krb5) для домена Active Directory Windows

Вопрос или проблема

Много статей в интернете описывают, как можно подключить Linux-систему к домену Windows Active Directory, некоторые из них используют “realmd”, другие – samba и так далее. Также есть статьи, которые описывают, как можно сделать это вручную без использования realm join или net ads join и так далее. Когда я смотрю на файл kerberos keytab (через ktutil), который был автоматически сгенерирован с помощью этих утилит для подключения к AD, я вижу записи, такие как COMPUTER$DOMAIN.EXAMPLE.COM (обратите внимание на знак доллара).

Но если я следую статьям, которые описывают, как можно сделать это вручную (не используя realmd и т. д.), например, создавая keytabs с помощью команды ktpass (Windows AD), setspn и создавая сервисные принципы (такие как RestrictedKrbHost/domain.example.com и HOST/domain.example.com и т. д.), то эти файлы keytab не содержат записи COMPUTER$DOMAIN.EXAMPLE.COM. Не уверен, пропустил ли я что-то или ошибся, но кажется, что при использовании утилит вроде ktpass на Windows я не могу создать такие записи вручную, или не знаю как.

Вопрос: Как работают автоматические утилиты (такие как realmd) для создания этих COMPUTER$DOMAIN.EXAMPLE.COM записей в ключах, или, иначе говоря, как я могу создать их вручную (с стороны Linux или Windows AD), если не использую такие утилиты? Просмотр исходников realmd ставит меня в недоумение. (https://github.com/freedesktop/realmd/)

Спасибо!

Утилита, которую я искал, называется “msktutil“, разработанная Дэном Перри и другими (https://github.com/msktutil/msktutil). Она может создавать ключи, которые мне нужны ([email protected]>COM). Страница man (Ubuntu) доступна здесь: https://manpages.ubuntu.com/manpages/eoan/man1/msktutil.1.html

Это полезный инструмент, когда вы хотите создать скрипты для образов/контейнеров Docker, которые необходимо интегрировать с Windows Active Directory, избегая SSSD и монтирования каталога хоста /var/lib/sss/pipes в качестве тома данных для контейнера. Эта утилита также позволяет мне поддерживать синхронизацию с AD.

Ответ или решение

Создание учетных записей компьютеров и SPN в Kerberos (krb5) keytab файле для домена Windows Active Directory

Введение

Современные технологии интеграции Linux-систем с Windows Active Directory (AD) становятся всё более востребованными. Множество статей описывают автоматизированные методы, такие как использование realmd, samba и других утилит. Однако иногда необходимо выполнить эти действия вручную, без использования таких инструментов. В этой статье мы рассмотрим, как вручную создать учетные записи компьютеров и Service Principal Names (SPN) в Kerberos keytab файле, чтобы обеспечить корректное взаимодействие с Windows AD.

Часть 1: Понимание ключевых понятий

Kerberos и Keytab

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

  • Keytab: файл, содержащий пары ключ/значение для аутентификации сервиса. В Linux системы keytab обычно используется для аутентификации с помощью Kerberos.

  • Service Principal Name (SPN): уникальный идентификатор для сервисов и хостов, регистрируемый в Active Directory.

Учитываемые утилиты

  • ktpass: Windows-утилита, используемая для создания и обновления ключей для определенных SPN.

  • setspn: утилита для регистрации и управления SPN в Active Directory.

  • msktutil: мощный инструмент для создания и управления keytab файлами, что позволяет избежать некоторых ограничений, связанных с ktpass.

Часть 2: Процесс создания учетных записей и SPN

Шаг 1: Создание учётной записи компьютера

  1. Открытие командной строки на сервере Windows.

  2. Создание новой учетной записи компьютера в Active Directory с помощью командлета PowerShell:

    New-ADComputer -Name "YourComputerName" -Path "OU=Computers,DC=domain,DC=com"

Шаг 2: Регистрация SPN

  1. Использование setspn для регистрации необходимых SPN:
    setspn -S HOST/YourComputerName.domain.com DOMAIN\YourComputerName$
    setspn -S RestrictedKrbHost/YourComputerName.domain.com DOMAIN\YourComputerName$

Шаг 3: Создание keytab файла

  1. Использование ktpass для создания ключа:

    ktpass -princ "HOST/YourComputerName.domain.com" -mapuser "DOMAIN\YourComputerName$" -pass <YourPassword> -out /path/to/your.keytab -ptype KRB5_NT_PRINCIPAL
  2. Проверка созданного keytab файла с помощью ktutil в Linux:

    ktutil
    ktutil: read /path/to/your.keytab
    ktutil: list 

Шаг 4: Использование msktutil для автоматизации

Для более удобного создания keytab файлов, рекомендуется использовать msktutil:

  1. Установка msktutil на вашей системе:

    apt-get install msktutil
  2. Создание keytab файла с помощью msktutil:

    msktutil --create --computer yourcomputername --user DOMAIN\YourComputerName$ --password <YourPassword> --keytab /path/to/your.keytab
  3. Регистрация SPN с помощью msktutil также возможно через одноимённый флаг:

    msktutil --create --computer yourcomputername --register-spn

Заключение

Создание учетных записей компьютеров и SPN в Kerberos keytab файле для Windows Active Directory может быть выполнено как вручную, так и с помощью утилит, таких как msktutil. Важно помнить, что ручное создание может потребовать больше шагов и уверенности в корректности ввода. Использование msktutil упрощает этот процесс и позволяет избежать возможных ошибок, что делает его предпочтительным выбором для администраторов, работающих с интеграцией Linux и Windows.

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

Оцените материал
Добавить комментарий

Капча загружается...