NFS
NFS (Network File System) permet de monter un répertoire distant comme s’il faisait partie du système de fichiers local — l’équivalent, dans le monde Unix/Linux, du rôle que joue SMB dans le monde Windows, avec une philosophie et un modèle de sécurité différents.
Fonctionnement
Section intitulée « Fonctionnement »Un serveur NFS exporte un ou plusieurs répertoires (déclarés dans /etc/exports), qu’un client peut ensuite monter dans son propre arbre de fichiers :
# Côté serveur, /etc/exports/srv/partage 10.0.0.0/24(rw,sync,no_subtree_check)
# Côté clientmount -t nfs serveur:/srv/partage /mnt/partageUne fois monté, le répertoire distant est transparent pour les applications : elles lisent et écrivent des fichiers sans savoir qu’ils se trouvent physiquement sur un autre serveur.
NFSv3 vs NFSv4
Section intitulée « NFSv3 vs NFSv4 »- NFSv3 : plusieurs ports dynamiques (via
rpcbind/portmapper pour la découverte des services), plus délicat à faire traverser un pare-feu — un problème similaire à celui rencontré avec FTP. - NFSv4 : un seul port (2049), authentification renforcée possible via Kerberos, et surtout un modèle de sécurité par utilisateur plus fin — une nette simplification opérationnelle par rapport à NFSv3.
Le modèle de sécurité historique de NFS : une confiance par défaut au réseau
Section intitulée « Le modèle de sécurité historique de NFS : une confiance par défaut au réseau »NFS (en particulier en v3, et par défaut même en v4 sans configuration Kerberos) fait traditionnellement confiance à l’identité numérique (UID/GID Unix) transmise par le client — sans vérification cryptographique de qui est réellement ce client. Un poste capable de se faire passer pour l’UID d’un autre utilisateur (root y compris via no_root_squash mal configuré) peut accéder aux fichiers correspondants.
root_squash(activé par défaut) : mappe l’utilisateur root du client vers un utilisateur non privilégié côté serveur, pour éviter qu’un accès root sur un poste client se traduise en accès root sur les fichiers exportés.- NFS avec Kerberos (
sec=krb5) corrige la faiblesse de fond en ajoutant une authentification cryptographique réelle des clients, au prix d’une configuration plus complexe.