Le problème
Un client CentOS/RHEL 6 ne parvient pas à s'inscrire dans un domaine Active Directory, la commande adcli échouant de manière aléatoire avec l'erreur suivante écrite sur la console :
Couldn't authenticate with keytab while discovering which salt to use: [SERVER$@DOMAIN_NAME]: KDC has no support for encryption type
Les erreurs suivantes sont consignées en même temps dans /var/log/messages :
Feb 20 16:23:52 [hostname] [sssd[ldap_child[27134]]]: Failed to initialize credentials using keytab [MEMORY:/etc/krb5.keytab]: KDC has no support for encryption type. Unable to create GSSAPI-encrypted LDAP connection. Feb 20 16:23:52 [hostname] [sssd[ldap_child[27134]]]: KDC has no support for encryption type Feb 20 16:23:53 [hostname] sssd[be[AD_DOMAIN_NAME]]: GSSAPI Error: Unspecified GSS failure. Minor code may provide more information (KDC has no support for encryption type) Feb 20 16:23:53 [hostname] sssd[be[AD_DOMAIN_NAME]]: GSSAPI Error: Unspecified GSS failure. Minor code may provide more information (KDC has no support for encryption type)
Cependant, il arrive parfois que des tentatives ultérieures d'inscription du serveur via la commande adcli aboutissent, sans qu'aucune modification de configuration ne soit apportée au client CentOS/RHEL.
La solution
Les contrôleurs de domaine Windows Active Directory ont été configurés en tant que cluster pour la redondance sur le domaine, cependant, certains contrôleurs de domaine ont été configurés pour appliquer des algorithmes de chiffrement spécifiques, tandis que d'autres ne l'ont pas été.
Cela signifie que si le client CentOS/RHEL tentait de communiquer avec un contrôleur de domaine qui appliquait des algorithmes de chiffrement spécifiques, sssd sur le client Linux échouerait s'il était configuré pour utiliser un algorithme de chiffrement différent de ceux que le contrôleur de domaine était configuré pour appliquer. .
Configurez les contrôleurs de domaine Windows Active Directory et les clients Linux pour utiliser des algorithmes de chiffrement correspondants. Pour configurer les algorithmes de chiffrement sur le client Linux, comme dans l'exemple ci-dessous où l'algorithme aes256-cts est défini, procédez comme suit :
1. Sauvegardez le fichier de configuration /etc/krb5.conf avant d'y apporter des modifications.
2. Modifiez les valeurs de cryptage dans /etc/krb5.conf à :
allow_weak_crypto = false default_tkt_enctypes = aes256-cts default_tgs_enctypes = aes256-cts permitted_enctypes = aes256-cts
3. Redémarrez le service sssd :
Sur CentOS/RHEL 6, faites :
# service sssd restart
Sur CentOS/RHEL 7, faites :
# systemctl restart sssd.service
Pour configurer les algorithmes de chiffrement sur les contrôleurs de domaine Windows, veuillez contacter l'administrateur système des contrôleurs de domaine Windows et, si nécessaire, contactez Microsoft pour obtenir de l'aide, en tant que fournisseur de logiciels concerné.