Réponses:
Actif et passif sont les deux modes dans lesquels FTP peut s'exécuter.
Pour le fond, FTP utilise en fait deux canaux entre le client et le serveur, les canaux de commande et de données, qui sont en fait des connexions TCP distinctes .
Le canal de commande est pour les commandes et les réponses tandis que le canal de données est pour le transfert des fichiers.
Cette séparation des informations de commande et des données dans des canaux séparés est un moyen astucieux d'envoyer des commandes au serveur sans avoir à attendre la fin du transfert de données en cours. Selon la RFC, cela n'est obligatoire que pour un sous-ensemble de commandes, telles que la fermeture, l'abandon du transfert en cours et l'obtention du statut.
En mode actif , le client établit le canal de commande mais le serveur est responsable de l'établissement du canal de données. Cela peut en fait être un problème si, par exemple, la machine cliente est protégée par des pare-feu et n'autorise pas les demandes de session non autorisées de parties externes.
En mode passif , le client établit les deux canaux. Nous savons déjà qu'il établit le canal de commande en mode actif et il fait de même ici.
Cependant, il demande ensuite au serveur (sur le canal de commande) de démarrer l' écoute sur un port (à la discrétion des serveurs) plutôt que d'essayer d'établir une connexion avec le client.
Dans ce cadre, le serveur renvoie également au client le numéro de port qu'il a sélectionné pour écouter, afin que le client sache comment s'y connecter.
Une fois que le client le sait, il peut ensuite créer avec succès le canal de données et continuer.
Plus de détails sont disponibles dans le RFC: https://www.ietf.org/rfc/rfc959.txt
J'ai récemment rencontré cette question sur mon lieu de travail, donc je pense que je devrais dire quelque chose de plus ici. J'utiliserai l'image pour expliquer comment le FTP fonctionne comme source supplémentaire pour la réponse précédente.
Mode actif:
Mode passif:
Dans une configuration en mode actif, le serveur tentera de se connecter à un port côté client aléatoire. Il y a donc de fortes chances que ce port ne soit pas l'un de ces ports prédéfinis. Par conséquent, une tentative de connexion à celui-ci sera bloquée par le pare-feu et aucune connexion ne sera établie.
Une configuration passive n'aura pas ce problème car le client sera celui qui initiera la connexion. Bien sûr, il est possible que le côté serveur dispose également d'un pare-feu. Cependant, étant donné que le serveur devrait recevoir un plus grand nombre de demandes de connexion par rapport à un client, il serait logique que l'administrateur du serveur s'adapte à la situation et ouvre une sélection de ports pour satisfaire les configurations en mode passif.
Il serait donc préférable pour vous de configurer le serveur pour qu'il prenne en charge le mode passif FTP. Cependant, le mode passif rendrait votre système vulnérable aux attaques car les clients sont censés se connecter à des ports de serveur aléatoires. Ainsi, pour prendre en charge ce mode, non seulement si votre serveur doit avoir plusieurs ports disponibles, votre pare-feu doit également autoriser les connexions à tous ces ports!
Pour atténuer les risques, une bonne solution serait de spécifier une plage de ports sur votre serveur, puis d'autoriser uniquement cette plage de ports sur votre pare-feu.
Pour plus d'informations, veuillez lire le document officiel .
Version expurgée de mon article Modes de connexion FTP (actif vs passif) :
Le mode de connexion FTP (actif ou passif), détermine comment une connexion de données est établie. Dans les deux cas, un client crée une connexion de contrôle TCP vers un port de commande de serveur FTP 21. 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 ). Donc, généralement, il n'y a aucun problème lors de l'ouverture de la connexion de contrôle.
Lorsque le protocole FTP est plus compliqué par rapport aux autres protocoles de transfert de fichiers, ce sont les transferts de fichiers. Alors que les autres protocoles utilisent la même connexion pour le contrôle de session 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.
En mode actif , le client commence à écouter sur un port aléatoire les connexions de données entrantes à partir du serveur (le client envoie la commande FTP PORT
pour informer le serveur sur quel port il écoute). De nos jours, il est typique que le client soit derrière un pare-feu (par exemple un pare-feu Windows intégré) ou un routeur NAT (par exemple un modem ADSL), incapable d'accepter les connexions TCP entrantes.
Pour cette raison, le mode passif a été introduit et est principalement utilisé de nos jours. L'utilisation du mode passif est préférable car la plupart de la configuration complexe n'est effectuée qu'une seule fois côté serveur, par un administrateur expérimenté, plutôt qu'individuellement côté client, par des utilisateurs (éventuellement) inexpérimentés.
En mode passif , le client utilise la connexion de contrôle pour envoyer une PASV
commande au serveur, puis reçoit une adresse IP et un numéro de port de serveur du serveur, que le client utilise ensuite pour ouvrir une connexion de données à l'adresse IP et au serveur du serveur numéro de port reçu.
Avec le mode passif , la majeure partie de la charge de configuration est du côté serveur. L'administrateur du serveur doit configurer le serveur comme décrit ci-dessous.
Le pare-feu et le NAT côté serveur FTP doivent être configurés non seulement pour autoriser / router les connexions entrantes sur le port FTP 21 mais également une gamme de ports pour les connexions de données entrantes. En règle générale, le logiciel du serveur FTP dispose d'une option de configuration pour configurer une plage de ports que le serveur utilisera. Et la même plage doit être ouverte / routée 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 en réponse à une PASV
commande.
Avec le mode actif , la majeure partie de la charge de configuration est du côté client.
Le pare-feu (par exemple le pare-feu Windows) et le NAT (par exemple les règles de routage du modem ADSL) côté client doivent être configurés pour autoriser / router une plage de ports pour les connexions de données entrantes. Pour ouvrir les ports dans Windows, accédez à Panneau de configuration> Système et sécurité> Pare-feu Windows> Paramètres avancés> Règles entrantes> Nouvelle règle . Pour router les ports sur le NAT (le cas échéant), reportez-vous à sa documentation.
Lorsqu'il y a du NAT dans votre réseau, le client FTP doit connaître son adresse IP externe que WinSCP doit fournir au serveur FTP à l'aide de la PORT
commande. Pour que le serveur puisse 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, certains doivent être configurés manuellement.
Certains pare-feu / NAT essaient d'ouvrir / fermer automatiquement les ports de données en inspectant la connexion de contrôle FTP et / ou en traduisant les adresses IP de connexion de données dans le trafic de connexion de contrôle.
Avec un tel pare-feu / NAT, la configuration ci-dessus n'est pas nécessaire pour un FTP simple non chiffré. Mais cela ne peut pas fonctionner avec FTPS, car le trafic de connexion de contrôle est crypté et le pare-feu / NAT ne peut pas l'inspecter ni le modifier.
Mode actif: -server initie la connexion.
Mode passif: -client initie la connexion.
Mode actif - Le client émet une commande PORT au serveur signalant qu'il fournira «activement» une adresse IP et un numéro de port pour ouvrir la connexion de données au client.
Mode passif: le client émet une commande PASV pour indiquer qu'il attendra «passivement» que le serveur fournisse une adresse IP et un numéro de port, après quoi le client créera une connexion de données au serveur.
Il y a beaucoup de bonnes réponses ci-dessus, mais cet article de blog contient des graphiques utiles et donne une explication assez solide: https://titanftp.com/2018/08/23/what-is-the-difference-between-active-and -passive-ftp /