Monthly Archives: mars 2008

Laissez moi sortir à l'aide de SSH (1ère partie)

Cet article explique comment faire passer n’importe quoi (n’importe quel flux informatique) à travers un firewall. Plus précisement il s’agit d’accéder à des ressources informatiques externes depuis le réseau de l’entreprise, celui-ci étant vérouillé (en entrée et sortie) par différentes protections (proxy, firewall …).

Avertissement
La mise en œuvre de ces techniques va généralement à l’encontre de la sécurité informatique et peut susciter le couroux de l’administrateur réseau (si il aperçoit quelque chose). J’ai utilisé ces techniques sur de nombreux réseaux d’entreprise et on ne m’a jamais inquiété…

Application
Il peut être utile d’accéder à des ressources privées depuis le réseau d’entreprise. Cela peut être accéder à une application distante ou récupérer un document ou n’importe quel autre besoin (puisqu’on va faire passer n’importe quoi à travers le firewall). Cela s’applique aux réseaux d’entreprise qui permettent que la navigation sur internet. Ces réseaux sont filtrés et n’autorisent généralement qu’un nombre très limité de protocoles en sortie, soit http, https et parfois quelques autres.
Le filtre est généralement composé d’un serveur proxy accessible sur le réseau de l’entreprise après s’être authentifié (par exemble en ouvrant une session sur un domaine ou par user/password).
Bien que le réseau d’entreprise soit filtré, il est possible de passer outre le filtrage en faisant passer n’importe quel flux (protocole) dans n’importe quel sens (entreprise->internet ou internet->entreprise), et cela de manière sécurisée.

Prérequis
Évidemment il faut posséder sur le réseau client d’un accès à internet, plus précisément pouvoir surfer avec un navigateur ; ce qui implique qu’on dispose du protocole http (et surtout https) en sortie.
D’un point de vue technique il faudra un point d’accès externe au réseau d’entreprise (une machine accessible depuis internet).

La notion du tunnel
Le protocole https fait transiter http dans une couche ssl. Cette couche ssl assure la sécurisation du flux entre le client et le serveur et c’est ssl qui est à l’initiative de la connexion, ensuite on met ce qu’on veut par dessus (ou dedans); c’est le tunnel.
Il est possible d’établir ce tunnel (ssl) puisque le réseau d’entreprise permet le protocole https donc le ssl. Ensuite il suffit de relier à chaque extrémité les services souhaités : sur le réseau d’entreprise un client qui permet de faire entrer n’importe quoi dans le tunnel et à l’extérieur sur un autre réseau via internet un serveur qui sera à l’extrémité du tuyau et qui relaiera des services au client.

Les outils
Le protocole utilisé va donc être ssl à l’aide d’applications ssh, une formule qui fonctionne bien :

  • côté client: putty, voire le client Bitwise Tunnelier (windows)
  • côté serveur:  ssh (sous linux)

Cela va permettre d’établir un tunnel ssl à l’aide de ssh, on l’appellera tunnel ssh. La mise en oeuvre de ces outils se représente de la manière suivante :

Installation et configuration
Côté serveur:
La machine externe au réseau d’entreprise devra héberger le serveur ssh. Le réseau d’entreprise autorise https (SSL) en sortie, c’est donc sur le port 443 que le service ssh devra écouter sur le serveur.
Il faut aussi forwarder le flux client vers le bon serviceserveur:
ssh -L 53128:monproxylan:3128 root@serveurssh -p 443

Côté client:
Créer une connexion vers le serveur SSH puis configurer un tunnel comme suivant :

Certains proxy necessitent une authentification NTLM (par exemple Microsoft ISA) et celle-ci n’est pas gérée correctement par putty, il faut alors installer ntlmaps ainsi que l’interpréteur Python. L’installation de Python ne nécessite pas d’avoir des droits administrateur sur le poste local

Configurer ntlmaps et l’exécuter, celui-ci par défaut ecoute sur le port 5865

Dans Putty il faut ensuite configurer le proxy de type HTTP avec l’adresse localhost:5865

Enfin, il faut faire pointer l’application client sur localhost:53128.

Cela correspond à l’empilement suivant des applications:

Avec tout ça on sort du réseau d’entreprise sans aucun problème !