Firewalls et tunnels ssh

Situation fréquente: vous connectez votre portable sur le réseau de l’entreprise, et le firewall vous interdit tout traffic vers l’extérieur hors HTTP (port 80) et HTTPS (port 443). Vous ne pouvez donc pas lire votre mail avec IMAP, vous connecter avec ssh, utiliser cvs… Une solution possible est d’utiliser un tunnel HTTP avec httptunnel, mais httptunnel ne permet pas de passer plusieurs connections dans le même tunnel.

La mise en oeuvre nécessite une machine extérieure au réseau de l’entreprise, par exemple votre machine personnelle en utilisant dyndns si nécessaire, sur laquelle vous pouvez être super-utilisateur.

L’étape préliminaire consiste à déterminer les ports ouverts avec nmap:

 nmap -sT -p 1-10000 MACHINE_EXTERIEURE

Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2006-03-15 10:21 CET
Interesting ports on xx.xx.xx.xx:
(The 9998 ports scanned but not shown below are in state: closed)
PORT    STATE    SERVICE
80/tcp  filtered http
443/tcp filtered https

Nmap finished: 1 IP address (1 host up) scanned in 24.810 seconds

Première étape, lancer le serveur httptunnel sur la machine extérieure:

% hts --forward-port localhost:22 443

pour lancer un serveur attendant les connexions sur le port 443 (HTTPS) et les redirigeant sur le port 22 de la machine locale. Cette commande doit être lancée sous root, le port 443 étant un port réservé.

Seconde étape: lancer le client httptunnel sur votre portable connecté au réseau de l’entreprise:

htc -F 2221 MACHINE_EXTERIEURE:443

pour rediriger à travers le tunnel HTTP les connexions sur le port 2221 de votre portable vers le port 443 de la machine tournant hts.

Troisième étape: lancer entre le portable et la machine extérieure un tunnel ssh à l’intérieur du tunnel http:

ssh -f -n -N -p 2221 -L 2222:HOTE:22 -l USER localhost

où HOTE est le hostname de la machine extérieure et USER votre login sur cette machine. Cette commande va rediriger le port 2222 de votre portable vers le port 22 de la machine extérieure en utilisant le tunnel http accessible sur votre portable sur le port 2221.

Quatrième étape: lancer les tunnels IMAP, SMTP, SSH… sur votre portable, en utilisant le tunnel ssh lancé à la troisième étape, tunnel qui écoute sur le port 2222:

ssh -f -n -N -p 2222 -L 10993:VOTRE_SERVEUR_IMAP:993 -l USER localhost
ssh -f -n -N -p 2222 -L 10025:VOTRE_SERVEUR_SMTP:25 -l USER localhost

Bien entendu, il faut ensuite dans votre logiciel de mail (Thunderbird par exemple) ajouter un nouveau compte qui utilise comme serveur IMAP locahost:10993 et comme serveur SMTP localhost:10025.

Laisser un commentaire