Probleme de forwarding pour un ssh

Fermé
Loic - 15 mars 2007 à 16:57
Toeic Messages postés 51 Date d'inscription vendredi 16 mars 2007 Statut Membre Dernière intervention 24 août 2007 - 27 mars 2007 à 14:01
Bonjour,
voila le probleme, je travaille sous Linux et je cherche a "forwarder" un ssh sur un intranet. l'infrastructure employee ressemble a ce qui suit:

pc distant1 ========= passerelle/hote1 ============ hote2

le probleme est de faire un ssh sur la "passerelle/hote1" tout en specifiant un port dans la requete (ssh -P je crois) qui peröettrait de "forwarder" la requete vers "hote2" et ainsi d'arriver a creer un tunnel entre "pc distant1" et l'"hote2" tout en gardant la "passerelle/hote1" invisible pour l'utilisateur....

est ce tout simplement realisable, et si oui, comment ?

Merci d'avance
A voir également:

5 réponses

brupala Messages postés 109551 Date d'inscription lundi 16 juillet 2001 Statut Membre Dernière intervention 12 mai 2024 13 633
15 mars 2007 à 17:37
comme ceci ?
probleme tunneling ssh
0
ça m'a l'air pas mal, je vais tenter ça demain....mais j'aurais surement une autre petite colle sr ce sujet :p

admettons que je veuille que le tunnel joigne différents hôtes en fonction du port que je lui demande de prendre sur la "passerelle/hote1", est ce que ça serait possible avec l'ip masquerade d'établir une règle qui routerait automatiquement le tunnel ?

par exemple, quand je tape ssh -L 2001:....., ça joint la machine 10.0.0.1, quand je tape ssh -L 2002, ça joint la machine 10.0.0.2, et ainsi de suite...

est ce que c'est possible d'implémenter de telles règles avec iptables, ou alors il faut que je rentre toute la ligne à chaque fois pour créer le tunnel ?

Merci
0
Hello,

apres avoir essaye ce que tu proposes, je n'ai toujours pas de resultats et mon ssh ne passe pas le pc intermediaire...
j'ai essaye la commande suivante dans iptables:
i
ptables -t nat -A PREROUTING -p tcp --dport 2001 -i eth0 -j DNAT --to ip_serveur:22


avec la commande:
ssh -p 2001 login@ip_intermediair
e

etant debutant dans ce domaine, je n'arrive pas a situer mon erreur, pourtant j'ai lu pas mal de docs sur la toile qui presentent cette solution (+/-)

merci d'avance encore

nota: l'ip_forward est a 1
0
brupala Messages postés 109551 Date d'inscription lundi 16 juillet 2001 Statut Membre Dernière intervention 12 mai 2024 13 633
16 mars 2007 à 19:04
ah non,
ça n'est pas un tunnel que tu veux faire alors, c'est un nat .

c'est plutôt la commande ssh -p 2001 login@serveur_ssh que tu dois faire.
pour la commande iptable, je ne sais pas, il faut que je recherche (j'ai toujours eu du mal à les lire), mais ça doit etre asses proche
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Toeic Messages postés 51 Date d'inscription vendredi 16 mars 2007 Statut Membre Dernière intervention 24 août 2007 2
18 mars 2007 à 19:14
oui, thx, c'est du nat et non un tunnel la finalité du truc, dsl

pour info, j'arrive à passer la "passerelle" et grâce à Wireshark, je vois que l'authentification ssh débute entre la "passerelle" et l'"hote distant".

mes regles iptables sont les suivantes sur la "passerelle":
iptables -t nat -A PREROUTING -j DNAT -p tcp --dport 2001 -i eth0 --to ip_distant:22
iptables -t nat -A POSTROUTING -j MASQUERADE -p tcp --dport 22 -o eth1 -d ip_distant

iptables -t filter -A FORWARD -i eth0 -o eth1 -j ACCEPT
iptables -t filter -A FORWARD -i eth1 -o eth0 -j ACCEPT

apparement, le probleme maintenant c'est d'autoriser le traffic à revenir sur ses pas pour avoir la réponse, need de taffer un peu la dessus encore, mais si kkun a une idée, je suis preneur...

Merci d'avance
0
brupala Messages postés 109551 Date d'inscription lundi 16 juillet 2001 Statut Membre Dernière intervention 12 mai 2024 13 633
20 mars 2007 à 13:39
je ne suis pas vraiment connaisseur en iptables,
mais il me semble que la règle -j MASQUERADE ne comporte pas d'options d'habitude
0
Toeic Messages postés 51 Date d'inscription vendredi 16 mars 2007 Statut Membre Dernière intervention 24 août 2007 2
27 mars 2007 à 09:19
Dans ce cas, ca sert juste a preciser ou on redirige le traffic, tout ce qui est a destination du port 22 va sortir par eth1 a pour l'adresse ip_distant.

Sinon, j'ai trouve une solution, mais un peu galere a mettre en place...
en gros, il faut etablir les regles citees auparavant sur la passerelle:
iptables -t nat -A PREROUTING -j DNAT -p tcp --dport 2001 -i eth0 --to ip_distant:2001
iptables -t nat -A POSTROUTING -j MASQUERADE -p tcp --dport 2001 -o eth1 -d ip_distant

iptables -t filter -A FORWARD -i eth0 -o eth1 -j ACCEPT
iptables -t filter -A FORWARD -i eth1 -o eth0 -j ACCEPT

Puis mettre le sshd de la nachine distante a ecouter sur le port choisi et avec la commande:
ssh -p 2001 -o "HostKeyAlias xxx" user@hote_distant

on envoie notre traffic sur le port 2001 (qui permet la redirection vers la machine de notre choix au niveau de la passerelle, suffit de regler iptables) et l'option HostKeyAlias va gerer l'alias donne a la cle genere par ssh lors du transfert (stockee dans ~/.ssh/known_hosts) qui permet de joindre la passerelle puis l'hote distant en passant outre la cle deja etablie entre l'hote et le passerelle (ainsi que les infos de man in the middle probable)

oila, pas tres clair, mais c'est tout ce aue j'ai trouve pour gerer les cles generes

j'essaye un truc dans le meme genre avec cles publiques/privees maintenant
0
brupala Messages postés 109551 Date d'inscription lundi 16 juillet 2001 Statut Membre Dernière intervention 12 mai 2024 13 633 > Toeic Messages postés 51 Date d'inscription vendredi 16 mars 2007 Statut Membre Dernière intervention 24 août 2007
27 mars 2007 à 11:19
je ne vois pas quel est ton problème de clés là .
l'adresse du client distant n'est pas modifiée par le passage en nat et sa clé publique ne change pas quelle que soit le serveur destination.
c'est le fichier known_hosts du client qui est mis à jour dans ce cas.
0
Toeic Messages postés 51 Date d'inscription vendredi 16 mars 2007 Statut Membre Dernière intervention 24 août 2007 2 > brupala Messages postés 109551 Date d'inscription lundi 16 juillet 2001 Statut Membre Dernière intervention 12 mai 2024
27 mars 2007 à 13:37
oui, dans le fichier known_hosts, il y a des cles qui sont gerees en fonction de la destination du ssh et de host1 a host2 mais sur deux port differents, ce fichier alerte qu'il se passe kkchose de "nasty" sur la ligne et refuse la connexion
[user1@host1 ~]$ ssh -p 2001 user2@host2
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Please contact your system administrator.
Add correct host key in /home/user1/.ssh/known_hosts to get rid of this message.
Offending key in /home/user1/.ssh/known_hosts:1
RSA host key for host2 has changed and you have requested strict checking.
Host key verification failed.

voila mon probleme alors que si je fais la meme commande sans changer de port, ca se fait tout seul.

merci de m'accorder un peu de temps

P.S.: le port 2001 est cense etre forwarde a la machine correspondante...
0
brupala Messages postés 109551 Date d'inscription lundi 16 juillet 2001 Statut Membre Dernière intervention 12 mai 2024 13 633 > Toeic Messages postés 51 Date d'inscription vendredi 16 mars 2007 Statut Membre Dernière intervention 24 août 2007
27 mars 2007 à 13:53
ça c'est par rapport à ton fichier local , non ?
pas le distant.
0