FTP : File Transfer Protocol
Objectif
Se familiariser avec FTP.
Mise en situation
Si le mail permet l'échange de messages, il est mal adapté à l'échange de fichiers, surtout s'ils sont nombreux ou volumineux. Le protocole FTP est historiquement le premier à avoir rempli ce rôle. Un client FTP peut déposer et récupérer des fichiers sur un serveur FTP.
Le principal défaut de FTP est qu'il n'est pas chiffré. Ainsi il est remplacé aujourd'hui par ses variantes sécurisées SFTP et FTP/S. On utilise aussi parfois HTTP pour échanger des fichiers, via des sites comme Firefox Send.
Définition : FTP — File Transfer Protocol
FTP est le protocole de référence pour le transfert de fichiers. Il respecte une architecture client-serveur entre un client FTP et un serveur FTP.
Voici quelques fonctions permises par le protocole :
établir une connexion
envoyer son identifiant/nom d'utilisateur
envoyer son mot de passe
afficher le dossier courant
changer de dossier courant
récupérer une copie d'un fichier (téléchargement)
déposer une copie d'un fichier (téléversement)
supprimer un fichier
...
FTP a besoin d'un protocole de transport fiable tel que TCP (on ne peut pas se permettre de perdre des paquet quand on transfère des fichiers en général).
Il fonctionne par défaut sur le port 21 pour recevoir les commandes FTP et le port 20 pour recevoir les données.
Exemple : Gérer les fichiers d'un site web
Un développeur a besoin de transférer sur son serveur les fichiers qui constituent son site web. Il va pouvoir utiliser le protocole FTP pour transférer ses fichiers depuis son poste client jusqu'au serveur fourni par l'hébergeur.
Attention : Échanges avec un serveur FTP : informations non chiffrées
La connexion à un serveur FTP se fait via un couple nom d'utilisateur/mot de passe. Le client envoie une commande
USER
pour le nom d'utilisateur et une commandePASS
pour le mot de passe. Cependant, aucun protection n'est offerte par le protocole et donc, par défaut, le mot de passe circule en clair sur Internet. Ce protocole permet aussi l'authentification anonyme sur un serveur.On utilise SFTP ou FTP/S aujourd'hui plutôt que FTP (ces protocoles fonctionnement de la même façon en utilisant le chiffrement).
Conseil :
Ne jamais utiliser FTP avec un mot de passe qui est également utilisé par ailleurs. : si le mot de passe était écouté, seul le serveur FTP serait compromis.
N'utiliser que des mots de passe générés aléatoirement (il n'apprendront rien sur "vous" à celui qui écoute).
Fondamental : Les méthodes sécurisées
FTP pose un important problème de sécurité par l'absence de chiffrement des communications.
C'est pourquoi il existe aujourd'hui des protocoles alternatifs qui chiffrent les communications par défaut.
Ce sont ces protocoles qui sont recommandés.
SFTP (SSH File Transfer Protocol) utilise une session SSH pour transférer les fichiers et implémentent les commandes FTP. C'est le protocole à privilégier lorsqu'on dispose d'un accès SSH à un serveur.
FTP/S est une extension de FTP lui permettant de supporter le protocole TLS. TLS fournit un chiffrement des communications sur un réseau.
Méthode : SFTP en ligne de commande
sftp répertoire-d-arrivée utilisateur@adresse-ip
Une fois connecté, plusieurs commandes analogues aux commandes Linux sont disponibles pour interagir avec le système de fichiers.
Par exemple :
ls
pour lister les fichiers sur le serveurlls
(local ls) pour liste les fichiers sur le cientpwd
pour voir le répertoire courantcd
pour changer de répertoireget
pour télécharger un fichier depuis le serveurput
pour téléverser un fichier sur le serveur
Méthode : SFTP avec FileZilla
FileZilla est un client graphique qui permet de communiquer avec un serveur en FTP, SFTP et FTP/S.
Sur Linux (Debian et Ubuntu), on pourra installer FileZilla avec la commande suivante :
sudo apt install filezilla
Sinon, on pourra télécharger FileZilla depuis cette page : https://filezilla-project.org/download.php?show_all=1
Complément : Alternatives à FTP
Il existe d'autres protocoles et outils pour échanger des fichiers, comme les programmes en ligne de commande scp
et rsync
(qui s'appuient sur le protocole SSH).
scp chemin/local/fichier user@<adresse-IP>:chemin/de/réception/
scp chemin/local/fichier user@<adresse-IP>:chemin/de/réception/
Complément : Serveur de téléchargement
Un serveur FTP peut aussi choisir de bloquer certaines commandes.
Une entreprise ou association peut décider de mettre en téléchargement un logiciel en proposant un accès anonyme à un serveur FTP. Dans ce cas, elle ne donnera droit qu'à la commande permettant récupérer une copie du logiciel (RETR
).
À retenir
FTP est un protocole utilisé pour transférer des fichiers sur Internet.
Il peut être utilisé pour envoyer des pages web sur le serveur d'un hébergeur.
SFTP et FTP/S sont des protocoles similaires qui fonctionne comme FTP mais avec des communications chiffrées.