30.6. Activation de sudo sans mot de passe pour les utilisateurs de cartes à puce
Une fois que vous vous êtes connecté à la console web avec un certificat, il se peut que vous deviez passer en mode administratif (privilèges de racine via sudo
). Si votre compte utilisateur possède un mot de passe, vous pouvez l'utiliser pour vous authentifier sur sudo
.
Comme alternative, si vous utilisez Red Hat Identity Management, vous pouvez déclarer l'authentification initiale du certificat de la console web comme étant de confiance pour l'authentification à sudo
, SSH, ou d'autres services. À cette fin, la console Web crée automatiquement un ticket Kerberos S4U2Proxy dans la session de l'utilisateur.
Conditions préalables
- Gestion de l'identité
- Active Directory connecté à la confiance entre les forêts grâce à la gestion des identités
- Carte à puce configurée pour se connecter à la console web. Pour plus d'informations, voir Configuration de l'authentification par carte à puce avec la console web pour les utilisateurs gérés de manière centralisée.
Procédure
Définir des règles de délégation des contraintes pour dresser la liste des hôtes auxquels le ticket peut accéder.
Exemple 30.1. Mise en place de règles de délégation de contraintes
La session de la console web s'exécute sur l'hôte
host.example.com
et doit être autorisée à accéder à son propre hôte avecsudo
. De plus, nous ajoutons un deuxième hôte de confiance -remote.example.com
.Créer la délégation suivante :
Exécutez les commandes suivantes pour ajouter une liste de machines cibles auxquelles une règle particulière peut accéder :
# ipa servicedelegationtarget-add cockpit-target # ipa servicedelegationtarget-add-member cockpit-target \ --principals=host/host.example.com@EXAMPLE.COM \ --principals=host/remote.example.com@EXAMPLE.COM
Pour autoriser les sessions de la console web (HTTP/principal) à accéder à cette liste d'hôtes, exécutez les commandes suivantes :
# ipa servicedelegationrule-add cockpit-delegation # ipa servicedelegationrule-add-member cockpit-delegation \ --principals=HTTP/host.example.com@EXAMPLE.COM # ipa servicedelegationrule-add-target cockpit-delegation \ --servicedelegationtargets=cockpit-target
Activer l'authentification GSS dans les services correspondants :
Pour sudo, activez le module
pam_sss_gss
dans le fichier/etc/sssd/sssd.conf
:En tant que root, ajoutez une entrée pour votre domaine dans le fichier de configuration
/etc/sssd/sssd.conf
.[domain/example.com] pam_gssapi_services = sudo, sudo-i
Activez le module dans le fichier
/etc/pam.d/sudo
sur la première ligne.auth sufficient pam_sss_gss.so
-
Pour SSH, mettez à jour l'option
GSSAPIAuthentication
du fichier/etc/ssh/sshd_config
enyes
.
Le ticket S4U délégué n'est pas transmis aux hôtes SSH distants lorsque l'on s'y connecte depuis la console web. L'authentification sudo sur un hôte distant avec votre ticket ne fonctionnera pas.
Vérification
- Connectez-vous à la console web à l'aide d'une carte à puce.
-
Cliquez sur le bouton
Limited access
. - Authentifiez-vous à l'aide de votre carte à puce.
OU
- Essayez de vous connecter à un autre hôte avec SSH.