[gull] tunnel ssh à travers deux pare-feux

Martial Guex m.guex at mutech.ch
Fri Sep 24 21:10:02 CEST 2004


On Friday 24 September 2004 12.46, Pierre Maitre wrote:
> Il y a quelque chose qui m'échappe, quelqu'un aurait-t-il une piste?
>
C'est toujours le prob. quand un réseau est impliqué et non pas une simple 
connexion p-t-p entre 2 machines, Marc Schaefer a fait une petite application 
permettant de "prolonger" une session ssh sur une autre machine (j'ai oublié 
sons nom).

L'option ssh -L p1:h:p2 fait que toutes les requêtes IP envoyée sur le port 
local p1 sont retransmises sur le port p2 de la machine h. La conversion dns 
de h étant faite par la machine de destination de ssh.

L'option ssh -R p1:h:p2 fait que toutes les requêtes IP envoyée sur le port p1 
de la machine de destination de la session ssh sont retransmises sur le port 
p2 de la machine locale h. La conversion dns de h étant faite par la machine 
ou la session ssh est lancée.

Dans ton cas tu peux faire les commandes suivantes, ce qui t'évite de faire du 
nat sur les fw:
# ssh -f -L 2222:localhost:2222 root at fw_local.local.domain "ssh -f -C -L 
2222:remote_host.remote.domain:22 fw_remote.remote.domain sleep 10"
# ssh remote_user at localhost

la première commande établit un pont entre le port 2222 de ta machine locale 
et le port 22 de la machine remote_host.remote.domain pendant au minimum 10 
secondes mais reste connecter si les ports redirigés sont utilisés.
La seconde établit une session ssh avec remote_host.remote.domain. 
Naturellement la deuxième commande peut-être une session scp pour 
synchronisés tes fichiers.

C'est préférable d'utiliser le système de clé privée et publique de ssh 
(placer la clé publique ssh-keygen dans ~/.ssh/authorized_keys[2] des système 
distant) autrement tu vas passé ton temps à entrer des mots de passes.

Pour ma part j'utilise également depuis environ 2 ans openvpn pour résoudre ce 
type de problème 
(http://openvpn.sourceforge.net/), ce vpn est très polyvalent et gère entre 
autre les adresses dynamiques et permet d'ajuster les règles de routages et 
de filtrages a chaque changement d'adresse IP.
C'est un peux plus complexe à configurer qu'une simple session ssh mais c'est 
beaucoup plus propre car cela te permet de connecter deux réseaux afin que 
chaque machines puissent se connecter à toutes les autres.

Dans le cas ou je n'ai que le port ssh disponible j'utilise vtun et je modifie 
le script de démarrages de vtun en créant un lien entre un port du fw local 
et un port du fw externe avec la commande suivante:

/usr/bin/ssh -f -n -q -x -C -L 5002:localhost:5002 -2 \
xxx.xxxxxxx.ch sleep 5 </dev/null >/dev/null 2>&1 0>&1

Ensuite je croche un vtun sur les ports 5002 locaux des deux machines.
Vtun permet également de gérer les règles de routage et de filtrage. Par 
contre ce système doit être redémarré à chaque changement d'adresses IP.
Ceci me permet également de connecter n'importe quelle machines entre elles.

A+
Martial
-- 
MuTECH, Martial Guex
Rue des Alpes 3
1452 Les Rasses
Switzerland
Phone:+41 (24) 454 46 35
Fax:+41 (24) 454 46 32
Email: m.guex at mutech.ch




More information about the gull mailing list