rpc.gssd(8) System Manager's Manual rpc.gssd(8)

rpc.gssd - Démon RPCSEC_GSS

rpc.gssd [-DfMnlvrH] [-k tableau_clés] [-p pipefsdir] [-d ccachedir] [-t attente] [-T attente] [-U attente] [-R domaine]

Le protocole RPCSEC_GSS, défini par la norme RFC 5403, est utilisé pour fournir une sécurité accrue pour les protocoles basés sur RPC, tels que NFS.

Avant d'échanger des requêtes RPC en utilisant RPCSEC_GSS, un client RPC doit établir un contexte de sécurité GSS. Un contexte de sécurité est un état commun à chaque extrémité d'un transport réseau qui active les services de sécurité GSS-API.

Les contextes de sécurité sont établis en utilisant des accréditations de sécurité (security credentials). Une accréditation de sécurité offre l'accès temporaire à un service réseau sécurisé, tout comme un ticket de train donne le droit d'accéder temporairement au réseau ferroviaire.

Un utilisateur obtiendra typiquement une accréditation en fournissant un mot de passe à la commande kinit(1), ou grâce à la bibliothèque modulaire d'authentification PAM lors de la connexion. Une accréditation acquise avec un commettant utilisateur est appelée accréditation utilisateur (consultez kerberos(1) pour plus d'informations sur les commettants).

Certaines opérations nécessitent une accréditation ne représentant aucun utilisateur particulier ou représentant l’hôte lui-même. Ces accréditations sont appelées accréditations machine.

Un hôte établit son accréditation machine en utilisant un commettant de service, dont les mots de passe chiffrés sont stockés dans un fichier local appelé tableau_clés. Une accréditation machine reste effective sans aucune intervention d’utilisateur aussi longtemps que l’hôte peut la prolonger.

Une fois obtenues, les accréditations sont en général stockées dans des fichiers temporaires locaux avec des noms de chemin connus.

Pour établir des contextes de sécurité GSS en utilisant ces fichiers d'accréditation, le client RPC du noyau Linux dépend d'un démon en espace utilisateur appelé rpc.gssd. Le démon rpc.gssd utilise le système de fichiers rpc_pipefs pour communiquer avec le noyau.

Accréditations utilisateur

Lorsque un utilisateur s'authentifie en utilisant une commande comme kinit(1), l'accréditation correspondante est stockée dans un fichier avec un nom clairement identifié construit à partir de l'identifiant de l'utilisateur.

Pour interagir avec un serveur NFS au nom d'un utilisateur authentifié par Kerberos, le client RPC du noyau Linux demande l'initialisation par rpc.gssd du contexte de sécurité avec l’accréditation dans le fichier d'accréditation de l'utilisateur.

Typiquement, les fichiers d'accréditation sont placés dans /tmp. Cependant, rpc.gssd peut chercher des fichiers d'accréditation dans plusieurs répertoires. Consultez la description de l'option -d pour plus de détails.

Accréditations machine

rpc.gssd cherche dans le tableau de clés par défaut, /etc/krb5.keytab, dans l’ordre suivant un commettant et un mot de passe à utiliser lors de l’établissement de l’accréditation machine. Pour la recherche, rpc.gssd remplace <nom_d'hôte> et <DOMAINE> par le nom d'hôte du système local et le domaine (« realm ») Kerberos.


<nom_d'hôte>$@<DOMAINE>
root/<nom_d'hôte>@<DOMAINE>
nfs/<nom_d'hôte>@<DOMAINE>
host/<nom_d'hôte>@<DOMAINE>
root/<n'importe_quel_nom>@<DOMAINE>
nfs/<n'importe_quel_nom>@<DOMAINE>
host/<n'importe_quel_nom>@<DOMAINE>

rpc.gssd sélectionne une des entrées de <n’importe_quel_nom> s’il ne trouve pas un commettant de service correspondant au nom d’hôte local, par exemple, si DHCP assigne le nom d’hôte dynamiquement. Le dispositif <n’importe_quel_nom> active l’utilisation du même tableau de clés sur plusieurs systèmes. Cependant, l’utilisation du même commettant de service pour établir une même accréditation machine sur plusieurs hôtes peut créer des expositions de sécurité non désirées et par conséquent n’est pas recommandée.

Notez que le <nom_d’hôte>$@<DOMAINE> est un commettant utilisateur qui active NFS avec Kerberos lorsque le système local est joint à un domaine Active Directory avec Samba. Le tableau de clés fournit le mot de passe pour ce commettant.

Vous pouvez indiquer un tableau de clés différent avec l'option -k si /etc/krb5.keytab n'existe pas ou ne fournit pas l'un de ces commettants.

Accréditations pour l'identifiant utilisateur 0

L'identifiant utilisateur 0 est un cas particulier. Par défaut, rpc.gssd utilise l'accréditation machine du système pour les accès de l'identifiant utilisateur 0 qui nécessitent une authentification GSS. Cela limite les droits du superutilisateur lors d'accès à des ressources réseau nécessitant une authentification.

Indiquez l'option -n au démarrage de rpc.gssd si vous souhaitez forcer le superutilisateur à obtenir une accréditation plutôt que d’utiliser l'accréditation machine locale du système.

Lorsque l'option -n est indiquée, le noyau continue de demander un contexte GSS établi avec une accréditation machine pour les opérations NFS version 4, telles que SETCLIENTID ou RENEW qui gèrent l'état. Si rpc.gssd ne peut pas obtenir d'accréditation machine (par exemple si le système local n'a pas de tableau de clés), les opérations NFS version 4 qui nécessitent une accréditation machine échoueront.

Un administrateur de domaine peut choisir d'ajouter dans le tableau de clés du système local des clés chiffrées de différentes façons. Par exemple, un hôte ou un commettant peut avoir des clés pour les types de chiffrement aes256-cts-hmac-sha1-96, aes128-cts-hmac-sha1-96, des3-cbc-sha1 et arcfour-hmac. Cela permet à rpc.gssd de choisir un type de chiffrement approprié pris en charge par le serveur NFS cible.

Ces types de chiffrement sont plus robustes que les types de chiffrement historiques DES simple. Pour interopérer dans des environnements dans lesquels des serveurs ne prennent en charge que des types de chiffrement faibles, vous pouvez forcer votre client à utiliser le chiffrement DES simple en indiquant l'option -l au démarrage de rpc.gssd.

Le nom de serveur passé à GSS-API pour l’authentification est normalement le nom tel qu’il est demandé. Par exemple, pour NFS, c’est le nom du serveur dans la requête de montage « nom_serveur:/chemin ». Seulement si le nom du serveur semble être une adresse IP (IPv4 or IPv6) ou un nom non qualifié (pas de points), une recherche DNS inverse sera faite pour obtenir le nom canonique du serveur.

Si -D est présent, une recherche DNS inverse sera toujours utilisée, même si le nom du serveur semble être un nom canonique. Aussi c’est nécessaire si des noms partiellement qualifiés ou non canoniques sont régulièrement utilisés.

L’utilisation de -D peut introduire une vulnérabilité de sécurité, aussi il est recommandé de ne pas utiliser -D, et que les noms canoniques soient toujours utilisés dans la requête de services.

Lancer rpc.gssd en tâche de premier plan et rediriger sa sortie standard vers la sortie d'erreur (au lieu de syslogd).
Lorsque demandé, l'identifiant utilisateur 0 est imposé pour obtenir des accréditations utilisateur utilisées au lieu des accréditations machine du système local.
Indiquer à rpc.gssd d'utiliser les clés trouvées dans tableau_clés afin d'obtenir les accréditations machine. La valeur par défaut est /etc/krb5.keytab.
Lorsqu'elle est indiquée, elle restreint rpc.gssd aux sessions avec des types de chiffrement faible, tels que des-cbc-crc. Cette option n'est disponible que lorsque la bibliothèque Kerberos du système local prend en charge les types de chiffrement réglables.
Indiquer à rpc.gssd où chercher le système de fichiers rpc_pipefs. Par défaut, il s'agit de /var/lib/nfs/rpc_pipefs.
Cette option indique une liste de répertoires séparés par des deux-points « : » qui seront examinés par rpc.gssd lors de la recherche de fichiers d'accréditation. La valeur par défaut est /tmp:/run/user/%U. La séquence « %U » peut être indiquée pour représenter l'identifiant de l'utilisateur pour qui des accréditations sont cherchées.
Par défaut, les accréditations machine sont stockées dans des fichiers du premier répertoire dans le chemin de recherche des accréditations (voir l'option -d). Lorsque l'option -M est indiquée, rpc.gssd stocke alors les accréditations machine en mémoire.
Augmenter le niveau de verbosité de la sortie (peut être demandé plusieurs fois).
Augmenter le niveau de verbosité de la sortie (cette option peut être indiquée plusieurs fois) si la bibliothèque RPCSEC_GSS accepte le réglage du niveau de débogage.
Les tickets Kerberos de ce domaine (« realm ») seront pris de préférence pendant le parcours des fichiers de cache disponibles servant à la création d'un contexte. Le domaine (« realm ») par défaut du fichier de configuration de Kerberos sera utilisé de préférence.
Attente, en seconde, pour le contexte GSS du noyau. Cette option vous permet d'obliger la négociation de nouveaux contextes du noyau après attente secondes, ce qui permet l'échange fréquent de tickets et d'identités Kerberos. Le temps d'attente par défaut n'est pas précisé, ce qui signifie que le contexte vivra le temps du ticket de service Kerberos utilisé lors de sa création.
Attente, en seconde, pour créer une connexion RPC avec un serveur tout en établissant un contexte GSS authentifié pour un utilisateur. L’attente par défaut est réglée à cinq secondes. Si vous obtenez un message tel que « WARNING: can't create tcp rpc_clnt to server %servername% for user with uid %uid%: RPC: Remote system error - Connection timed out », vous devriez envisager d’augmenter le temps d’attente.
Attente, en seconde, pour les threads d'appel montant. Les threads dont l'exécution dure plus de attente secondes provoqueront un message d'erreur qui sera journalisé. L'attente par défaut est 30 secondes. Le minimum est 5 secondes et le maximum 600 secondes.
En plus de la journalisation des messages d'erreur pour le threads qui ont dépassé le délai, le thread sera annulé et une erreur de -ETIMEDOUT sera rapportée au noyau.
Éviter le réglage de $HOME à « / ». Cela autorise rpc.gssd à lire les fichiers k5identity de chaque utilisateur plutôt que de lire les fichiers /.k5identity de chaque utilisateur.

Si -H n’est pas défini, rpc.gssd utilisera la première correspondance trouvée dans /var/kerberos/krb5/user/$EUID/client.keytab et n’utilisera pas un commettant basé sur les paramètres de l’hôte ou du service listés dans $HOME/.k5identity.

La plupart des options pouvant être réglées sur la ligne de commande peuvent aussi l’être à travers des valeurs définies dans la section [gssd] du fichier de configuration /etc/nfs.conf. Les valeurs autorisées comprennent :

Valeur qui est équivalente au nombre pour -v.
Valeur qui est équivalente au nombre pour -r.
Un drapeau booléen équivalent à -M.
Drapeau booléen. Le réglage à false est équivalent à indiquer le drapeau -n.
Le réglage à false est équivalent à indiquer le drapeau -D.
Équivalent à -l.
Équivalent à -t.
Équivalent to -T.
Équivalent à -k.
Équivalent à -d.
Équivalent à -R.
Équivalent de -U.
Le réglage à true est équivalent à indiquer le drapeau -C.
Le réglage à false est équivalent à fournir l’option -H.

De plus, la valeur suivante de la section [general] est reconnue :

Équivalent à -p.

rpc.svcgssd(8), kerberos(1), kinit(1), krb5.conf(5)

Dug Song <dugsong@umich.edu>
Andy Adamson <andros@umich.edu>
Marius Aamodt Eriksen <marius@umich.edu>
J. Bruce Fields <bfields@umich.edu>

La traduction française de cette page de manuel a été créée par Valéry Perrin <valery.perrin.debian@free.fr>, Sylvain Cherrier <sylvain.cherrier@free.fr>, Thomas Huriaux <thomas.huriaux@gmail.com>, Dominique Simen <dominiquesimen@hotmail.com>, Nicolas Sauzède <nsauzede@free.fr>, Romain Doumenc <rd6137@gmail.com>, David Prévot <david@tilapin.org>, Denis Mugnier <myou72@orange.fr>, Cédric Boutillier <cedric.boutillier@gmail.com> et Jean-Paul Guillonneau <guillonneau.jeanpaul@free.fr>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org.

20 février 2013