File eXchange Protocol
File eXchange Protocol (FXP) est une extension du protocole de transfert de fichiers FTP. Il permet de transférer des données d'un serveur à l'autre depuis un client, sans faire passer les données par le client.
FXP n'est pas standardisé en tant que tel par l'IETF, mais il est mentionné sous le nom de server-server interaction dans la RFC 959[1].
Fonctionnement
[modifier | modifier le code]Le protocole FXP est un mode d'utilisation particulier du protocole FTP.
Par défaut, un serveur FTP est serveur pour les échanges au regard de la signalisation (on se connecte à lui), mais paradoxalement client au regard des transferts de données (c'est lui qui vient se connecter pour procéder au téléchargement montant ou descendant). La possibilité de transférer directement un fichier entre deux serveurs FTP, sans passer par le client, vient notamment du fait que l'on peut basculer un serveur en mode passif, l'autre se trouvant par défaut en mode actif.
Au moment d'établir la connexion, le client demande à l'un des serveurs d'attendre la connexion (commande PASV
) et capture l'adresse IP et le port TCP écouté. Ces deux paramètres sont envoyés au second serveur via la commande PORT
. La connexion de données est dès lors établie entre les deux serveurs.
Le client est informé de la fin du transfert par une réponse positive de chaque serveur.
Prenons le cas d'un transfert de fichier entre le serveur FTP A et le serveur FTP B :
- Le client se connecte aux deux serveurs.
- Le client bascule l'un des deux serveurs en mode passif et obtient ses coordonnées de connexion (couple IP + port).
- Le client fourni ces coordonnées au second serveur (qui est en mode actif).
Pour faire passer un fichier d'un serveur à l'autre, le client n'a plus qu'à informer le serveur destinataire qu'il envoie un fichier, puis le serveur expéditeur qu'il souhaite récupérer un fichier donné. Le fichier est alors directement échangé entre les deux serveurs.
Il est important de noter que la transmission des données est possible dans les deux sens, du serveur actif vers le passif, et vice-versa.
Sécurité
[modifier | modifier le code]FXP peut rendre un serveur vulnérable à un exploit connu sous le nom « FTP bounce ». C'est pourquoi il est souvent désactivé par défaut, en détectant ce mode par comparaison des adresses IP utilisées pour les connexions de contrôle et de données.
Il est possible de sécuriser l'échange de données entre serveurs par SSL ou TLS.
Certains logiciels prennent en charge le protocole FXP :