OVH Cloud OVH Cloud

FTP via tunnel SSH

8 réponses
Avatar
Alain Haberkorn
Bonjour,

Soit les 3 entités :
- un réseau local : un serveur SSH et un serveur FTP (2 machines distinctes)
- moi : pour citer Angelot, je suis chez moi, tranquille, avec mon WXP, je
ne fais de mal à personne (du moins, je le crois) et je peux accéder au
serveur SSH, mais pas au serveur FTP. J'ai un client SSH (putty) et ftp.
- entre les 2 précédentes : Internet.

Je n'arrive pas à réaliser un transfert FTP via un tunnel SSH. Je n'ai pas
de problèmes pour la connexion port 21. Par contre le transfert (LIST par
exemple) pose pb.

Je remercie d'avance toute contribution : j'ai déjà trouvé une dizaine de
forums sans réponse.

8 réponses

Avatar
hrk
Bonjour,
Je n'arrive pas à réaliser un transfert FTP via un tunnel SSH. Je n'ai pas
de problèmes pour la connexion port 21. Par contre le transfert (LIST par
exemple) pose pb.


n'oublies tu pas le port ftp-data ? (20) ?
ftp en mode passif ?

Avatar
T0t0
"Alain Haberkorn" wrote in message
news:bq711m$34n$
Soit les 3 entités :
- un réseau local : un serveur SSH et un serveur FTP (2 machines distinctes)
- moi : pour citer Angelot, je suis chez moi, tranquille, avec mon WXP, je
ne fais de mal à personne (du moins, je le crois) et je peux accéder au
serveur SSH, mais pas au serveur FTP. J'ai un client SSH (putty) et ftp.
- entre les 2 précédentes : Internet.


Comment le réseau local est relié au net ?
Le serveur SSH est il directement lié au net, ou y a t il du port
forwarding en place ?

Il y a des problèmes entre la NAT et le FTP, voir:
<http://www.lalitte.com/nat>
Et plus précisemment:
4.5 - Problèmes liés à la NAT dynamique (FTP)


--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG

Avatar
Jacques Caron
Salut,

On Fri, 28 Nov 2003 09:31:43 +0100, Alain Haberkorn
wrote:

Soit les 3 entités :
- un réseau local : un serveur SSH et un serveur FTP (2 machines
distinctes)
- moi : pour citer Angelot, je suis chez moi, tranquille, avec mon WXP,
je
ne fais de mal à personne (du moins, je le crois) et je peux accéder au
serveur SSH, mais pas au serveur FTP. J'ai un client SSH (putty) et ftp.
- entre les 2 précédentes : Internet.

Je n'arrive pas à réaliser un transfert FTP via un tunnel SSH. Je n'ai
pas
de problèmes pour la connexion port 21. Par contre le transfert (LIST par
exemple) pose pb.


Normal. FTP est un protocole tordu qui utilise plusieurs connexions, dont
certaines "en sens inverse". Ca ne peut pas marcher sur un tunnel SSH.
Utilise un client (et un serveur) SFTP plutôt.

Jacques.
--
Interactive Media Factory
Création, développement et hébergement
de services interactifs: SMS, SMS+, Audiotel...
http://www.imfeurope.com/

Avatar
Alain Haberkorn
3 réponses en 1 !

n'oublies tu pas le port ftp-data ? (20) ?
ftp en mode passif ?
Justement, c'est la connexion data qui pose problème.


Comment le réseau local est relié au net ?
Le serveur SSH est il directement lié au net, ou y a t il du port
forwarding en place ?
Pas de translation d'adresses. Le réseau local utilise une classe C pour ses

adressages.

Normal. FTP est un protocole tordu qui utilise plusieurs connexions, dont
certaines "en sens inverse". Ca ne peut pas marcher sur un tunnel SSH.
Ca, j'avais remarqué ;-)

J'ai déjà un peu travaillé la question.
FTP utilise 2 modes pour la connexion data :

- PASV (mode passif): le serveur donne au client un port où se connecter.
Là, il faudrait "tunneler" dynamiquement (difficile avec putty, peut-être un
autre client ssh ?), sans compter qu'il faut dire au client ftp de ne pas
prendre en compte les données envoyées par le serveur ftp (PORT Y:Q)

-mode PORT X,P (actif) : on demande au serveur ftp de jouer au client de la
machine X sur le port P. Il me semble que dans ce cas, le serveur SSH ne
transmette pas la connexion entrante vers le client SSH. Pourquoi ?

Utilise un client (et un serveur) SFTP plutôt.
Jacques.
SFTP fonctionne-t-il lorsque le serveur FTP et le serveur SSH ne sont pas

les mêmes machines ? Je crois bien qu'il faut modfier le serveur FTP (si on
touche à l'existant, le challenge est moins beau ;-)

Avatar
Jacques Caron
Re,

On Fri, 28 Nov 2003 16:17:22 +0100, Alain Haberkorn
wrote:

Justement, c'est la connexion data qui pose problème.


Normal, c'est une connexion qui a des paramètres (ports) dynamiques...

- PASV (mode passif): le serveur donne au client un port où se connecter.
Là, il faudrait "tunneler" dynamiquement (difficile avec putty,
peut-être un
autre client ssh ?), sans compter qu'il faut dire au client ftp de ne pas
prendre en compte les données envoyées par le serveur ftp (PORT Y:Q)


Ben si, il faudrait justement que le client et/ou le serveur ssh se
mettent soudainement à forwader ce port aussi. En fait, c'est possible si
tu configures ton client ssh pour forwarder tous les ports (ou presque)
vers le serveur FTP. Trop pratique!

-mode PORT X,P (actif) : on demande au serveur ftp de jouer au client de
la
machine X sur le port P. Il me semble que dans ce cas, le serveur SSH ne
transmette pas la connexion entrante vers le client SSH. Pourquoi ?


Ben dans ce cas, le serveur FTP essaie de joindre directement la machine
X, donc sans passer par le tunnel SSH. Si c'est la seule chose qui peut
passer (à cause de filtres ou de NAT un peu restrictif), ça ne marchera
pas.

SFTP fonctionne-t-il lorsque le serveur FTP et le serveur SSH ne sont pas
les mêmes machines ? Je crois bien qu'il faut modfier le serveur FTP (si
on touche à l'existant, le challenge est moins beau ;-)


Il faut un serveur SFTP. SFTP est fonctionnellement équivalent à FTP sur
SSH, mais ce n'est *pas* du FTP sur SSH.

Jacques.
--
Interactive Media Factory
Création, développement et hébergement
de services interactifs: SMS, SMS+, Audiotel...
http://www.imfeurope.com/

Avatar
T0t0
"Alain Haberkorn" wrote in message
news:bq7otj$dr7$
Comment le réseau local est relié au net ?
Le serveur SSH est il directement lié au net, ou y a t il du port
forwarding en place ?
Pas de translation d'adresses. Le réseau local utilise une classe C pour ses

adressages.


Tu as une classe C publique ? c'est quoi ton adressage ?
Si c'est en 10.x.x.x, 192.168.x.x ou 172.16.x.x, y a des chances pour
que tu fasses de la NAT sans le savoir. Et si c'est le cas, tu peux
lire le document indiqué pour comprendre ton problème :-)



--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG


Avatar
Alain Haberkorn
Tu as une classe C publique ? c'est quoi ton adressage ?
Si c'est en 10.x.x.x, 192.168.x.x ou 172.16.x.x, y a des chances pour
que tu fasses de la NAT sans le savoir. Et si c'est le cas, tu peux
lire le document indiqué pour comprendre ton problème :-)

non, 193.x.x.x (il s'en est fallu de peu ;)


Avatar
Christophe GIAUME
On Fri, 28 Nov 2003 09:31:43 +0100, Alain Haberkorn wrote:
Soit les 3 entités :
- un réseau local : un serveur SSH et un serveur FTP (2 machines distinctes)
- moi : pour citer Angelot, je suis chez moi, tranquille, avec mon WXP, je
ne fais de mal à personne (du moins, je le crois) et je peux accéder au
serveur SSH, mais pas au serveur FTP. J'ai un client SSH (putty) et ftp.
- entre les 2 précédentes : Internet.

Je n'arrive pas à réaliser un transfert FTP via un tunnel SSH. Je n'ai pas
de problèmes pour la connexion port 21. Par contre le transfert (LIST par
exemple) pose pb.


SOCKS est peut-être une solution pour toi.

Il te faudra un putty très récent (la dernière release 0.53b n'est pas
suffisante, il faut aller voir du côté des dev. snapshots) configuré
pour ouvrir un serveur socks local.

Voir http://www.tartarus.org/~simon/puttydoc/Chapter3.html#3.5

An alternative way to forward local connections to remote hosts is
to use dynamic SOCKS proxying. For this, you will need to select the
"Dynamic" radio button instead of "Local", and then you should not
enter anything into the "Destination" box (it will be ignored). This
will cause PuTTY to listen on the port you have specified, and
provide a SOCKS proxy service to any programs which connect to that
port. So, in particular, you can forward other PuTTY connections
through it by setting up the Proxy control panel (see section 4.14
for details).

(Ou bien tu peux installer un serveur socks indépendant, et utiliser un
tunnel ssh classique pour faire passer les connections vers ce serveur).

Ensuite il te faudra un client ftp qui gère le socks (ou bien un client
ftp classique et un outil pour le "sockifier"). De plus, le client ftp
devra être configuré en mode passif pour que les connexions de données
soient initiées par le client (qui les fera passer par le serveur
socks).

CG

--
"Pensez différemment mais achetez tous le même ordinateur." -- Apple