Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

FTP actif derrière un routeur

8 réponses
Avatar
Manu
Bonjour à tous,

Malgré une lecture attentive de la FAQ : Petit cours sur la NAT, je ne vois
pas de solution à mon problème.

J'explique donc dans ce thread :
D'un côté, je possède un hébergement FTP. Cet hébergement ne permet de faire
que du FTP en mode actif. Pour des raisons de sécurité, les clients FTP ne
peuvent ouvrir de port sur la machine. Après négociation avec l'hébergeur,
je pourrais faire sauter cette limitation mais ils ne seraient alors plus
responsable de la sécurité sur la machine et je suis bien trop mauvais dans
ce domaine pour gérer ça moi-même... J'oublie donc les solutions côté
serveur.
Côté client, évidemment, pas simple. Je suis derrière un routeur NAT (un
SpeedTouch 510 fourni par Oleane). J'ai d'abord cherché sur ce routeur si il
y avait un moyen d'autorisé l'accès sur tout les ports pour une adresse IP
externe donnée (celle du serveur FTP). J'ai vite capitulé et les techniciens
Oleane aussi... Pas de solution m'ont-ils dit.

C'est à ce moment que j'ai lu la FAQ sur la NAT et que j'ai appris que la
NAT n'était pas qu'une tresse de cheveux ! (humour ;o)).
Bref, je cherche donc une solution pour que tout mon petit réseau derrière
mon routeur puisse faire du FTP en mode actif. J'ai essayé de comprendre
comment ça pouvait fonctionner avec un proxy. Mais je me suis embourbé dans
des termes dont je n'avais jamais entendu parler... Peut-être n'ai-je pas
non plus utilisé les bons logiciels...

Que me conseillez-vous comme solution (la plus simple à mettre en oeuvre si
possible) si il en existe une ?
Une petite précision peut être... Je n'ai aucun poste qui possède 2 cartes
réseaux...

Merci pour votre aide.
Manu.

8 réponses

Avatar
Pascal Hambourg
Salut,


Malgré une lecture attentive de la FAQ : Petit cours sur la NAT, je ne vois
pas de solution à mon problème.


Disons que la FAQ expose les problèmes potentiels liés aux interactions
entre FTP et NAT, mais ne développe pas les solutions. A raison : il n'y
a pas de solution universelle. Les possibilités dépendent éminemment des
équipements et/ou logiciels en présence.

D'un côté, je possède un hébergement FTP. Cet hébergement ne permet de faire
que du FTP en mode actif. Pour des raisons de sécurité, les clients FTP ne
peuvent ouvrir de port sur la machine. Après négociation avec l'hébergeur,
je pourrais faire sauter cette limitation mais ils ne seraient alors plus
responsable de la sécurité sur la machine et je suis bien trop mauvais dans
ce domaine pour gérer ça moi-même... J'oublie donc les solutions côté
serveur.


J'avoue que je suis assez surpris, les pare-feux sérieux sont capables
de s'adapter à FTP sans nécessité d'ouvrir des brèches béantes, juste en
ouvrant les ports dynamiquement quand le serveur en a besoin. Mébon, je
ne connais pas le contexte en détail.

Côté client, évidemment, pas simple. Je suis derrière un routeur NAT (un
SpeedTouch 510 fourni par Oleane). J'ai d'abord cherché sur ce routeur si il
y avait un moyen d'autorisé l'accès sur tout les ports pour une adresse IP
externe donnée (celle du serveur FTP).


Pas suffisant, il faut aussi modifier l'adresse IP transmise par le
client. Là aussi je suis surpris : l'ancêtre Speed Touch Pro avait déjà
un "helper" pour prendre en charge les connexions FTP. Je viens de
parcourir la documentation de l'interface en ligne de commande du ST510,
et il a toute une liste de helpers pour divers protocoles "difficiles",
y compris FTP. Cf. les commandes connection bind, bindlist, unbind. Il
faut peut-être aussi faire quelque chose du côté des règles du firewall.

C'est à ce moment que j'ai lu la FAQ sur la NAT et que j'ai appris que la
NAT n'était pas qu'une tresse de cheveux ! (humour ;o)).


Les problèmes de FTP et de NAT sont récurrents ici. Il faudrait écrire
une FAQ rien que sur ce sujet. ;-)

Bref, je cherche donc une solution pour que tout mon petit réseau derrière
mon routeur puisse faire du FTP en mode actif. J'ai essayé de comprendre
comment ça pouvait fonctionner avec un proxy. Mais je me suis embourbé dans
des termes dont je n'avais jamais entendu parler... Peut-être n'ai-je pas
non plus utilisé les bons logiciels...


Je ne sais pas ce que tu as essayé comme type de proxy, mais il faut
évidemment que le proxy en question soit à l'extérieur du routeur, sinon
ça ne sert à rien.

Sinon, certains clients FTP comme Filezilla ont des options qui
permettent de prendre en compte le fait qu'ils sont derrière un NAT bête
et méchant : limiter la plage des ports utilisables et spécifier
l'adresse IP vue du serveur.

Avatar
Manu
[...]
D'un côté, je possède un hébergement FTP. Cet hébergement ne permet de
faire


que du FTP en mode actif. Pour des raisons de sécurité, les clients FTP
ne


peuvent ouvrir de port sur la machine. Après négociation avec
l'hébergeur,


je pourrais faire sauter cette limitation mais ils ne seraient alors
plus


responsable de la sécurité sur la machine et je suis bien trop mauvais
dans


ce domaine pour gérer ça moi-même... J'oublie donc les solutions côté
serveur.


J'avoue que je suis assez surpris, les pare-feux sérieux sont capables
de s'adapter à FTP sans nécessité d'ouvrir des brèches béantes, juste en
ouvrant les ports dynamiquement quand le serveur en a besoin. Mébon, je
ne connais pas le contexte en détail.



Et maheureusement moi non plus je ne connais pas le contexte en détail...
Pourtant j'insiste auprès d'eux. La seule réponse qu'on me fait est
d'envoyer un FAX demandant l'ouverture des ports supérieur à 1024 sur le
serveur et spécifiant que l'on décharge le prestataire (l'hébergeur) de
toute responsabilité au niveau sécurité. Il n'en est évidemment pas
question. La sécurité ne tient certainement pas qu'à ça et en cas
d'intrusion ils auraient là une bonne excuse pour nous facturer la
maintenance, même si cette ouverture de port n'y ai pour rien... (oui je
sais,je manque de confiance mais que j'ai tellement été déçu ailleurs...).

Côté client, évidemment, pas simple. Je suis derrière un routeur NAT (un
SpeedTouch 510 fourni par Oleane). J'ai d'abord cherché sur ce routeur
si il


y avait un moyen d'autorisé l'accès sur tout les ports pour une adresse
IP


externe donnée (celle du serveur FTP).


Pas suffisant, il faut aussi modifier l'adresse IP transmise par le
client. Là aussi je suis surpris : l'ancêtre Speed Touch Pro avait déjà
un "helper" pour prendre en charge les connexions FTP. Je viens de
parcourir la documentation de l'interface en ligne de commande du ST510,
et il a toute une liste de helpers pour divers protocoles "difficiles",
y compris FTP. Cf. les commandes connection bind, bindlist, unbind. Il
faut peut-être aussi faire quelque chose du côté des règles du firewall.



Ha... Je n'ai trouvé nul part une doc sérieuse...
Pourrais-tu me dire si je peux la télécharger quelquepart ?

[...]
Sinon, certains clients FTP comme Filezilla ont des options qui
permettent de prendre en compte le fait qu'ils sont derrière un NAT bête
et méchant : limiter la plage des ports utilisables et spécifier
l'adresse IP vue du serveur.


J'utilise Filezilla.
Bah j'ai essayé aussi cette option mais pas terrible...
C'est à peine mieux... Mais je m'y prends peut-être mal ?
J'ai en fait paramétré dans filezilla mon adresse IP Internet et décocher
Mode Passif.
En valeur de port, j'ai mis de 3044 à 3046.
J'ai NATé les ports 3044, 3045 et 3046 vers mon adresse IP local (sur le
réseau).
Je me connecte, il ouvre le port 3045 et là j'ai mieux (succès du listage du
dossier).
Je commence mon transfert FTP mais là pas mieux... Il m'a bien créé mes
dossiers mais il ne m'a transféré aucun fichier.
Le seul message d'erreur dans filezilla est : Erreur : Chargement échoué.

Manu.


Avatar
djodj
a moins que j'ai mal pigé ton probleme mais il me semble que ta galere est
assez symptomatique des gens qui utilisent leur modem adsl pour faire le
routage sur leur réseau privé. en general chaque modeme a ses qualités et
ses travers et ses propres systeme decommande c'est assez penible. pour ma
part; vu de mon modeme je suis en poste unique mais en réalité j'ai un
reseau locale qui accede a Internet dans tous les sens (entrant et sortant)
car j'utilise un poste sous Linux en guise de routeur-nateur avec le
logiciel Iptables qui a des capacités de fitrage et de natage vraiment
impressionnantes, ainsi je peux faire du filtrage en fcntion des
adresses,sens etat port protocole, horraires etc.. et du natage a differants
moment du routage ce qui (PREROUTING, POSROUTING, etc..) on peut meme faire
une sorte de VPN (mais non crypté par defaut) entre des machines de reseaux
privés séparés par Internet. Ce que je veux dire est que la solution qui
consite a faire faire le routage par le modem ADSL peut sembler simpe mais
elle n'est pas tres souple. mieux vaut faire le routage filtrage et natage
par une machine sous Linux en entére du réseau privé et utiliser Iptables
c'est hyper puissant

Djodj

"Manu" a écrit dans le message de news:
dqnorb$2h6$
Bonjour à tous,

Malgré une lecture attentive de la FAQ : Petit cours sur la NAT, je ne
vois pas de solution à mon problème.

J'explique donc dans ce thread :
D'un côté, je possède un hébergement FTP. Cet hébergement ne permet de
faire que du FTP en mode actif. Pour des raisons de sécurité, les clients
FTP ne peuvent ouvrir de port sur la machine. Après négociation avec
l'hébergeur, je pourrais faire sauter cette limitation mais ils ne
seraient alors plus responsable de la sécurité sur la machine et je suis
bien trop mauvais dans ce domaine pour gérer ça moi-même... J'oublie donc
les solutions côté serveur.
Côté client, évidemment, pas simple. Je suis derrière un routeur NAT (un
SpeedTouch 510 fourni par Oleane). J'ai d'abord cherché sur ce routeur si
il y avait un moyen d'autorisé l'accès sur tout les ports pour une adresse
IP externe donnée (celle du serveur FTP). J'ai vite capitulé et les
techniciens Oleane aussi... Pas de solution m'ont-ils dit.

C'est à ce moment que j'ai lu la FAQ sur la NAT et que j'ai appris que la
NAT n'était pas qu'une tresse de cheveux ! (humour ;o)).
Bref, je cherche donc une solution pour que tout mon petit réseau derrière
mon routeur puisse faire du FTP en mode actif. J'ai essayé de comprendre
comment ça pouvait fonctionner avec un proxy. Mais je me suis embourbé
dans des termes dont je n'avais jamais entendu parler... Peut-être n'ai-je
pas non plus utilisé les bons logiciels...

Que me conseillez-vous comme solution (la plus simple à mettre en oeuvre
si possible) si il en existe une ?
Une petite précision peut être... Je n'ai aucun poste qui possède 2 cartes
réseaux...

Merci pour votre aide.
Manu.



Avatar
Pascal Hambourg

J'avoue que je suis assez surpris, les pare-feux sérieux sont capables
de s'adapter à FTP sans nécessité d'ouvrir des brèches béantes, juste en
ouvrant les ports dynamiquement quand le serveur en a besoin. Mébon, je
ne connais pas le contexte en détail.


Et maheureusement moi non plus je ne connais pas le contexte en détail...
Pourtant j'insiste auprès d'eux. La seule réponse qu'on me fait est
d'envoyer un FAX demandant l'ouverture des ports supérieur à 1024 sur le
serveur et spécifiant que l'on décharge le prestataire (l'hébergeur) de
toute responsabilité au niveau sécurité.


En gros, ils ne savent pas faire et se déchargent sur toi.

Il n'en est évidemment pas
question. La sécurité ne tient certainement pas qu'à ça et en cas
d'intrusion


En même temps, ouvrir des ports dans le firewall d'une machine bien
configurée, à savoir sur laquelle ne tournent que les services réseau
nécessaires, ne devrait pas poser de problème. Si rien n'écoute sur un
port donné, inutile de le faire bloquer par le firewall.

[...]
Là aussi je suis surpris : l'ancêtre Speed Touch Pro avait déjà
un "helper" pour prendre en charge les connexions FTP. Je viens de
parcourir la documentation de l'interface en ligne de commande du ST510,
et il a toute une liste de helpers pour divers protocoles "difficiles",
y compris FTP. Cf. les commandes connection bind, bindlist, unbind. Il
faut peut-être aussi faire quelque chose du côté des règles du firewall.


Ha... Je n'ai trouvé nul part une doc sérieuse...
Pourrais-tu me dire si je peux la télécharger quelquepart ?


http://www.speedtouch.com/support.htm
Il y a plusieurs versions, il faut prendre celle qui correspond au
modèle précis de ST510. Rechercher "helper" dans les rubriques "nat" ou
"connection".

J'utilise Filezilla.
Bah j'ai essayé aussi cette option mais pas terrible...
C'est à peine mieux... Mais je m'y prends peut-être mal ?
J'ai en fait paramétré dans filezilla mon adresse IP Internet et décocher
Mode Passif.
En valeur de port, j'ai mis de 3044 à 3046.


Ça permet 3 connexions de données simultanées possibles. Tu as vérifié
que tu n'autorisais pas plus de transferts simultanés ?

J'ai NATé les ports 3044, 3045 et 3046 vers mon adresse IP local (sur le
réseau).
Je me connecte, il ouvre le port 3045 et là j'ai mieux (succès du listage du
dossier).


Le listage de répertoire utilise une connexion de données, exactement
comme les transferts de fichiers. Donc ça marche.

Je commence mon transfert FTP mais là pas mieux... Il m'a bien créé mes
dossiers mais il ne m'a transféré aucun fichier.


La création de répertoires utilise seulement la connexion de contrôle,
elle n'a pas besoin d'établir de connexion de données.
Tu as essayé un transfert de fichier simple dans les deux sens ?

Le seul message d'erreur dans filezilla est : Erreur : Chargement échoué.


C'est un peu limité comme niveau de détail... Et en activant des options
de debug ?


Avatar
Manu
...
a moins que j'ai mal pigé ton probleme mais il me semble que ta galere est
assez symptomatique des gens qui utilisent leur modem adsl pour faire le
routage sur leur réseau privé. en general chaque modeme a ses qualités et
ses travers et ses propres systeme decommande c'est assez penible. pour ma
part; vu de mon modeme je suis en poste unique mais en réalité j'ai un
reseau locale qui accede a Internet dans tous les sens (entrant et sortant)
car j'utilise un poste sous Linux en guise de routeur-nateur avec le
logiciel Iptables qui a des capacités de fitrage et de natage vraiment
impressionnantes, ainsi je peux faire du filtrage en fcntion des
adresses,sens etat port protocole, horraires etc.. et du natage a
differants moment du routage ce qui (PREROUTING, POSROUTING, etc..) on peut
meme faire une sorte de VPN (mais non crypté par defaut) entre des
machines de reseaux privés séparés par Internet. Ce que je veux dire est
que la solution qui consite a faire faire le routage par le modem ADSL peut
sembler simpe mais elle n'est pas tres souple. mieux vaut faire le routage
filtrage et natage par une machine sous Linux en entére du réseau privé et
utiliser Iptables c'est hyper puissant

Djodj



Merci pour ces infos...
Je ne me sens malheureusement pas capable de faire ça.
De plus je suppose que ça signifie que la machine sous linux doit avoir 2
cartes réseau ?
Une pour le branchement du modem et l'autre pour le réseau local... On a
bien un machine linux sur notre réseau mais elle n'a qu'une seule carte.
Et de toute manière comme je le disais plus haut, je ne me sens pas de faire
ce type de configuration. Je ne connais pas iptables et à mon avis pas
suffisemment linux ni les règles NAT pour aller si loin.
Merci quand même pour l'info.

Manu.

Avatar
Manu

Et maheureusement moi non plus je ne connais pas le contexte en détail...
Pourtant j'insiste auprès d'eux. La seule réponse qu'on me fait est
d'envoyer un FAX demandant l'ouverture des ports supérieur à 1024 sur le
serveur et spécifiant que l'on décharge le prestataire (l'hébergeur) de
toute responsabilité au niveau sécurité.


En gros, ils ne savent pas faire et se déchargent sur toi.



Ils savent ouvrir les ports > 1024 afin de permettre le FTP passif.
Mais côté sécurité, j'ai en effet des doutes par rapport à ce que tu disais
ci-dessous :


En même temps, ouvrir des ports dans le firewall d'une machine bien
configurée, à savoir sur laquelle ne tournent que les services réseau
nécessaires, ne devrait pas poser de problème. Si rien n'écoute sur un
port donné, inutile de le faire bloquer par le firewall.


Ha... Je n'ai trouvé nul part une doc sérieuse...
Pourrais-tu me dire si je peux la télécharger quelquepart ?


http://www.speedtouch.com/support.htm
Il y a plusieurs versions, il faut prendre celle qui correspond au modèle
précis de ST510. Rechercher "helper" dans les rubriques "nat" ou
"connection".



Merci.
J'ai bien trouvé la doc et là ou il parle d'helper dans la section nat
(nat bindlist, nat bind, nat unbind...).
Mais je n'ai rien réussi à faire avec ça... Je n'ai pas compris grand chose
non plus...

J'utilise Filezilla.
Bah j'ai essayé aussi cette option mais pas terrible...
C'est à peine mieux... Mais je m'y prends peut-être mal ?
J'ai en fait paramétré dans filezilla mon adresse IP Internet et décocher
Mode Passif.
En valeur de port, j'ai mis de 3044 à 3046.


Ça permet 3 connexions de données simultanées possibles. Tu as vérifié que
tu n'autorisais pas plus de transferts simultanés ?



Par défaut il était sur 2.
J'ai désactivé les transferts simultanés.

J'ai NATé les ports 3044, 3045 et 3046 vers mon adresse IP local (sur le
réseau).
Je me connecte, il ouvre le port 3045 et là j'ai mieux (succès du listage
du
dossier).


Le listage de répertoire utilise une connexion de données, exactement
comme les transferts de fichiers. Donc ça marche.



Oui, ça marche, je confirme.
D'ailleurs il m'envoyait correctement le premier fichier. Mais pour le
second, il a l'air de se moquer des ports que je lui ai spécifié et tente
une ouverture de port hors des limites.

Je commence mon transfert FTP mais là pas mieux... Il m'a bien créé mes
dossiers mais il ne m'a transféré aucun fichier.


La création de répertoires utilise seulement la connexion de contrôle,
elle n'a pas besoin d'établir de connexion de données.
Tu as essayé un transfert de fichier simple dans les deux sens ?



cf ci-dessus.

Le seul message d'erreur dans filezilla est : Erreur : Chargement échoué.


C'est un peu limité comme niveau de détail... Et en activant des options
de debug ?


Commande : STOR default.php <<A ce niveau, un long moment se passe sans
qu'aucun octet ne passe>>
Erreur : Inactivité détectée !
Trace : TransferSocket.cpp(1158): Close() caller=0x013fa05c
Trace : FtpControlSocket.cpp(1901): TransferEnd(168) OpMode@ OpState
caller=0x003e9bf4
Trace : FtpControlSocket.cpp(1936): FileTransfer(0, TRUE, 128) OpMode@
OpState caller=0x003e9bf4
Trace : FtpControlSocket.cpp(1077): DoClose(0) OpMode@ OpState
caller=0x003e9bf4
Trace : FtpControlSocket.cpp(3910): ResetOperation(4100) OpMode@
OpState caller=0x003e9bf4
Trace : TransferSocket.cpp(97): ~CTransferSocket() caller=0x013fa05c
Trace : TransferSocket.cpp(1158): Close() caller=0x013fa05c
Erreur : Chargement échoué

J'ai fait un essai chez moi en ouvrant une plage de port assez large. Et
j'ai moins de problème... ca se bloque par moment mais ça passe mieux.
Seulement ici au boulot, je ne sais pas comment ouvrir une plage de port sur
le ST510. Je n'ai pas trouvé non plus dans l'aide...

En tout cas merci pour ton aide.
Manu.


Avatar
Pascal Hambourg

[routeur NAT avec Linux]


Je ne me sens malheureusement pas capable de faire ça.
De plus je suppose que ça signifie que la machine sous linux doit avoir 2
cartes réseau ?
Une pour le branchement du modem et l'autre pour le réseau local... On a
bien un machine linux sur notre réseau mais elle n'a qu'une seule carte.


Ce n'est pas absolument nécessaire, même si pour les paranos c'est
préférable d'un point de vue sécurité.

Et de toute manière comme je le disais plus haut, je ne me sens pas de faire
ce type de configuration. Je ne connais pas iptables et à mon avis pas
suffisemment linux ni les règles NAT pour aller si loin.


Les règles NAT nécessaires sont en fait très simples. Exemple à titre
d'illustration :

# masquerading du réseau local vers internet (eth0)
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 -j MASQUERADE

# port forwarding d'internet (eth0) vers le serveur FTP local
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 21
-j DNAT --to-destination 192.168.1.15

Par contre, pour les règles de filtrage, j'admets que c'est un peu plus
compliqué.

Avatar
Pascal Hambourg

En gros, ils ne savent pas faire et se déchargent sur toi.


Ils savent ouvrir les ports > 1024 afin de permettre le FTP passif.


Oui mais c'est nul, ça. Ils devraient être capables de mettre en place
une ouverture dynamique des ports utilisés par le serveur FTP en mode
passif.

[...]
http://www.speedtouch.com/support.htm
Il y a plusieurs versions, il faut prendre celle qui correspond au modèle
précis de ST510. Rechercher "helper" dans les rubriques "nat" ou
"connection".


J'ai bien trouvé la doc et là ou il parle d'helper dans la section nat
(nat bindlist, nat bind, nat unbind...).
Mais je n'ai rien réussi à faire avec ça... Je n'ai pas compris grand chose
non plus...


L'idée c'est d'associer le helper FTP au port TCP 21, afin qu'il
inspecte les connexions de contrôle FTP à la recherche des ports à
ouvrir ou rediriger dynamiquement pour les connexions de données FTP. Je
ne peux t'aider plus pour la mise en oeuvre, n'ayant qu'un simple modem
ST Home avec un routeur Linux derrière.

J'utilise Filezilla.
[...]



J'ai NATé les ports 3044, 3045 et 3046 vers mon adresse IP local (sur le
réseau).
Je me connecte, il ouvre le port 3045 et là j'ai mieux (succès du listage
du dossier).


Le listage de répertoire utilise une connexion de données, exactement
comme les transferts de fichiers. Donc ça marche.


Oui, ça marche, je confirme.
D'ailleurs il m'envoyait correctement le premier fichier. Mais pour le
second, il a l'air de se moquer des ports que je lui ai spécifié et tente
une ouverture de port hors des limites.


Curieux. Je viens d'essayer avec une plage de 11 ports, et mon Filezilla
(2.2.9 Win32) respecte la plage de ports spécifiée.

Je commence mon transfert FTP mais là pas mieux... Il m'a bien créé mes
dossiers mais il ne m'a transféré aucun fichier.
[...]



Le seul message d'erreur dans filezilla est : Erreur : Chargement échoué.


C'est un peu limité comme niveau de détail... Et en activant des options
de debug ?



Commande : STOR default.php <<A ce niveau, un long moment se passe sans
qu'aucun octet ne passe>>
Erreur : Inactivité détectée !
[...]


Il faudrait voir juste avant si le port passé dans la commande PORT est
correct.

J'ai fait un essai chez moi en ouvrant une plage de port assez large. Et
j'ai moins de problème... ca se bloque par moment mais ça passe mieux.


En effet, avec une plage de 11 ports, j'ai constaté que parfois le
transfert ou le listage prenait du temps avant de commencer. Je me
demande si ça ne se produirait pas quand Filezilla réutilise un port
récemment utilisé pour une connexion précédente, qui est encore dans la
table NAT du routeur. Donc il vaudrait mieux agrandir la plage.

Seulement ici au boulot, je ne sais pas comment ouvrir une plage de port sur
le ST510.


A ouvrir *et* rediriger vers l'adresse IP du poste client.

Je n'ai pas trouvé non plus dans l'aide...


Peut-être du côté des commandes "nat" et "firewall" ?