logo rodolphe bertozzo

Qu’est ce que le protocole FTP ?

Qu'est ce que le protocole FTP

Le protocole FTP (File Transfert Protocole) est un protocole utilisé pour transférer des fichiers d’un client vers serveur Web à l’aide d’une connexion, sur un réseau TCP/IP.

Histoire du protocole FTP

Le protocole de transfert de fichiers, communément appelé FTP, trouve ses origines dans la Request For Comments1 114 (RFC), qui a vu le jour le 16 avril 1971. Il a été pensé pour transférer des fichiers sur le réseau de l’Advanced Research Projects Agency (ARPANET)2 aux États-Unis.

Cette première spécification a été remplacée par la RFC 765 en juin 1980. Cette nouvelle spécification a été à son tour obsolète avec l’introduction de la RFC 959 en octobre 1985, qui a établi la version finale de la spécification du protocole FTP. D’autres RFC viennent enrichir la dernière spécification : la RFC 2228 en juin 1997 améliore la sécurité, et la RFC 2428 en septembre 1998 ajoute la prise en charge du protocole IPv6 et défini un nouveau mode passif. Une fois l’Internet lancé, ce protocole a bénéficié de plusieurs révisions et améliorations afin de s’assurer que ce dernier fonctionne avec TCP/IP.

Les ports

Le port est un numéro d’identification associé à un processus ou service réseau permettant aux données de circuler de manière organisée d’un client vers un serveur.

FTP utilise par défaut deux ports définis, le port 20 utilisé dans le mode actif pour permettre le transfert de données. Le port 21 est utilisé pour la gestion de la connexion de contrôle (du début jusqu’à la fin) qui permet d’initier la communication avec le serveur, autorisant ainsi l’envoi de commandes FTP et la réception des réponses du serveur.

Ainsi, le port 20 n’est utilisé que pour le transfert de données. Ce transfert de données s’effectue sous la « surveillance » de la connexion de contrôle sur le port 21 qui persiste tout au long de la communication client-serveur. Le port 21 englobe le port 20 lors des connexions FTP.

Les jeux de commande

Ces commandes sont utilisées dans le cadre des interactions entre un client FTP et un serveur FTP pour gérer le transfert de fichiers et la gestion des répertoires.

  • GET (ou RETR) : La commande GET est utilisée pour récupérer (ou télécharger) un fichier depuis le serveur vers le client. Le client envoie cette commande au serveur FTP en précisant le nom du fichier qu’il souhaite récupérer. Le serveur répond en transmettant le fichier demandé, s’il existe.
  • PUT (ou STOR) : La commande PUT est utilisée pour téléverser (ou envoyer) un fichier depuis le client vers le serveur. Le client envoie cette commande au serveur FTP en précisant le nom du fichier à envoyer. Le serveur répond en acceptant le fichier et en le stockant sur le serveur, à condition qu’il ait les autorisations nécessaires.
  • MKD (ou MKDIR) : La commande MKD est utilisée pour créer un nouveau répertoire (dossier) sur le serveur FTP. Le client envoie cette commande au serveur en spécifiant le nom du répertoire qu’il souhaite créer. Si le serveur autorise la création de répertoires et que le nom n’est pas déjà utilisé, le répertoire sera créé.
  • Close (ou QUIT) : La commande Close (ou Quit) est utilisée pour mettre fin à la session FTP. Le client envoie cette commande pour indiquer au serveur qu’il souhaite mettre fin à la connexion. Une fois la commande Close reçue, le serveur ferme la connexion FTP en cours.

Les modes passifs et actifs

Deux modes peuvent être utilisés pour se connecter à un serveur distant avec le protocole FTP :

  • Mode actif : Dans ce mode, c’est le serveur FTP qui initie la connexion. Cependant, la présence de pare-feu sur le réseau peut susciter des problèmes de connexion. Les pare-feu peuvent bloquer les nouvelles connexions entrantes, ou sortantes. Cela nécessite que le client configure son pare-feu pour autoriser ces connexions entrantes. Le canal de contrôle initial est établi sur le port 21, et le canal de transfert de données est initié par le client vers le port 20 du serveur.
  • Mode passif : Dans ce mode, le serveur FTP permet au client de créer lui-même la connexion de données, ce qui peut être un avantage s’il y a la présence de pare feu sur le réseau. Les connexions entrantes vers le client sont généralement bloquées, et les connexions sortantes du client sont généralement autorisées. Le canal de contrôle initial reste sur le port 21, cependant en mode passif, le serveur FTP décide du port sur lequel il établira la connexion pour le canal de données. Le client initie la connexion sortante vers un port spécifique choisi par le serveur, ce qui permet au serveur de contourner les éventuels problèmes liés aux pare-feu.
schéma protocole ftp
Schéma du protocole FTP

Les 3 types de protocole

FTP

FTP est un protocole de transfert de fichiers qui utilise les ports 21 (pour le contrôle) et 20 (pour les données) par défaut. Il permet de transférer des fichiers entre un client et un serveur, mais il ne chiffre pas les données en transit, ce qui le rend vulnérable à l’interception et à la modification.

FTPS

FTPSecure est une extension sécurisée du FTP. Il utilise les mêmes ports que le FTP standard, mais il ajoute une couche de sécurité en utilisant le protocole SSL/TLS pour chiffrer la communication. Selon la configuration, FTPS peut également utiliser d’autres ports pour le contrôle et le transfert de données, ce qui peut varier en fonction des paramètres du serveur.

SFTP

SFTP (SSH File Transfer Protocol) n’est pas basé sur le FTP, mais il est utilisé pour des fonctions similaires de transfert de fichiers de manière sécurisée. Il utilise le port 22 (par défaut) pour le contrôle et le transfert de fichiers. SFTP est intégré à SSH (Secure Shell), offrant un cryptage fort et une authentification sécurisée pour garantir la confidentialité et l’intégrité des données transférées.

Se connecter à un serveur FTP

Les logiciels qui permettent une connexion FTP

Il existe plusieurs logiciels qui permettent d’établir une connexion d’un client vers un serveur, c’est en quelque sorte une passerelle entre les deux. Ces clients FTP permettent aux utilisateurs de se connecter à des serveurs distants, pour parcourir les fichiers et les répertoires, télécharger des fichiers depuis le serveur vers le client et envoyer des fichiers du client vers le serveur. Ils permettent ainsi principalement le transfert de fichiers d’un ordinateur local vers un serveur distant, que ce soit pour la gestion de sites web, la sauvegarde de données… Ces logiciels sont des clients FTP. Ils offrent l’avantage de prendre en charge plusieurs types de protocole et de proposer une interface utilisateur graphique conviviale et intuitive à disposition de l’utilisateur. Le plus utilisé est FileZilla, facile d’utilisation, mais il en existe également d’autres : WinSCP, Cyberduck ou encore CuteFTP.

interface utilisateur winscp
Interface utilisateur – WINSCP

Quelles sont les informations nécessaires pour établir une connexion ?

Pour permettre à un client de se connecter au serveur, il est nécessaire de connaitre l’adresse du serveur sur lequel on veut se connecter (ou hôte), le nom d’utilisateur et un mot de passe. Chaque utilisateur dispose d’un compte FTP (créé généralement depuis l’hébergement), et peut accéder à la totalité des répertoires et fichiers du serveur ou non.

Configurer une connexion FTP avec filezilla
Configurer une connexion FTP avec FileZilla

Glossaire

  1. Les RFC sont des documents qui décrivent les spécifications, en détaillant les normes, les fonctionnalités et les améliorations apportées au protocole FTP au fil du temps ↩︎
  2. L’Advanced Research Projects Agency est l’un des premiers réseaux publics (et précurseur de l’internet) lancé en 1969.  ↩︎

Vous avez apprécié cet article ?

En savoir plus sur l'auteur...

Rodolphe BERTOZZO

Etudiant freelance concepteur web