Résoudre les erreurs d'authentification Kerberos dans Squid avec Active Directory
Pour diagnostiquer efficacement les erreurs Kerberos dans Squid, activez la journalisation détaillée. Dans squid.conf, ajoutez :
debug_options ALL,1 33,2 28,2 50,2 # authentification, ACL, DNS
Sections : 33 — authentification, 28 — ACL, 50 — DNS, 84 — helpers externes pour les ACL. Les niveaux vont de 0 (erreurs critiques) à 9 (dumps complets).
Configurez la sortie des logs :
access_log stdio:/opt/squid/var/log/squid/access.log
cache_log stdio:/opt/squid/var/log/squid/cache.log
Cela permet de capturer les détails de l’authentification GSS-API et Negotiate pour analyse.
Erreur « Type de chiffrement non valide » dans GSS
Le journal affiche :
ERROR: Validation de l'authentification Negotiate. Résultat : {result=BH, notes={message=gss_accept_sec_context() échoué : Échec GSS non spécifié. Le code mineur peut fournir plus d'infos. Type de chiffrement non valide }}
Cause : les tickets TGS côté client sont mis en cache avec une clé obsolète que Squid ne peut pas décrypter.
Étapes de correction sur le contrôleur PDC
- Identifiez le contrôleur PDC :
Get-ADDomain | Select-Object PDCEmulator
- Vérifiez et supprimez les anciens SPN :
setspn -L squid
setspn -D HTTP/testSquidPc.domain.ru userAD
- Réinitialisez le mot de passe de
userADdans Active Directory.
- Générez un nouveau keytab :
ktpass /princ HTTP/[email protected] /mapuser [email protected] /crypto ALL /ptype KRB5_NT_PRINCIPAL /pass password /out C:\squid.keytab
- Forcez la réplication :
repadmin /syncall /AdeP
Sur le serveur Squid
systemctl stop squid
chown proxy:proxy /opt/squid/etc/squid.keytab
chmod 600 /opt/squid/etc/squid.keytab
klist -kte /opt/squid/etc/squid.keytab
Sur le client
klist purge
Redémarrez Squid avec systemctl start squid. Cette méthode contourne le délai habituel de réplication de 10 à 24 heures.
Erreur « Clé du service non disponible »
Entrée de log :
ERROR: Validation de l'authentification Negotiate. Résultat : {result=BH, notes={message=gss_accept_sec_context() échoué : Échec GSS non spécifié. Le code mineur peut fournir plus d'infos. Clé du service non disponible }}
Causes fréquentes :
- Incompatibilité du KVNO (numéro de version de clé) entre AD et keytab.
- Mauvaise correspondance du SPN (nom complet vs court).
Vérifiez le KVNO
Sur Squid :
klist -kte /opt/squid/etc/squid.keytab
La sortie affiche le KVNO, le type de chiffrement et le principal.
Sur le contrôleur de domaine (PowerShell) :
Get-ADUser -Identity "userAD" -Properties msDS-KeyVersionNumber | Select-Object msDS-KeyVersionNumber
Lors de l’exécution de ktpass, utilisez /vno <nombre> pour aligner les KVNO.
Testez le keytab
sudo -u proxy kinit -kt /opt/squid/etc/squid.keytab HTTP/testSquidPc.domain.ru
Un succès se traduit par aucune sortie ; les problèmes proviennent généralement du démarrage du helper Squid.
Valeurs courantes d’etype dans le keytab :
- aes256-cts-hmac-sha1-96
- aes128-cts-hmac-sha1-96
- arcfour-hmac (ancien)
Configuration du chiffrement dans krb5.conf
Pour les erreurs « Type de chiffrement non valide », synchronisez les types de chiffrement dans /etc/krb5.conf :
[libdefaults]
default_tgs_enctypes = aes256-cts-hmac-sha1-96
default_tkt_enctypes = aes256-cts-hmac-sha1-96
permitted_enctypes = aes256-cts-hmac-sha1-96
Évitez allow_weak_crypto = true. Spécifiez uniquement les types AES exacts. Vérifiez que le keytab ne contient pas de DES ou RC4 obsolètes.
Erreur du pinger ICMP
Log :
pinger| Open icmp_sock: (1) Opération non autorisée
ERROR: Impossible de démarrer le pinger ICMP.
FATAL: Impossible d'ouvrir des sockets ICMP.
Solution : accordez les permissions socket brutes :
setcap cap_net_raw+ep /opt/squid/libexec/pinger
Redémarrez Squid.
Points clés à retenir
- Activez
debug_options 33,2pour un suivi approfondi de l’authentification. - Synchronisez le KVNO entre le keytab et AD avec
ktpass /vnoetrepadmin /syncall. - Nettoyez les tickets clients avec
klist purge. - Configurez
/etc/krb5.confpour utiliser AES256 ; désactivez le chiffrement faible. - Pour ICMP : exécutez
setcap cap_net_raw+epsur le binaire pinger.
— Editorial Team
Aucun commentaire pour le moment.