_Version expurgée de mon article Modes de connexion FTP (actif ou passif)_ :
Le mode de connexion FTP (actif ou passif), détermine la manière dont une connexion de données est établie. Dans les deux cas, un client crée une connexion de contrôle TCP avec un port de commande 21 du serveur FTP. Il s'agit d'une connexion sortante standard, comme avec tout autre protocole de transfert de fichiers (SFTP, SCP, WebDAV) ou toute autre application client TCP (par exemple, un navigateur Web). En général, il n'y a donc aucun problème lors de l'ouverture de la connexion de contrôle.
Le protocole FTP est plus compliqué que les autres protocoles de transfert de fichiers. Alors que les autres protocoles utilisent la même connexion pour le contrôle des sessions et les transferts de fichiers (données), le protocole FTP utilise une connexion distincte pour les transferts de fichiers et les listes de répertoires.
Dans le actif le client commence à écouter sur un port aléatoire les connexions de données entrantes en provenance du serveur (le client envoie la commande FTP PORT
pour informer le serveur sur quel port il écoute). De nos jours, il est courant que le client se trouve derrière un pare-feu (par exemple, le pare-feu intégré de Windows) ou un routeur NAT (par exemple, un modem ADSL), incapable d'accepter des connexions TCP entrantes.
C'est la raison pour laquelle le passif a été introduit et est principalement utilisé de nos jours. L'utilisation du passif est préférable car la plupart des configurations complexes ne sont effectuées qu'une seule fois du côté du serveur, par un administrateur expérimenté, plutôt qu'individuellement du côté du client, par des utilisateurs (éventuellement) inexpérimentés.
Dans le passif le client utilise la connexion de contrôle pour envoyer un message PASV
au serveur et reçoit ensuite du serveur une adresse IP de serveur et un numéro de port de serveur, que le client utilise ensuite pour ouvrir une connexion de données à l'adresse IP de serveur et au numéro de port de serveur reçus.
Configuration du réseau pour le mode passif
Avec le passif la plus grande partie de la charge de configuration se situe du côté du serveur. L'administrateur du serveur doit configurer le serveur comme décrit ci-dessous.
Le pare-feu et le NAT du côté du serveur FTP doivent être configurés non seulement pour autoriser/router les connexions entrantes sur le port FTP 21, mais aussi une série de ports pour les connexions de données entrantes. En général, le logiciel du serveur FTP dispose d'une option de configuration permettant de définir une série de ports que le serveur utilisera. Et la même plage doit être ouverte/route sur le pare-feu/NAT.
Lorsque le serveur FTP se trouve derrière un NAT, il doit connaître son adresse IP externe, afin de pouvoir la fournir au client dans une réponse à la commande PASV
commandement.
Configuration du réseau pour le mode actif
Avec le actif la plus grande partie de la charge de configuration se trouve du côté du client.
Le pare-feu (par exemple, le pare-feu Windows) et le NAT (par exemple, les règles de routage du modem ADSL) du côté client doivent être configurés pour autoriser/router une série de ports pour les connexions de données entrantes. Pour ouvrir les ports dans Windows, allez à Panneau de configuration > Système et sécurité > Pare-feu Windows > Paramètres avancés > Règles d'entrée > Nouvelle règle . Pour le routage des ports sur le NAT (le cas échéant), reportez-vous à sa documentation.
Lorsqu'il y a de la NAT dans votre réseau, le client FTP doit connaître son adresse IP externe que WinSCP doit fournir au serveur FTP en utilisant PORT
commande. Ainsi, le serveur peut se reconnecter correctement au client pour ouvrir la connexion de données. Certains clients FTP sont capables de détecter automatiquement l'adresse IP externe, d'autres doivent être configurés manuellement.
Pare-feu intelligents/NATs
Certains pare-feu/NAT essaient d'ouvrir/de fermer automatiquement les ports de données en inspectant la connexion de contrôle FTP et/ou de traduire les adresses IP de la connexion de données dans le trafic de la connexion de contrôle.
Avec un tel pare-feu/NAT, la configuration ci-dessus n'est pas nécessaire pour un simple FTP non crypté. Mais cela ne peut pas fonctionner avec FTPS, car le trafic de la connexion de contrôle est crypté et le pare-feu/NAT ne peut pas l'inspecter ni le modifier.