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.
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 :
lspour lister les fichiers sur le serveurlls(local ls) pour liste les fichiers sur le cientpwdpour voir le répertoire courantcdpour changer de répertoiregetpour télécharger un fichier depuis le serveurputpour 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 filezillaSinon, 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/
À 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.