> Tech > Port forwarding local

Port forwarding local

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

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 »

é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

Microsoft 365 : 5 erreurs de sécurité

Microsoft 365 : 5 erreurs de sécurité

A l’heure où les données des solutions Microsoft 365 sont devenues indispensables au bon fonctionnement de l’entreprise, êtes-vous certain de pouvoir compter sur votre plan de sécurité des données et de sauvegarde des identités ? Découvrez le Top 5 des erreurs à ne pas commettre et les meilleures pratiques recommandées par les Experts DIB France.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010

A lire aussi sur le site

Revue Smart DSI

La Revue du Décideur IT