После обновления libcares до версии 1.34.8-alt1 перестал корректно работать SSSD при интеграции с AD/Kerberos. SSSD запускается, но backend домена сразу переходит в offline: sssd_be[6340]: Backend is offline Из-за этого после успешной авторизации пользователя автоматически не выдаётся Kerberos TGT (klist не показывает билет). На предыдущей версии libcares 1.34.6-alt1 всё работает корректно. Таким образом, проблема воспроизводится именно с libcares-1.34.8-alt1. Прошу проверить возможную регрессию в libcares-1.34.8-alt1, влияющую на работу SSSD/DNS/Kerberos.
Аналогичную проблему поймали в Fedora: https://bugzilla.redhat.com/show_bug.cgi?id=2510945 https://github.com/cockpit-project/bots/pull/9280#issuecomment-5168472448 Первопричиной является изменение в апстриме c-ares (https://github.com/c-ares/c-ares/commit/5d2d2d2884b491d274be8d1c487578744e56f0a4 в стабильной ветке) — c-ares теперь считает ответы на запросы типа SRV, где используется сжатие в поле TARGET, ошибочными (формально в RFC 2782 это действительно запрещено), однако DNS-сервер в samba использует сжатие в своих ответах в том числе и на запросы типа SRV (со стороны samba запрет сжатия реализован только для типов TKEY и TSIG). Аналогичную проверку на соответствие RFC 2782 ранее отключали в golang как раз из-за несовместимостей с samba: https://github.com/golang/go/issues/36718 Кроме того, в RFC 3597 рекомендуется с принимающей стороны поддерживать сжатие для SRV, так что с этой точки зрения новая проверка в c-ares избыточно строгая: Receiving servers MUST decompress domain names in RRs of well-known type, and SHOULD also decompress RRs of type RP, AFSDB, RT, SIG, PX, NXT, NAPTR, and SRV (although the current specification of the SRV RR in [RFC2782] prohibits compression, [RFC2052] mandated it, and some servers following that earlier specification are still in use).
Стенды: Alt Server 11.1 Alt Workstation 11.2 Версии: libcares-1.34.8-alt1.x86_64 sssd-2.9.8-alt3.x86_64 Шаги воспроизведения: 1. Развернуть Samba домен и подключить клиента На клиенте: 2. # systemctl restart sssd 3. # sssctl domain-status SAMBA.TESTDOMAIN 4.Очистить лог backend SSSD # truncate -s 0 /var/log/sssd/sssd_SAMBA.TESTDOMAIN.log 5. Выполнить LDAP-запрос через NSS/SSSD # id testuser@samba.testdomain 6. # grep -iE 'AD_GC|No available|Server \[NULL\]|resolution failed|Inserted primary|Marking SRV' /var/log/sssd/sssd_SAMBA.TESTDOMAIN.log Ожидаемый результат: 3. Online status: Online Active servers: AD Global Catalog: dc.samba.testdomain AD Domain Controller: dc.samba.testdomain Discovered AD Global Catalog servers: - dc.samba.testdomain Discovered AD Domain Controller servers: - dc.samba.testdomain 6. Ошибок нет Фактический результат: 3. Online status: Online (через 15-20 минут статус меняется на Offline) Active servers: AD Global Catalog: not connected AD Domain Controller: dc.samba.testdomain Discovered AD Global Catalog servers: None so far. Discovered AD Domain Controller servers: - dc.samba.testdomain 6. No available servers for service 'AD_GC' Server [NULL] resolution failed: [5]: Ошибка ввода/вывода Доп. инфо: Билеты при этом выдаются успешно. В Сизиф - не воспроизводится Проверил со старой версией libcares 1.34.6-alt1 - не воспроизводится.
Upstreamed: https://github.com/c-ares/c-ares/issues/1287
пока в c-ares будут чинить, ревертим коммит.