Partager des répertoires entre des postes Unix

Souvent, on sait comment partager des dossiers entre des postes Windows avec le partage “à la Windows”, entre un serveur Linux et des postes Windows avec Samba, et un jour vient où l’on se retrouve sans plus aucun postes Windows, mais juste du Linux (un jour glorieux).
La question alors, c’est comment partager les répertoires entre des postes Linux ?

La réponse : NFS, le Network File System.

NFS est le système de partages de répertoires au sein d’un réseau Unix.
En pratique, les utilisateurs d’Ubuntu peuvent gérer le NFS graphiquement, mais sur Debian, à preuve du contraire, il faut y aller à la main, comme un geek. C’est trés simple à faire.

I. déterminer le post serveur et le post client
Il faut choisir quel sera le post qui servira et le post qui devra s’y connecter. Une fois la connexion établie, la liaison fonctionne dans les 2 sens sans problèmes.
On va suposer que l’on a un portable, nommé portable, et une grosse bécane, nommé grosseBécane. On va partager le répertoire de musique de grosseBécane (/home/bob/musique) pour que portable puisse les lire.
Le serveur ici sera donc grosseBécane et le client portable.

II. mettre en place le service NFS
rien de plus simple, il suffit d’installer le package nfs-kernel-server sur grosseBécane.
$ apt-get install nfs-kernel-server
En principe les packages nfs-common sont déjà installés, donc du côté portable, il n’y a rien à installer.
Sur grosseBécane, on va indiquer le répertoir à partager au service NFS, en éditant le fichier exports :
$ vi /etc/exports
On lui indique le nom de la machine qui peut y acceder (ou plusieurs machines, voire un réseau ^^), ainsi que ses droits (par défault ro : lecture seule. rw -> lecture et ecriture) et autres options (voir man exports).
La ligne à ajouter sera donc :
/home/bob/musique portable(rw)
et lancer le service :
$ /etc/init.d/nfs-kernel-server start (reload pour recharger la config après modification)
si il n’y a pas de problèmes, le répertoire est ouvert au partage.

III. monter le répertoire sur le portable
Il ne reste plus qu’à le monter sur le portable, en créant un répertoire (nommé par exemple “partage”) /home/bill/partage sur portable. Ce répertoire doit être vide. Et en root, toujours sur le portable, monter le dossier :
$ mount -t nfs grosseBecane:/home/bob/musique /home/bill/partage

Le portable voit le répetoire partage, contenant la musique de Bob, comme étant le sien. Bill peut lire les musiques de Bob en même tant que lui :slightly_smiling:

Ça à l’air de rien comme ça, mais le fait qu’il s’agit d’un montage, et non d’un simple partage à distance, est réellement efficace, car une fois monté, le système l’incorpore au système de fichier de la machine. C’est comme s’il n’y avait aucun partage (ou plutôt un partage transparent). Du coup, on peut s’amuser à partager les clés usb d’un poste à l’autre, partager des CD-roms, des partitions, bref, tout ce qui peut se monter.

Point de vu sécurité, il vaut mieux fermer les ports NFS (111 et 2049 en tcp et udp) vers l’internet, avec un bon firewall comme iptables, ou pour un max de sécurité, se tourner vers du VPN (OpenSSL), mais c’est moins simple et surtout plus utile pour partager les répertoires à travers Internet.

lien :
doc.ubuntu-fr.org/applications/nfs

reste à complèter: sécuriser nfs avec ssh. :wink:
nfs.sourceforge.net/nfs-howto/se … ml#NFS-SSH

Et pour lister les répertoires mis à disposition par un serveur NFS, on utilise la commande showmount.

burp:~# showmount -e teloche Export list for teloche: /freevo burp.cave.maison /freevo/TV burp.cave.maison /freevo/DVD burp.cave.maison burp:~#
Dans l’exemple, ca montre les répertoires mountable par le client burp.