Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 11/01/2011, à 17:11

selon

besoin d'aide SSH

Bonjour,
je dois réaliser un tunnel SSH qui fait de la redirection de port, comme ceci:

un client se connecte au port 80 d'un serveur A.
le serveur A redirige la requête sur un autre serveur B, via ssh, sur le port 22.
le serveur B reçoit la requête, et la redirige vers son propre port 80, pour être exécutée
par le serveur web du serveur B.
Puis la réponse est renvoyé au serveur A via ssh, et enfin le serveur A renvoi la réponse au client.

voici un schéma:
http://img715.imageshack.us/img715/2232/sshm.jpg

je sais qu'on peux le faire avec ssh, avec une commande du style:
ssh -L 80:localhost:21 @ServeurB

mais je n'ai aucune idée des commandes exactes a effectuer sur les serveurs, malgré de nombreuses tentatives et recherches.
Si quelqu'un a une idée ..

merci d'avance

Hors ligne

#2 Le 11/01/2011, à 18:00

time132

Re : besoin d'aide SSH

selon a écrit :

malgré de nombreuses recherches.

J'ai un petit doute la dessus. En effet internet regorge de documentation sur le tunnel SSH.

http://www.linux-france.org/prj/edu/arc … 13s04.html est un très bon site qui te permettra de comprendre.

Si tu ne veux pas, voici la solution que je trouve:

ssh -L 80:localhost:80 utilisateur@serverB

Hors ligne

#3 Le 11/01/2011, à 20:46

selon

Re : besoin d'aide SSH

Salut,
merci de ton aide, j'avais trouvé ce site, mais je me suis un peu embrouillé dessus et tout n'étais pas clair :s. Je pensais que j'avais besoin d'une commande par serveur. Ssh c'est vraiment pas mon truc.
J'essaye ta commande demain !

Hors ligne

#4 Le 12/01/2011, à 10:00

droopy191

Re : besoin d'aide SSH

Salut,

A mon sens, la commande proposé partime132 ne marchera pas, il faut utiliser un port d'écoute local différent du 80, sinon il faudra etre root pour lancer la connexion ssh.

ssh user@machine_distante_A -L 8080 machine_distante_B:80

ici par ex, une requete http:\\localhost:8080 sera redirigée vers le serveur B port 80

Le passage d'info entre a et b n'est pas chiffré sauf si ce vous y faites passer est deja chiffré.
Il faudrait préciser ce que vous faites passer entre le client et B, il existe peut etre des solutions ( en gardant ssh) plus adaptées.

EDIT: en relisant votre message, j'ai un doute. Vous avez un accès ssh du client sur machine A ?

Dernière modification par droopy191 (Le 12/01/2011, à 10:02)

Hors ligne

#5 Le 12/01/2011, à 11:10

selon

Re : besoin d'aide SSH

Bonjour,

tout d'abord, merci pour vos réponses. Vos 2 commandes fonctionnent, mais n'effectue pas ce que je veux faire :
Il faudrait que les données qui passent entre A et B soient chiffrées.
En gros, les clients  lancent des requêtes HTTP (genre Google) sur mon serveur A, et le serveur A ajoute des données (login/mot de passe) à la requête HTTP du client.  Le serveur A route ensuite la requête vers le serveur B, et à cet endroit il faudrait que la requête HTTP soit chiffrée. Le réseau entre A et B représente Internet. Une fois arrivé sur le serveur B, je récupère le login + password, et envoie une réponse aux clients. (cette opération doit s'effectuer une seule fois,lors de la 1ere requête du client).

Mon cahier des charges impose d'utiliser SSH de cette manière.

Dernière modification par selon (Le 12/01/2011, à 11:11)

Hors ligne

#6 Le 12/01/2011, à 14:18

droopy191

Re : besoin d'aide SSH

Si ce n'est pas nécessaire de chiffrer en tre le client et A:
Apache en proxy sur A qui redirige sur un tunnel ssh lié à B ?
apache sur A recoit sur le port 80, et redirige sur localhost port X lié par le tunnel à serveur B port 80
On peut aussi le faire avec iptables, mais comme vous souhaitez aussi travailler le contenu de la requete, ca ne doit pas etre suffisant.
Ce n'est qu'une idée, je n'ai pas une connaissance approfondie de apache et de ces possibilités.

Aucune idée sur comment modifier la requette http pour ajouter des identifiants.
Le fait d'ajouter login et pass sur A complexifie grandement le problème amha .

Se serait sans doute plus souple de mettre un vpn entre A et B ? à moins que ssh soit impératif.

Hors ligne

#7 Le 18/01/2011, à 18:10

melanie777

Re : besoin d'aide SSH

Bonjour,

J'ai également un problème avec le tunneling ssh.
J'ai une machine A cliente et une machine B serveur et je souhaite créer un proxy SOCKS sur A grâce au tunnel entre A et B.
Je fais donc par exemple du dynamic forwarding depuis A :

ssh -D8080 user@machineB

Le problème est que la machine B accède à internet via un proxy : proxyadresse port 3128 et je ne sais pas comment faire en sorte que ma machine B redirige les connections ssh entrantes (en provenance de A) vers le proxy.

J'ai essayé de faire un forward local du type :

ssh -L8080:proxyadresse:3128 user@machineB

mais cela ne fonctionne pas.

Si vous pouvez m'éclairer sur ce que je peux faire côté client pour passer par le proxy du serveur.

Merci de votre aide

Mélanie

Hors ligne

#8 Le 18/01/2011, à 20:00

chopinhauer

Re : besoin d'aide SSH

melanie777 a écrit :

Le problème est que la machine B accède à internet via un proxy : proxyadresse port 3128 et je ne sais pas comment faire en sorte que ma machine B redirige les connections ssh entrantes (en provenance de A) vers le proxy.

Il utilise le proxy pour accéder au Web, pour ce qui concerne Internet il faut voir la configuration du proxy.

Le port 3128 est utilisé surtout par des proxy HTTP, ceux-là permettent de renvoyer des requêtes HTTP, mais pas forcement d'autres genres de connexions. Certains supportent la commande CONNECT pour effectuer des connexions arbitraire, cependant le port de destination de cette commande est souvent limité administrativement.

melanie777 a écrit :
ssh -L8080:proxyadresse:3128 user@machineB

Après avoir exécuté cette commande t'aura un proxy HTTP sur le port 8080 de la machine locale.


Pensez à donner un bon titre à vos sujets : cela permettra d'aider d'autres utilisateurs dans votre même situation. Ce n'est pas qu'en donnant des solutions qu'on aide, mais aussi en posant des bonnes questions et… facilement trouvables.

Hors ligne

#9 Le 19/01/2011, à 09:04

melanie777

Re : besoin d'aide SSH

Merci de ta réponse.
Je pense que le tunneling ssh ne fonctionne pas (le proxy local sur le port 8080 de ma machine cliente ne me donne pas accès à internet) parce que la machine B passe par un proxy http pour accéder à internet.
Par exemple, lorsque je suis connectée sur cette machnie B en ligne de commande, je dois faire

export http_proxy = proxyadresse:3128

pour que des commandes comme wget, apt-get... accèdent à internet.

Ma question est donc la suivante : comment dire à ma machine locale A : "Crée un tunnel ssh avec la machine B et utilise le proxy de B pour la connection internet".

Merci de votre aide.

Mélanie

Hors ligne

#10 Le 19/01/2011, à 13:10

chopinhauer

Re : besoin d'aide SSH

Si sur la machine A tu fais :

export http_proxy=localhost:8080

tu dois avoir exactement le même comportement (après ton 'ssh -L8080:adresseproxy:3128 machineB' évidemment).

PS : Si tu veux te servir de ton proxy pour accéder à du matériel auquel ta boîte/ton université est abonnée, il y a d'autres méthodes plus pratiques. Par exemple beaucoup de fournisseurs de contenu (par exemple SpringerLink) utilisent un système de tiers de confiance nommé Shibboleth : pour te connecter, tu choisis le nom de ton institution et t'es redirigé vers une page de connexion auprès de ta boîte/université ; c'est elle qui va communiquer au fournisseur de contenu ton identité et le fait que t'es autorisé à utiliser leur ressources.


Pensez à donner un bon titre à vos sujets : cela permettra d'aider d'autres utilisateurs dans votre même situation. Ce n'est pas qu'en donnant des solutions qu'on aide, mais aussi en posant des bonnes questions et… facilement trouvables.

Hors ligne

#11 Le 19/01/2011, à 17:44

melanie777

Re : besoin d'aide SSH

Effectivement je n'avais pas pensé à tester un

export http_proxy=localhost:8080

sur la machine locale, je testais simplement avec localhost:8080 comme proxy SOCKS dans firefox.
Cela m'a permis de comprendre qu'il fallait configurer localhost:8080 comme un proxy http et ssl dans firefox puisque le forward de port est local et non pas dynamique.
Cela fonctionne donc très bien avec :

ssh -L8080:adresseproxy:3128 machineB

Merci de tes propositions smile

Hors ligne