Comment configurer le tunnel SSH (redirection de port)

Bloqueur de pub détectée - Vous bloquez l'affichage des publicités.
Pour soutenir le site, merci de bien vouloir laisser les publicités s'afficher.

Plus d'informations : Comment désactiver les bloqueurs de publicité sur un site internet.

Le tunnel SSH ou la redirection de port SSH est une méthode de création d'une connexion SSH chiffrée entre un client et une machine serveur à travers laquelle les ports de services peuvent être relayés.

Le transfert SSH est utile pour transporter les données réseau des services qui utilisent un protocole non chiffré, tel que VNC ou FTP, pour accéder au contenu géo-restreint ou pour contourner les pare-feu intermédiaires. Fondamentalement, vous pouvez transférer n'importe quel port TCP et canaliser le trafic via une connexion SSH sécurisée.

Cet article vous guide pour mettre en place et configurer un tunnel SSH.

Comment configurer le tunnel SSH (redirection de port)

Comment configurer le tunnel SSH

Certains protocoles n'existent pas en version chiffrée.
Pour rendre la connexion plus sûr et éviter le sniff, ou attaque MiTM, on peut utiliser le protocole SSH afin de créer un tunnel.
Ce dernier va permettre de chiffrer la connexion à travers SSH.

Dans cet exemple, nous avons un serveur VNC sur 192.168.1.15:5901.
Le but est de pouvoir se connecter sur VNC via un tunnel SSH sécurisé.
Soit depuis la machine Local, soit depuis une machine du LAN.

Créer un tunnel SSH sécurisé afin de sécuriser des protocoles non sûr

De plus, cela vous permet aussi de ne pas exposer pleinement certains services vulnérables ou sujets à des attaques.
Par exemple, dans le cas d'un serveur VNC, vous pouvez le mettre en écoute sur localhost et y accéder depuis une machine distante à travers un tunnel SSH.

Rediriger un port local vers un tunnel SSH

La redirection de port local vous permet de transférer un port de la machine locale (client ssh) vers un port de la machine distante (serveur ssh), qui est ensuite transférée vers un port de la machine de destination.

Avec ce type de transfert de port, le client SSH écoute sur un port donné et tunnels toute connexion vers ce port vers le port spécifié.
La machine de destination peut être le serveur SSH distant ou toute autre machine.

La syntaxe à utiliser :

ssh -L [LOCAL_IP:]LOCAL_PORT:DESTINATION:DESTINATION_PORT [USER@]SSH_SERVER

Les options :

  • [LOCAL_IP:] LOCAL_PORT - L'adresse IP et le numéro de port de la machine locale. Lorsque LOCAL_IP est omis, le client ssh se lie sur localhost.
  • DESTINATION: DESTINATION_PORT - L'adresse IP ou le nom d'hôte et le port de la machine de destination.
  • [USER @] SERVER_IP - L'utilisateur SSH distant et l'adresse IP du serveur.

Par exemple ici, on créé un un tunnel SSH pour sécuriser une connexion VNC qui n'est pas chiffrée par défaut.
Ainsi, la commande SSH créé un tunnel SSH avec comme port d'entrée 5000 qui redirige vers 127.0.0.1:5901 à travers la session ssh mak@192.168.1.15

ssh  -L 5000:127.0.0.1:5901 -N -f mak@192.168.1.15

L'option -f indique à la commande ssh de s'exécuter en arrière-plan et -N de ne pas exécuter de commande à distance. Nous utilisons localhost car le VNC et le serveur SSH fonctionnent sur le même hôte.

Rediriger un port local vers un tunnel SSH

Puis on doit saisir le mot de passe de l'utilisateur pour ouvrir la session SSH.
A partir de là, SSH écoute et ouvre le port 5000.
netstat confirme bien que SSH que le port est en écoute sur localhost.

Rediriger un port local vers un tunnel SSH

Enfin à partir de là, on indique 127.0.0.1:5000 au client VNC pour se connecter.

Rediriger un port local vers un tunnel SSH

A noter que le client Remmina permet de créer une connexion VNC via un tunnel SSH.

Remmina client VNC et RDP pour créer un tunnel SSH
Bravo ! vous avez réussi à configurer le tunnel SSH afin de rediriger un port en local.

Rediriger un port distant vers un tunnel SSH

La redirection de port à distance est l'opposé de la redirection de port local. Il vous permet de rediriger un port de la machine distante (serveur ssh) vers un port de la machine locale (client ssh), qui est ensuite redirigé vers un port de la machine de destination.

La redirection de port à distance est principalement utilisée pour donner accès à un service interne à quelqu'un de l'extérieur.

Cela nécessite de modifier la configuration du serveur SSH.

  • Pour cela, éditez le fichier sshd_config :
sudo vim /etc/ssh/sshd_config

Cherchez l'option GatewayPorts pour la passer à Yes.
Si elle n'existe pas, ajoutez la ligne.

GatewayPorts yes
Rediriger un port distant vers un tunnel SSH

Enfin, relancez le serveur SSH :

/etc/init.d/ssh restart

Voici la syntaxe à utiliser, elle est similaire à celle précédente, simplement on utilise l'option -R :

ssh -R [REMOTE:]REMOTE_PORT:DESTINATION:DESTINATION_PORT [USER@]SSH_SERVER
Rediriger un port distant vers un tunnel SSH

Voici la description des paramètres :

  • [REMOTE:] REMOTE_PORT - L'adresse IP et le numéro de port sur le serveur SSH distant. Un REMOTE vide signifie que le serveur SSH distant se liera sur toutes les interfaces.
  • DESTINATION: DESTINATION_PORT - L'adresse IP ou le nom d'hôte et le port de la machine de destination.
  • [USER @] SERVER_IP - L'utilisateur SSH distant et l'adresse IP du serveur.
ssh  -R 5000:127.0.0.1:5901 -N -f mak@192.168.1.15

On voit bien ici que SSH écoute sur toutes les IP et non plus en local.

Rediriger un port distant vers un tunnel SSH

A partir de là, on peut se connecter à l'adresse 192.168.1.15:5000

Rediriger un port distant vers un tunnel SSH
Bravo ! vous avez réussi à configurer le tunnel SSH afin de rediriger un port en remote.

Tunnel SSH en proxy SOCKS

Enfin une autre méthode consiste à créer un serveur SOCKS via un tunnel SSH. Ce dernier agit alors en tant que proxy.
Le client créer une connexion SSH en ouvrant un port local.
Le serveur SSH se charge ensuite de délivrer la connexion HTTP et HTTPS.
C'est un bon moyen de contourner certains restrictions de firewall et de chiffrer la connexion internet.

On obtient le schéma suivante :

Tunnel SSH en proxy SOCKS

Sur le client, ouvrez une connexion SSH avec la commande suivante :

ssh -D 8000 -q -C -N mak@192.168.1.15
  • -D 8000: ouvre un proxy SOCKS sur le port local: 8000. Si ce port est utilisé, essayez un autre numéro de port. Si vous souhaitez ouvrir plusieurs proxys SOCKS vers plusieurs points de terminaison, choisissez un port différent pour chacun.
  • -C: compresser les données dans le tunnel, économiser la bande passante
  • -q: mode silencieux, ne produit rien localement
  • -N: n'exécute pas de commandes à distance, utile pour simplement transférer les ports
  • mak@192.168.1.15: le serveur SSH distant auquel vous avez accès
  • Ajoutez l'option -f si vous désirez que SSH tourne en fond.
Tunnel SSH en proxy SOCKS

Enfin on configure le SOCKS dans les paramètres de connexion du navigateur WEB.

Tunnel SSH en proxy SOCKS

Configurer le tunnel SSH dans Windows avec PuTTy

Le client SSH Windows PuTTy est aussi capable de créer un tunnel SSH sécurisé.

Configurer le tunnel SSH dans Windows avec PuTTy
  • Puis cliquez, à gauche, sur le menu Connection > SSH > Tunnels
  • Ensuite Cochez la case d'option Local pour configurer local, Remote pour distant et Dynamic pour la redirection de port dynamique
    • Si vous configurez le transfert local, entrez le port de transfert local dans le champ Port source et dans Destination, entrez l'hôte et l'adresse IP de destination, par exemple, localhost: 5901
    • Pour le transfert de port distant, entrez le port de transfert du serveur SSH distant dans le champ Port source et dans Destination, entrez l'hôte et l'adresse IP de destination, par exemple, localhost: 5000
Configurer le tunnel SSH dans Windows avec PuTTy
  • Ensuite cliquez sur Add afin de prendre en compte le tunnel
Configurer le tunnel SSH dans Windows avec PuTTy
  • Retournez dans le menu à gauche Session puis Save afin d'enregistrer la session avec le tunnel SSH
Bravo ! vous avez réussi à configurer le tunnel SSH afin de rediriger un port sur Windows avec PuTTY.

Liens

Vous avez trouvé cet article utile et interressant, n'hésitez pas à le partager...

Trouver la solution sur le forum d'aide

Vous êtes arrivé au terme de l'article Comment configurer le tunnel SSH (redirection de port) mais vous n'avez pas trouvé la solution à votre problème...
Suivez ces articles du forum pour trouver une réponse ou demandez à votre tour de l'aide sur le forum

Tags: