Encaminhamento de porta reversa SSH com PuTTy - como especificar o endereço de ligação

16

Usando Putty, configurei um proxy reverso que me permite conectar na porta 8080 do servidor na server.tldporta 80 da máquina que iniciou a conexão SSH.

O servidor me permite conectar localhost:8080e retorna o resultado de initiator:80quando eu me conecto no servidor.

Esta pergunta diz para habilitar o GatewayPorts e vincular a todos os endereços.

Usando Putty, como posso expor a porta 8080 no servidor para que, quando uma solicitação for apresentada na interface externa (por exemplo, uma solicitação da Web), a porta seja encaminhada para o initiator:80?

insira a descrição da imagem aqui

Darbio
fonte
Você pode detalhar exatamente o que está colocando na caixa de diálogo PuTTY para criar o túnel?
EightBitTony
Foi adicionada uma captura de tela - as portas são diferentes do texto de exemplo, no entanto, isso não permite que uma solicitação na interface externa seja roteada pelo túnel (por exemplo, 1.2.3.4:8080). Solicitações internas são roteadas (localhost: 8080).
Darbio
O que faz netstat -an | grep 8080 show? E quando você diz não permitir, o que você quer dizer? Você tem um firewall bloqueando as conexões com a porta 8080?
EightBitTony

Respostas:

17

Existem duas caixas de seleção ao configurar o túnel PuTTY,

  • As portas locais aceitam conexões de outros hosts
  • As portas remotas fazem o mesmo (apenas SSH-2)

o segundo faz o que você precisa.

Eu apenas testei,

Caixa de diálogo PuTTY tunnels,

  • Marque Portas remotas ...
  • Coloque 8080 na porta Source
  • Coloque 127.0.0.1:80 na porta de destino
  • Selecione o botão de opção "Remoto"
  • Clique em Adicionar
  • Conectar

Funciona bem, aqui está o netstat resultante,

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

Você também pode usar o plink.exe que acompanha o PuTTY, por exemplo,

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

o que também funciona bem.

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

Se você ainda está recebendo 127.0.0.1:8080 no host, o GatewayPorts ainda está definido como no na sua configuração do sshd.

Além disso, não esqueça de atualizar o firewall no servidor de destino para permitir conexões externas à porta 8080.

EightBitTony
fonte
Não - não parece me dar o mesmo comportamento que ssh -R *:8080:localhost:80deveria?
Darbio 10/10/12
GatewayPorts está definido como yes. Ele funciona com o ssh -R \*:8080:localhost:80comando, apenas couldn; t figura-o para fora em PuTTy
Darbio
@ Darbio, você já descobriu isso em massa?
barlop 27/05
Eu uso muito o encaminhamento de porta, geralmente no modo local2remote (vnc, proxy etc.), e desta vez não funcionou na porta remote2local, independentemente da opção que eu verifiquei, a porta não aparece como aberta no controle remoto. O uso plinkdireto funcionou sem problemas, usando os mesmos comandos que o ssh comum. Eu não conseguia entender o que a massa torná-lo não fazer o trabalho ...
m3nda