in

Comment utiliser le tunnel SSH pour accéder aux serveurs restreints et naviguer en toute sécurité

Un client SSH se connecte à un serveur Secure Shell, ce qui vous permet d’exécuter des commandes de terminal comme si vous étiez assis devant un autre ordinateur. Mais un client SSH vous permet également de «tunneler» un port entre votre système local et un serveur SSH distant.

Il existe trois types différents de tunnel SSH, et ils sont tous utilisés à des fins différentes. Chacun implique l’utilisation d’un serveur SSH pour rediriger le trafic d’un port réseau vers un autre. Le trafic est envoyé via la connexion SSH cryptée, il ne peut donc pas être surveillé ou modifié en transit.

Vous pouvez le faire avec le ssh commande incluse sur Linux, macOS et autres systèmes d’exploitation de type UNIX. Sous Windows, qui n’inclut pas de commande ssh intégrée, nous recommandons l’outil gratuit Mastic pour se connecter aux serveurs SSH. Il prend également en charge le tunnel SSH.

Redirection de port local: rendez les ressources distantes accessibles sur votre système local

La «redirection de port local» vous permet d’accéder aux ressources du réseau local qui ne sont pas exposées à Internet. Par exemple, disons que vous souhaitez accéder à un serveur de base de données dans votre bureau depuis votre domicile. Pour des raisons de sécurité, ce serveur de base de données est uniquement configuré pour accepter les connexions du réseau local du bureau. Mais si vous avez accès à un serveur SSH au bureau et que ce serveur SSH autorise les connexions depuis l’extérieur du réseau du bureau, vous pouvez vous connecter à ce serveur SSH depuis votre domicile et accéder au serveur de base de données comme si vous étiez au bureau. C’est souvent le cas, car il est plus facile de sécuriser un seul serveur SSH contre les attaques que de sécuriser une variété de ressources réseau différentes.

Pour ce faire, vous établissez une connexion SSH avec le serveur SSH et indiquez au client de transférer le trafic d’un port spécifique de votre PC local (par exemple, le port 1234) vers l’adresse du serveur de la base de données et son port sur le réseau du bureau. Ainsi, lorsque vous essayez d’accéder au serveur de base de données au port 1234 de votre PC actuel, «localhost», ce trafic est automatiquement «tunnelé» sur la connexion SSH et envoyé au serveur de base de données. Le serveur SSH se trouve au milieu, acheminant le trafic dans les deux sens. Vous pouvez utiliser n’importe quelle ligne de commande ou outil graphique pour accéder au serveur de base de données comme s’il s’exécutait sur votre PC local.

Pour utiliser le transfert local, connectez-vous normalement au serveur SSH, mais fournissez également le -L argument. La syntaxe est:

ssh -L local_port:remote_address:remote_port username@server.com

Par exemple, disons que le serveur de base de données de votre bureau est situé au 192.168.1.111 sur le réseau du bureau. Vous avez accès au serveur SSH du bureau à l’adresse ssh.youroffice.com , et votre compte utilisateur sur le serveur SSH est bob . Dans ce cas, votre commande ressemblerait à ceci:

ssh -L 8888:192.168.1.111:1234 bob@ssh.youroffice.com

Après avoir exécuté cette commande, vous pourrez accéder au serveur de base de données au port 8888 sur localhost. Ainsi, si le serveur de base de données offre un accès Web, vous pouvez brancher http: // localhost: 8888 dans votre navigateur Web pour y accéder. Si vous aviez un outil de ligne de commande qui a besoin de l’adresse réseau d’une base de données, vous le dirigeriez vers localhost: 8888. Tout le trafic envoyé au port 8888 sur votre PC sera tunnelé vers 192.168.1.111:1234 sur le réseau de votre bureau.

C’est un peu plus déroutant si vous souhaitez vous connecter à une application serveur fonctionnant sur le même système que le serveur SSH lui-même. Par exemple, disons que vous avez un serveur SSH fonctionnant au port 22 sur votre ordinateur de bureau, mais que vous avez également un serveur de base de données fonctionnant au port 1234 sur le même système à la même adresse. Vous souhaitez accéder au serveur de base de données depuis votre domicile, mais le système n’accepte que les connexions SSH sur le port 22 et son pare-feu n’autorise aucune autre connexion externe.

Dans ce cas, vous pouvez exécuter une commande comme la suivante:

ssh -L 8888:localhost:1234 bob@ssh.youroffice.com

Lorsque vous essayez d’accéder au serveur de base de données sur le port 8888 sur votre PC actuel, le trafic est envoyé via la connexion SSH. Lorsqu’il arrive sur le système exécutant le serveur SSH, le serveur SSH l’envoie au port 1234 sur «localhost», qui est le même PC exécutant le serveur SSH lui-même. Ainsi, «localhost» dans la commande ci-dessus signifie «localhost» du point de vue du serveur distant.

Pour ce faire dans l’application PuTTY sous Windows, sélectionnez Connexion> SSH> Tunnels. Sélectionnez l’option «Local». Pour «Port source», entrez le port local. Pour «Destination», entrez l’adresse de destination et le port sous la forme remote_address: remote_port.

Par exemple, si vous souhaitez configurer le même tunnel SSH que ci-dessus, vous devez entrer 8888 comme port source et localhost:1234 comme destination. Cliquez ensuite sur «Ajouter», puis sur «Ouvrir» pour ouvrir la connexion SSH. Vous devrez également entrer l’adresse et le port du serveur SSH lui-même sur l’écran principal «Session» avant de vous connecter, bien sûr.

Redirection de port à distance: rendre les ressources locales accessibles sur un système distant

«La redirection de port à distance» est l’opposé de la redirection locale et n’est pas utilisée aussi fréquemment. Il vous permet de rendre disponible une ressource sur votre PC local sur le serveur SSH. Par exemple, disons que vous exécutez un serveur Web sur le PC local devant lequel vous êtes assis. Mais votre PC est derrière un pare-feu qui n’autorise pas le trafic entrant vers le logiciel serveur.

En supposant que vous puissiez accéder à un serveur SSH distant, vous pouvez vous connecter à ce serveur SSH et utiliser la redirection de port distant. Votre client SSH dira au serveur de rediriger un port spécifique (par exemple, le port 1234) du serveur SSH vers une adresse et un port spécifiques sur votre PC ou réseau local actuel. Quand quelqu’un accède au port 1234 sur le serveur SSH, ce trafic sera automatiquement «tunnelé» sur la connexion SSH. Toute personne ayant accès au serveur SSH pourra accéder au serveur Web fonctionnant sur votre PC. C’est en fait un moyen de créer un tunnel à travers les pare-feu.

Pour utiliser le transfert à distance, utilisez le ssh commande avec la -R argument. La syntaxe est en grande partie la même que celle du transfert local:

ssh -R remote_port:local_address:local_port username@server.com

Supposons que vous souhaitiez rendre une application serveur écoutant au port 1234 sur votre PC local disponible au port 8888 sur le serveur SSH distant. L’adresse du serveur SSH est ssh.youroffice.com et votre nom d’utilisateur sur le serveur SSH est. Vous exécuteriez la commande suivante:

ssh -R 8888:localhost:1234 bob@ssh.youroffice.com

Quelqu’un pourrait alors se connecter au serveur SSH au port 8888 et cette connexion serait acheminée vers l’application serveur exécutée au port 1234 sur le PC local à partir duquel vous avez établi la connexion.

Pour ce faire dans PuTTY sous Windows, sélectionnez Connexion> SSH> Tunnels. Sélectionnez l’option «Remote». Pour «Port source», entrez le port distant. Pour «Destination», entrez l’adresse et le port de destination sous la forme local_address: local_port.

Par exemple, si vous souhaitez configurer l’exemple ci-dessus, saisissez 8888 comme port source et localhost:1234 comme destination. Cliquez ensuite sur «Ajouter», puis sur «Ouvrir» pour ouvrir la connexion SSH. Vous devrez également entrer l’adresse et le port du serveur SSH lui-même sur l’écran principal «Session» avant de vous connecter, bien sûr.

Les gens pourraient alors se connecter au port 8888 sur le serveur SSH et leur trafic serait acheminé vers le port 1234 sur votre système local.

Par défaut, le serveur SSH distant n’écoutera que les connexions du même hôte. En d’autres termes, seules les personnes sur le même système que le serveur SSH lui-même pourront se connecter. C’est pour des raisons de sécurité. Vous devrez activer l’option « GatewayPorts » dans sshd_config sur le serveur SSH distant si vous souhaitez ignorer ce comportement.

Redirection de port dynamique: utilisez votre serveur SSH comme proxy

Il existe également une «redirection de port dynamique», qui fonctionne de la même manière qu’un proxy ou un VPN. Le client SSH créera un proxy SOCKS que vous pourrez configurer les applications à utiliser. Tout le trafic envoyé via le proxy serait envoyé via le serveur SSH. Ceci est similaire au transfert local: il prend le trafic local envoyé vers un port spécifique de votre PC et l’envoie via la connexion SSH vers un emplacement distant.

Par exemple, disons que vous utilisez un réseau Wi-Fi public. Vous souhaitez naviguer en toute sécurité sans être espionné. Si vous avez accès à un serveur SSH chez vous, vous pouvez vous y connecter et utiliser la redirection de port dynamique. Le client SSH créera un proxy SOCKS sur votre PC. Tout le trafic envoyé à ce proxy sera envoyé via la connexion au serveur SSH. Personne qui surveille le réseau Wi-Fi public ne pourra surveiller votre navigation ou censurer les sites Web auxquels vous pouvez accéder. Du point de vue de tous les sites Web que vous visitez, ce sera comme si vous étiez assis devant votre PC à la maison. Cela signifie également que vous pouvez utiliser cette astuce pour accéder à des sites Web uniquement aux États-Unis en dehors des États-Unis – en supposant que vous ayez accès à un serveur SSH aux États-Unis, bien sûr.

Comme autre exemple, vous souhaiterez peut-être accéder à une application de serveur multimédia que vous avez sur votre réseau domestique. Pour des raisons de sécurité, vous ne pouvez avoir qu’un serveur SSH exposé à Internet. Vous n’autorisez pas les connexions entrantes d’Internet à votre application de serveur multimédia. Vous pouvez configurer la redirection de port dynamique, configurer un navigateur Web pour utiliser le proxy SOCKS, puis accéder aux serveurs fonctionnant sur votre réseau domestique via le navigateur Web comme si vous étiez assis devant votre système SSH à la maison. Par exemple, si votre serveur multimédia est situé au port 192.168.1.123 sur votre réseau domestique, vous pouvez brancher l’adresse 192.168.1.123 dans n’importe quelle application utilisant le proxy SOCKS et vous accéderiez au serveur multimédia comme si vous étiez sur votre réseau domestique.

Pour utiliser le transfert dynamique, exécutez la commande ssh avec le -D argument, comme ceci:

ssh -D local_port username@server.com

Par exemple, disons que vous avez accès à un serveur SSH à ssh.yourhome.com et votre nom d’utilisateur sur le serveur SSH est bob . Vous souhaitez utiliser le transfert dynamique pour ouvrir un proxy SOCKS sur le port 8888 sur le PC actuel. Vous exécuteriez la commande suivante:

ssh -D 8888 bob@ssh.yourhome.com

Vous pouvez ensuite configurer un navigateur Web ou une autre application pour utiliser votre adresse IP locale (127.0.01) et le port 8888. Tout le trafic de cette application serait redirigé via le tunnel.

Pour ce faire dans PuTTY sous Windows, sélectionnez Connexion> SSH> Tunnels. Sélectionnez l’option «Dynamique». Pour «Port source», entrez le port local.

Par exemple, si vous souhaitez créer un proxy SOCKS sur le port 8888, vous devez entrer 8888 comme port source. Cliquez ensuite sur «Ajouter», puis sur «Ouvrir» pour ouvrir la connexion SSH. Vous devrez également entrer l’adresse et le port du serveur SSH lui-même sur l’écran principal «Session» avant de vous connecter, bien sûr.

Vous pouvez ensuite configurer une application pour accéder au proxy SOCKS sur votre PC local (c’est-à-dire l’adresse IP 127.0.0.1, qui pointe vers votre PC local) et spécifier le port correct.

Par exemple, vous pouvez configurer Firefox pour utiliser le proxy SOCKS. Ceci est particulièrement utile car Firefox peut avoir ses propres paramètres de proxy et n’a pas à utiliser de paramètres de proxy à l’échelle du système. Firefox enverra son trafic via le tunnel SSH, tandis que d’autres applications utiliseront normalement votre connexion Internet.

Lorsque vous faites cela dans Firefox, sélectionnez «Configuration manuelle du proxy», entrez «127.0.0.1» dans la zone d’hôte SOCKS et entrez le port dynamique dans la case «Port». Laissez les cases Proxy HTTP, Proxy SSL et Proxy FTP vides.

Le tunnel restera actif et ouvert tant que la connexion de session SSH sera ouverte. Lorsque vous terminez votre session SSH et que vous vous déconnectez d’un serveur, le tunnel sera également fermé. Reconnectez-vous simplement avec la commande appropriée (ou les options appropriées dans PuTTY) pour rouvrir le tunnel.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Comment masquer ou supprimer un jeu de votre bibliothèque Steam

Comment masquer ou supprimer un jeu de votre bibliothèque Steam

Comment préserver vos applications et paramètres de jailbreak entre les mises à niveau iOS

Comment préserver vos applications et paramètres de jailbreak entre les mises à niveau iOS