[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