dimanche 17 juin 2012

VPN Tunnel avec SSH

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
Astuce : Le grand avantage du script que je propose, est d'utiliser complètement les adresses ip loopback 127.0.0.0/8, et pas juste l'adresse 127.0.0.1. On peut ainsi, utiliser plusieurs fois le même port
tunnel ssh
Avec Windows, en utilisant PuTTY vous créez le script suivant qui crée le tunnel SSH :

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 :

hostout.conf et hostin.conf contiennent les noms de machines et les ip de mappage en 127.0.0.x.

  1. alias VPN=' \
  2. sudo cp hostout.conf /etc/hosts; \
  3. sudo ssh \
  4. -L 80:intranet:110 \
  5. -L 80:web-metier:80 \
  6. -L 110:pop3:110 \
  7. -L 3389:pc1:3389 \
  8. -L 137:pc1:137 \
  9. -L 138:pc1:138 \
  10. -L 139:pc1:139 \
  11. user@[nom ou ip du serveur ssh]; \
  12. sudo cp hostin.conf /etc/hosts;'

  1. set path=%path%;"C:\Program Files\PuTTY"
  2. echo 127.0.0.1 localhost > C:\WINDOWS\system32\drivers\etc\hosts
  3. echo 127.0.0.2 intranet >> C:\WINDOWS\system32\drivers\etc\hosts
  4. echo 127.0.0.3 web-metier >> C:\WINDOWS\system32\drivers\etc\hosts
  5. echo 127.0.0.4 pop3 >> C:\WINDOWS\system32\drivers\etc\hosts
  6. echo 127.0.0.5 pc1 >> C:\WINDOWS\system32\drivers\etc\hosts
  7. copy C:\WINDOWS\system32\drivers\etc\lmhosts.sam C:\WINDOWS\system32\drivers\etc\lmhosts
  8. echo 127.0.0.5 pc1 >> C:\WINDOWS\system32\drivers\etc\lmhosts
  9. net stop Browser
  10. net stop lanmanserver
  11. rem pour écrire une ligne de commande sur plusieurs lignes mettre ^ en fin de chaque ligne
  12. rem to write multi-lines DOS command use ^
  13. plink -C ^
  14. -L 127.0.0.2:80:intranet:80 ^
  15. -L 127.0.0.3:80:web-metier:80 ^
  16. -L 127.0.0.4:110:pop3:110 ^
  17. -L 127.0.0.5:3390:pc1:3389 ^
  18. -L 127.0.0.5:137:pc1:137 ^
  19. -L 127.0.0.5:138:pc1:138 ^
  20. -L 127.0.0.5:139:pc1:139 ^
  21. %username%@[nom ou ip du serveur ssh]
  22. net start lanmanserver
  23. net stop Browser
  24. echo 127.0.0.1 localhost > C:\WINDOWS\system32\drivers\etc\hosts
  25. del C:\WINDOWS\system32\drivers\etc\lmhosts

Aucun commentaire:

Enregistrer un commentaire