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