Vous êtes passionnés comme moi de machines basse-consommation, ARM, Atom : rendez visite à mon partenaire !
VPN avec tunnel SSH
mardi 02 novembre 2010 à 07:30 | Sécu
Les utilisateurs de OpenSSH, ont très souvent recours à SSH uniquement pour réaliser des connexions vers les serveurs, sans savoir qu'il peut être utilisé pour réaliser un VPN, en établissant un tunnel sécurisé ssh vers un serveur, puis en rebondissant vers les serveurs internes, du réseau.
Prenons un exemple simple de schéma réseau : vous êtes à l'extérieur de la société et souhaitez, atteindre 4 machines :
- intranet sur le port http 80
- web-metier sur le port http 80
- pop3 sur le port pop3 110
- pc1 sur le port RDP (Remote Desktop) et accès aux répertoires partagés
Avec Windows, en utilisant PuTTY vous créez le script suivant qui crée le tunnel SSH :
set path=%path%;"C:\Program Files\PuTTY"
echo 127.0.0.1 localhost > C:\WINDOWS\system32\drivers\etc\hosts
echo 127.0.0.2 intranet >> C:\WINDOWS\system32\drivers\etc\hosts
echo 127.0.0.3 web-metier >> C:\WINDOWS\system32\drivers\etc\hosts
echo 127.0.0.4 pop3 >> C:\WINDOWS\system32\drivers\etc\hosts
echo 127.0.0.5 pc1 >> C:\WINDOWS\system32\drivers\etc\hosts
copy C:\WINDOWS\system32\drivers\etc\lmhosts.sam C:\WINDOWS\system32\drivers\etc\lmhosts
echo 127.0.0.5 pc1 >> C:\WINDOWS\system32\drivers\etc\lmhosts
net stop Browser
net stop lanmanserver
rem pour écrire une ligne de commande sur plusieurs lignes mettre ^ en fin de chaque ligne
rem to write multi-lines DOS command use ^
plink -C ^
-L 127.0.0.2:80:intranet:80 ^
-L 127.0.0.3:80:web-metier:80 ^
-L 127.0.0.4:110:pop3:110 ^
-L 127.0.0.5:3390:pc1:3389 ^
-L 127.0.0.5:137:pc1:137 ^
-L 127.0.0.5:138:pc1:138 ^
-L 127.0.0.5:139:pc1:139 ^
%username%@[nom ou ip du serveur ssh]
net start lanmanserver
net stop Browser
echo 127.0.0.1 localhost > C:\WINDOWS\system32\drivers\etc\hosts
del C:\WINDOWS\system32\drivers\etc\lmhosts
Démarrez le script, identifiez-vous, laissez la fenêtre DOS "ouverte", et hop vous avez accès aux ressources désirées !
Astuce : vous remarquerez le signe ^ en fin de ligne, il permet d'écrire une commande DOS sur plusieurs lignes.
Avec Linux, de la même façon, vous pouvez créer un alias dans le .bashrc :
alias VPN=' \
sudo cp hostout.conf /etc/hosts; \
sudo ssh \
-L 80:intranet:110 \
-L 80:web-metier:80 \
-L 110:pop3:110 \
-L 3389:pc1:3389 \
-L 137:pc1:137 \
-L 138:pc1:138 \
-L 139:pc1:139 \
user@[nom ou ip du serveur ssh]; \
sudo cp hostin.conf /etc/hosts;'
hostout.conf et hostin.conf contiennent les noms de machines et les ip de mappage en 127.0.0.x.
A propos de Vincent RABAH
Je suis DSI depuis 10 ans. Spécialiste en systèmes d'information et réseaux.
Expert en management, GreenIT et virtualisation de serveurs. Vous pouvez consulter l'ensemble de mon parcours.
I do speak English even if my blog is written in French ... Feel free to leave comments, I'll answer you !
- Sécurité routeur et switch CISCO
- Wifi et Rogue AP
- Backtrack 4.0
- VPN IPsec avec OpenBSD
- VMware vSphere 4.0 a passé les Critères Communs
- Cisco Template Manager
- L'échange de clés Diffie Hellman expliqué
- Nvidia CUDA ... Les GeForces aident les hackers de réseau wifi ?
- Attaque par deni de service - DDOS
Vous pouvez lire également :
Partagez cet article :





Merci pour ce script.
En tout cas vraie ou faut VPN, ça dépanne un admin quand il souhaite rentrer sur le réseaux de l'entreprise pour dépanner ou plus.... La simplicité est toujours parmis les meilleurs solutions.
Bonjour,
Point Important avec cette manip:
Seulement les ports TCP fonctionnent.
Je viens de passer un petit moment à tester afin de faire un tunnel pour du snmp mais c'est de l'UDP...
Sinon très intéressant ce post, je n'avait jamais pensé à jouer avec les fichiers hosts!
Loïc
Bonjour Vince, j'ai regardé avec intérêt, cette techno que que je connaissais pas ... Je n'ai pas tout compris :(
bonjour,
Le plus souvent, l'utilisation de tunnel SSH permet l'accès à des ressources qui normalement ne le sont pas en effet, quoi de plus simple que de monter un tunnel SSH sur le port 443 et de bypasser la plupart des firewall ... que celui qui ne l'a jamais fait me jette la première pierre.
De nouvelles technos de Firewall permettent de s’affranchir de cela: voir Palo Alto networks.
A bientot
Bonjour Renaud,
Pourquoi faire un tunnel ssh ? Juste parce que les admins Linux ont de base opensshd installé sur leurs serveurs. Donc, naturellement, ils vont vouloir faire perdurer leur outils de prédilection ;)
Bien entendu, ça n'aura jamais la souplesse d'un VRAI VPN !
Cordialement,
Vincent
Salut,
Quel intérêt d'employer le portforwarding (plus proche du Socksproxy que du VPN) à l'utilisation d'un VPN réel ? Utilisant peut être (mais fortement déconseillé) toujours SSH ?
En tout cas merci pour le coté scripting qui facilite toujours la vie pour dépanner :)
Renaud