Назад | Перейти на главную страницу

извлечение принципала службы из AD в keytab

Работая с Samba 4 в качестве «члена домена» Windows, я хотел бы автоматизировать развертывание клавиатурных вкладок. В частности, мне нужен эквивалент добавления субъектов-служб в соответствующие таблицы. E. g.

# kadmin -k /etc/squid/proxy.keytab -w secret -p kadmin/admin -q "ktadd HTTP/proxy.my.domain"

К сожалению, MS, похоже, не предлагает kadmin совместимость. В Samba есть такие команды, как

# net rpc vampire keytab all.keytab -U Administrator%secret
# net ads keytab create -U Administrator%secret

Однако ни один из них не может выборочно извлекать принципалов службы. Кроме того, для нетривиальной установки сайта я полагаю, что «вампирский» метод потребует слишком много системных ресурсов, не говоря уже о необходимой постобработке с ktutil.

В моей тестовой настройке DC - это сервер Windows2008, клиент работает под управлением Linux версии 3.14, MIT KRB5 1.15.x и Samba 4.x. Рассматриваемый керберизованный сервис - это Squid v3.5.x. Сама интеграция Kerberos хорошо работает при создании вкладок на контроллере домена (ktpass), а затем вручную скопировать их на каждую машину. Но я бы предпочел избегать такого пешеходного подхода.

Это не обязательно должно быть решение на основе Samba. Это просто путь, по которому я исследую банкомат.

Единственная сложная часть того, что вы сейчас пытаетесь сделать, - это извлечь существующий пароль из учетной записи / принципала, для которого вы создаете keytab. Остальная информация легко доступна через запросы LDAP к DC через msDS-KeyVersionNumber и servicePrincipalName атрибуты.

Предполагая, что текущий пароль для учетной записи не установлен на камне, вы можете вместо этого просто сбросить / рандомизировать его на что-то, сгенерированное в процессе автоматизации. Затем вы просто используете ktutil для создания keytab с теперь известным паролем и запрошенными KVNO и SPN (ами).