Création d’un tunnel SSH

Accès à un service distant en écoute sur une interface locale

Dans cet exemple le scénario est assez simple, un serveur héberge une base de donnée sur son port 3306.
Le service est en écoute sur l’interface de loopback uniquement, l’administrateur ne peut donc pas interroger la base de manière directe :

Tunnel SSH diagramme 1

On va donc établir un tunnel SSH pour résoudre notre problème :

Concernant les paramètres, pour simplifier, les options -f -N servent à placer le tunnel en tâche de fond,
et -Llocalhost:33060:localhost:3306 indique que l’on souhaite créer un tunnel SSH sur notre interface locale (127.0.0.1), sur le port 33060 vers l’interface locale du serveur distant sur le port 3306.

La fin de la ligne est assez simple à comprendre, on s’identifie avec l’utilisateur ludoc chez 192.168.0.2 via le port 22. Le paramètre -p est inutile dans ce cas, 22 étant le port par défaut du service SSH.

On peut maintenant établir notre connexion SQL :

Attention, lors de la connexion avec MySQL, si vous utilisez le nom « localhost » pour spécifier le hostname, le client utilisera un socket unix pour se connecter et vous serez donc sur votre propre machine (le paramètre -P est alors ignoré).

Rebond sur une machine distante vers un lan
Tunnel SSH diagramme 2

Si l’on souhaite contacter via SSH la machine 192.168.0.2, on doit passer par 192.168.0.1

Ensuite, il suffit de se connecter :

On est alors connecté sur 192.168.0.2 via 192.168.0.1 🙂

La minute sécurité

Simplifier les paramètres, c’est bien mais attention à certaines erreurs que l’on retrouve assez fréquemment :

Le cas 1 est acceptable dans la mesure où le programme va binder notre tunnel sur notre interface locale sur le port 2200 (comportement par défaut).
Dans le second cas le programme va binder notre tunnel sur toutes les interfaces de notre machine sur le port 2200 : si vous n’avez pas un firewall correctement configuré, l’ensemble de votre LAN pourra utiliser votre tunnel et si votre machine dispose d’une IP routable sur le net, n’importe qui pourrait faire de même ! Prudence donc 🙂

Ludovic CHEVRAUX

view all post
Leave a comment

Please be polite. We appreciate that.

By