- Вопрос или проблема
- Ответ или решение
- Создание учетных записей компьютеров и SPN в Kerberos (krb5) keytab файле для домена Windows Active Directory
- Введение
- Часть 1: Понимание ключевых понятий
- Kerberos и Keytab
- Учитываемые утилиты
- Часть 2: Процесс создания учетных записей и SPN
- Шаг 1: Создание учётной записи компьютера
- Шаг 2: Регистрация SPN
- Шаг 3: Создание keytab файла
- Шаг 4: Использование msktutil для автоматизации
- Заключение
Вопрос или проблема
Много статей в интернете описывают, как можно подключить 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: Создание учётной записи компьютера
-
Открытие командной строки на сервере Windows.
-
Создание новой учетной записи компьютера в Active Directory с помощью командлета PowerShell:
New-ADComputer -Name "YourComputerName" -Path "OU=Computers,DC=domain,DC=com"
Шаг 2: Регистрация SPN
- Использование
setspn
для регистрации необходимых SPN:setspn -S HOST/YourComputerName.domain.com DOMAIN\YourComputerName$ setspn -S RestrictedKrbHost/YourComputerName.domain.com DOMAIN\YourComputerName$
Шаг 3: Создание keytab файла
-
Использование
ktpass
для создания ключа:ktpass -princ "HOST/YourComputerName.domain.com" -mapuser "DOMAIN\YourComputerName$" -pass <YourPassword> -out /path/to/your.keytab -ptype KRB5_NT_PRINCIPAL
-
Проверка созданного keytab файла с помощью
ktutil
в Linux:ktutil ktutil: read /path/to/your.keytab ktutil: list
Шаг 4: Использование msktutil для автоматизации
Для более удобного создания keytab файлов, рекомендуется использовать msktutil
:
-
Установка msktutil на вашей системе:
apt-get install msktutil
-
Создание keytab файла с помощью
msktutil
:msktutil --create --computer yourcomputername --user DOMAIN\YourComputerName$ --password <YourPassword> --keytab /path/to/your.keytab
-
Регистрация SPN с помощью
msktutil
также возможно через одноимённый флаг:msktutil --create --computer yourcomputername --register-spn
Заключение
Создание учетных записей компьютеров и SPN в Kerberos keytab файле для Windows Active Directory может быть выполнено как вручную, так и с помощью утилит, таких как msktutil
. Важно помнить, что ручное создание может потребовать больше шагов и уверенности в корректности ввода. Использование msktutil
упрощает этот процесс и позволяет избежать возможных ошибок, что делает его предпочтительным выбором для администраторов, работающих с интеграцией Linux и Windows.
Эта информация охватывает основные шаги и утилиты, необходимые для успешного выполнения задачи. Надеемся, что предоставленные рекомендации помогут вам добиться успешной интеграции ваших систем и упростят процессы управления учетными записями и аутентификацией.