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

Может ли хост Unix получить таблицы ключей Kerberos для другого хоста из Active Directory?

Мы используем Puppet для настройки наших серверов, но создание для них ключей Kerberos в настоящее время выполняется вручную. Мы хотели бы, чтобы вкладки Kerberos на машинах Unix были автоматически генерируется при первой загрузке машины.

Различные руководства (например, этот) там объясните, как keytab может быть получен на новой машине сам - но для этого требуется Samba и другие инструменты, которые мы не хотели бы устанавливать.

Может ли существующая машина Unix запросить keytab для другой Машина Unix с AD-сервером? Как? Нужно ли кодировать (возможно, используя Samba4 Python API - плохо документировано на данный момент), или это можно сделать с помощью существующих инструментов?

Хорошо, прежде всего, спасибо @ Jason-Walker за указатель на kclient - типичная реализация Sun (функциональная, но некрасивая) в ksh с вспомогательными утилитами, реализованными на C. По-видимому, присоединение к домену заключается в создании записи хоста через стандартный LDAP - сценарий Sun использует ldapsearch, ldapmodify, и ldapadd из OpenLDAP.

Как только хост зарегистрирован скриптом (вопреки оценке @ Jason-Walker, это жестяная банка выполняется с любого хоста в домене), он вызывает ksetpw вспомогательная утилита для создания keytab. Я даже почти закончил портировать все это на Linux и BSD, когда я adcli, который уже делает именно то, что нам нужно, и доступен в виде пакета RPM. Я даже создал FreeBSD-порт утилиты (при поддержке Хеймдаля) из чистой благодарности.

И было много ликования.

Прозрачного способа сделать это не будет. Вкладка ключей узла представляет собой копию секрета узла - пароля, который известен только серверам Kerberos (контроллеры домена Active Directory) и клиенту. В нормальных условиях keytab создается, когда клиент присоединяется к домену (в это время пользователь аутентифицируется в Домене и создает новый секрет для рабочей станции). После присоединения машина (по умолчанию) обновляет секрет каждые 30 дней.

Клиент Samba может генерировать keytab, но он делает это путем аутентификации учетной записи пользователя с помощью команды net join. Пароль аутентифицирующего пользователя используется для создания начального секрета хоста.

Другие программы, которые могут «присоединиться к домену» из клиента Linux и создать начальный секрет (и соответствующий файл keytab), включают службы аутентификации Dell (ранее - службы аутентификации Quest, ранее - службы аутентификации Vintela и все еще известные как «vas»); LikeWise; и Centrify.

Для выполнения первоначального присоединения клиенту необходимо будет пройти аутентификацию в Домене с использованием учетной записи домена, авторизованной для создания объектов компьютеров, присоединения рабочих станций к домену или сброса паролей учетных записей компьютеров для существующих членов домена. Учетная запись пользователя может быть аутентифицирована с помощью пароля или существующего файла ключей пользователя.

Эталонная реализация MIT Kerberos может создавать файлы keytab, но, насколько я помню, не может создавать новую учетную запись компьютера в Домене.

Изменить: если ваш дистрибутив содержит «kclient», он должен делать то, что вы хотите; вам все равно нужно встроить учетные данные в свой скрипт присоединения для первоначальной аутентификации в Домене. Видеть https://docs.oracle.com/cd/E36784_01/html/E36871/kclient-1m.html и