Qu’est-ce que le Tunneling SSH inversé ?

By Flavien ROUX

Le tunneling SSH inversé est une technique essentielle pour accéder à distance à une machine protégée par un pare-feu ou un NAT, sans avoir besoin d’ouvrir de ports entrants. Son fonctionnement s’appuie sur l’initiation d’une connexion chiffrée depuis la machine distante vers un serveur relais public, permettant à un tiers de remonter le tunnel pour se connecter à un service local.

Cette méthode séduit par sa simplicité, sa sécurité et son adaptabilité dans des contextes variés, notamment pour la maintenance à distance ou l’accès sécurisé aux objets connectés.

À retenir :

  • Le tunneling SSH inversé permet de se connecter à une machine protégée sans redirection de ports.
  • Il fonctionne grâce à une connexion initiée depuis la machine distante vers un serveur relais.
  • Cette méthode est utile en maintenance, télétravail et dans l’IoT sécurisé.

Définition et fonctionnement du tunneling SSH inversé

« Le tunneling inversé est un pont sécurisé entre l’inaccessible et l’exposable. »

Lucas Perrin, ingénieur systèmes

Le tunneling SSH inversé repose sur le protocole SSH, mais à l’inverse du tunnel classique, c’est la machine distante (derrière un NAT) qui ouvre une connexion vers un serveur relais. Cette connexion, chiffrée, redirige un port local vers le serveur relais, accessible à l’extérieur.

A lire également :  Comment paraître plus jeune avec Zoom ?

Comment se met-il en place techniquement ?

Voici une commande type : ssh -R 26000:localhost:22 user@serveur_relais

Cela signifie que le port 26000 sur le serveur relais redirige vers le port 22 de la machine distante.

L’utilisateur final se connectera donc à : ssh -p 26000 user@serveur_relais et accédera à la machine protégée via le tunnel établi.

Cas d’usage concrets du tunneling SSH inversé

« J’utilise le tunneling SSH inversé pour maintenir mes équipements domotiques en accès restreint. »

Claire Bernard, technicienne IoT

Le tunneling SSH inversé trouve des applications concrètes dans plusieurs domaines :

  • Maintenance de serveurs privés ou objets connectés non exposés à Internet.
  • Débogage ou audit de systèmes embarqués, sans ouvrir leur pare-feu.
  • Accès à des bases de données locales ou interfaces web sécurisées.

Dans mon activité, je m’en suis servi pour établir une connexion sécurisée avec un Raspberry Pi installé derrière une box domestique. Grâce à un serveur relais public, j’ai pu y accéder sans aucune configuration réseau chez le client.

Avantages du tunneling SSH inversé dans les environnements sécurisés

« L’élégance du tunnel inversé, c’est sa discrétion et sa robustesse. »

Nadia Leclerc, administratrice réseau

Le tunneling SSH inversé présente plusieurs avantages majeurs :

  • Simplicité : aucune règle de pare-feu à configurer côté client.
  • Sécurité : le tunnel est chiffré de bout en bout via SSH.
  • Fiabilité : compatible avec des outils comme autossh pour le maintenir actif.

Cependant, le serveur relais devient un maillon critique. Il faut bien configurer sshd_config avec :

  • GatewayPorts yes pour autoriser les accès,
  • AllowTcpForwarding yes pour permettre la redirection de port.

Limites et précautions de sécurité du tunnel SSH inversé

« Un tunnel ouvert est aussi une porte ouverte. Il faut toujours en garder le contrôle. »

David Roche, expert en cybersécurité

Bien que le tunneling SSH inversé soit très pratique, il comporte aussi des risques :

  • Si la machine distante perd sa connexion Internet, le tunnel se ferme automatiquement.
  • Le serveur relais peut devenir un point d’attaque si mal sécurisé.
  • autossh ou un cron job peuvent être nécessaires pour maintenir la connexion persistante.

Exemple pratique de mise en œuvre du tunneling SSH inversé

« Comprendre par l’exemple, c’est s’approprier la technique. »

Jean Duret, formateur Linux

Imaginons :

  • Machine distante : raspberry.local, derrière une box.
  • Serveur relais : relai.mondomaine.fr, avec un port SSH 2222.

Sur la machine distante :

ssh -f -N -R 26000:127.0.0.1:22 -p 2222 [email protected]

Depuis un tiers :

ssh -p 26000 [email protected]

Cela donne un accès direct au terminal de raspberry.local, via le port 26000 du relais.

Tableau des cas d’usage typiques du tunneling SSH inversé

Cas d’usageAvantage principalExemple concret
Maintenance à distanceAccès sans modification réseauGestion d’un serveur local chez un client
Surveillance de capteurs IoTÉvite d’ouvrir des ports sensiblesRemontée de données depuis capteurs
Développement de services web protégésTest sur machine locale sans hébergement publicExposition d’un localhost sécurisé
Accès à des bases de données internesConnexion chiffrée et sans exposition directeRequête MySQL depuis serveur tiers

Et vous, avez-vous déjà utilisé un tunnel SSH inversé dans vos projets ? Racontez-nous votre expérience ou posez vos questions en commentaire !

A lire également :  Quel est le degré de confidentialité de Microsoft Teams ?

Laisser un commentaire