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éfinitionFTP — 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.

ExempleGé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.

FondamentalLes 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éthodeSFTP en ligne de commande

1
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 serveur

  • lls (local ls) pour liste les fichiers sur le cient

  • pwd pour voir le répertoire courant

  • cd pour changer de répertoire

  • get pour télécharger un fichier depuis le serveur

  • put pour téléverser un fichier sur le serveur

MéthodeSFTP 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 :

1
sudo apt install filezilla

Sinon, on pourra télécharger FileZilla depuis cette page : https://filezilla-project.org/download.php?show_all=1

ComplémentAlternatives à 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).

1
scp chemin/local/fichier user@<adresse-IP>:chemin/de/réception/
1
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.