Tags : kerberos, linux, windows-server, glpi, apache, sysadmin
Durée de lecture : 3 min
Petit mémo à chaud. C’est le genre de panne qui fait perdre une heure si on cherche au mauvais endroit, et 30 secondes à corriger une fois qu’on a compris.
Le contexte
Environnement Windows Server avec Active Directory (MONDOMAINE.LAN), un GLPI sur Linux (glpi.mondomaine.lan) qui fait de l’authentification SSO via mod_auth_gssapi / SPNEGO. Ça tourne sans problème depuis des mois.
Maintenance mensuelle sur les DC : reboots, mises à jour, la routine. Au retour : plus personne ne se logue sur GLPI en SSO. Les utilisateurs tombent sur un prompt d’authentification basique ou un 401 direct.
Le symptôme
Dans les logs Apache, mod_auth_gssapi est catégorique :
HTTP/glpi.mondomaine.lan@MONDOMAINE.LAN kvno 12 not found in keytab; keytab is likely out of date
Traduction : le kvno (Key Version Number) enregistré dans le keytab local ne correspond plus à celui d’Active Directory. AD a incrémenté la version de la clé du compte de service pendant la maintenance, et le keytab Linux est resté sur l’ancienne version.
Le diagnostic
Deux commandes pour confirmer le désync :
# Version stockée dans le keytab local
klist -kte /etc/krb5.keytab
# Version actuelle côté AD
kvno HTTP/glpi.mondomaine.lan@MONDOMAINE.LAN
Si les numéros divergent, c’est bien ça. Le serveur tente de déchiffrer les tickets Kerberos entrants avec une clé périmée — l’échange échoue systématiquement.
Le fix
# 1. Vider le cache Kerberos
kdestroy -A
# 2. Renouveler le TGT depuis le keytab
kinit -kt /etc/krb5.keytab HTTP/glpi.mondomaine.lan@MONDOMAINE.LAN
# 3. Vérifier que le ticket est valide
klist
# 4. Redémarrer Apache
systemctl restart apache2
Retour immédiat du SSO. Durée d’intervention effective : 30 secondes.
Ce qu’il s’est passé exactement
Les mises à jour Windows Server peuvent provoquer une rotation des clés Kerberos sur les comptes de service, notamment lors de certains patchs liés à l’authentification ou d’un redémarrage du KDC. Le kvno est incrémenté côté AD, mais le keytab sur le serveur Linux n’est pas notifié et reste sur l’ancienne version.
Ce n’est pas un bug — c’est le comportement attendu. C’est juste une dépendance opérationnelle à avoir en tête : toute maintenance AD peut casser l’auth Kerberos sur les hôtes Linux joints au domaine.
À retenir
- Après une fenêtre de maintenance AD, penser à vérifier les services Linux GSSAPI.
- Le symptôme est toujours le même : 401 ou fallback basic auth, avec
kvno X not found in keytabdans les logs. - Le fix prend 30 secondes. Le diagnostic aussi, si on sait où regarder.
- Si vous avez plusieurs hôtes Linux GSSAPI dans le parc (GLPI, Zabbix, etc.), un playbook Ansible post-maintenance règle le problème de façon systématique. Sujet d’un prochain article.
Environnement : Ubuntu 24.04 / Apache 2.4 / mod_auth_gssapi / Windows Server 2022 AD