"Вытащить" Kerberos / Freeipa Keytabs с сервера IPA -> на локальный сервер

Я нахожусь в довольно незавидном положении администрирования установки Hortonworks (Ambari), использующей Kerberos, в полностью закрытой системе.

Вот проблема:

Я обнаружил несоответствие в файле keytab (назовем его foo) на сервере x:

$klist -kte /etc/security/keytabs/foo.keytab

KVNO Timestamp         Principal
---- ----------------- --------------------------------------------------------
12 10/21/15 16:24:27 foo@myrealm (xxxxxxxxxxxxx)
12 10/21/15 16:24:27 foo@myrealm (xxxxxxxxxxxxx)

На сервере free-ipa я запускаю следующую команду:

$ kadmin.local -q 'get_principal foo'
Authenticating as foo with password.
Principal: 
Expiration date: 
Last password change: 
Password expiration date: [none]
Maximum ticket life: 
Maximum renewable life: 
Last modified: xxxxx (foo)
Last successful authentication: [never]
Last failed authentication: [never]
Failed password attempts: 0
Number of keys: 4
Key: vno 21, abs-my-security-type, xxxxxx
Key: xxxxxxx
Key: xxxxxxx
Key: xxxxxxx
[snip]
Attributes: REQUIRES_PRE_AUTH
Policy: [none]

Версии "для фу" разные. Версия 21 на сервере freeipa. Версия 12 на клавиатуре.

Я обнаружил "ipa-getkeytab", который получит мне keytab, НО увеличивает номер версии (на сервере IPA) всякий раз, когда я запускаю его.

Моя версия ipa-getkeytab не имеет ключа -r, --retrieve (который сохраняет версию).

Мне нужно получить эту таблицу ключей на 7 серверах (узлы Hadoop). Я не могу использовать scp, ssh, как закрытую сеть.

Есть ли способ для меня создать (потянуть foo keytab) локально, не увеличивая номер версии?

:0/

Спасибо

Майлз.

2 ответа

Если ваша версия ipa-getkeytab не поддерживается -r Опция для извлечения ключевых таблиц, тогда единственная другая опция - один раз получить ключевые таблицы на одном сервере и безопасно передать их на другие серверы.

Извините, других вариантов нет. Реализация драйвера базы данных KDC (драйвера DAL) во FreeIPA не позволяет назначать определенные права администратора для удаленных соединений kadmin, поэтому вы даже не можете выполнять команды getprinc или listprincs.

Устранение неполадок с Kerberos keytabs

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

Файлы keytab обычно используются, чтобы позволить сценариям автоматически проходить аутентификацию с использованием Kerberos, не требуя вмешательства человека или доступа к паролю, хранящемуся в текстовом файле.

Таблицы ключей Kerberos содержат "номера версий"

Версия, хранящаяся в файле keytab, должна быть такой же, как и внутри Kerberos. ОШИБКА (в вопросе) вызвана этой ситуацией.

Вы должны быть в состоянии устранить неполадки файлов keytab и Kerberos.

Файлы keytab - (в Hortonworks / Ambari) они хранятся в каталоге /etc/security/keytabs:

[root@box keytabs]# ls -ltr
total 24

-r--r-----. 1 hdfs      hadoop    1054 Oct 26 14:24 foo.keytab

Практический пример "исправления" файла foo.keytab.

Используйте команду klist, чтобы показать участника и сохраненную версию (KVNO):

$ sudo su -
[root@box ~]# cd /etc/security/keytabs/
[root@box keytabs]# klist -kte foo.keytab
Keytab name: FILE:hdfs.headless.keytab
KVNO Timestamp         Principal
---- ----------------- --------------------------------------------------------
  27 10/26/15 14:08:16 foo@principal(******)
  27 10/26/15 14:08:17 foo@principal(******)
  27 10/26/15 14:08:17 foo@principal (******)
  27 10/26/15 14:08:17 foo@principal(******)

Основной файл, хранящийся в файле foo.keytab, имеет номер версии 27.

Сравнение номеров версий в Kerberos

Используйте команду kadmin.local для запроса принципов Kerberos (в вашем окне Kerberos / freeipa):

[root@kerbbox ~]# kadmin.local
Authenticating as principal admin/admin@***** with password.
kadmin.local:  getprinc foo@principal
Principal: foo@principal
Expiration date: [never]
Last password change: Mon Oct 26 14:08:17 GMT 2015
Password expiration date: Tue Jan 19 14:19:33 GMT 2016
Maximum ticket life: 1 day 00:00:00
Maximum renewable life: 7 days 00:00:00
Last modified: Mon Oct 26 14:08:17 GMT 2015 (admin/admin@*********)
Last successful authentication: Mon Oct 26 14:36:33 GMT 2015
Last failed authentication: Mon Oct 26 12:33:14 GMT 2015
Failed password attempts: 0
Number of keys: 4
Key: vno 34, ******, *****
Key: vno 34, ******, *****
Key: vno 34, ******, *****
Key: vno 34, ******, *****
MKey: vno 1
Attributes: REQUIRES_PRE_AUTH
Policy: [none]
kadmin.local:
kadmin.local:

Используйте команду getprinc, чтобы получить подробную информацию о:

  • foo@ Principal (версия 34)

    Проверьте номера версий (в файле keytab и Kerberos), убедившись, что они совпадают.

Воссоздание файла keytab

Если номера версий отличаются в вашем файле keytab (от Kerberos). Вам нужно будет воссоздать (foo.keytab).

Чтобы проверить, какие принципы содержатся в keytab, используйте команду klist -kte keytab file

  • Создайте файл foo.keytab с помощью kadmin.local и команды ktadd:

    [root@kerbbox ~]# kadmin.local
    
    ktadd -k /root/foo.keytab foo@principal
    

    Пример вывода (версия 11 для foo@ Principal):

    11 10/09/15 14:41:58 foo@principal (*******)
    11 10/09/15 14:41:58 foo@principal (*******)
    11 10/09/15 14:41:58 foo@principal (*******)
    11 10/09/15 14:41:58 foo@principal (*******)
    

    Каждый раз, когда вы запускаете команду ktadd, номер версии (принципа) будет увеличиваться.

    Скопируйте файл foo.keytab на серверы в вашем кластере и убедитесь, что права и права владения сохранены:

    # chmod 440 foo.keytab
    # chown hdfs:hadoop foo.keytab
    
    # klist -kte hdfs.headless.keytab
    
    # ls -ltr
    -r--r-----. 1 hdfs      hadoop    1054 Oct 26 14:24 foo.keytab
    

    Номер версии в таблице ключей и Kerberos должны быть одинаковыми.

    Перезапустите службу Ambari

    Вы увидите "зеленый" веб-интерфейс Ambari.

Другие вопросы по тегам