Transfert de port inverse SSH avec PuTTy - comment spécifier l'adresse de liaison

16

En utilisant Putty, j'ai mis en place un proxy inverse qui me permet de me connecter sur le port 8080 du serveur au server.tldport 80 de la machine qui a initié la connexion SSH.

Le serveur me permet de me connecter localhost:8080et renvoie le résultat de initiator:80ma connexion au serveur.

Cette question dit d'activer GatewayPorts et de se lier à toutes les adresses.

À l'aide de Putty, comment puis-je exposer le port 8080 sur le serveur afin que lorsqu'une demande passe par l'interface externe (par exemple une demande Web), le port soit transféré vers le initiator:80?

entrez la description de l'image ici

Darbio
la source
Pouvez-vous détailler exactement ce que vous mettez dans la boîte de dialogue PuTTY pour créer le tunnel?
EightBitTony
Ajout d'une capture d'écran - les ports sont différents de l'exemple de texte, mais cela ne permet pas à une requête sur l'interface externe de passer par le tunnel (par exemple 1.2.3.4:8080). Les requêtes internes sont acheminées (localhost: 8080).
Darbio
Qu'est-ce que netstat -an | grep 8080 show? Et quand vous dites interdire, que voulez-vous dire? Avez-vous un pare-feu bloquant les connexions au port 8080?
EightBitTony

Réponses:

17

Il y a deux cases à cocher lors de la configuration du tunnel PuTTY,

  • Les ports locaux acceptent les connexions d'autres hôtes
  • Les ports distants font de même (SSH-2 uniquement)

le second fait ce dont vous avez besoin.

Je viens de le tester,

Boîte de dialogue Tunnels PuTTY,

  • Cochez les ports distants ...
  • Mettez 8080 dans le port source
  • Mettez 127.0.0.1:80 dans le port de destination
  • Sélectionnez le bouton radio «Remote»
  • Cliquez sur Ajouter
  • Relier

Fonctionne bien, voici le netstat résultant,

# netstat -an | grep 8080
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN
tcp6       0      0 :::8080                 :::*                    LISTEN

Vous pouvez également utiliser plink.exe fourni avec PuTTY, par exemple,

plink -R *:8080:localhost:80 [email protected]

qui fonctionne bien aussi.

# netstat -an | grep 8080
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN
tcp6       0      0 :::8080                 :::*                    LISTEN

Si vous obtenez toujours 127.0.0.1:8080 sur l'hôte, alors GatewayPorts est toujours défini sur no dans votre configuration sshd.

N'oubliez pas non plus de mettre à jour le pare-feu sur le serveur cible pour autoriser les connexions externes au port 8080.

EightBitTony
la source
Non - cela ne semble pas me donner le même comportement que ssh -R *:8080:localhost:80cela devrait?
Darbio
GatewayPorts est défini sur yes. Cela fonctionne avec la ssh -R \*:8080:localhost:80commande, je ne pouvais pas le comprendre dans PuTTy
Darbio
@ Darbio l'avez-vous déjà compris dans le mastic?
barlop
J'utilise beaucoup la redirection de port, généralement sur la voie local2remote (vnc, proxy, etc.), et cette fois-ci n'a pas fonctionné le port remote2local, peu importe l'option que j'ai vérifiée, le port n'apparaît pas comme ouvert sur la télécommande. L'utilisation plinkdirecte a fonctionné sans problème en utilisant les mêmes commandes que ssh normal. Je ne pouvais pas comprendre ce qui faisait que le mastic ne fonctionnait pas ...
m3nda