20.10. Dépannage de l'authentification GSSAPI pour sudo

Si vous ne parvenez pas à vous authentifier auprès du service sudo à l'aide d'un ticket Kerberos provenant de l'IdM, utilisez les scénarios suivants pour résoudre votre problème.

Conditions préalables

Procédure

  • Si l'erreur suivante s'affiche, il se peut que le service Kerberos ne soit pas en mesure de résoudre le domaine correct pour le ticket de service en se basant sur le nom d'hôte :

    Serveur introuvable dans la base de données Kerberos

    Dans ce cas, ajoutez le nom d'hôte directement à la section [domain_realm] dans le fichier de configuration Kerberos /etc/krb5.conf:

    [idm-user@idm-client ~]$ cat /etc/krb5.conf
    ...
    
    [domain_realm]
     .example.com = EXAMPLE.COM
     example.com = EXAMPLE.COM
     server.example.com = EXAMPLE.COM
  • Si l'erreur suivante s'affiche, vous ne disposez pas d'informations d'identification Kerberos :

    Pas d'identifiants Kerberos disponibles

    Dans ce cas, récupérez les informations d'identification Kerberos à l'aide de l'utilitaire kinit ou authentifiez-vous à l'aide de SSSD :

    [idm-user@idm-client ~]$ kinit idm-user@IDM.EXAMPLE.COM
    Password for idm-user@idm.example.com:
  • Si l'une des erreurs suivantes apparaît dans le fichier journal /var/log/sssd/sssd_pam.log, les informations d'identification Kerberos ne correspondent pas au nom d'utilisateur de l'utilisateur actuellement connecté :

    User with UPN [<UPN>] was not found.
    
    UPN [<UPN>] does not match target user [<username>].

    Dans ce cas, vérifiez que vous vous êtes authentifié avec SSSD, ou envisagez de désactiver l'option pam_gssapi_check_upn dans le fichier /etc/sssd/sssd.conf:

    [idm-user@idm-client ~]$ cat /etc/sssd/sssd.conf
    ...
    
    pam_gssapi_check_upn = false
  • Pour un dépannage supplémentaire, vous pouvez activer la sortie de débogage pour le module PAM de pam_sss_gss.so.

    • Ajoutez l'option debug à la fin de toutes les entrées pam_sss_gss.so dans les fichiers PAM, telles que /etc/pam.d/sudo et /etc/pam.d/sudo-i:

      [root@idm-client ~]# cat /etc/pam.d/sudo
      #%PAM-1.0
      auth       sufficient   pam_sss_gss.so   debug
      auth       include      system-auth
      account    include      system-auth
      password   include      system-auth
      session    include      system-auth
      [root@idm-client ~]# cat /etc/pam.d/sudo-i
      #%PAM-1.0
      auth       sufficient   pam_sss_gss.so   debug
      auth       include      sudo
      account    include      sudo
      password   include      sudo
      session    optional     pam_keyinit.so force revoke
      session    include      sudo
    • Essayez de vous authentifier avec le module pam_sss_gss.so et examinez la sortie de la console. Dans cet exemple, l'utilisateur n'avait pas d'identifiants Kerberos.

      [idm-user@idm-client ~]$ sudo ls -l /etc/sssd/sssd.conf
      pam_sss_gss: Initializing GSSAPI authentication with SSSD
      pam_sss_gss: Switching euid from 0 to 1366201107
      pam_sss_gss: Trying to establish security context
      pam_sss_gss: SSSD User name: idm-user@idm.example.com
      pam_sss_gss: User domain: idm.example.com
      pam_sss_gss: User principal:
      pam_sss_gss: Target name: host@idm.example.com
      pam_sss_gss: Using ccache: KCM:
      pam_sss_gss: Acquiring credentials, principal name will be derived
      pam_sss_gss: Unable to read credentials from [KCM:] [maj:0xd0000, min:0x96c73ac3]
      pam_sss_gss: GSSAPI: Unspecified GSS failure.  Minor code may provide more information
      pam_sss_gss: GSSAPI: No credentials cache found
      pam_sss_gss: Switching euid from 1366200907 to 0
      pam_sss_gss: System error [5]: Input/output error