Partage de Fichiers
Partage de Fichiers
Objectifs
- Mettre en place des partages de fichiers suivant les différents besoins et infrastructures
Protocoles
- NFS
- Samba
NFS (Network File System)
Présentation
Le NFS est un protocole standard permettant de rendre accessible via le réseau des points d'arborescence donnés à des clients distants. Il est principalement utilisé pour le partage de données entre systèmes UNIX et GNU/Linux, bien qu'il soit également pris en charge sur d'autres environnements (Windows/Apple).
Caractéristiques de la version 4
- Dernière version majeure du protocole
- Non compatible avec les versions précédentes
- Niveau de sécurité et performance accrus
- Possibilité de chiffrement des échanges
Installation et Configuration Serveur
Installation
Installation du serveur NFS :
apt install nfs-kernel-server
Cette commande installe le service NFS côté serveur avec tous les composants nécessaires.
Fichiers importants
- Configuration des exports : /etc/exports
- Logs : /var/log/syslog
Gestion des exports
Commande exportfs
La commande exportfs permet de gérer dynamiquement les partages NFS :
- exportfs -v : Affiche tous les partages actifs avec leurs options
- exportfs -a : Exporte tous les répertoires listés dans /etc/exports
- exportfs -u : Désactive tous les partages
- exportfs -r : Réexporte tous les partages (utile après modification de /etc/exports)
Exemple de configuration dans /etc/exports
/srv/data 192.168.1.1(rw) 192.168.0.0/16(ro,all_squash)
Explication :
- /srv/data : Chemin du répertoire à partager
- 192.168.1.1(rw) : Accès en lecture/écriture pour cette IP
- 192.168.0.0/16(ro,all_squash) : Accès en lecture seule pour ce réseau avec conversion des utilisateurs
Options principales
- ro : Système de fichiers en lecture seule
- rw : Système de fichiers en lecture/écriture
- sync : Écriture synchrone (attend la confirmation d'écriture sur le disque)
- async : Écriture asynchrone (plus rapide mais moins sûre)
- wdelay : Retarde l'écriture sur disque si une autre requête est imminente
- no_wdelay : Désactive le délai d'écriture
- root_squash : Les requêtes root distantes sont exécutées avec un compte utilisateur simple
- no_root_squash : Permet l'accès root (attention aux implications de sécurité)
- all_squash : Tous les utilisateurs sont convertis en utilisateur anonyme
Configuration Client
Prérequis
Installation du client NFS :
apt install nfs-common
Commande showmount
Permet de voir les exports disponibles sur un serveur NFS :
showmount -e serveur_nfs
- -e : Liste les exports
- -a : Liste tous les montages actifs
Montage manuel
mount.nfs –o soft IP_SRV_NFS:/srv/data /mnt/partage-nfs
Options importantes :
- soft : Le client abandonne après un timeout (recommandé)
- hard : Le client réessaie indéfiniment (comportement par défaut)
- timeo=<n> : Délai avant nouvelle tentative (en dixièmes de seconde)
- retrans=<n> : Nombre de tentatives avant échec
- vers=4 : Force l'utilisation de NFSv4
Montage automatique (/etc/fstab)
IP_SRV_NFS:/srv/data /mnt/partage-nfs nfs auto,soft 0 0
Explication des champs :
- Source du montage (serveur:chemin)
- Point de montage local
- Type de système de fichiers (nfs)
- Options de montage
- Option dump (0 = pas de sauvegarde)
- Ordre fsck (0 = pas de vérification)
Samba
Présentation
Samba est un logiciel libre sous licence GNU GPL permettant :
- Services de domaine Active Directory
- Services de fichiers SMB / CIFS
- Services d'impression
Configuration serveur
Installation et fichiers
Installation du serveur Samba :
apt install samba
Fichiers importants :
- Configuration : /etc/samba/smb.conf
- Logs : /var/log/samba/log.*
Services
- smbd : Services SMB/CIFS pour le partage de fichiers et d'imprimantes
- nmbd : Service de résolution de noms NetBIOS
- samba-ad-dc : Services Active Directory
Vérification de la configuration
La commande testparm permet de valider la configuration :
# Vérification simple
testparm
# Affichage détaillé
testparm -v
# Vérification sans interaction
testparm -s
Exemple de configuration
[global]
map to guest = Bad User
[public]
path = /srv/public/
read only = no
guest ok = yes
[service]
path = /srv/stagiaires/
read only = no
valid users = @stagiaires Gilles
Explication des sections :
- [global] : Paramètres généraux du serveur
- [public] : Définition d'un partage public
- [service] : Définition d'un partage restreint
Gestion des comptes utilisateurs
Commandes principales
pdbedit
Gestion de la base de données des utilisateurs Samba :
# Lister tous les utilisateurs
pdbedit -L
# Ajouter un utilisateur
pdbedit -a -u Utilisateur
# Afficher les détails d'un utilisateur
pdbedit -Lv Utilisateur
# Supprimer un utilisateur
pdbedit -x -u Utilisateur
smbpasswd
Gestion des mots de passe :
# Modifier le mot de passe d'un utilisateur
smbpasswd Utilisateur
# Désactiver un compte
smbpasswd -d Utilisateur
# Activer un compte
smbpasswd -e Utilisateur
Configuration client
Client Linux
Installation
apt install cifs-utils
Montage manuel
mount.cifs -o username=demo,password="secret" //10.11.12.14/public /mnt/partage-smb
Options importantes :
- username : Nom d'utilisateur
- password : Mot de passe (attention : en clair)
- uid : UID de l'utilisateur local
- gid : GID du groupe local
- file_mode : Permissions des fichiers
- dir_mode : Permissions des répertoires
Montage automatique (/etc/fstab)
//10.11.12.14/public /mnt/partage-smb cifs auto,credentials=/root/.creds 0 0
Le fichier credentials (/root/.creds) doit contenir :
username=demo
password=secret
Utilisation de smbclient
Client en ligne de commande similaire à FTP :
# Lister les partages disponibles
smbclient -L 10.11.12.14 -U Utilisateur
# Se connecter à un partage
smbclient //10.11.12.14/service -U Utilisateur
Commandes disponibles dans smbclient :
- ls : Liste les fichiers
- cd : Change de répertoire
- get : Télécharge un fichier
- put : Envoie un fichier
- mget : Télécharge plusieurs fichiers
- mput : Envoie plusieurs fichiers
- quit : Quitte le client
Client Windows
Méthodes d'accès
- Chemin UNC : Accès direct via \\serveur\partage
- Commande net use :
net use Z: \\10.11.12.14\service /user:Utilisateur
Options :
- Z: : Lettre du lecteur à mapper
- /user: : Spécifie l'utilisateur
- /persistent:yes : Rend le mapping permanent
- PowerShell :
New-PSDrive -Name "Z" -PSProvider FileSystem -Root "\\10.11.12.14\service" –Persist -Credential "Utilisateur"
Paramètres :
- -Name : Lettre du lecteur
- -PSProvider FileSystem : Indique qu'il s'agit d'un système de fichiers
- -Root : Chemin UNC du partage
- -Persist : Rend le mapping permanent
- -Credential : Spécifie les informations d'authentification