Partie 3 : Services de partage de
fichiers
2
• Plan
Service FTP
Service SAMBA
3
vsFTPD : Partage de fichier par FTP
4
Serveurs FTP
• Les serveurs FTP implémentent le service de
transfert de fichier basé ce protocole
• FTP est l’un des premiers services utilisés pour le partage de
fichier dans les réseaux IP
• FTP suit le modèle client/serveur
• Exemples de serveurs FTP
Advanced TFTP (atftpd) Trivial FTP (tftpd)
Secure FTP (krb5-ftpd)
Netkit FTP (ftpd) TwoFTPd (twoftpd)
Pure-FTPd (pure-ftpd)
WU-FTPD (wu-ftpd)
Pro-FTPd (proftpd)
Very Secure FTP (vsFTPD) 5
Serveur : Very Secure FTD
• vsFTPD
– Serveur FTP proposé par défaut proposé par Ubuntu
– Celui qui est installé par le paquet virtuel ftp-server
• C’est le serveur FTP de [Link] (distribution du
noyau Linux)
6
Serveur vsFTPD : Installation (Débian/Ubuntu)
• Il y un seul paquet à installer : vsftpd
7
Serveur vsFTPD : Installation (Débian/Ubuntu)
Commande d’installation
$ sudo apt-get install vsftpd
8
Serveur vsFTPD : Fichiers de configuration
• Deux fichiers clés :
/etc/[Link] : fichier contenant les paramètres
de configuration
/etc/ftpusers : fichier de configuration des
utilisateurs qui n’ont pas de comptes Unix
9
Serveur vsFTPD : Les variables
• Variables de protocole d’écoute
# activation Inet.D
listen=YES # écoute les interfaces
listen_ipv6=YES # activation d’IPv6
connect_from_port_20=YES # activation de la connexion de données
10
Serveur vsFTPD : Les variables
• Activation de l’accès des utilisateurs
# Accès utilisateurs ayant un compte UNIX
local_enable=YES # Activation de l’accès
write_enable=YES # Autorisation de déposer des fichiers
# Accès utilisateurs anonymes
anonymous_enable=YES # activation de l’accès anonyme
anon_upload_enable=YES # Autorisation de déposer des fichiers
anon_mkdir_write_enable=YES # Autorisation de créer des
répertoires par les utilisateurs anonymes
11
Serveur vsFTPD : Les variables
Limitation de l’accès au système de fichier
# activation Inet.D
chroot_local_user=YES # Limite les utilisateurs à leurs
repertoires home
#chroot_list_enable=YES # Limitation basée sur une liste
#chroot_list_file=/etc/vsftpd.chroot_list
12
Serveur vsFTPD : Démarrage et arrêt (Débian/Ubuntu)
• (Re)Démarrage
sudo start vsftpd
sudo restart vsftpd
• Arrêt
sudo stop vsftpd
13
Clients FTP : FileZilla (Windows)
14
Clients FTP : FileZilla (Linux)
15
Clients FTP : Explorer (Windows) (1)
16
Clients FTP : Explorer (Windows) (2)
17
Clients FTP : Ligne de commande(Windows)
18
Clients FTP : Nautilus (Linux)
19
Clients FTP : Ligne de commande (Linux)
Commandes UI
du client FTP
20
Service Samba
21
Présentation
• Samba est un serveur conçu par Andrew Tridgell
– Le projet a commencé le projet en 1991 alors qu’il
travaillait à DEC sur PathWorks
– Le protocole évolua vers Server Message Block ancêtre
de CIFS
Origine du nom Samba
Ne pouvant donner au nouveau serveur le nom SMB qui
était déjà une marque déposée. Pour trouver le nom,
il tapa la commande :
$ grep -i '^s.*m.*b.*' /usr/dict/words
salmonberry
samba
sawtimber
Scramble
22
Présentation
• Samba est un serveur qui implémente le protocole
CIFS qui est le protocole de communication des
machines Windows
• Il permet entre autre la communication entre des
machines Unix avec des machines Windows ou des
systèmes qui implémentent le protocole CIFS
23
Services Communs de Samba (1)
• Partage de répertoires dans le réseau entre
machines Windows et Unix
• Espace de nommage des machines commun pour
système de fichier distribué (MS-DFS)
• Gestion Centralisée des imprimantes réseau
– Paramètres d’impression
– Drivers pour les clients Windows
24
Services Communs de Samba(2)
• Assistance des clients pour la navigation réseau
• Authentification des machines clientes dans un
domaine Windows
• Fournit une assistance pour la résolution de nom
avec Windows Internet Name Service (WINS)
25
Cas d’utilisation de Samba
• Samba peut remplacer un serveur de fichier ou
d’impression Windows NT
– Pour des raisons de couts de licence par exemple
• Samba peut être un système de login unifié pour des
clients Unix/Linux utilisant un domaine Windows NT
(utilisateurs et groupes)
• Samba peut être utilisé comme PDC (Primary Domain
Controller) pour un domaine Windows NT 4.0
• Samba peut se comporter comme serveur de
répertoires utilisateurs
– Pour que les HOMEs Unix et Windows co-existent dans un
espace commun
26
Configuration simple avec Serveur Samba
• Partage d’imprimante et de documents
27
Apparence d’un Serveur Samba sur un client Windows
28
Liste des Partages d’imprimantes et Fax sous Samba
29
Common Internet File System
• Le protocole CIFS fournit un API pour :
– La manipulation des fichiers
– L’implémentation de fonctionnalités d’administration à
distance
• Modification de login et Mot de passes
– L’implémentation des services d’impression
• Les systèmes d’exploitation Windows récentes
repose sur un Protocole nommé CIFS
30
Pile de Protocole CIFS/SMB
SMB/CIFS
NetBIOS
NetBEUI TCP/IP IPX
Réseau
31
Notion de WORKGROUP Windows
• Un WORKGROUP est un
ensemble de machines
susceptibles de partager
– Des fichiers
– Des Imprimantes
– Des connexions Internet
• L’authentification se fait en
mode pair à pair
– Chaque machine est cliente et
serveur et gère localement sa
base de données des comptes
utilisateurs
32
Notion de WORKGROUP Windows
• Authentification dans le groupe de travail se fait
localement sur chaque pair
33
Notion de DOMAINE Windows
• Un DOMAINE Windows est similaire à un
WORKGROUP sauf pour l’authentification
– Pour un DOMAINE les informations sur les comptes sont
centralisées sur un serveur qui authentifie l’accès à
n’importe quelle ressources dans le domaine
– Un login et un mot de passe permettent aux utilisateurs
d’acceder à toutes les ressources du domaine
• Le serveur d’authentification est appelé contrôleur de
domaine (Domain Controller)
34
Notion de DOMAINE Windows
• Modèle d’authentification avec le contrôleur de domaine
35
Etapes de l’installation
1. Installation des paquets Samba
2. Configurer les partages dans [Link]
3. Tester la configuration avec testparm
4. Démarrer les services smbd et nmbd
5. Vérifier au niveau des clients
36
Installation des paquets de Samba (Debian/Ubuntu)
• Les paquets à installer sur le serveur sont :
samba(serveur) samba-common(tous) samba-client(client-Linux)
37
Installation des paquets de Samba (Debian/Ubuntu)
• Installation du serveur
$sudo apt-get install samba samba-common
• Quelle est ma version de Samba ?
38
Installation des paquets de Samba (Debian/Ubuntu)
• Principaux services installés
nmbd
• Daemon de resolution de nom qui fournit la fonctionnalité
WINS(Windows Internet Naming Service)
• Répond aux requêtes de correspondance noms-adresses IP
smbd
• Daemon gérant les ressources partagées entre le serveur
Samba et ses clients (Windows ou Linux)
• Fournit les services de partage de fichier et d’imprimantes aux
clients
• Traite toute les notifications entre le serveur Samba et les
clients réseaux
• Gère aussi l’authentification des utilisateurs, les verrous sur les
ressources et le partage de données avec le protocole
SMB/CIFS
39
Quelques commandes Utiles de la distribution
Commande Description
smbpasswd Permet de créer une mode passer réseaux Windows pour un
utilisateur.
findsmb Permet de chercher les machines du réseau qui répondent aux
requêtes du protocole SMB(Serveur SMB ayant des partages)
net Permet d’administrer à distance un serveur Samba. Fonctionnalités
similaires à celle de la commande net de Windows
smbclient Une commande qui ressemble à FTP pour se connecter aux
ressources partagée; Dans le paquet (samba-client)
(u)[Link] Permet le (de)montage des répertoires Samba partagées. Successeur
de la commande smbmount
smbtree Liste les répertoires partagés par tous les serveurs Samba connectés
smbstatus Liste les connexions en cours sur un serveur Samba
testparm Permet de tester les erreurs de syntaxe sur le fichier de configuration
de Samba
40
Configuration de Samba (Ubuntu/Debian): le fichier [Link]
• Le fichier de configuration de Samba est
/etc/samba/[Link](5)
41
Configuration de Samba (Ubuntu/Debian): le fichier [Link]
• Le fichier [Link] suit les principes suivants :
– C’est un fichier ASCII (même format que les .INI de
Windows)
– Les commentaires commencent à partir d’un # (dièse)
ou d’un ;(point-virgule) jusqu’à la fin de la ligne
– Son contenu est composé de sections
• Chaque section commence par son entête indiqué par le nom
de la section entre crochets [] et continue jusqu’au début de
la prochaine section
• Les paramètres de configurations son sous la forme :
<parametre> = <valeur>
42
Les sections par défaut de [Link]
• Trois sections par défaut
[global]
– Contient les paramètres qui déterminent le
comportement global de Samba (obligatoirement
présente)
[homes]
– Partage par défaut permettant de partager le répertoire
HOME de tous les utilisateurs CIFS (section optionnelle)
[printers]
– Partage par défaut permettant d’exporter toutes les
imprimantes de la machine via CIFS (section optionnelle)
43
Les sections par défaut de [Link]
Exemple de [Link] (minimaliste)
#======== Paramètres globaux [Link]
[global]
; définit le nom NetBIOS du serveur
netbios name = ubuntu
; définit groupe de travail ou le domaine NT concerné
workgroup = WORKGROUP
;Le nom qui va apparaitre comme description du serveur sur les clients
server string = %h UGB server (Samba, Ubuntu)
security = user
encrypt passwords = yes
#========== Définition de partage
[MonPartage]
path = /samba/partage
browsable =yes
writable = yes
guest ok = yes
read only = no
44
Création de partage de répertoire
• Pour partager un répertoire il faut ajouter une
section dans [Link]
# partage d’un répertoire /export/partage
[ugb-ufrsat]
comment = "Exemple de partage"
path = /export/partage
read only = no
guest ok = yes
Paramètre Valeur par Description
défaut
path /tmp Chemin du répertoire sur disque à partager
comment "" Brève description du partage. Définit la chaine affichée sur les propriétés du
partage
browesable yes Est-ce que ce partage peut être listé sur les partages du serveur ?
read only yes Est-ce que smbd doit permettre au client d’écrire sur le partage? Option
inverse de l’option writable
guest ok no Permet aux utilisateurs de se connecter sans mot de
passe
45
Création de partage de répertoire
• Résultat
46
Création de partage de répertoire
• Partage des répertoires HOME des utilisateurs
# Export des repertoires utilisateurs
[homes]
comment = home directory for %u
• Chaque utilisateur pourra se connecter sur le
path = %H
valid users : %S
partage \\nomserveur\sonlogin
read only = no
47
Création de partage de répertoire
• Partage des répertoires HOME des utilisateurs
48
Test de la configuration avec testparm(1)
terparm est un outil permettant de tester la
configuration afin d’en élever les erreurs syntaxiques
49
Options communes de la section [global]
Paramètre Description
workgroup Nom du workgroup qui a accès aux partages
nebios name Nom Netbios (unique) du serveur
log file, log level Chemin vers le fichier de log de Samba, niveau de
détail des logs (0 à 10)
server string Chaine de description du serveur
security Granularité de l’authentification : user, domain, …
invalid users Les utilisateurs qui ne peuvent accéder au partage
encrypt passwords Cryptage des mots de passe
50
Autres outils de la distribution
• swat
– C’est le Samba Web Administration Tool (SWAT) qui est
une interface Web d’administration du serveur Samba
• winbindd
– Ce daemon est utilisé pour récupérer les informations
sur les utilisateurs et les groupes à partir d’un contrôleur
de Domaine Windows
– Permet à Samba d’authentifier les utilisateurs dans un
domaine Windows
51
Client Windows
• Les clients Windows peuvent y accéder à partir de
explorer
52
Client Windows
• La commande net use permet de monter les partage comme des
disques virtuelles (x: ici)
53
Client Windows
• Affichage des statistiques netbios
54
Client Linux : ligne de commande smbclient
• smbclient est une commande qui permet
d’acceder aux partages Windows en ligne de
commande.
– Nécessite d’installer le paquet smbclient
55
Client Linux : ligne de commande smbclient
• Listage des partages sur un serveur
$ smbclient -L //<server> -U <username>
56
Client Linux : ligne de commande smbclient
• Accès à partage public
$smbclient //<server>/<share>
Commandes similaires
aux commandes du
client FTP (get,
put, mkdir,
rmdir, …)
57
Client Linux : ligne de commande smbclient
• Accès à partage avec login et mot de passe(le
répertoire HOME ici)
$smbclient //<server>/<share> -U <username>
58
Client Linux : ligne de commande smbtree
• Découvrir tous les partages du réseau
$ smbtree -U username
59
Client Linux : Graphique Natilus(partage
public)
60
Références
• Documents disponible sur le site [Link]
– Samba-3 by Example, John H. Terpstra May 27, 2009.
– The Offcial Samba 3.2.x HOWTO and Reference Guide,
Jelmer R. Vernooij, John H. Terpstra, and Gerald (Jerry)
Carter
• Using Samba, 3rd Edition, Robert Eckstein, Paul
Andrew Watters, Jay Ts, Gerald Carter, O'Reilly Jan
2007
61