Inoltro porta inverso SSH con PuTTy - come specificare l'indirizzo di bind


16

Usando Putty, ho impostato un proxy inverso che mi permette di collegarmi sulla porta 8080 del server alla server.tldporta 80 della macchina che ha avviato la connessione SSH.

Il server mi consente di connettermi localhost:8080e restituisce il risultato di initiator:80quando mi collego al server.

Questa domanda dice per abilitare GatewayPorts e associarsi a tutti gli indirizzi.

Usando Putty, come posso esporre la porta 8080 sul server in modo che quando una richiesta arriva sull'interfaccia esterna (es. Una richiesta web) la porta viene inoltrata alla initiator:80?

inserisci qui la descrizione dell'immagine


Puoi dettagliare esattamente cosa stai inserendo nella finestra di dialogo PuTTY per creare il tunnel?
EightBitTony,

Aggiunto uno screenshot: le porte sono diverse dal testo di esempio, tuttavia ciò non consente a una richiesta sull'interfaccia esterna di instradare attraverso il tunnel (ad es. 1.2.3.4:8080). Le richieste interne vengono instradate (localhost: 8080).
Darbio,

Cosa significa netstat -an | grep 8080 spettacolo? E quando dici di non permettere, cosa intendi? Hai un firewall che blocca le connessioni alla porta 8080?
EightBitTony,

Risposte:


17

Ci sono due caselle di controllo quando si configura il tunnel PuTTY,

  • Le porte locali accettano connessioni da altri host
  • Le porte remote fanno lo stesso (solo SSH-2)

il secondo fa quello che ti serve.

L'ho appena provato,

Finestra di dialogo tunnel PuTTY,

  • Spuntare Porte remote ...
  • Inserisci 8080 nella porta di origine
  • Inserisci 127.0.0.1:80 nella porta di destinazione
  • Seleziona il pulsante di opzione "Remoto"
  • Clicca Aggiungi
  • Collegare

Funziona bene, ecco il netstat risultante,

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

Puoi anche utilizzare plink.exe fornito con PuTTY, ad esempio,

plink -R *:8080:localhost:80 user@remote.host.example

che funziona anche bene.

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

Se stai ancora ricevendo 127.0.0.1:8080 sull'host, GatewayPorts è ancora impostato su no nella tua configurazione sshd.

Inoltre, non dimenticare di aggiornare il firewall sul server di destinazione per consentire connessioni esterne alla porta 8080.


No - non sembra darmi lo stesso comportamento come ssh -R *:8080:localhost:80dovrebbe?
Darbio,

GatewayPorts è impostato su yes. Funziona con il ssh -R \*:8080:localhost:80comando, ma non è riuscito a capirlo in PuTTy
Darbio,

@Darbio l'hai mai capito con lo stucco?
barlop,

Uso molto il port forwarding, di solito in modalità local2remote (vnc, proxy, ecc.), E questa volta non ha funzionato la porta remote2local, indipendentemente dall'opzione selezionata, la porta non appare aperta sul telecomando. L'uso plinkdiretto ha funzionato senza problemi usando gli stessi comandi del normale ssh. Non riuscivo a capire cosa facesse funzionare lo stucco che non funzionava ...
m3nda
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.