L'objectif des manipulations de cette section est d'offrir un niveau de protection élevé contre les tentatives d'interception de trafic et d'usurpation d'identité dans les échanges entre le serveur NFS et son client de test.
La représentation graphique de la Section 3, « Protocole NFSv4 » fait apparaître plusieurs briques de sécurité intégrées au protocole NFSv4.2. Nous devons choisir celles qui permettent d'atteindre un niveau de sécurité satisfaisant.
Voici une représentation du processus suivi dans cette section.
Pour respecter les bonnes pratiques, nous devons utiliser le protocole Kerberos V5, qui permet d'établir une authentification mutuelle entre un client et un serveur avant la transmission des données du système de fichiers partagé.
La configuration de Kerberos V5 avec NFSv4.2 nécessite :
-
Un serveur KDC (Key Distribution Center) correctement configuré.
-
Des certificats et principaux de service appropriés pour le serveur NFS, le client et les utilisateurs.
-
Une synchronisation temporelle précise entre tous les systèmes.
Les pages de manuel (man 5
exports
) détaillent les paramètres de l'option
sec=
, suivie d'une liste de types de
sécurité délimités par des deux-points. Cette option limite
l'exportation aux clients utilisant ces types. Les types de
sécurité disponibles sont les suivants :
-
sys
: c'est cette valeur par défaut, sans sécurité cryptographique, qui a été utilisée pour toutes les manipulations des sections précédentes. L'interception du trafic avec l'outil tshark a révélé que les données contenues dans les échanges NFS pouvaient être lues par un tiers. -
krb5
: à ce niveau, seule l'authentification est assurée. La vérification cryptographique de l'identité des utilisateurs empêche toute usurpation. -
krb5i
: cette option ajoute le contrôle d'intégrité à l'authentification. On s'assure ainsi que les données échangées n'ont pas été modifiées pendant leur transit. -
krb5p
: il s'agit du niveau de sécurité le plus élevé, car il allie authentification, intégrité et confidentialité, garantissant ainsi que les données échangées restent secrètes.
Pour la négociation du type de sécurité entre le serveur et les clients, l'ordre est important : les types préférés doivent être listés en premier.
Le choix retenu pour la configuration à mettre en place
est : sec=krb5p
.
L'API GSS-API, via le framework RPCSEC_GSS, fournit une abstraction des mécanismes de sécurité en offrant la possibilité d'utiliser différents protocoles (Kerberos, SPKM) via une interface unifiée. Elle permet également de négocier de manière transparente les capacités de sécurité entre le client et le serveur.
Nous n'avons pas de choix de configuration à faire pour cette brique de la pile du protocole NFSv4.2.
L'utilisation de TLS sur RPC (RPC-over-TLS selon la RFC 9289) en complément de Kerberos apporte des avantages considérables, avec une protection indépendante au niveau de la couche de transport :
-
Le chiffrement au niveau de la couche transport protège tous les protocoles qui utilisent RPC, dont rpcbind.
-
La protection contre les attaques de surveillance systématique et continue des flux réseau qui permettent d'exploiter les métadonnées.
-
Le chiffrement opportuniste permettant la coexistence avec des systèmes non TLS.
Pour conclure cette partie, on aboutit à la répartition des rôles suivante :
- TLS
-
Authentification des hôtes et chiffrement des appels RPC dans la couche transport.
- Kerberos
-
Authentification des utilisateurs, chiffrement et contrôle d'accès des transactions NFS.
Cette séparation permet de mettre en place une architecture de sécurité en profondeur plus robuste.
Avant d'aborder la mise en place des outils de sécurité, commençons par adapter les configurations de l'exportation par le serveur et du service autofs du client.
Maintenant que les options d'exportation et de montage dynamiques doivent utiliser Kerberos, il faut configurer le serveur KDC et son client. Les rôles serveur et client sont conservés : le serveur NFS est également le serveur KDC.
Dans cette section, on doit configurer le client Kerberos pour accéder aux objets que l'on vient de créer sur le serveur KDC.
Avec ce dernier test, la configuration kerberos est complète puisque les échanges de tickets entre le KDC et le client NFS sont fonctionnels.
Dans le cadre de ces travaux pratiques nous devons créer une autorité de certification et un jeu de certificats auto-signés afin de mettre en œuvre le protocole TLS entre le serveur et le client NFS.
Dans un contexte professionnel, l'utilisation d'une véritable autorité de certification (tiers de confiance) permet de produire des certificats correspondant à une cryptographie asymétrique valide.
![]() |
Important |
---|---|
Dans les questions qui suivent, il faut être particulièrement vigilant sur l'exécution des traitements sur le serveur et/ou le client. |
Une fois que les services Kerberos et TLS sont en place, on peut passer aux tests des transactions NFS sécurisées.