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.
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.
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.
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.
Deux modes peuvent être utilisés pour se connecter à un serveur distant avec le 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.
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 (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.
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.
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.