Les tunnels SSH vous per­met­tent d’accéder à des sites Internet qui ne sont pas dis­po­nibles depuis votre réseau. Au lieu de naviguer di­rec­te­ment vers le site depuis votre réseau, l’uti­li­sa­tion d’un tunnel SSH (également appelée re­di­rec­tion de port) vous fait emprunter un détour via un serveur SSH.

Serveurs virtuels (VPS)
VPS éco­no­miques sur serveurs Dell En­ter­prise
  • 1 Gbit/s de bande passante et trafic illimité
  • Dis­po­ni­bi­lité de 99,99 % et cer­ti­fi­ca­tion ISO
  • As­sis­tance 24/7 primée pour sa qualité et con­seil­ler personnel

Qu’est-ce qu’un tunnel SSH ?

À l’instar des vrais tunnels, un tunnel SSH a pour rôle de relier un point A à un point B. Le point A est un or­di­na­teur qui se situe, en général, au sein d’un réseau non sécurisé. Le point B est un serveur ou une adresse Internet à laquelle vous ne pouvez pas ou ne voulez pas avoir accès depuis votre réseau. Les tunnels SSH font office de liens entre dif­fé­rents serveurs et con­nec­tent les ports TCP de deux or­di­na­teurs l’un avec l’autre. N’importe quel port TCP peut être redirigé via l’uti­li­sa­tion d’un tunnel SSH, ce qui explique pourquoi on appelle également ce processus re­di­rec­tion de port SSH ou re­di­rec­tion SSH.

Vous pouvez utiliser n’importe quel serveur ou presque en tant que serveur SSH. Par exemple, un serveur SSH Raspberry Pi fera très bien l’affaire.

Conseil
Vous êtes toujours à la recherche du serveur idéal ? Ne cherchez plus ! Découvrez le serveur Cloud de IONOS et trouvez enfin le serveur adapté à vos besoins.

Mais que trans­porte exac­te­ment un tunnel SSH ? Certains pro­to­coles TCP peuvent être utilisés en toute sécurité avec un tunnel SSH, et le protocole email SMTP a également recours à des tunnels SSH. Le SSH fait en sorte que les données trans­por­tées dans le tunnel soient sûres.

Les tunnels SSH : quels usages ?

Il existe dif­fé­rents usages pour la re­di­rec­tion de port en SSH (acronyme de « secure shell », « shell sécurisé» en français). En règle générale, la re­di­rec­tion de port SSH est utilisée pour créer une connexion chiffrée entre un or­di­na­teur local (l’hôte local) et un or­di­na­teur distant. L’uti­li­sa­tion de ce réseau virtuel permet d’ou­tre­pas­ser certaines res­tric­tions d’accès. Vous aurez l’air d’être sur ce réseau, alors qu’en réalité vous vous con­ten­te­rez d’y accéder à l’aide d’un tunnel SSH. Cela ressemble à un réseau privé virtuel (VPN) mais s’en distingue cependant. Prenez garde à ne cependant pas confondre les deux.

Si vous trans­por­tez des données issues de services qui ont recours à un protocole chiffré, vous pouvez utiliser la re­di­rec­tion SSH pour chiffrer le transfert de données. Un SSH File Transfer Protocol (« Protocol de Transfert de Fichier SSH »), SFTP en abrégé, sera utilisé à cette fin. Les tunnels SSH offrent également une sécurité accrue lorsque vous vous aventurez au sein de réseaux que vous ne con­nais­sez pas, par exemple ceux d’un hôtel ou d’un café. Les clés SSH utilisent un chi­fre­ment asy­mé­trique et offrent un niveau de sécurité encore plus élevé.

Il convient de noter que le recours aux tunnels SSH est fré­quem­ment utilisé par les hackers, qui créent des backdoors à l’intérieur des réseaux internes de manière à ce que des intrus puissent fa­ci­le­ment accéder aux données.

Conseil
Vous voulez utiliser le SSH à son plein potentiel pour votre site ? Le package d’hé­ber­ge­ment Web de IONOS comprend un cer­ti­fi­cat SSL Wildcard et vous fournit tout ce dont vous avez besoin ! Si vous souhaitez juste améliorer votre site Internet, jetez un œil aux cer­ti­fi­cats SSL proposés par IONOS. Pour profiter d’une sécurité accrue pour votre site, par exemple grâce à l’au­then­ti­fi­ca­tion à deux facteurs, utilisez alors la pro­tec­tion de domaine de IONOS.

Utiliser des tunnels SSH sous Linux

Plusieurs options s’offrent à vous pour créer un tunnel SSH.

La re­di­rec­tion de port locale SSH

La méthode la plus répandue pour mettre en place un tunnel SSH est la re­di­rec­tion de port local. Ceci implique d’accéder aux res­sources d’un réseau local depuis votre PC local en re­di­ri­geant un port depuis votre or­di­na­teur vers un porte situé sur le serveur SSH. Le port peut ensuite être redirigé vers un port de l’or­di­na­teur cible.

Pour con­fi­gu­rer une re­di­rec­tion de port local, utilisez la commande du terminal ci-dessous sur les systèmes d’ex­ploi­ta­tion basés sur Unix ou macOS.

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

Pour commencer, vous devez définir quel port vous souhaitez trans­fé­rer (local_port). Vous pouvez utiliser n’importe quel numéro de port supérieur à 1 024. Les ports com­por­tant des numéros plus bas sont pri­vi­lé­giés et ne sont ac­ces­sibles que par la racine. Ensuite, entrez l’adresse IP du serveur cible (remote_address) et vos iden­ti­fiants (remote_port).

Il­lus­trons cela par un exemple. Imaginons que vous souhaitez vous connecter à un serveur situé au sein de votre bureau et dont l’adresse IP est 123.234.1.111 à l’intérieur du réseau de l’en­tre­prise. Vous pouvez accéder au serveur SSH de votre bureau à l’aide de ssh.test.com. Votre nom d’uti­li­sa­teur sera « Testuser ». La commande que vous uti­li­se­rez pour con­fi­gu­rer le tunnel SSH pour le port 1234 res­sem­blera à :

ssh -L 8888: 123.234.1.111: 1234 Testuser@ssh.test.com

Après avoir exécuté la commande, vous aurez accès au serveur de l’en­tre­prise via le port 8888. Si le serveur permet l’accès Web, vous pourrez également accéder au serveur du bureau via http://localhost:8888. Les données que vous enverrez au port 8888 sur votre PC seront trans­fé­rées au port 1234 sur l’or­di­na­teur cible à l’aide du tunnel SSH.

La re­di­rec­tion de port distant SSH

La re­di­rec­tion de port à distance connecte un port issu du serveur SSH à un port de l’or­di­na­teur client, lequel peut ensuite établir une connexion vers le PC cible. Ce type de re­di­rec­tion de port est, en général, utilisé pour fournir un accès aux services internes à une personne externe. La commande du terminal pour con­fi­gu­rer un tunnel SSH distant se présente comme suit :

ssh -R remote_port: target_address: target_port user@ssh_server_address

Si vous souhaitez écouter un port dont le numéro de port est, par exemple, 8080, et envoyer les données au port numéro 3000 de votre PC local, la commande res­sem­blera à la suivante :

ssh -R 8080: 127.0.0.1:3000 user@remote.host

Dans l’exemple ci-dessus, le serveur SSH a pour adresse remote.host. Il est désormais possible d’accéder aux données que vous mettez en tunnel depuis l’extérieur en entrant cette adresse dans un na­vi­ga­teur, en y ajoutant le numéro de port :

remote.host:8080

Si vous êtes confronté à des problèmes lors de la mise en place d’une re­di­rec­tion de port distant, ceci peut être dû à la con­fi­gu­ra­tion de votre serveur SSH. La re­di­rec­tion de port distant est en général dé­sac­ti­vée par défaut. Vous pouvez modifier cela en activant Ga­te­way­Ports dans votre fichier de con­fi­gu­ra­tion de serveur SSH. Pour ce faire, ouvrez le fichier et dé­fi­nis­sez « Ga­te­way­Ports » sur « yes ».

La re­di­rec­tion de port dynamique SSH

Une troisième manière d’avoir recours aux tunnels SSH implique la re­di­rec­tion de port dynamique, laquelle vous permet d’utiliser une prise sur votre PC local qui sera utilisée comme une sorte de proxy SOCKS. Toutes les ap­pli­ca­tions qui ont recours à un proxy SOCKS se con­nec­te­ront alors au serveur SSH et feront passer leur trafic par le tunnel. Ce type de re­di­rec­tion de port est souvent employé pour mettre en tunnel du trafic de na­vi­ga­teur Web.

Pour con­fi­gu­rer une re­di­rec­tion dynamique de port, utilisez la commande de terminal suivante :

ssh -D [local_ip_address:]local_port user@ssh_server_address

Si vous n’entrez pas d’adresse IP locale, l’adresse IP 127.0.0.1 (localhost sera utilisée au­to­ma­ti­que­ment. Si, par exemple, vous con­fi­gu­rez un tunnel SOCKS pour le port 9090 à l’aide de l’adresse remote.host, la commande res­sem­blera à la suivante :

ssh -D 9090 -N -f user@remote.host

Une fois que vous aurez configuré le proxy SOCKS, assurez-vous de con­fi­gu­rer cor­rec­te­ment l’ap­pli­ca­tion qui utilise le proxy.

Les tunnels SSH et Windows

Vous pouvez également con­fi­gu­rer des tunnels SSH sous Windows. Étant donné que l’accès au terminal n’est pas aussi cen­tra­lisé sous Windows, vous aurez à cœur d’utiliser l’un des multiples outils pratiques disposant d’une interface uti­li­sa­teur, tels que PuTTY. Ces derniers font de la con­fi­gu­ra­tion d’un tunnel SSH un vrai jeu d’enfant.

Une fois que vous aurez té­lé­chargé et installé PuTTY, ouvrez l’outil. Dans le menu Démarrer, sous « Hostname », saisissez l’adresse IP du serveur SSH auquel vous souhaitez vous connecter. Rendez-vous ensuite dans « Con­nec­tion/SSH/Tunnels », où vous pourrez entrer le port source et le port cible dans les champs « Source Port » et « Des­ti­na­tion ». Enfin, cliquez sur le bouton « Ouvrir » pour établir la connexion. Vous devriez à présent être en mesure d’accéder au port sur un na­vi­ga­teur en utilisant 127.0.0.1:port_number.

Les tunnels SSH inversés

Pour accéder à des or­di­na­teurs à l’aide d’une adresse IP privée, vous aurez besoin d’un tunnel SSH inversé. Avec un tunnel SSH inversé, l’or­di­na­teur distant auquel vous souhaitez accéder peut créer une connexion vers votre PC local. Vous pourrez ensuite utiliser cette connexion pour créer une nouvelle connexion du PC local à l’or­di­na­teur distant.

La commande suivante con­fi­gu­rera un tunnel SSH depuis l’or­di­na­teur distant :

ssh -Nf -R 2222:localhost:22 user@local.computer

L’or­di­na­teur local peut ensuite utiliser la commande suivante pour se connecter à l’or­di­na­teur distant :

ssh localhost -p 2222
Aller au menu principal