Rechercher : dans
Par :

[SSH Port Forward] Rediriger plusieurs ports

Dernière réponse le 7 nov 2006 à 09:44:30 kilian, le 16 mar 2006 à 08:47:21 
 Signaler ce message aux modérateurs

Bonjour,

Dans un réseau local avec deux machines, j'essaie de tunneler une session ftp dans une connexion ssh.

Mettons j'ai le PC1:
_IP: 10.0.0.1
_Client Ftp
_Client Ssh

Ici, je demande au lient ssh d'écouter sur localhost:21 et de rediriger les paquets vers le PC2

PC2:
_IP: 10.0.0.2
_ Serveur SSH
_Serveur FTP

Le serveur ssh reçois le forward du client ssh du pc1 pour le retransmettre sur localhost:21 (le localhost qui corespond au PC2).

Donc sur le pc1 avec mon client ftp, je me connecte sur localhost21 et grâce à ce tunnel, cette session m'emmène sur le serveur ftp du pc2.

La ligne de commande du client ssh pour forwarder ça donne:

ssh -L 21:localhost:21 10.0.0.2 -l kilian

Le premier 21 dans la ligne c'est le port que client ssh va écouter pour le rediriger.
Mon sucis c'est que le protocole ftp utilise plusieurs ports. Je me suis arrangé avec mon serveur ftp pour ne pas utiliser le port 20.
Et j'ai serré un étau sur les ports du mode passif: le serveur ftp n'écoutera que sur les ports 1025 à 1029 (enfin, normalement).

Alors j'aimerais bien rediriger une rangée de port. En gros j'aimerais faire un truc comme ça:
ssh -L 21,1025-1029:localhost:21 10.0.0.2 -l kilian


Mais ça ne fonctionne pas. Là, le client ssh ne forwarde plus rien j'ai l'impression..
Et le man ssh ne fournit pas beaucoup de renseignements là dessus.
Une idée?
Configuration: Debian testing
Openssh

Meilleures réponses pour « [SSH Port Forward] Rediriger plusieurs ports » dans :
MySQL - Linux - Monitorer le port 3306 VoirPour faire le monitoring du port 3306 sous Linux il suffit d'utiliser la commande : tcpdump -i eth0 -nN -vvv -xX -s 1500 port 3306 Où s représente la longueur du paquet.
Aucun port ouvert = pas de cheval de Troie VoirMythe Si je n'ai aucun port ouvert, je suis sûr que je n'ai pas de cheval de Troie sur mon ordinateur. Réalité FAUX. Explications Un port ouvert n'est pas nécessaire pour contrôler un ordinateur sur lequel est installé un cheval de Troie. ...
Télécharger Advanced Port Scanner VoirAdvanced Port Scanner est un scanner de ports. Il vous listera les ports ouverts, susceptibles d'être utilisés par les pirates informatiques pour attaquer votre PC. Il utilise deux techniques pour scanner ces ports : - le scanning des ports TCP...
NAT - Translation d'adresses, port forwarding et port triggering VoirPrincipe du NAT Le mécanisme de translation d'adresses (en anglais Network Address Translation noté NAT) a été mis au point afin de répondre à la pénurie d'adresses IP avec le protocole IPv4 (le protocole IPv6 répondra à terme à ce problème). En...
Cryptographie - Secure Shell (protocole SSH) VoirInternet permet de réaliser un grand nombre d'opérations à distance, notamment l'administration de serveurs ou bien le transfert de fichiers. Le protocole Telnet et les r-commandes BSD (rsh, rlogin et rexec) permettant d'effectuer ces tâches...

1

kilian, le 16 mar 2006 à 09:49:02

Ah j'ai trouvé c'est bon.
On peut cumuler les -L:

Donc pour moi ça se résumera à:

ssh -L 21:localhost:21 -L 1025:localhost:1025 -L 1026:localhost:1026 -L 1027:localhost:1027 -L 1028:localhost:1028 -L 1029:localhost:1029 10.0.0.2 -l kilian

http://www.oreillynet.com/pub/a/wireless/2001/02/23/wep.html­

Avec un script shell fait maison on peut se générer une ligne de commande pour forwarder une bonne plâtrée de ports...

Répondre à kilian

2

sebsauvage, le 16 mar 2006 à 10:35:03

Merci de l'info. :-)

Répondre à sebsauvage

3

maestro1303, le 31 oct 2006 à 18:48:52

Merci Sabauvage, Merci Kilian merci à tous
Excusez mon ignorance


Je vous explique sommairement ma situation: Et dites moi SVP s'il y a ou non une solution à ce problème:

J'ai:

1)une machine cliente ayant l'adresse 192.168.4.21(A) avec PUTTY

2)un serveur win2003 ayant l'adresse 192.168.2.80(B) avec Cygwin/Openssh

3)un serveur de mail que j'appelle C (accessible depuis l'intranet et depuis l'extérieur).

Je veux savoir comment -à partir de A- pouvoir lire mon mail(C) en utilisant la connexion (tunnel SSH) en B.

D'abord est-ce possible? Et si oui comment.


Merci d'avance!

Répondre à maestro1303

4

kilian, le 2 nov 2006 à 18:23:55

Voui,

La connexion sera cryptée entre le client ssh (putty) et le serveur avec cygwin. Par contre entre B et C, ça ne sera plus crypté.
Je ne sais pas comment ça se passe au niveau du réseau cygwin, donc là je ne peux pas trop t'aider.
Mais sur Putty, il faut que tu configures un tunnel pour rediriger ce qui va vers le port 110 et le port 143 (ports pop3 et imap4 pour retirer les mails) dans la boucle locale (127.0.0.1) vers le vrai serveur mail en utilisant B comme relais.

..et le...le...enfin, non parce c'est...ya...quand...bah tu sais là le...

Répondre à kilian

5

maestro1303, le 3 nov 2006 à 11:51:39

Bonjour à tous et merci Kilian,

J'ai mis en place le tunnel et ça marche comme prévue de A à B.

j'ai pri comme port local 8080 et comme port sur la macchine C 80!
J'ai fait aussi outils/option internet/connexion/paramètres réseau/serveurb proxy et 127.0.1:8080

Le tunnel marche bien entre A et B car on ne voit plus rien quand on sniffe!!

Mais Chose etrange quand je fait un site autre que google(qui marche!!??!) j'ai une de deux chose:

1) site introuvable
2) on me redirige sur le site de C comme si je ne fais que l'adresse IP de C dans mon URL.

Alors
Est ce normal?
Est ce que ça peut être contourné surtout point 1.


Merci infiniment!!

Répondre à maestro1303

6

kilian, le 4 nov 2006 à 21:43:57

C'est vers un serveur mail que tu veux aller ou vers un serveur web?
C c'est un proxy finalement? Je comprends plus rien....

..et le...le...enfin, non parce c'est...ya...quand...bah tu sais là le...

Répondre à kilian

7

maestro1303, le 5 nov 2006 à 20:34:13

Bonjour,

En fait je me connecte à mon serveur mail en utilisant une interface web et pas un client de messagerie genre outlook.

Ce qui importe pour moi pour le moment c'est d'accéder via ssh en toute sécurité à mon mail.
La situation telle que décrite dans mon premier POST est la suivante:

Je suis sur une machine A(client SSH), j'ai un serveur SSH en B, et le serveur courrier est en C.

Je veux séxuriser seulement la portion entre A et B, celle entre B et C est réputée sûre!

Voilà
et merci de ta réponse.

Répondre à maestro1303

8

kilian, le 6 nov 2006 à 20:35:44

Ben les tunnels que je connais sont statiques. Tu ne peux pas aller ailleurs que vers une destination précise.
Pour configurer un tunnel tu dois indiquer
_Sur quel port local le client ssh doit écouter
_Vers quel serveur ssh la connexion doit retransmise
_Ou et sur quel port le serveur ssh doit il retransmettre cette connexion?

Ce dernier point est statique.... Donc si tu veux aller sur n'importe quel site, il faut installer un proxy sur la destination vers laquelle le serveur ssh doit renvoyer la connexion.

..et le...le...enfin, non parce c'est...ya...quand...bah tu sais là le...

Répondre à kilian

9

 sebsauvage, le 7 nov 2006 à 09:44:30

La solution pourrait être d'installer un proxy HTTP ou un proxy SOCKS sur la même machine que ton serveur SSH, puis forwarder des ports locaux vers le serveur proxy.

Comme ça tu pourra atteindre plein de sites différents.
“Life is short - You need Python” -- Bruce Eckel, membre du comité ANSI C++

Répondre à sebsauvage