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 etDestination
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