::jseblod::article::/jseblod::
::panel_article:::/panel_article::
::wysiwyg_introtext::
Le transfert de fichiers fait partie des applications TCP/IP les plus fréquemment utilisées et il représente une grande partie du trafic réseau sur Internet. Divers protocoles de transfert de fichiers standard existaient avant même que l’Internet ne soit accessible à tous et ce sont ces premières versions du logiciel de transfert de fichiers qui ont contribué à créer la norme actuelle connue sous le nom de protocole de transfert de fichiers (FTP). Les spécifications les plus récentes du protocole sont répertoriées dans le RFC 959.
::/wysiwyg_introtext::
::my_readmore:::/my_readmore::
::wysiwyg_fulltext::
Le protocole
FTP utilise TCP comme protocole de transport. Cela signifie que FTP hérite de la robustesse de TCP et est très fiable pour le transfert de fichiers. Il y a fort à parier que si vous téléchargez des fichiers, vous avez probablement utilisé ftp quelques centaines de fois sans vous en rendre compte ! Et si vous avez une énorme collection warez, alors faites en sorte que ce soit quelques milliers de fois 🙂
L’image ci-dessous montre où se situe FTP par rapport au modèle OSI. Comme je l’ai noté dans d’autres sections, il est important de comprendre le concept du modèle OSI, car cela vous aidera grandement à comprendre tout cela également 🙂
Maintenant, nous avons mentionné que FTP utilise TCP comme transport, mais nous n’avons pas dit quels ports il utilise ! Les numéros de port 21 et 20 sont utilisés pour FTP. Le port 21 est utilisé pour établir la connexion entre les 2 ordinateurs (ou hôtes) et le port 20 pour transférer les données (via le canal Data).
Mais il y a quelques cas où le port 21 est utilisé à la fois pour établir une connexion et pour le transfert de données et je vais les analyser prochainement.
La meilleure chose que vous puissiez faire pour « voir » par vous-même est de prendre un renifleur de paquets que vous trouverez commodément dans notre section de téléchargement et d’essayer de capturer quelques paquets pendant que vous faites du ftp sur un site.
.
Les deux ports – 20 et 21 – Mode FTP actif
J’ai inclus une capture d’écran de mon poste de travail qui montre clairement les 2 ports utilisés. Dans l’exemple, j’ai ftp’ed dans ftp.cdrom.com. Veuillez cliquer ici pour voir l’image complète
Uniquement le port 21 – Mode FTP passif
Maintenant, dans l’image suivante, je me suis connecté par FTP à mon serveur NetWare, ici à la maison, et devinez quoi ?… Seul le port 21 était utilisé ! Voici la capture d’écran:
Veuillez cliquer ici pour voir l’image complète.
Laissez-moi vous expliquer pourquoi cela se produit :
FTP a deux modes de fonctionnement distincts : Actif et Passif. Vous utiliserez l’un ou l’autre selon que votre PC se trouve ou non derrière un pare-feu.
Mode actif FTP
Le mode actif est généralement utilisé lorsqu’il n’y a pas de pare-feu entre vous et le serveur FTP. Dans ce cas, vous disposez d’une connexion directe à Internet. Lorsque vous (le client) essayez d’établir une connexion avec un serveur FTP, votre poste de travail inclut un deuxième numéro de port (à l’aide de la commande PORT) qui est utilisé lorsque des données doivent être échangées, c’est ce qu’on appelle le canal de données.
Le serveur FTP lance alors l’échange de données de son propre port 20 vers le port désigné par votre poste de travail (dans la capture d’écran, mon poste de travail a utilisé le port 1086), et comme c’est le serveur qui a initié la communication, celle-ci n’est pas contrôlée par le client du poste de travail. Cela peut également permettre à des données non sollicitées d’arriver sur votre ordinateur depuis n’importe où en se faisant passer pour un transfert FTP normal. C’est l’une des raisons pour lesquelles le FTP passif est plus sûr.
Passive Mode FTP
En utilisant le FTP normal ou passif, un client commence une session en envoyant une demande de communication via le port TCP 21, le port qui est conventionnellement assigné pour cet usage au serveur FTP. Cette communication est connue sous le nom de connexion du canal de contrôle.
À ce stade, une commande PASV est envoyée au lieu d’une commande PORT. Au lieu de spécifier un port sur lequel le serveur peut envoyer, la commande PASV demande au serveur de spécifier un port qu’il souhaite utiliser pour la connexion du canal de données. Le serveur répond sur le canal de contrôle avec le numéro de port que le client utilise ensuite pour initier un échange sur le canal de données. Le serveur répondra donc toujours aux demandes initiées par le client sur le canal de données et le pare-feu peut les corréler.
Il est simple de configurer votre programme FTP client pour utiliser le FTP actif ou passif. Par exemple, dans Cute FTP, vous pouvez configurer votre programme pour qu’il utilise le FTP passif en allant dans FTP–> Paramètres –> Options, puis en sélectionnant l’onglet « Pare-feu » :
Si vous supprimez les options ci-dessus, alors votre poste de travail utilisera (si possible) le mode FTP actif, et je dis « si possible » car si vous êtes déjà derrière un pare-feu, il n’y a probablement aucune chance que vous utilisiez le mode FTP actif, le programme passera donc automatiquement en mode FTP passif.
Donc, regardons le processus d’un ordinateur établissant une connexion FTP avec un serveur : .
……..
Ce qui précède suppose une connexion directe au serveur FTP. Pour des raisons de simplicité, nous nous intéressons à la façon dont la connexion FTP est créée et ne nous préoccupons pas de savoir s’il s’agit d’une connexion FTP passive ou active. Étant donné que FTP utilise le protocole TCP comme moyen de transport, on peut s’attendre à voir la poignée de main à trois voies. Une fois cette opération terminée et la connexion établie, le client envoie son nom de connexion et son mot de passe. Une fois que la séquence d’authentification est terminée et que l’utilisateur est authentifié auprès du serveur, il est autorisé à accéder au site et est prêt à le lessiver 🙂
Enfin, voici les commandes FTP les plus utilisées :
ABOR : abandonner la commande FTP précédente
LIST et NLST : lister les fichiers et répertoires
DELE : supprimer un fichier
RMD : supprimer un répertoire
MKD : créer un répertoire
PWD : imprimer le répertoire de travail actuel ( vous montrer quel dir. vous êtes)
PASS : envoyer le mot de passe
PORT : demander l’ouverture du numéro de port sur une adresse IP/un numéro de port spécifique
QUIT : se déconnecter du serveur
RETR : récupérer un fichier
STOR : send or put file
SYST : identity system type
TYPE : spécifier le type (A pour ASCII, I pour binaire)
USER : envoyer le nom d’utilisateur
Et voilà qui complète à peu près notre analyse sur le protocole FTP !