Le protocole FTP

Article de blog | Finger In The Net

Protocole FTP - image mis en avant

Le protocole FTP

Le protocole FTP (File Transfer Protocol) est un protocole de couche application de la pile TCP/IP, normalisé par la RFC 959 depuis 1985. Il constitue un standard historique pour le transfert de fichiers entre hôtes sur un réseau IP, notamment dans les environnements CISCO pour la gestion d’images IOS et de sauvegardes de configuration.

Norme : RFC 959 (IETF)
Ports utilisés :

  • 21/TCP : Connexion de contrôle (commandes, authentification, navigation dans l’arborescence)
  • 20/TCP : Port par défaut pour le transfert de données en mode actif

Fonctionnement général

Protocole FTP - Les échanges sur le port 20 et 21

Le protocole FTP fonctionne selon un modèle client/serveur. Le client FTP initie la connexion de contrôle vers le serveur FTP sur le port 21, puis des connexions de données sont établies pour le transfert effectif des fichiers.

Caractéristiques principales :

  • Support de l’authentification : par nom d’utilisateur et mot de passe, ou en mode anonyme
  • Modes de transfert : ASCII (texte) ou binaire (fichiers non texte)
  • Deux flux TCP distincts :
    • Connexion de contrôle (persistante)
    • Connexion de données (créée à chaque transfert, séparée pour l’envoi/réception)

Modes de connexion du protocole FTP

Mode Actif

  • Le client FTP initie la connexion de contrôle vers 21/TCP sur le serveur FTP
  • Lors d’un transfert, le client envoie au serveur la commande PORT, indiquant sur quel port éphémère (>1023) il attend la connexion de données
  • Le serveur FTP se connecte alors du port 20/TCP vers le port désigné du client

Mode Passif

  • Utilisé pour surmonter les restrictions NAT/Pare-feu
  • Le client FTP demande au serveur, via la commande PASV, sur quel port éphémère il doit initier la connexion de données
  • Le serveur répond avec le port, et c’est le client qui se connecte à ce port, évitant ainsi une connexion entrante du serveur vers le client

Sécurité du protocole FTP

Le protocole FTP transmet les identifiants et les données en clair, sans chiffrement natif. Cela expose le trafic à des risques d’interception sur le réseau.

FTPS (FTP Secure)

  • Ajoute SSL/TLS au protocole FTP (RFC 4217), pour le chiffrement des authentifications et des données
  • Support des certificats numériques
  • Utilisé principalement quand un cryptage fort est nécessaire, par exemple pour des transferts sensibles

SFTP (SSH File Transfer Protocol)

  • Protocole distinct, encapsulé dans SSH et n’ayant aucun lien de paquetisation ou de port avec le protocole FTP (SFTP utilise 22/TCP)
  • SFTP permet des fonctionnalités avancées (renommage, suppression, création de dossiers…) sécurisées

Utilisation du protocole FTP sur les équipements CISCO

Le protocole FTP est principalement utilisé pour :

  • Télécharger une image IOS vers le routeur ou switch Cisco
  • Sauvegarder/restaurer la configuration
  • Copier tout autre fichier entre l’équipement et un serveur centralisé

L’utilisation du protocole FTP est souvent préférée au protocole TFTP pour la gestion centralisée des configurations et images à cause de sa fiabilité et de ses fonctionnalités (authentification, gestion des fichiers).

Configuration FTP sur les équipements CISCO

Commandes de configuration globale essentielles

R1(config)# ip ftp username admin                          ! Définir le nom d'utilisateur FTP par défaut
R1(config)# ip ftp password cisco123                       ! Définir le mot de passe FTP par défaut
R1(config)# ip ftp source-interface GigabitEthernet0/0     ! Choisir l'interface source pour les connexions FTP sortantes

Commandes pour le transfert d’images IOS

R1# copy ftp: flash:                                       ! Télécharger une image du serveur FTP vers la flash du routeur
R1# copy flash: ftp:                                      ! Charger une image de la flash vers un serveur FTP

Lors de l’utilisation de cette commande, IOS vous demandera :

  • L’adresse IP du serveur FTP
  • Le nom d’utilisateur (si non configuré globalement)
  • Le mot de passe (si non configuré globalement)
  • Le nom du fichier source
  • Le nom du fichier de destination

Commandes pour la sauvegarde et restauration de configuration

R1# copy running-config ftp:                              ! Sauvegarder la configuration active sur un serveur FTP
R1# copy startup-config ftp:                              ! Sauvegarder la configuration de démarrage sur un serveur FTP
R1# copy ftp: running-config                              ! Restaurer une configuration depuis un serveur FTP
R1# copy ftp: startup-config                              ! Charger une configuration de démarrage depuis un serveur FTP

Commandes avec spécification directe des identifiants

R1# copy ftp://admin:cisco123@192.168.1.100/c2900-universalk9-mz.SPA.155-3.M4a.bin flash:

Cette commande permet de spécifier directement l’utilisateur, le mot de passe, l’adresse IP du serveur et le chemin du fichier.

Commandes de diagnostic et dépannage

R1# debug ftp                                             ! Activer le mode de dépannage FTP (diagnostic)
R1# undebug all                                           ! Désactiver tous les diagnostics en cours

Commandes de vérification

R1> show running-config                                    ! Vérifier la configuration active
R1> show startup-config                                    ! Vérifier la configuration de démarrage
R1> show file systems                                      ! Voir les systèmes de fichiers et points de montage disponibles
R1> show flash:                                           ! Lister les fichiers présents sur la mémoire flash
R1> show version                                          ! Afficher les informations sur l'image IOS actuelle

Commandes optionnelles pour optimiser les transferts FTP

Configuration du mode passif

R1(config)# ip ftp passive                                ! Forcer l'utilisation du mode passif pour les connexions FTP sortantes

Cette commande est particulièrement utile quand le routeur se trouve derrière un NAT ou un pare-feu.

Configuration du timeout FTP

R1(config)# ip ftp timeout 30                             ! Définir le timeout FTP (en secondes)

Vérification des paramètres FTP configurés

R1> show running-config | include ftp                      ! Afficher uniquement les lignes contenant "ftp" dans la configuration

Configuration sur les switches CISCO

Les commandes sont identiques sur les switches, seul le prompt change :

SWE(config)# ip ftp username admin                         ! Configuration sur switch de niveau 2
SWE(config)# ip ftp password cisco123                      ! Définir les paramètres FTP
SWE# copy ftp: flash:                                      ! Télécharger une image vers le switch

SWC(config)# ip ftp username admin                         ! Configuration sur switch de niveau 3
SWC(config)# ip ftp password cisco123                      ! Définir les paramètres FTP
SWC# copy running-config ftp:                              ! Sauvegarder la configuration

Mots-clés spécifiques du protocole FTP

  • Connexion de contrôle : Flux persistant dédié aux commandes et à l’authentification sur le port 21/TCP
  • Connexion de données : Flux temporaire ouvert à chaque transfert, port 20 (actif) ou port indiqué par le serveur (passif)
  • Mode ASCII/Binaire : Modes d’encodage des fichiers ; essentiel pour préserver l’intégrité des fichiers
  • Mode passif : Impératif pour des transferts à travers NAT ou pare-feu restrictifs
  • Anonymous FTP : Accès FTP sans authentification, utilisant “anonymous” comme nom d’utilisateur

Cas d’usage typiques en environnement CISCO

  • Déploiement centralisé d’images IOS sur un parc de routeurs et switches
  • Sauvegarde automatisée de configurations via un serveur FTP centralisé
  • Collecte des journaux ou fichiers de logs depuis les équipements
  • Transfert de certificats SSL pour les services HTTPS sur les équipements
  • Distribution de fichiers de configuration spécifiques par site

Scénario complet de mise à jour d’image IOS

R1> enable                                                 ! Passer en mode privilégié
R1# configure terminal                                     ! Entrer en mode de configuration globale
R1(config)# ip ftp username ftpuser                       ! Définir l'utilisateur FTP
R1(config)# ip ftp password ftppass                       ! Définir le mot de passe FTP
R1(config)# ip ftp source-interface GigabitEthernet0/0    ! Définir l'interface source
R1(config)# exit                                          ! Retourner en mode privilégié
R1# show flash:                                           ! Vérifier l'espace disponible sur la flash
R1# copy ftp: flash:                                      ! Commencer le transfert

Le système demandera alors :

  • Address or name of remote host []? 192.168.1.100
  • Source filename []? c2900-universalk9-mz.SPA.155-3.M4a.bin
  • Destination filename [c2900-universalk9-mz.SPA.155-3.M4a.bin]? (Appuyer sur Entrée)
R1# show flash:                                           ! Vérifier que le fichier a bien été copié
R1# configure terminal                                     ! Retourner en configuration
R1(config)# boot system flash c2900-universalk9-mz.SPA.155-3.M4a.bin  ! Définir la nouvelle image de boot
R1(config)# exit                                          ! Sortir de la configuration
R1# write memory                                          ! Sauvegarder la configuration
R1# reload                                                ! Redémarrer pour utiliser la nouvelle image

Pour vous préparer efficacement à la certification CCNA 200-301, approfondissez vos connaissances sur le protocole FTP et d’autres protocoles essentiels avec la formation vidéo officielle : Formation CCNA 200-301 (Cours vidéo)

Note importante : Toutes les configurations avancées, les restrictions relatives à la sécurité des transferts, la gestion des droits d’accès et les logs spécifiques sont documentés sur le site officiel de Cisco. Pour des environnements critiques ou exposés à Internet, privilégier systématiquement FTPS ou SFTP au protocole FTP standard pour garantir la confidentialité des données lors des transferts.

Noël NICOLAS

Auteur de l'article

Expert Réseau
15 ans d’expérience
CCNP Routing and Switching
Fondateur du site FingerInTheNet

Eric JOUFFRILLON

Co-auteur de l'article

Expert SATCOM
Technicien Réseau
17 ans d’éxpérience déploiement réseau SATCOM
Spécialisé LFN (Long Fat Network).Diffusion vidéo et QOS.

CURSUS DE FORMATION

Administrateur Réseau