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.

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 commande PASS 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).

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/

ComplémentServeur 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.