SSH Tunnel ou Reverse Tunnel

2

Estou tentando estabelecer um túnel SSH para permitir conexões VNC / ARD (portas 5900 e 3389). No entanto, estou incerto sobre uma certa coisa:

Digamos que a máquina A tenha o IP 192.168.103.1 e tenha serviços em execução nas portas 5900 e 3389.

Eu quero o SSH para o servidor que tem o IP 192.168.103.254.

A Máquina B 192.168.103.2 deseja se conectar à máquina A usando um túnel no servidor 192.168.103.254 e portas diferentes (digamos 6001 e 4001)

A configuração será assim:

Máquina B 192.168.103.2 - > VNC para o Servidor 192.168.103.254:6001 (Redirecionamento do Servidor - > 192.168.103.1:5900)

Eu sei um pouco sobre o túnel SSH e o tunelamento reverso do SSH, mas não tenho certeza de qual comando eu preciso.

Por favor, note:

  • O PC cliente precisa se conectar ao servidor (o contrário não é possível, pois os clientes têm endereços IP diferentes toda vez)

Coisas que tentei:

ssh -f [email protected] -L 6001:localhost:5900 -N

Este comando é bem-sucedido, mas quando tento me conectar a ele, recebo um erro de conexão recusada:

Tims-Macbook-Pro:~ Tim$ telnet server.hostname.net 6001
Trying 192.168.103.254...
telnet: connect to address 192.168.103.254: Connection refused
telnet: Unable to connect to remote host

Eu também tentei isso

sudo ssh -NT -R 6001:localhost:5900 [email protected]

O comando também fornece um erro de conexão recusada quando estou tentando acessá-lo.

Tims-Macbook-Pro:~ Tim$ telnet server.hostname.net 6001
Trying 192.168.103.254...
telnet: connect to address 192.168.103.254: Connection refused
telnet: Unable to connect to remote host
    
por Timothy 12.02.2014 / 15:18

2 respostas

2

Você deve alcançar a porta 5900 da Máquina A ao conectar-se à porta 6001 do host local do servidor com este comando:

ssh -L 6001:192.168.103.1:5900 [email protected]

Verifique este recurso para uma compreensão mais profunda do tunelamento SSH: link

ATUALIZAÇÃO:

Se você precisar de vários clientes acessando a porta 5900 da Máquina A através do servidor desta forma:

Client1
Client2 ---> port 6001 ---> 192.168.103.254 ---> port 5900 --> 192.168.103.1
Client3

Você precisa executar este comando (no cliente ):

ssh -L 0.0.0.0:6001:192.168.103.1:5900 [email protected]

Todos os clientes conectados à porta 6001 do servidor alcançarão a porta 5900 da Máquina A com esse comando.

    
por 12.02.2014 / 16:08
0

Você tenta se conectar ao seu servidor de "gateway", mas não sabemos se esse tipo de tráfego é permitido. Sua melhor aposta é tentar mapear a porta remota para uma porta local, como você fez no primeiro exemplo, mas você precisa realmente apontar para o servidor ao qual deseja se conectar, assim:

ssh -f [email protected] -L 6001:192.168.103.1:5900 -N

Se não, como o ssh saberia qual IP precisa encaminhar a conexão? Ao fazer isso, você está mapeando a porta 5900 do servidor remoto 192.168.103.1 para uma porta LOCAL (sua máquina) (6001 neste caso) através de um túnel SSH via server.hostname.net.

Agora, para conectar, basta acessar uma porta local:

telnet localhost 6001
    
por 12.02.2014 / 16:12