GNU/Linux >> Tutoriels Linux >  >> Linux

Comment configurer le tunnel SSH

Si vous vous connectez avec un autre appareil Linux sur un autre réseau, vous devrez l'exposer à l'Internet public, ce qui peut mettre votre système et vos fichiers en danger. Par conséquent, SSH Tunneling est utilisé pour transmettre des données de manière rapide et sécurisée de la source à la machine cliente et vice versa.

Le tunneling SSH est une pratique consistant à créer une connexion SSH sécurisée et cryptée entre une machine serveur et une machine cliente à travers laquelle les données peuvent être transférées et le service peut être relayé. Dans notre article d'aujourd'hui, nous verrons comment configurer le tunnel SSH et acheminer votre trafic en toute sécurité via des tunnels SSH.

Qu'est-ce que le tunnel SSH ?

Le tunneling SSH est le moyen de transmettre du trafic ou des données non chiffrés via un canal chiffré. Simplement, vous pouvez dire qu'il s'agit d'un tunnel pour transférer des données d'un endroit à un autre de manière sécurisée. Outre la transmission de fichiers, le tunneling SSH peut également être utilisé pour accéder aux services intranet à travers les pare-feu et pour implémenter un VPN.

Le tunneling SSH est également connu sous le nom de transfert SSH. Il s'agit d'un moyen simple et efficace de transporter des données qui utilisent un protocole crypté (FTP), de contourner les pare-feu et d'accéder à du contenu géographiquement restreint.

Le transfert de port SSH est de trois types :

  1. Transfert de port local
  2. Transfert de port à distance
  3. Transfert de port dynamique

Transfert local

Le transfert local consiste à transférer un port de la machine cliente (client SSH local) vers la machine distante (serveur SSH), puis la connexion est transférée vers un autre port de la machine de destination.

Le client SSH vérifie la connexion sur un port donné spécifique et lorsqu'il reçoit une demande de connexion, il tunnelise la connexion vers un port spécifique sur un serveur SSH distant. Et puis le serveur se connecte à une autre machine de destination sur le port configuré.

Il est principalement utilisé pour se connecter à un service distant sur un réseau interne depuis l'extérieur comme une base de données. Il est également utilisé pour le partage de fichiers à distance sur Internet et via des serveurs de saut.

Comment configurer le transfert de port local ?

Prenons un exemple où vous êtes limité par un pare-feu pour accéder à une application exécutée sur un serveur distant sur le port 3000. Maintenant, nous allons transférer un port local (c'est-à-dire 8080) pour accéder à l'application localement.

Le -L est utilisé pour configurer le transfert de port local

ssh [email protected] -L 8080:server1.example.com:3000 

Ou

ssh -L [LOCAL_IP:]LOCAL_PORT:DESTINATION:DESTINATION_PORT [[email protected]]SSH_SERVER
  • [LOCAL_IP :]LOCAL_PORT – Le numéro de port et l'adresse IP de la machine locale. Tout numéro de port supérieur à 1024 peut être utilisé.
  • DESTINATION :DESTINATION_PORT – Le port et l'adresse IP ou le nom d'hôte de la machine de destination.
  • [[email protected]]SERVER_IP – Le nom d'utilisateur et l'adresse IP du serveur de l'utilisateur ssh distant.

Le -f demandera à ssh de s'exécuter en arrière-plan.

ssh -f -N [email protected] -L 8080:server1.example.com:3000

Et le -N demandera de ne pas exécuter de commande à distance. [vous n'obtiendrez pas de coquille dans ce cas.]

ssh -N [email protected] -L 8080:server1.example.com:3000

Maintenant, ouvrez un navigateur sur votre machine locale et vous pouvez simplement utiliser localhost:8080 pour accéder à l'application distante au lieu d'y accéder en utilisant l'adresse server.example.com:3000.

Transfert à distance

La redirection de port distant est l'opposé de la redirection de port local et vous permet de vous connecter à l'ordinateur local à partir de votre machine distante. SSH ne prend pas en charge le transfert de port distant par défaut. Vous devez donc l'activer dans votre fichier de configuration ssh.

Ouvrez le fichier de configuration ssh en mode édition

sudo vim /etc/ssh/sshd_config 

Recherchez les GatewayPorts et définissez-le sur oui.

GatewayPorts yes

Enregistrez les modifications, quittez le mode d'édition et redémarrez votre serveur.

sudo systemctl restart sshd

Maintenant que vous avez activé le transfert de port distant. Dans SSH ouvert, nous utilisons la commande -R pour configurer le transfert de port distant.

ssh -R [REMOTE:]REMOTE_PORT:DESTINATION:DESTINATION_PORT [[email protected]]SSH_SERVER
  • [REMOTE :]REMOTE_PORT – L'adresse IP et le numéro de port du serveur SSH distant.
  • DESTINATION :DESTINATION_PORT – Le nom d'hôte et l'adresse IP de la machine de destination.
  • [[email protected]]SERVER_IP – Le nom d'utilisateur et l'adresse IP SSH distants.

Par exemple :

ssh -R 8080:127.0.0.1:3000 -N -f [email protected]ote.host 

Le serveur SSH écoutera sur le port 8080 et tunnellisera tout le trafic du 8080 au port 3000 sur votre machine locale

Ou, vous pouvez utiliser la commande suivante pour transférer le port 5000 sur la machine distante vers le port 3000 sur la machine locale.

ssh -f -N [email protected] -R 5000:localhost:3000 

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

Transfert de port dynamique

Le troisième et dernier type de transfert de port est le transfert de port dynamique. Le transfert de port local et distant vous permet de créer un tunnel et de communiquer avec un seul port, mais dans le transfert de port dynamique, vous pouvez exécuter et communiquer avec une gamme de ports.

Il crée un socket sur la machine locale qui fonctionne comme un serveur proxy SOCKS ou vous pouvez dire Il configure votre machine locale comme un serveur proxy SOCKS et par défaut, il écoute sur le port 1080. Lorsqu'un serveur se connecte à ce port, il est transmis à la machine distante, puis il est transmis à la machine dynamique sur un port dynamique.

Qu'est-ce que CHAUSSETTES ?

C'est un protocole Internet qui définit comment une machine cliente peut se connecter à un serveur via un proxy.

Nous pouvons activer la redirection de port dynamique avec l'option -D. Comprenons la redirection de port avec un exemple-

ssh -D [LOCAL_IP:]LOCAL_PORT [[email protected]]SSH_SERVER
  • [LOCAL_IP :]LOCAL_PORT – L'adresse IP et le numéro de port de la machine locale.
  • [[email protected]]SERVER_IP – L'adresse IP et le nom d'utilisateur du serveur distant.

Ou cette commande démarrera un proxy SOCKS et vous permettra de vous connecter à l'hôte distant.

ssh -f -N -D 1080 [email protected] 

Conclusion

Le tunneling SSH est un moyen utile de transférer des données non chiffrées via un tunnel chiffré. Il y a trois options disponibles et vous pouvez choisir selon vos besoins.


Linux
  1. SSH vers un port autre que 22 :comment le faire (avec exemples)

  2. Comment changer le port SSH sous Linux

  3. Comment configurer des clés SSH

  4. Comment configurer des clés SSH sur Ubuntu 18.04

  5. Comment configurer le tunnel ssh pour transférer ssh?

Comment configurer le transfert de port dynamique SSH sous Linux

Comment changer le port SSH dans Ubuntu

Comment configurer SSH sur CentOS et RHEL

Comment changer le port SSH dans CentOS

Comment changer le port SSH sur Centos 7.x ?

Comment changer le port SSH sur Ubuntu ?