FTP (File Transfert Protocol) est un protocole de transfert de fichiers très ancien de la couche 7 du modèle OSI.
Ce protocole fonctionne en client / serveur, le serveur partage ses fichiers à travers des comptes FTP, le client y accède et peut modifier ou copier les fichiers.
Le FTP est très utilisé, par les webmasters pour mettre en ligne et modifier le contenu des sites WEB.
Les administrateurs peuvent l’utiliser pour transférer des fichiers d’un serveur à l’autre, même si SCP a maintenant pris le pas.
Par contre, on l’intègre dans des solutions de sauvegarde.
Voici un tutoriel complet sur le fonctionnement du protocole FTP.
Table des matières
Qu’est-ce que FTP ?
FTP (File Transfert Protocol) est donc un protocole de transfert de fichiers.
FTP obéit à un modèle client-serveur :
- Le serveur est un ordinateur sur lequel fonctionne un logiciel lui-même appelé serveur FTP rend publique une arborescence de fichiers similaire à un système de fichiers UNIX
- Le client se connecte au serveur et établisse la connexion à travers des commandes FTP. Pour cela, on utilise un logiciel client FTP possédant une interface graphique ou en ligne de commande
L’administrateur du serveur FTP créé des comptes FTP.
Ce sont des utilisateurs FTP avec un identifiant et mots de passe ou une clé publique de connexion.
Chaque utilisateur a accès à une arborescence spécifique et des autorisations sur celle-ci.
Une fois la connexion réussie, le client FTP accède à des dossiers autorisés par le compte FTP.
Ce dernier peut copier les fichiers en local ou distant :
- Envoi (upload) : lorsque le client envoie un fichiers vers le serveur FTP distant
- Réception (download) : lorsque le client télécharge un fichier depuis le serveur FTP distant
Typiquement un client FTP se présente avec deux fenêtre, à gauche les dossiers et fichiers locaux, à droite, les dossiers et fichiers distants du serveur FTP.
Vous pouvez faire glisser les fichiers de l’un à l’autre.
Le serveur FTP
Il existe plusieurs serveurs FTP sur Windows comme FileZilla Server ou TypSoft FTP, Windows possède aussi un serveur FTP.
Sur Linux, on trouve VsFTPd ou ProFTPD parmi les plus populaires.
Le fonctionnement d’un serveur FTP est toujours le même, grosso modo :
- Vous installez le programme qui fait office de serveur FTP
- On créé les comptes (utilisateur / mot de passe)
- On teste la connexion (il faut autoriser les connexions sur pare-feu etc).
Le serveur FTP fournit des journaux de connexions pour visualiser la négociation de connexion et les utilisateurs connectés.
Le Client FTP
Il existe aussi une multitude de clients FTP graphiques comme FileZilla, WinScp, etc.
Là aussi, le principe reste le même, vous créez vos comptes FTP sur le client et en double-cliquant sur ce dernier, vous pouvez vous connecter au serveur.
On trouve alors l’arborescence local et l’arborescence de fichiers distants.
On peut alors faire un glisser déposer pour lancer le transferts de fichiers.
Sur Windows, on peut aussi se connecter en FTP par un lecteur réseau :
Mais il en existe aussi en ligne de commandes.
Windows et Linux possède par défaut la commande FTP qui propose le strict minimum.
Mais sur Linux, on trouve des clients FTP plus puissants comme ncftp ou lftp.
FTP : comment ça marche ?
L’établissement de la connexion FTP
Contrairement au protocole HTTP, FTP fonctionne avec deux ports TCP : un port de contrôle (Control Channel) et un port pour les données (Data Channel).
Protocole | Port de contrôle | Port de données |
FTP | 21 | 20 |
FTPS | 990 | 989 |
Le client FTP connecte au port de contrôle où les premiers échanges et négociations entre le client FTP et le serveur FTP s’effectuent.
Cette communication se fait sur le principe de commande / réponse.
Le Control Channel perdure pour passer des commandes FTP.
Par exemple, les commandes MLSD et LIST listent le contenu du dossier courant, la commande CWD permet de changer de dossier, PWD indique l’emplacement du dossier courant.
Le Data Channel permet l’échange de données.
Lorsque le client demande à recevoir ou envoyer un fichier, une connexion TCP se créé puis les données passent par celle-ci.
Toutefois, il existe deux modes de connexion : Le mode actif et le mode passif.
Liste des principales commandes FTP
Le client FTP utilise ces commandes FTP pour dialoguer avec le serveur FTP à travers le Control Channel.
Il existe environ 70 commandes FTP différentes.
Principales commandes FTP | Description |
ABOR | Annuler un transfert de fichier actif |
CDUP | Passez au répertoire parent |
CWD | Changer de répertoire de travail |
DELE | Supprimer un fichier |
EPSV | Entrer en mode passif étendu |
LIST | Renvoyer les informations d’un fichier ou d’un répertoire si spécifié, sinon les informations du répertoire de travail actuel sont renvoyées |
MKD | Créer un répertoire |
MLSD | Répertorier le contenu d’un répertoire si un répertoire est nommé |
PASS | Envoyer le mot de passe de connexion |
PASV | Entrer en mode passif |
PORT | Spécifier une adresse et un port auxquels le serveur doit se connecter |
PWD | Afficher le répertoire de travail. Renvoie le répertoire actuel de l’hôte. |
REIN | Réinitialiser la connexion |
REST | Redémarrez le transfert à partir du point spécifié |
RETR | Récupérer une copie du fichier |
RMD | Renommer un dossier |
RMDA | Supprimer une arborescence de répertoires |
RNFR | Renommer depuis |
RNTO | Renommer vers |
QUIT | Se déconnecter du serveur |
SIZE | Renvoyer la taille d’un fichier |
TYPE | Définir le mode de transfert (ASCII / Binaire) |
USER | S’authentifier par un nom d’utilisateur |
Le mode actif et passif
FTP fonctionne sur deux modes de communications : le mode actif et passif.
Pourquoi et comment fonctionnent ces modes de communication ?
Et surtout quelles sont les différences et lequel choisir ?
Ce tutoriel vous dit tout :
Le FTP et les logiciels malveillants
Les serveurs FTP étant très utilisés pour modifier les pages internet des sites WEB.
Ils sont très prisés par les cybercriminels afin d’obtenir un accès frauduleux aux sites internet et donc de Pirater de site WEB.
Cela permet de modifier le contenu afin de rediriger les visiteurs vers du contenu malveillant
Le but est d’utiliser des trojan vont voler les comptes configurés sur les clients FTP des webmaster.
- Intrusions sur sites internet par vols d’identifiants FTP
- PSW.Win32.Tepfer – vol FTP et injection/hack de sites
- Backdoor:Win32/Votwup / Trojan.Win32.Swisyn : vol identifiants FTP
Les ordinateurs des webmasters sont donc à utiliser avec précautions et il faut bien suivre les règles élémentaires de sécurité afin de ne pas se faire voler ses identifiants FTP.
Côté serveur, des attaques bruteforce peuvent être utilisées afin de deviner les comptes FTP et s’y connecter.
La configuration du serveur FTP est donc importante, afin qu’une vulnérabilité ou mauvaise configuration ne soit pas exploitée pour stocker des fichiers en ligne.
Les autres protocoles FTP
TFTP
FTP (pour Trivial File Transfer Protocol) signifie protocole simplifié de transfert de fichiers.
En clair donc, c’est un FTP avec des commandes simplifiées.
Notamment, il n’est pas possible de lister les fichiers.
De plus, il fonctionne sur le port 69 en UDP.
Un serveur TFTP est parfois inclut dans les NAS.
FTPS : FTP Over TLS et attaque MiTM
Par défaut, le protocole FTP n’est pas chiffrée, ainsi lors de la connexion les identifiants FTP (nom d’utilisateur / mot de passe) passent en claire sur le réseau.
Une attaque de type Man in the Middle peut permettre la récupération de ces identifiants FTP ou dérouter vers un faux serveur FTP.
Le FTP existe sous la forme chiffrée à travers FTP Over TLS ou FTPS.
Ce dernier vise à sécuriser les connexions FTP et palier à aux manquements de FTP.
SFTP
Même s’il comporte la partie FTP pour protocole de transfert, ce dernier n’a rien à voir avec le protocole initiale FTP.
En effet, SFTP utilise le protocole SSH pour une connexion sécurisée.
Pour plus d’informations :
Liens
- Fonctionnement du FTP pour partager ses fichiers
- Créer et se connecter en FTP avec un lecteur réseau sur Windows
- Le mode actif et passif en FTP : les différences, fonctionnement, lequel choisir ?
- FileZilla : transférer des fichiers par FTP pour Windows et Ubuntu
- FileZilla Server : configurer un serveur FTP sur Windows
- FileZilla : transférer des fichiers de Windows à Linux en SFTP
- ncftp, ncftpput, ncftpget : exemples d’utilisation du client FTP pour Linux
- ProFTPD : configurer un serveur FTP sur Debian 10