Euh il me semblait que dans ce poste nous avions deja parlé de cela non ?
viewtopic.php?p=125447#125447
met ton e-smith derriere ton routeur.
pour le port 20 il ne faut a mon avis ne pas l'ouvrir, il est utilisé a chaque fois que l'on va transférer un fichier entre le client et le serveur généralement entre le port 20 du serveur et un port aléatoire du client et que en mode actif, en mode passif tout ne passe que par le 21
Les communications FTP ont lieu sur deux canaux :
- un canal de contrôle
- un canal de données
Le canal de contrôle permet de transmettre des commandes : suppression et/ou création de fichier/dossier, changement de répertoire, listing, authentification, j'en passe et d'autres.
Le canal de contrôle utilise en général le port 21.
Les données (un fichier qu'on transfère par exemple), par défaut, transitent via le port 20. Le problème qui se pose alors est que si le serveur FTP n'utilise que le port 20 pour les données, un seul tranfert simultannée est possible, c'est à dire qu'à tout moment, un et un seul client pourra télécharger ou uploader un seul fichier.
C'est pour cette raison qu'en général pour ne pas dire dans tous les cas, les serveurs FTP n'utilise pas ce port mais d'autres en général non attribués dans les valeurs hautes et toujours supérieure à 1024.
Maintenant, deux cas de figure se présente pour le client :
- soit le client initie le transfert en mode actif
- soit le client initie le transfert en mode passif
Le choix du mode est à la charge du client.
Cas du mode actif :
Dans cette configuration, le client annonce au serveur sur quel port le transfert doit se passer (commande PORT), le serveur répond OK et se connecte au client sur le port indiqué.
Conclusion : dans le cas du mode actif, le client doit avoir le port indiqué ouvert en entrée !
Cas du mode passif :
Dans cette configuration, le client demande au serveur quel port doit être utilisé (commande PASV), le serveur lui envoit et le client se connecte au serveur sur ce port.
Conclusion : dans ce cas, le port de transfert doit être ouvert en sortie sur le client.
Maintenant, si le client se trouve derrière un pare-feu, il apparait nécessaire d'utiliser le mode passif car sinon, on s'obligerait à ouvrir tous les ports en entrée et ça, c'est pas bon !
Comme de plus on ne sait pas à l'avance, et on ne peut pas le savoir, quel port va offrir le serveur pour le transfert, il est indispensable d'ouvrir les ports >1024 en sortie.
Dans le cas du mode actif, c'est le client qui ouvre un port et donc le serveur qui s'y connecte : la connexion est entrante pour le client
Dans le cas du mode passif, c'est le serveur qui ouvre un port et le client qui s'y connecte : la connexion est sortante pour le client
Exemple (simplifié):
Je veux déposer un fichier sur un serveur FTP en mode actif :
1 - J'ouvre le port 12345 sur ma machine
2 - j'envoie la commande PORT 12345 (port 21)
3 - le serveur se connecte sur mon port 12345 (port 12345)
4 - j'envoie la commande STOR monFichier (port 21)
5 - j'envoie mon fichier (port 12345)
Pour que le point 3 soit effectif, il faut que le port 12345 soit ouvert en entrée sur ma machine
Je veux déposer un fichier sur un serveur FTP en mode passif :
1 - Je demande quel port utiliser pour le transfert : PASV (port 21)
2 - Le serveur réponds OK et joint son IP et le port 12345 (port 21)
3 - Je me connecte au serveur sur le port 12345 (port 12345)
4 - J'envoie la commande STOR monFichier (port 21)
5 - j'envoie mon fichier (port 12345)
Pour que le point 3 soit effectif, il faut que le port 12345 soit ouvert en sortie sur ma machine
Le mode passif a justement été mis en place pour les transfert FTP derrière des firewalls
donc pas la peine d'ouvrir le 20