Doc Tunnel SSH

Pour des raisons de sécurité, il faut exposer un minimum de services à l’extérieur de votre serveur dédié. Notamment les services de bases de données (MySQL, PostgreSQL, Redis, etc.) doivent être exposés le moins possible.

Vous avez la possibilité de vous connecter en SSH à votre serveur dédié (directement ou via un VPN ou un bastion). Si ce n’est pas le cas, merci de nous ouvrir un ticket.

Créer un tunnel SSH

Grâce à votre connexion SSH, vous pouvez vous connecter à des services restreints à votre serveur dédié : par exemple un service qui écoute sur 127.0.0.1, ou un alors un service accessible uniquement sur le réseau local.

Prenons l’exemple où vous voulez accéder à une base de données MySQL écoutant uniquement en local (127.0.0.1) sur le port TCP/3306.

GNU/Linux ou Mac OS X

Vous pouvez lancer la commande suivante :

$ ssh -L 3306:127.0.0.1:3306 SERVEUR

Note 1 : attention, vous devez garder la connexion SSH ouverte, donc laissez la fenetre dans un coin

Note 2 : vous ne devez pas avoir un service qui écoute sur le port 3306 sur votre propre poste, vous aurez alors un message d’erreur (vous pouvez utiliser un autre port dans ce cas)

La syntaxe complète de l’option -L est :

ssh -L [IP_locale:]port_local:IP_distante:port_distant SERVEUR

Windows

À partir de Windows 10, vous pouvez activer OpenSSH en allant dans “Paramètres > Applications > Gérer les fonctionnalités facultatives > ajouter une fonctionnalité > Open SSH Client (Beta)”, puis redémarrez votre ordinateur. Vous pouvez lancer la commande suivante :

$ ssh -L 3306:127.0.0.1:3306 SERVEUR

Note 1 : attention, vous devez garder la connexion SSH ouverte, donc laissez la fenetre dans un coin

Note 2 : attention, vous ne devez pas avoir un service qui écoute sur le port 3306 sur votre propre poste, sinon il faut changer de port

Sinon, vous pouvez télécharger PuTTY pui l’exécuter :

  • Dans l’onglet “Session” remplir Host name (or IP address)
  • Dans l’onglet “SSH” puis “Tunnel” remplir Source port avec 3306 et Destination avec 127.0.0.1:3306
  • Cliquer sur “Open”

Note : vous pouvez sauvegarder cette configuration pour y accéder plus facilement les prochaines fois

Paramètres pour utiliser le tunnel SSH

Vous pouvez ensuite vous connecter à votre base de données distante avec votre logiciel préféré en spécifiant les paramètres suivants :

Serveur : 127.0.0.1 Port : 3306

Autres exemples de tunnel

Si le SSH est accessible depuis le port 22222 sur le serveur distant, il faut précisé le port :

$ ssh -L 3306:192.0.2.33:3306 -p 22222 SERVEUR

Si le service MySQL est sur une 3ème machine (accessible depuis le serveur distant), il suffit de préciser son IP :

$ ssh -L 3306:192.0.2.33:3306 SERVEUR

On peut bien sûr utiliser un port différent pour sa propre machine, par exemple 8306 :

$ ssh -L 8306:192.0.2.33:3306 SERVEUR

De même, si l’on veut se « binder » sur une autre IP que 127.0.0.1 sur sa propre machine, on peut le préciser ainsi :

$ ssh -L 127.0.0.33:8306:192.0.2.33:3306 SERVEUR

Enfin il faut noter que si l’on veut utiliser un port local inférieur à 1024, il faudra lancer la commande en root depuis son ordinateur :

# ssh -L 443:127.0.0.1:443 SERVEUR