LINUX.ORG.RU
решено ФорумAdmin

freeipa - ошибка после восстановления из бекапа

 , , ,


1

4

На proxmox в lxc-контейнере вертелись два инстанса freeipa. После неудачного обновления контейнеры откатили на неделю назад штатными средствами бекапов proxmox. После этого перестало пускать в веб-морду:

Login failed due to an unknown reason.

и отрабатывать sudo-правила, хотя авторизация по ключу на сами сервера работают, сервисы которые были завязаны на ldap получают учетки.

В логах сыпет такое:

Sep 26 15:47:17 ipa.tc.example.ru systemd[1]: ipa-dnskeysyncd.service holdoff time over, scheduling restart.
Sep 26 15:47:17 ipa.tc.example.ru systemd[1]: Stopped IPA key daemon.
Sep 26 15:47:17 ipa.tc.example.ru systemd[1]: Started IPA key daemon.
Sep 26 15:47:21 ipa.tc.example.ru ipa-dnskeysyncd[18373]: ipa-dnskeysyncd: CRITICAL Kerberos authentication failed: Major (851968): Unspecified GSS failure.  Minor code may provide more information, Minor (2529639106): Credentials cache permissions incorrect (filename: /tmp/ipa-dnskeysyncd.ccache)
Sep 26 15:47:21 ipa.tc.example.ru systemd[1]: ipa-dnskeysyncd.service: main process exited, code=exited, status=1/FAILURE
Sep 26 15:47:21 ipa.tc.example.ru systemd[1]: Unit ipa-dnskeysyncd.service entered failed state.
Sep 26 15:47:21 ipa.tc.example.ru systemd[1]: ipa-dnskeysyncd.service failed.

Файла, на который ругается, нет:

# ls -la /tmp/ipa-dnskeysyncd.ccache
ls: cannot access /tmp/ipa-dnskeysyncd.ccache: No such file or directory
# ipactl status     
Directory Service: RUNNING
krb5kdc Service: RUNNING
kadmin Service: RUNNING
named Service: RUNNING
httpd Service: RUNNING
ipa-custodia Service: RUNNING
ntpd Service: STOPPED
pki-tomcatd Service: RUNNING
ipa-otpd Service: RUNNING
ipa-dnskeysyncd Service: RUNNING
ipa: INFO: The ipactl command was successful

ntp не стартует т.к. он внутри контейнера, как я понимаю. Не помню - работал ли он до восстановления из бекапа.

# cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)
# rpm -q ipa-server
ipa-server-4.6.8-5.el7.centos.12.x86_64
★★★★★

Последнее исправление: Turbid (всего исправлений: 1)

Версия с дивана, с freeipa не работал

У principal’ов в kerberos есть время, в течение которых они актуальны. Ну т.е. пока пароль не протухнет. При смене пароля старые keytab’ы превращаются в тыкву

Поэтому обычно сервисы, работающие с kerberos, сами время от времени обновляют пароль и забирают новый principal в keytab файл

Я бы предположил, что файл с ketyab’ом (/tmp/ipa-dnskeysyncd.ccache) не попал в бекап. Либо уже не актуален (пароль был сменен)

Соответственно, демона ipa-dnskeysyncd придётся заново дружить с доменом

Ну или другая не менее дурацкая версия:

Файла, на который ругается, нет:

У контейнера может быть своя ФС. Проверял именно в контейнере?

router ★★★★★
()
Ответ на: комментарий от router

Соответственно, демона ipa-dnskeysyncd придётся заново дружить с доменом

Ну или, если доступ к серверу kerberos ещё есть, попробовать найти principal, который соответсвует этому демону, вручную экспортировать его в файл, подкинуть этот файл ipa-dsnkeysyncd и посмотреть, взлетит ли он

kadmin -p adminname@REALM

> ktadd -k /tmp/ipa-dnskeysyncd.ccache principal@REALM
router ★★★★★
()
Ответ на: комментарий от router

Да, похоже на то:

# sudo -u ods /bin/bash -i
bash-4.2$  kinit -k -t /etc/ipa/dnssec/ipa-dnskeysyncd.keytab 
kinit: Keytab contains no suitable keys for host/ipa.tc.example.ru@TC.EXAMPLE.RU while getting initial credentials

Сейчас попробую перегенерить

Turbid ★★★★★
() автор топика
Последнее исправление: Turbid (всего исправлений: 1)
Ответ на: комментарий от Turbid

Подожди. ИМХО, для dns и не должно быть ключа HOST/

скорее там другой. посмотри содержимое так:

ktutil
> read_kt /etc/ipa/dnssec/ipa-dnskeysyncd.keytab
> list
router ★★★★★
()
Последнее исправление: router (всего исправлений: 1)
Ответ на: комментарий от router
slot KVNO Principal
---- ---- ---------------------------------------------------------------------
   1    2 ipa-dnskeysyncd/ipa.tc.example.ru@TC.EXAMPLE.RU
   2    2 ipa-dnskeysyncd/ipa.tc.example.ru@TC.EXAMPLE.RU
   3    2 ipa-dnskeysyncd/ipa.tc.example.ru@TC.EXAMPLE.RU
   4    2 ipa-dnskeysyncd/ipa.tc.example.ru@TC.EXAMPLE.RU
   5    2 ipa-dnskeysyncd/ipa.tc.example.ru@TC.EXAMPLE.RU
   6    2 ipa-dnskeysyncd/ipa.tc.example.ru@TC.EXAMPLE.RU

Turbid ★★★★★
() автор топика
Ответ на: комментарий от Turbid

KNVO это и есть версия principal’a (ну или версия пароля)

в ldap ту же цифру можно увидеть в каком-то поле

Если пароль менялся, попробуй добавить в keytab новую версию через kadmin

router ★★★★★
()
Ответ на: комментарий от router

Если пароль менялся

Нет, не менялся.

Turbid ★★★★★
() автор топика
Ответ на: комментарий от router

Сделал:

ktadd -k /etc/ipa/dnssec/ipa-dnskeysyncd.keytab ipa-dnskeysyncd/ipa.tc.example.ru@TC.EXAMPLE.RU

kinit -kt /etc/ipa/dnssec/ipa-dnskeysyncd.keytab
[20893] 1695738484.552523: Resolving unique ccache of type KEYRING
[20893] 1695738484.552524: Getting initial credentials for host/ipa.tc.example.ru@TC.EXAMPLE.RU
[20893] 1695738484.552525: Looked up etypes in keytab: (empty)
[20893] 1695738484.552526: Getting initial credentials for host/ipa.tc.example.ru@TC.EXAMPLE.RU
[20893] 1695738484.552527: Looked up etypes in keytab: (empty)
kinit: Keytab contains no suitable keys for host/ipa.tc.example.ru@TC.EXAMPLE.RU while getting initial credentials
Turbid ★★★★★
() автор топика
Последнее исправление: Turbid (всего исправлений: 1)
Ответ на: комментарий от Turbid

А его там и нет. И скорее всего не должно быть ;)

Возможно, подойдёт что-то вроде

kinit -kt /etc/ipa/dnssec/ipa-dnskeysyncd.keytab ipa-dnskeysyncd/ipa.tc.example.ru@TC.EXAMPLE.RU

Т.к. man kinit

By default, a host ticket for the local host is requested,  but any principal may be specified
router ★★★★★
()
Последнее исправление: router (всего исправлений: 1)
Ответ на: комментарий от router

Так, с dnskeysyncd разобрался - вызвал вручную эту функцию, файл ipa-dnskeysyncd.ccache появился и демон поднялся.

Но изначальная проблема осталась.

Turbid ★★★★★
() автор топика
Последнее исправление: Turbid (всего исправлений: 1)
Ответ на: комментарий от Turbid

вызвал вручную эту функцию, файл ipa-dnskeysyncd.ccache появился и демон поднялся

чудеса - на основном сервере это прокатило, а на реплике - нет

Turbid ★★★★★
() автор топика
Ответ на: комментарий от Turbid

А ещё на основном ты обновил /etc/ipa/dnssec/ipa-dnskeysyncd.keytab

Может функция ошибку вернула?

router ★★★★★
()
Ответ на: комментарий от Turbid

Но изначальная проблема осталась.

Изначальная проблема - авторизация в веб-морде? Скорее всего у неё тоже есть свой keytab

router ★★★★★
()

Проблему пока решил так - откатил на еще более древний бекап. Тут была другая проблема - он явно ругался на протухшие серты.

Починилось с помощью:

ipa-cert-fix

Turbid ★★★★★
() автор топика
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.