Fonctionnement d'un FTP a la norme RFC - Programmation
Marsh Posté le 14-03-2002 à 21:41:04
Un server a la norme RFC ? Ca ne veut rien dire... Si tu utilises un serveur ne respectant pas la RFC 959 tu n'est pas en presence d'une application pouvant se targuer d'etre un serveur FTP...
Maintenant pour savoir ce qui se passe avec le PASV : tu vas sur google, tu fais une recherche sur rfc et ftp (eventuellement rfc 959 si tu veux) et tu lis la partie correspondante a ta question : c'est le role de celle-ci expliquer le protocole.
Marsh Posté le 14-03-2002 à 21:44:24
Merci de ton aide tres precieuse
Je n'y avait absolument pas pense...
Woaw
Marsh Posté le 14-03-2002 à 21:45:31
Ca donne ca en gros :
Indique au serveur de se mettre en mode passif, c'est-à-dire qu'il 'écoute' sur son port au lieu d'essayer d'établir une connexion lorsqu'il reçoit une commande de service de transfert.
Ce qui ne m'aide pas des masses
Marsh Posté le 14-03-2002 à 21:48:59
au risque de dire des conneries
il faut deux sockets pour bosser avec un ftp : une pour les commandes (USER, PASS, RETR & co) et une pour les envois de fichiers et listings de répertoire.
en mode standard, tu donnes ton ip au serveur et un port de ta machine sur lequel se connecter.
en mode passif, le serveur te file une ip et un port à lui sur lequel tu te connectes.
Marsh Posté le 14-03-2002 à 21:49:34
derrière tout ça, il y a une histoire de sécurité (pasv plus secure) mais je ne me souviens pas des détails ... *:)
Marsh Posté le 14-03-2002 à 22:02:15
Merci, c'est deja un pas en avant !
Je vais essayer de creuser encore
Marsh Posté le 15-03-2002 à 01:23:13
Manegarm a écrit a écrit : Merci de ton aide tres precieuse Je n'y avait absolument pas pense... Woaw |
On rigole...
Tu es sur d'avoir cherche ne serait-ce qu'un peu ou tu t'es directement arrete lorsque tu sa trouve la definition de PASV sans avoir essye de voir le rapport avec les autres commandes ?
PASV sert a transférer des fichiers entre deux serveurs :
Tu mets un des deux en mode passif, à l'aide de la commande PASV (qui retourne l'adresse IP et le numéro de port sur lequel ce serveur passif s'est mis en attente d'une connexion), puis tu lui envoyes une commande de réception de fichier STOR. Ensuite tu indiques à l'autre serveur (actif) l'adresse IP et le numéro de port utilisé par le serveur passif, à l'aide de la commande PORT, enfin tu envoyes au serveur actif la commande de transfert RETR.
Cette utilisation peut toutefois etre dangereuse et est sujete a de nombreuses possibilites d'attaques : si les serveurs sont mal configures tu peux contourner des restrictions d'acces, ou envoyer de maniere detournee des informations...
Tu peux effectivement indiquer avec la commande PORT une IP et un no de port... si ledit no de port est le port d'un protocole internet tu peux realiser une operation toute autre que le transfert d'un fichier : p.ex. envoyer sur le port 25 d'un serveur SMTP peut resulter en l'envoi d'un email.
Marsh Posté le 15-03-2002 à 17:23:52
et avec systeme client/serveur ca donne quoi ?
un PASV donne un truc du genre 192,168,0,1,34,67
ok , le debut c est l adresse ip et ensuite 2 ports ...
mais pourquoi deux ports ??
Marsh Posté le 15-03-2002 à 17:33:13
ce ne sont pas deux ports mais deux bytes qui forment un word : _le_ port.
Marsh Posté le 15-03-2002 à 18:09:39
230 Anonymous user logged in
PASV
227 Entering Passive Mode (**,**,253,17,30,15).
PORT **,**,3,15,30,15
200 PORT command successful
LIST
425 Could not open data connection to port 7695: Connection refused
d ou sort il le port ?
Marsh Posté le 15-03-2002 à 19:21:55
les 2 derniers chiffres ne donnent pas 2 port mais un seul.
Je me souvient plus de l'algo de codage mais il me semble que le numéro du port correspond à la somme de 16* le premier et d'un second
Marsh Posté le 18-03-2002 à 21:28:12
Je comprends bien tout ca, mais je n'arrive pas a determiner ce que fait le server dans le tas. J'ai demande a pas mal de gens et personne ne sait me repondre. Le RFC est floue la dessus.
Que fait le server ? Il cree une nouvelle socket de donnees lors de la reception de PASV et se met en ecoute sur un port particulier ? Et que fait le client alors
Marsh Posté le 18-03-2002 à 22:01:21
PORT est utilisé pour spécifier au serveur sur quel port il peut t'envoyer les données.
je ne crois pas que tu sois censé faire un PORT après un PASV. tu devrais te connecter à l'ip indiquée au port indiqué et le serveur devrait te balancer les données.
Marsh Posté le 19-03-2002 à 21:43:57
J'ai enfin reussi a passer ce mode PASV
par contre, je me pose des questions sur le transfert des fichiers... Comment un client receptionne le flux de donnees de son cote ?
C'est quoi le mieux, mode binqire ou ASCII ?
Comment faire du cote server pour envoyer le fichier (modele en C)...
Votre aide est plus que bienvenue
Marsh Posté le 14-03-2002 à 21:34:46
Voila, je suis tres intrigue par ce que fais le mode PASV d'un server FTP a la norme RFC.
Si on pouvait m'eclairer...
Que se passe t il du cote server quand le client envoie PASV ???