La possibilité qu’a SSH de déplacer un protocole TCP/IP arbitraire d’un hôte sur un autre est appelé port forwarding. En substance, le port forwarding déplace une connexion TCP/IP du serveur SSH vers le système client, de telle sorte que la connexion au système client sur le port « forwarded »
Port forwarding local
équivale à se connecter à une machine arbitraire sur le réseau du serveur SSH (voir figure 2).
Dans ce scénario, vous utilisez le client SSH et voulez vous connecter à un serveur Web (fonctionnant sur le port 80) à l’adresse IP 10.2.2.2 dans votre réseau local. Votre serveur SSH est à l’adresse IP publique 1.2.3.4. Vous établissez un port forward avec la commande suivante :
ssh -l jdoe –N –L 2001: 10.2.2.2:80 1.2.3.4
Comme cela semble obscur, essayons de clarifier ce qui se passe. La partie « ssh -l jdoe -N » initie une session SSH, mais sans créer un shell de commande (l’option -N). Le morceau « -L 2001 » dit que vous voulez transférer le trafic provenant de l’autre extrémité du tunnel SSH vers le port local 2001. Le « :10. 2.2.2:80 » signifie que le serveur SSH doit établir une connexion vers 10.2.2.2 sur le port TCP/IP 80.
L’exécution de cette commande ne créera aucun résultat visible mais, sous le capot, le serveur SSH distant est prêt à retransmettre toute connexion vers le port 2001 sur votre machine client, vers le port 80 sur 10.2.2.2. Pour voir cela en action, pointez simplement un navigateur Web sur votre machine locale avec la désignation de port 2001. Un moyen simple pour faire cela consiste à utiliser l’adresse hôte locale « home » universelle, connue également en tant que 127. 0.0.1 :
http://127.0.0.1:2001
La page Web qui apparaîtra sera la même que celle que vous verriez si vous aviez navigué vers http:// 10.2.2.2 à partir du serveur SSH.
Sur la plupart des systèmes, vous pouvez utiliser le nom symbolique localhost au lieu de 127.0.0.1 (c’est-à-dire, http://localhost: 2001).
Réfléchissons à ce que vous venez de faire. Vous vous êtes connectés à un serveur Web sur votre réseau local, en toute sécurité, sans que ce serveur Web sache, ou se préoccupe, que vous n’êtes pas réellement un utilisateur local. Le serveur Web voit que vous vous connectez à partir du serveur SSH, 10.2.2.1. C’est un idiome incroyablement puissant pour l’administrateur de réseau : ses utilisations sont innombrables.
Voici un exemple propre à l’iSeries qui montre comment transporter une session d’émulation 5250 d’un hôte iSeries sur un autre, en utilisant le port forwarding local :
CALL QP2TERM [get a local command shell]
ssh -l jdoe –T –L 2001:
localhost:23 1.2.3.4
TELNET RMTSYS(*INTNETADR)
INTNETADR(LOCALHOST)
PORT(2001)
L’option -T signifie « disable pseudo-TTY allocation » et elle est nécessaire pour que les caractères spéciaux 5250 empruntent le tunnel de manière transparente. Il n’y a pas d’option -N, parce que vous voulez créer une session terminal. Le port forwarding local va associer le port Telnet du serveur SSH, port 23, au port 2001 sur l’hôte local. La commande TELNET suivante dirigée au port localhost 2001 ouvre ainsi une session d’émulation 5250 connectée au serveur SSH à 1.2.3.4.
Téléchargez cette ressource

Percer le brouillard des rançongiciels
Explorez les méandres d’une investigation de ransomware, avec les experts de Palo Alto Networks et Unit 42 pour faire la lumière dans la nébuleuse des rançongiciels. Plongez au cœur de l’enquête pour comprendre les méthodes, les outils et les tactiques utilisés par les acteurs de la menace. Découvrez comment prévenir les attaques, les contrer et minimiser leur impact. Des enseignements indispensables aux équipes cyber.