2 serveurs FTP derrière routeur -> choisir un des 2 avec FTP client
17 réponses
C. Tobini
Bonjour,
Je dispose de 2 ordi (Mac OS X 10.2.8 et Mandrake 10.0) derrière un
modem/routeur Inventel WiFi.
Afin de faire un partage FTP depuis le net, j'ai redirigé le port 21
vers un des PC.
Je voudrais savoir s'il y a moyen de faire en sorte qu'un PC ou l'autre
soit indiqué dans l'appel FTP client et si oui, comment faire en sorte
que le routeur redirige le FTP selon ce contexte.
Il y a aussi un risque que ça marche très mal en mode passif pour la machine vers laquelle est redirigé le port différent de 21 (helper FTP, toussa).
J'avais essayé FileZilla Server sous Windows, en affectant un port autre que 21, et je n'ai pas eu de problèmes. Reste à essayer avec cette config.
En local ou à travers le routeur ? Le logiciel serveur n'est pas en cause, c'est au niveau du dispositif qui fait NAT et/ou firewall que la connexion de données entrante peut coincer. Celui-ci doit surveiller le contenu du flux sortant de la connexion FTP de contrôle pour repérer les paramètres des commandes PORT sortantes (client interne en mode actif) ou des réponses sortantes aux commandes PASV entrantes (serveur interne en mode passif). Dans le cas d'un firewall, cela lui permet d'accepter le trafic de la connexion de données entrante sur un port dynamique. Dans le cas du NAT, il doit en plus remplacer ces paramètres dans le flux sortant de la connexion de contrôle par des valeurs compatibles avec le NAT et créer la redirection de la connexion de données vers le serveur dynamiquement.
Tout routeur NAT/firewall digne de ce nom surveille le flux des connexions TCP utilisant le port 21 qui est le port de contrôle FTP par défaut. Mais si on utilise un autre port, c'est plus délicat. Il faut vérifier que le dispositif surveille bien les connexions de contrôle FTP. Ici, le cas est particulier car le port du serveur interne reste le port standard 21, c'est le port externe du routeur vu de l'extérieur qui est différent. La question est : l'identification d'un flux comme étant une connexion de contrôle FTP est-elle possible dans ce cas ?
Tu dis que ton routeur est une boîte Linux, or les modules de suivi de connexion et de NAT du helper FTP (ip_conntrack_ftp et ip_nat_ftp) peuvent recevoir en paramètres une liste des ports susceptibles de recevoir des connexions de contrôle FTP. En spécifiant le port standard 21 et le port non standard, ça devrait marcher.
Note que le problème est symétrique si le client est aussi derrière un routeur/firewall NAT : ce dernier peut ne pas reconnaître et traiter correctement une connexion FTP sur un port non standard, et du coup empêcher les transferts en mode actif.
Il y a aussi un risque que ça marche très mal en mode passif pour la
machine vers laquelle est redirigé le port différent de 21 (helper
FTP, toussa).
J'avais essayé FileZilla Server sous Windows, en affectant un port autre
que 21, et je n'ai pas eu de problèmes. Reste à essayer avec cette config.
En local ou à travers le routeur ?
Le logiciel serveur n'est pas en cause, c'est au niveau du dispositif qui
fait NAT et/ou firewall que la connexion de données entrante peut
coincer. Celui-ci doit surveiller le contenu du flux sortant de la
connexion FTP de contrôle pour repérer les paramètres des commandes PORT
sortantes (client interne en mode actif) ou des réponses sortantes aux
commandes PASV entrantes (serveur interne en mode passif). Dans le cas
d'un firewall, cela lui permet d'accepter le trafic de la connexion de
données entrante sur un port dynamique. Dans le cas du NAT, il doit en
plus remplacer ces paramètres dans le flux sortant de la connexion de
contrôle par des valeurs compatibles avec le NAT et créer la redirection
de la connexion de données vers le serveur dynamiquement.
Tout routeur NAT/firewall digne de ce nom surveille le flux des
connexions TCP utilisant le port 21 qui est le port de contrôle FTP par
défaut. Mais si on utilise un autre port, c'est plus délicat. Il faut
vérifier que le dispositif surveille bien les connexions de contrôle FTP.
Ici, le cas est particulier car le port du serveur interne reste le port
standard 21, c'est le port externe du routeur vu de l'extérieur qui est
différent. La question est : l'identification d'un flux comme étant une
connexion de contrôle FTP est-elle possible dans ce cas ?
Tu dis que ton routeur est une boîte Linux, or les modules de suivi de
connexion et de NAT du helper FTP (ip_conntrack_ftp et ip_nat_ftp)
peuvent recevoir en paramètres une liste des ports susceptibles de
recevoir des connexions de contrôle FTP. En spécifiant le port standard
21 et le port non standard, ça devrait marcher.
Note que le problème est symétrique si le client est aussi derrière un
routeur/firewall NAT : ce dernier peut ne pas reconnaître et traiter
correctement une connexion FTP sur un port non standard, et du coup
empêcher les transferts en mode actif.
Il y a aussi un risque que ça marche très mal en mode passif pour la machine vers laquelle est redirigé le port différent de 21 (helper FTP, toussa).
J'avais essayé FileZilla Server sous Windows, en affectant un port autre que 21, et je n'ai pas eu de problèmes. Reste à essayer avec cette config.
En local ou à travers le routeur ? Le logiciel serveur n'est pas en cause, c'est au niveau du dispositif qui fait NAT et/ou firewall que la connexion de données entrante peut coincer. Celui-ci doit surveiller le contenu du flux sortant de la connexion FTP de contrôle pour repérer les paramètres des commandes PORT sortantes (client interne en mode actif) ou des réponses sortantes aux commandes PASV entrantes (serveur interne en mode passif). Dans le cas d'un firewall, cela lui permet d'accepter le trafic de la connexion de données entrante sur un port dynamique. Dans le cas du NAT, il doit en plus remplacer ces paramètres dans le flux sortant de la connexion de contrôle par des valeurs compatibles avec le NAT et créer la redirection de la connexion de données vers le serveur dynamiquement.
Tout routeur NAT/firewall digne de ce nom surveille le flux des connexions TCP utilisant le port 21 qui est le port de contrôle FTP par défaut. Mais si on utilise un autre port, c'est plus délicat. Il faut vérifier que le dispositif surveille bien les connexions de contrôle FTP. Ici, le cas est particulier car le port du serveur interne reste le port standard 21, c'est le port externe du routeur vu de l'extérieur qui est différent. La question est : l'identification d'un flux comme étant une connexion de contrôle FTP est-elle possible dans ce cas ?
Tu dis que ton routeur est une boîte Linux, or les modules de suivi de connexion et de NAT du helper FTP (ip_conntrack_ftp et ip_nat_ftp) peuvent recevoir en paramètres une liste des ports susceptibles de recevoir des connexions de contrôle FTP. En spécifiant le port standard 21 et le port non standard, ça devrait marcher.
Note que le problème est symétrique si le client est aussi derrière un routeur/firewall NAT : ce dernier peut ne pas reconnaître et traiter correctement une connexion FTP sur un port non standard, et du coup empêcher les transferts en mode actif.
Il y a aussi un risque que ça marche très mal en mode passif pour la machine vers laquelle est redirigé le port différent de 21 (helper FTP, toussa).
Tu parles du port 20 (ftp-data)? La convention n'est-elle pas port N pour le FTP et N-1 pour ftp-data?
Oui, mais je ne parle pas de ça. Je parle de la gestion correcte de la connexion ftp-data entrante qui est obligatoirement basée sur l'interception de la connexion ftp. Voir mon autre réponse.
Il y a aussi un risque que ça marche très mal en mode passif pour la
machine vers laquelle est redirigé le port différent de 21 (helper FTP,
toussa).
Tu parles du port 20 (ftp-data)?
La convention n'est-elle pas port N pour le FTP et N-1 pour ftp-data?
Oui, mais je ne parle pas de ça. Je parle de la gestion correcte de la
connexion ftp-data entrante qui est obligatoirement basée sur
l'interception de la connexion ftp. Voir mon autre réponse.
Il y a aussi un risque que ça marche très mal en mode passif pour la machine vers laquelle est redirigé le port différent de 21 (helper FTP, toussa).
Tu parles du port 20 (ftp-data)? La convention n'est-elle pas port N pour le FTP et N-1 pour ftp-data?
Oui, mais je ne parle pas de ça. Je parle de la gestion correcte de la connexion ftp-data entrante qui est obligatoirement basée sur l'interception de la connexion ftp. Voir mon autre réponse.
Il faut. Ce qu'on m'apprend à la Fac (j'ai déjà essayé l'IUT aussi) ne me convient pas, mais alors pas, mais il faut y passer. Si je veux apprendre ce que j'aime alors il faut discuter avec les gens, et discuter... ceci explique celà...
-- Les serveurs avec 10Mb/s se louent maintenant pour 50 ou 60 Euros par mois! La preuve http://www.google.fr/search?q=serveur+dedie Infogerance de serveur dedie http://aspo.rktmb.org/activites/infogerance (En louant les services de l'ASPO vous luttez contre la fracture numerique)
( Fri, 15 Apr 2005 12:01:42 +0200 ) C. Tobini :
Ben dis-donc tu es de tous les forums toi !!! :-)
Il faut. Ce qu'on m'apprend à la Fac (j'ai déjà essayé l'IUT aussi) ne
me convient pas, mais alors pas, mais il faut y passer. Si je veux
apprendre ce que j'aime alors il faut discuter avec les gens, et
discuter... ceci explique celà...
--
Les serveurs avec 10Mb/s se louent maintenant pour 50 ou 60 Euros par mois!
La preuve http://www.google.fr/search?q=serveur+dedie
Infogerance de serveur dedie http://aspo.rktmb.org/activites/infogerance
(En louant les services de l'ASPO vous luttez contre la fracture numerique)
Il faut. Ce qu'on m'apprend à la Fac (j'ai déjà essayé l'IUT aussi) ne me convient pas, mais alors pas, mais il faut y passer. Si je veux apprendre ce que j'aime alors il faut discuter avec les gens, et discuter... ceci explique celà...
-- Les serveurs avec 10Mb/s se louent maintenant pour 50 ou 60 Euros par mois! La preuve http://www.google.fr/search?q=serveur+dedie Infogerance de serveur dedie http://aspo.rktmb.org/activites/infogerance (En louant les services de l'ASPO vous luttez contre la fracture numerique)
C. Tobini
Rakotomandimby (R12y) Mihamina wrote:
Il faut. Ce qu'on m'apprend à la Fac (j'ai déjà essayé l'IUT aussi) ne me convient pas, mais alors pas, mais il faut y passer. Si je veux apprendre ce que j'aime alors il faut discuter avec les gens, et discuter... ceci explique celà...
Et oui, master of ze bidouille pour se débrouiller en info :-)
Rakotomandimby (R12y) Mihamina wrote:
Il faut. Ce qu'on m'apprend à la Fac (j'ai déjà essayé l'IUT aussi) ne
me convient pas, mais alors pas, mais il faut y passer. Si je veux
apprendre ce que j'aime alors il faut discuter avec les gens, et
discuter... ceci explique celà...
Et oui, master of ze bidouille pour se débrouiller en info :-)
Il faut. Ce qu'on m'apprend à la Fac (j'ai déjà essayé l'IUT aussi) ne me convient pas, mais alors pas, mais il faut y passer. Si je veux apprendre ce que j'aime alors il faut discuter avec les gens, et discuter... ceci explique celà...
Et oui, master of ze bidouille pour se débrouiller en info :-)
C. Tobini
wrote:
Non. Contrairement au HTTP, les "serveurs virtuels" FTP ne peuvent être basés que sur l'adresse IP. Il te faudrait deux adresses IP publiques.
J'ai un vague souvenir de la doc de Proftpd, et il me semble avoir lu qu'il y avait possibilité, justement en créant des serveurs virtuels (avec nom), de pouvoir gérer plusieurs nom, mais ça voudrait dire qu'il faudrait avoir un serveur allumé en permanence, u pouvoir installer ce serveur sur le modem/routeur (puisque c'est une boîte Linux).
C. Tobini
Pascal@plouf wrote:
Non. Contrairement au HTTP, les "serveurs virtuels" FTP ne peuvent être
basés que sur l'adresse IP. Il te faudrait deux adresses IP publiques.
J'ai un vague souvenir de la doc de Proftpd, et il me semble avoir lu
qu'il y avait possibilité, justement en créant des serveurs virtuels
(avec nom), de pouvoir gérer plusieurs nom, mais ça voudrait dire qu'il
faudrait avoir un serveur allumé en permanence, u pouvoir installer ce
serveur sur le modem/routeur (puisque c'est une boîte Linux).
Non. Contrairement au HTTP, les "serveurs virtuels" FTP ne peuvent être basés que sur l'adresse IP. Il te faudrait deux adresses IP publiques.
J'ai un vague souvenir de la doc de Proftpd, et il me semble avoir lu qu'il y avait possibilité, justement en créant des serveurs virtuels (avec nom), de pouvoir gérer plusieurs nom, mais ça voudrait dire qu'il faudrait avoir un serveur allumé en permanence, u pouvoir installer ce serveur sur le modem/routeur (puisque c'est une boîte Linux).
C. Tobini
Mathieu Clavel
C. Tobini wrote:
Bonjour,
Je dispose de 2 ordi (Mac OS X 10.2.8 et Mandrake 10.0) derrière un modem/routeur Inventel WiFi.
Afin de faire un partage FTP depuis le net, j'ai redirigé le port 21 vers un des PC.
Je voudrais savoir s'il y a moyen de faire en sorte qu'un PC ou l'autre soit indiqué dans l'appel FTP client et si oui, comment faire en sorte que le routeur redirige le FTP selon ce contexte.
Merci.
C. Tobini
Salut
La solution me semble t il, est de donner un port d"ecoute différent à tes server ftp. 21 et 20 par exmple (c'est pas terrible comme exemple à cause des server passif / actif mais bref).
Tu effectues la redirection qui va bien selon le port et le tour est joué.
La distinction coté client se fait en indiquant l'un ou l'autre des ports.
ftp A (port 21) - client : ip:21 ftp B (port 20) - client : ip:20
voila, espérant avoir repondu correctement a tes attentes.
G.C
Bonsoir, les deux pc sont distincts sur le réseau (pléonasme), on peut donc leur laisser le port 21, mais sur le routeur/NAT, provoquer le routage de la demande du port 21 vers le pc1 et la demande du port 8021 vers le pc2 par exemple. Comme tu ne disposes d'une seule adresse IP publique, la seule façon de différencier le serveur demandé est par le port. Tu peux peut-être monter un des serveur ftp dans le second (je sais pas si proftpd supporte ça, je suis plutôt windows et Gene6 FTP server permet cela). L'accès à un répertoire particulier du serveur accèdera en fait de manière transparente pour l'utilisateur au second serveur FTP (le serveur FTP auquel le client est connecté initiera une connexion vers l'autre serveur et jouera un rôle de 'routeur'. Bonne config.
Mathieu
C. Tobini wrote:
Bonjour,
Je dispose de 2 ordi (Mac OS X 10.2.8 et Mandrake 10.0) derrière un
modem/routeur Inventel WiFi.
Afin de faire un partage FTP depuis le net, j'ai redirigé le port 21
vers un des PC.
Je voudrais savoir s'il y a moyen de faire en sorte qu'un PC ou
l'autre soit indiqué dans l'appel FTP client et si oui, comment faire
en sorte que le routeur redirige le FTP selon ce contexte.
Merci.
C. Tobini
Salut
La solution me semble t il, est de donner un port d"ecoute différent à
tes server ftp. 21 et 20 par exmple (c'est pas terrible comme exemple à
cause des server passif / actif mais bref).
Tu effectues la redirection qui va bien selon le port et le tour est joué.
La distinction coté client se fait en indiquant l'un ou l'autre des ports.
ftp A (port 21) - client : ip:21
ftp B (port 20) - client : ip:20
voila, espérant avoir repondu correctement a tes attentes.
G.C
Bonsoir,
les deux pc sont distincts sur le réseau (pléonasme), on peut donc leur
laisser le port 21, mais sur le routeur/NAT, provoquer le routage de la
demande du port 21 vers le pc1 et la demande du port 8021 vers le pc2
par exemple. Comme tu ne disposes d'une seule adresse IP publique, la
seule façon de différencier le serveur demandé est par le port.
Tu peux peut-être monter un des serveur ftp dans le second (je sais pas
si proftpd supporte ça, je suis plutôt windows et Gene6 FTP server
permet cela). L'accès à un répertoire particulier du serveur accèdera en
fait de manière transparente pour l'utilisateur au second serveur FTP
(le serveur FTP auquel le client est connecté initiera une connexion
vers l'autre serveur et jouera un rôle de 'routeur'.
Bonne config.
Je dispose de 2 ordi (Mac OS X 10.2.8 et Mandrake 10.0) derrière un modem/routeur Inventel WiFi.
Afin de faire un partage FTP depuis le net, j'ai redirigé le port 21 vers un des PC.
Je voudrais savoir s'il y a moyen de faire en sorte qu'un PC ou l'autre soit indiqué dans l'appel FTP client et si oui, comment faire en sorte que le routeur redirige le FTP selon ce contexte.
Merci.
C. Tobini
Salut
La solution me semble t il, est de donner un port d"ecoute différent à tes server ftp. 21 et 20 par exmple (c'est pas terrible comme exemple à cause des server passif / actif mais bref).
Tu effectues la redirection qui va bien selon le port et le tour est joué.
La distinction coté client se fait en indiquant l'un ou l'autre des ports.
ftp A (port 21) - client : ip:21 ftp B (port 20) - client : ip:20
voila, espérant avoir repondu correctement a tes attentes.
G.C
Bonsoir, les deux pc sont distincts sur le réseau (pléonasme), on peut donc leur laisser le port 21, mais sur le routeur/NAT, provoquer le routage de la demande du port 21 vers le pc1 et la demande du port 8021 vers le pc2 par exemple. Comme tu ne disposes d'une seule adresse IP publique, la seule façon de différencier le serveur demandé est par le port. Tu peux peut-être monter un des serveur ftp dans le second (je sais pas si proftpd supporte ça, je suis plutôt windows et Gene6 FTP server permet cela). L'accès à un répertoire particulier du serveur accèdera en fait de manière transparente pour l'utilisateur au second serveur FTP (le serveur FTP auquel le client est connecté initiera une connexion vers l'autre serveur et jouera un rôle de 'routeur'. Bonne config.