FTP : le transfert de fichiers des débuts d’Internet
Plus ancien qu’Internet lui-même, pendant des décennies la norme pour les téléchargements et la mise en ligne de sites – et aujourd’hui un risque de sécurité s’il fonctionne encore sans chiffrement. Ce qu’est FTP, ce qui le remplace et à quoi faire attention.
Protocole : connexion de commande et de données
FTP (RFC 959) utilise une connexion de commande permanente (TCP 21, commandes texte de type Telnet) et une connexion de données distincte pour chaque transfert ou liste de répertoire :
| Mode | Déroulement | Conséquences |
|---|---|---|
Actif (PORT/EPRT) | Le serveur se connecte depuis le port 20 au client, sur un port indiqué par celui-ci. | échoue avec le NAT et les pare-feu clients ; vulnérable au FTP bounce (cibles PORT abusives) |
Passif (PASV/EPSV) | Le serveur ouvre un port élevé (p. ex. 49152–65535) et l’annonce ; le client s’y connecte. | le pare-feu du serveur doit ouvrir la plage ; les pare-feu à états ont besoin d’assistants FTP (ALG), qui ne peuvent plus lire avec TLS |
220 ProFTPD Server ready USER anna 331 Password required for anna PASS secret123 ← en clair 230 User anna logged in EPSV 229 Entering Extended Passive Mode (|||50211|) RETR backup.zip 150 Opening BINARY mode data connection
Histoire et normes
- 1971 RFC 114 (Abhay Bhushan, MIT) : première spécification pour l’ARPANET.
- 1980 RFC 765 : FTP sur TCP/IP.
- 1985 RFC 959 (Postel, Reynolds) : encore la base aujourd’hui.
- 1994 RFC 1579 « Firewall-Friendly FTP » : les clients doivent utiliser le mode passif.
- 1997 RFC 2228 « FTP Security Extensions » (
AUTH,PROT,PBSZ). - 1998 RFC 2428 (
EPRT/EPSVpour IPv6 et NAT), RFC 2389 (FEAT). - 2001–2006 SFTP comme partie de SSH-2 dans des projets IETF (draft-ietf-secsh-filexfer) ; jamais adopté comme RFC, norme de fait dans OpenSSH en version 3.
- 2005 RFC 4217 : FTP sur TLS (FTPS, « explicite » avec
AUTH TLS) ; le FTPS « implicite » sur le port 990 est répandu mais non normalisé. - 2007 RFC 3659 :
MLSD,MDTM,SIZE(listes lisibles par machine). - 2021 Chrome 88 (janvier) et Firefox 90 (juillet) suppriment la prise en charge de FTP.
- 2022 OpenSSH 9.0 utilise par défaut le protocole SFTP pour
scp.
Sécurité
- En clair : identifiants et contenus sans TLS ; une capture du trafic suffit. Chez un hébergeur web, un compte FTP signifie généralement un accès en écriture au site.
- Force brute : les ports 21 ouverts sont attaqués en continu avec des listes de mots de passe ; sans blocage après des échecs (p. ex. Fail2Ban), ce n’est qu’une question de temps.
- FTP anonyme : répertoires lisibles, voire inscriptibles, par erreur.
- FTP bounce (abus de
PORTpour des scans et pour contourner des filtres) ; les serveurs modernes n’acceptent que l’IP du client. - Failles connues dans d’anciens serveurs, comme la porte dérobée de vsftpd 2.3.4 (2011) ou ProFTPD
mod_copy(CVE-2015-3306). - FTPS : imposer TLS 1.2/1.3 (
TLSRequired), protéger le canal de données (PROT P), exiger la réutilisation de la session TLS sur le canal de données (protège contre le détournement de la connexion de données).
FTP, FTPS, SFTP, SCP, HTTPS comparés
| FTP | FTPS | SFTP | HTTPS (WebDAV, dépôt) | |
|---|---|---|---|---|
| Chiffrement | aucun | TLS | SSH | TLS |
| Ports | 21 + données | 21/990 + données | 22 | 443 |
| Pare-feu/NAT | difficile | difficile (pas d’ALG) | simple | simple |
| Authentification | mot de passe | mot de passe, certificat client | mot de passe, clé, certificat | mot de passe, jeton, SSO |
| Recommandation | désactiver | seulement si nécessaire | standard | pour les personnes et les API |
État actuel (2026)
- Les hébergeurs et les serveurs Plesk proposent souvent encore FTP par défaut ; SFTP est généralement disponible, mais pas toujours le réglage par défaut.
- On trouve encore FTP dans l’industrie et la technique du bâtiment (automates, caméras), dans les imprimantes (« scan to FTP ») et dans d’anciennes intégrations entre entreprises ; l’échange B2B est dominé par SFTP, AS2 et les interfaces HTTPS.
- Les analyses à l’échelle d’Internet recensent toujours des millions de serveurs FTP accessibles, beaucoup avec des logiciels obsolètes.
- Des règles comme PCI DSS exigent un chiffrement fort des données sensibles en transit ; le FTP non chiffré n’y satisfait pas.
Évolutions
- Abandon de FTP : après les navigateurs, systèmes d’exploitation et outils retirent progressivement la prise en charge ; les hébergeurs passent au « SFTP uniquement ».
- SSH post-quantique : OpenSSH utilise des accords de clés hybrides (sntrup761x25519 dès 9.0, mlkem768x25519 par défaut dès 10.0) ; SFTP est ainsi aussi protégé contre « collecter maintenant, déchiffrer plus tard ».
- Le transfert de fichiers géré et les liens HTTPS signés à durée limitée (p. ex. stockage objet) remplacent les comptes FTP partagés.
- Déploiement des sites web via Git, CI/CD et SSH au lieu de la mise en ligne par FTP.
Durcissement, si FTP doit rester
- Seulement FTPS avec TLS imposé (canal de commande et de données), pas d’accès anonyme, chroot par compte.
- Définir une plage de ports passifs étroite et n’ouvrir que celle-ci ; limiter l’accès par pare-feu à des adresses connues.
- Blocage après échecs (Fail2Ban), mots de passe forts, pas de comptes partagés, journalisation.
- Tenir le serveur à jour ; masquer la version dans la bannière d’accueil.
- Dans Plesk : « Outils & paramètres → paramètres FTP » ou n’accorder que l’accès SFTP par abonnement.
Ce que vérifie eam.ch
- En mode actif (avec autorisation) : services non chiffrés accessibles comme FTP (port 21), constat « Service non chiffré accessible ».
- Les versions dans les messages d’accueil des services sont comparées aux failles connues.
- Certificats et versions TLS des serveurs accessibles (rapport TLS).
Sources : RFC 114, 765, 959, 1579, 2228, 2389, 2428, 3659, 4217 (rfc-editor.org) ; draft-ietf-secsh-filexfer ; notes de version Chrome 88 et Firefox 90 (2021) ; notes de version OpenSSH 9.0 (2022) et 10.0 (2025) ; NVD, CVE-2015-3306.
En bref
- FTP (1971/1985) transfère des fichiers via deux connexions : commandes sur le port 21, données séparément.
- Le FTP classique n’est pas chiffré : mots de passe et fichiers peuvent être lus.
- Les navigateurs ne prennent plus en charge FTP depuis 2021.
- Successeurs sûrs : SFTP (via SSH, recommandé) et FTPS (FTP avec TLS).
- Désactiver les services FTP inutiles ; n’exploiter les appareils utilisant FTP qu’en interne.