Client/Serveur protocoles internet - Transfert de Fichiers

Transcription

Client/Serveur protocoles internet - Transfert de Fichiers
Client/Serveur protocoles internet
Transfert de Fichiers
Fabien Rico ([email protected])
Olivier Glück
Univ. Claude Bernard Lyon 1
séance 1
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 1
1 / 17
Introduction
Protocoles de transfert de fichiers
Copie intégrale d’un fichier d’un système de fichiers vers un autre en
environnement hétérogène
Entre 2 systèmes, l’hétérogénéité concernant les fichiers dépend :
◮
◮
◮
de la façon de représenter les noms de fichier (longueur, caractère
espace,...)
des droits d’accès au fichier (lecture, écriture, exécution, propriétaire,
...)
de la représentation des données contenues dans le fichier (saut de
ligne...)
⋆
⋆
→ mode ascii : transfert de texte avec conversion au format local.
→ mode binary : transfert sans conversion.
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 1
2 / 17
Introduction
Protocoles de transfert de fichiers
Plusieurs protocoles
◮
◮
◮
copie de fichiers à distance : rcp, scp ;
protocole de transfert de fichiers avec accès aux systèmes de fichiers
local et distant : ftp, tftp, sftp.
copie de fichier sur http : WebDAV
Type client/serveur
◮
◮
le client (initiateur de la connexion) interragit avec l’utilisateur, le
système de fichiers local et les protocoles réseau ;
le serveur (héberge les fichiers distants) interagit avec les protocoles
réseau et le système de fichiers distant.
Ne pas confondre avec les protocoles d’accès aux fichiers distants :
NFS (RPC), SMB (Microsoft).
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 1
3 / 17
Introduction
Protocoles de transfert de fichiers
Machine locale
Machine distante
serveur
FTP
client
FTP
OS /dev/sda1
Pilotes de
périphériques
/dev/hda3
TCP/IP
TCP/IP
Pilote de
périphériques
M a t.
clavier/écran
c O.Glück & F.Rico (U.C.B.L.)
Internet
Client/Serveur
séance 1
4 / 17
FTP
FTP : File Transfer Protocol - RFC 959
Standard TCP/IP pour le transfert de fichiers
Connexion TCP sur le port 21 côté serveur
Contrôle d’accès au serveur distant (login,mdp)
le mot de passe circule en clair
Particularité de FTP : utilisation de 2 connexions TCP
ogluck@lima :˜ $ cat / etc / s e r v i c e s | grep f t p
f t p −d a t a
20/ t c p
ftp
21/ t c p
tftp
69/ udp
sftp
115/ t c p # FTP o v e r SSH
f t p s −d a t a
989/ t c p #FTP o v e r SSL ( d a t a )
ftps
990/ t c p # FTP o v e r SSL
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 1
5 / 17
FTP
FTP : Connexions contrôle et données
Les clients FTP contactent le serveur FTP sur le port TCP/21
Ouverture de 2 connexions TCP parallèles :
◮
◮
Contrôle : échange des commandes et des réponses entre le client et le
serveur - ≪ contrôle hors-bande ≫
Données : transfert des fichiers de données vers/depuis l’hôte distant
(sur le port TCP/20 côté client)
Le serveur FTP maintient un état : répertoires courants locaux et
distants, username
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 1
6 / 17
FTP
FTP : Connexions contrôle et données
Connexion contrôle (ftp) :
◮
◮
◮
échange des requêtes/réponses (dialogue client/serveur) ;
permanente, full-duplex, besoin de fiabilité (et faible délai !) ;
initiée par le client.
Connexion données (ftp-data) :
◮
◮
◮
envoi de fichiers ou listes de fichiers/répertoires (données) ;
temporaire, full-duplex, besoin de débit (et fiabilité !) ;
initiée par défaut par le serveur
⋆
◮
ouverture active (connect()) du serveur vers le client (depuis le port 20
vers un port proposé par le client) ;
la connexion est fermée dès que le caractère EOF est lu.
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 1
7 / 17
FTP
Question
Quels problèmes cela peut-il causer
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 1
8 / 17
FTP
FTP : Connexions contrôle et données
Active transfer & Passive transfer
Active transfer : la connexion ftp-data est initiée par le serveur
◮
si une commande nécessite que des données soient reçues ou
transmises (ls, get, put, . . . ), le client envoie une commande PORT au
serveur indiquant un port sur lequel le serveur va créer une connexion
ftp-data depuis son port 20.
Passive transfer : ftp-data initiée par le client
◮
◮
intégré dans les navigateurs, paramétrable sur certains clients ;
fonctionnement : le client envoie la commande PASV au lieu de PORT
sur le port 21 (RFC 1579 : Firewall-Friendly FTP) ce qui revient à
demander au serveur de faire un listen() sur un port du serveur.
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 1
9 / 17
FTP
FTP public
Beaucoup de serveurs FTP sont publics
En fait ils autorisent la connexion anonyme c’est à dire
◮
◮
Le login est anonymous
Le mot de passe peut être quelconque (généralement son mail).
Les navigateurs web utilisent la connexion anonyme pour se connecter
avec le protocole ftp :
ftp ://ftp . univ−lyon1.fr/pub/
Sauf si cela est demandé dans l’url :
ftp ://fabien . rico :[email protected]−lyon1.fr/pub/
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 1
10 / 17
FTP
FTP et Sécurité
FTP est un protocole en clair, il existe plusieurs méthodes pour protéger
les données :
utiliser un tunnel ssh (difficile à cause des 2 connexions) ;
ftps : ftp avec SSL/TLS (c’est une configuration du serveur FTP) ;
sftp : ftp via ssh qui passe par le port 22 donc généralement autorisé
par les firewalls.
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 1
11 / 17
TFTP
TFTP : Trivial File Transfer Protocol
Pourquoi Trivial FTP ?
◮
◮
simple à implémenter ;
simple à configurer.
Utilisation :
◮
Récupération de données de configuration par les systèmes sans disque
⋆
⋆
⋆
terminaux,
carte réseaux (boot sur le réseaux),
imprimante.
TFTP, c’est en gros FTP sans pouvoir lister les répertoires distants et
ne nécessitant pas de mot de passe pour récupérer ou déposer des
fichiers
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 1
12 / 17
TFTP
TFTP : Trivial File Transfer Protocol
Protocole léger - RFC 1350 :
◮
◮
◮
◮
pas de contrôle d’accès ;
5 types de messages seulement ;
fiabilité assurée par acquittement positif avec timer de retransmission
sur l’émetteur et le récepteur ;
les messages DATA font 512 octets max ; ils sont numérotés et sont
aussitôt acquittés par un ACK.
Comme il n’y a pas d’authentification, les accès sur le serveur sont
limités aux répertoires passés en arguments du démon tftpd
(/tftpboot par défaut).
UDP car les systèmes n’implantent pas forcément TCP.
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 1
13 / 17
WebDAV
WebDAV
Web enabled Distributed Authoring and Versioning
C’est une couche ajoutée au serveur http de manière à faciliter le partage
de fichier via le web.
Utilisation des ports web (80, 443).
Mécanisme de vérouillage (protection en cas d’accès multiple).
Méta-données (titre, sujet, créateur, ...)
Gestion des fichiers (copie, supression, déplacement,...)
Contrôle d’accès en utilisant un contrôle d’accès existant.
Versions ? (pas encore)
Utilisation :
Mise à disposition et synchronisation de données sur le web
◮
◮
Calendriers, contacts
Travail collaboratif.
Système de versionnement
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 1
14 / 17
WebDAV
Mise en place d’un serveur WebDAV
Sous apache :
Installation du module WebDAV.
Configuration dans le fichier /etc /.../ conf.d/webdav.conf
Création d’un répertoire pour webDAV (avec droit d’écriture).
Mettre en place un système d’authentification pour apache.
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 1
15 / 17
WebDAV
Fichier webdav.conf
DAVLockDB /var/www/webDAV/DAVLock
<Directory "/var/www/html/DAVtest">
Options Indexes FollowSymLinks
AllowOverride None
order allow ,deny
allow from all
AuthName "CS test server"
AuthType Basic
AuthUserFile /var/www/webDAV/passwd
DAV On
require valid −user
</Directory>
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 1
16 / 17
WebDAV
Conclusion
Plusieurs protocoles de transfert de fichiers.
Utilisé depuis longtemps :
◮
◮
problème toujours d’actualité ;
attention à la sécurité.
Tous les protocoles peuvent utiliser SSL/TLS.
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 1
17 / 17