Sommaire: 1- Intro/ la raison d'être du FTP/petit historique 2- Principe Global , Généralités 3- Connexion, commande: Le canal de contrôle 4- Connexion de données 5- Exemple concret 6- Conclusion : variantes du FTP
1- Intro: la raison d'être du FTP/petit historique. a-Définition Le File Transfer Protocol ou FTP, • Protocole de communication dédié à l'échange informatique de fichiers sur un réseau TCP/IP. • Copie des fichiers depuis ou vers un autre ordinateur du réseau.
b- Historique Mise en place du protocole FTP date de 1971 Les plus grandes innovations datent de juillet 1973 Normalisation par le RFC
C- Spécification du protocole FTP Le protocole FTP définit la façon selon laquelle des données doivent être transférées sur un réseau TCP/IP. Le protocole FTP a pour objectifs de : permettre un partage de fichiers entre machines distantes permettre une indépendance aux systèmes de fichiers des machines clientes et serveur permettre de transférer des données de manière efficace
FTP: Protocôle de transfert de fichiers sur un réseau TCP/IP. 2- Principe Global , Généralités FTP: Protocôle de transfert de fichiers sur un réseau TCP/IP. Permet de copier des fichiers depuis ou vers un autre ordinateur du réseau. Permet d'administrer un site web, ou supprimer voire modifier des fichiers d’un ordinateur. Ce protocole appartient à la couche session du modèle OSI et à la couche application du modèle ARPA.
Le Transfert de fichiers peut se faire de deux manières. FTP obéit à un modèle client-serveur, c'est-à-dire qu'une des deux parties, le client, envoie des requêtes auxquelles réagit l'autre, appelé serveur. Ce protocole peut s'utiliser de deux manières différentes: - Mode actif : c'est le client qui détermine le port de connexion à utiliser. -Mode passif : c'est le serveur qui détermine le port de connexion à utiliser .
Diagramme des flux:
Transfert entre deux serveurs : Le transfert client-serveur est le plus utilisé mais il existe une autre manière d'utiliser FTP: Transfert entre deux serveurs : La spécification du protocole FTP (RFC 959) précise qu'il est possible d'effectuer un transfert de fichiers directement entre deux serveurs FTP. Cette fonctionnalité est peu connue, car non disponible dans les logiciels de client FTP.
Établissement d’une connexion de contrôle par serveur Transfert serveur/serveur Établissement d’une connexion de contrôle par serveur Établissement de la connexion de données Demande à un serveur d'attendre la connexion Utilisation de la commande PORT A partir de là, la connexion de données est établie entre les deux serveurs
3- connexion, commande: Le canal de contrôle C'est toujours le client qui initialise la connexion via le réseau TCP/IP : ftp://nom_d_utilisateur:mot_de_passe@nom_du_serveur:numéro_de_portb Toutes les commandes ainsi que les réponses sont transmises en clair selon le protocole Telnet : chaîne_de_caractères<SP>paramètre<CR><LF>
Il y a trois catégories de commandes : accès, transfert, service Le canal de contôle. Il y a trois catégories de commandes : accès, transfert, service Commandes de connexion : USER : nom d'utilisateur, PASS : mot de passe, ACCT : compte d'utilisateur, CWD : chemin d'accès, QUIT : termine la connexion. Commandes de paramètre de transfert : PORT : port client (mode actif), PASV : serveur en attente (mode passif), TYPE, STRU, MODE : information sur les données. Commandes de service : RETR : récupère un fichier, STOR : envoie un fichier, ABOR : stop un téléchargement, REST : reprend un téléchargement, LIST : récupère la liste des fichier et des dossier, NOOP : évite de perdre la connexion après un certain temps.
Les réponses du serveur : abc commentaires<CR><LF> abc-commentaires<CR><LF> texte... a, b et c sont trois chiffres indicatif Signification de 'a' : échec ou succès 1 : action en cour de réalisation, 2 : action réalisée, 3 : action temporairement suspendu, 4 : échec temporaire, 5 : échec permanant. Signification de 'b' : référence 0 : syntaxe, 1 : information, 2 : connexion, 3 : authentification, 5 : système de fichiers. Signification de 'c' : spécification
4- Connexion de données 4-1.Présentation 4-2.Le mode actif 4-3.Le mode passif 4-4.Les commandes
4-1.Présentation • Elle s'effectue sur le port 20 côté serveur • Elle se créée se ferme pour chaque opération de transfert, sauf indication spéciale • Il existe deux modes de connexion : - Mode passif - Mode actif
4-2.Le mode actif • Le client décide du port sur lequel la connexion de données va s'établir. • Déroulement : - Le client envoie la commande 'PORT <IP + port côté cilent>' Le serveur confirme et tente de se connecter au client • Problème : les firewalls n'acceptent pas les connexions entrantes par défaut, cela peut empêcher l'accès à certains serveurs • Problème de sécurité également si le port est laissé ouvert en permanence
4-3.Le mode passif • Ici c'est le serveur qui décide des paramètres de la connexion de données • Déroulement : - Le client envoie la commande 'PASV' - Le serveur lui répond par '227 Entering Passive Mode <IP+port côté serveur>' et attend - Le client se connecte au serveur au port indiqué par celui-ci • Cette méthode est la plus utilisée et la plus sure • Elle ne nécessite aucun réglage particulier côté client, le port 20 est ouvert côté serveur
4-4.Les commandes • Voici les commandes les plus courantes pour le canal de données : PASV : indique que le client veux utiliser le mode pasif - PORT h1,h2,h3,h4,p1,p2 : le client utilise le mode actif, avec Hi l'IP client sur 32 bits et Pi le port client sur 16 bits - TYPE : définit le format de transfert (binaire ou texte) - RETR : demande de réception d'un fichier STOR : demande d'envoi d'un fichier - 227 Entering Passive Mode (h1,h2,h3,h4,p1,p2) : le serveur accepte et définit une connexion passive
5: application et exemple Ftp utilisé pour déposer tout type de données sur un serveur (images, musiques, vidéos ex: Newsgroup de free.fr Ftp très utilisé pour mettre a jour des sites web - transfert de pages web (html,php…)
Liste non exhaustive de logiciels réalisant des transferts Ftp: Logiciels: Facilitent les commandes grâce a une interface graphique, Interprètent les commandes. Liste non exhaustive de logiciels réalisant des transferts Ftp: CuteFTP ESFTP FlashFXP FTP Expert 3 FTP Express Ftp Rapide FTP Voyager FTPpro 2000 SmartFTP
Principe fonctionnement: exemple: mise a jour d ’une page sur un serveur web a- Création de la page Web
b- Connexion sur le serveur -Adresse Hébergeur Nom Utilisateur Mot de passe
b- Transfert sur le serveur
c- Page actualisée
6- Conclusion : variantes du FTP FTPS ( File Transfer Protocol over SSL) : FTP avec chiffrement SSL implicite FTP avec chiffrement SSL explicite FTP avec chiffrement TLS explicite SFTP (Secure File Transfer Protocol) TFTP (Trivial File Transfert Protocol, trivial = « simplifié »)
Merci de votre attention - Fin - Merci de votre attention