SSH Encaminhamento de porta remota com várias portas

0

Para quem trabalhou com o encaminhamento de porta ssh ou para quem tem uma ideia, consegui criar um túnel remoto do meu PC para uma máquina remota (uma câmera que não tem endereço público) através de um servidor ssh um endereço público).

O objetivo é encaminhar o acesso da câmera ao público com o encaminhamento de porta remota ssh,

O formato do comando que eu iniciei no meu PC é:

  ssh -R sshServer_port:destination_address:destination_port sshServer_address

Exemplo:

  ssh -R 3000:192.198.1.210:80 [email protected]

No sshServer, eu posso acessar a máquina remota através do localhost: 3000

e, em seguida, eu configurei um tcpproxy para tornar o acesso público com este comando:

tcpproxy -lhost 0.0.0.0:8080 -rhost localhost:3000

Com isso, qualquer pessoa de qualquer rede pode acessar a interface da câmera digitando 52.14.9.210:8080

O que eu quero fazer é criar um túnel que escute em duas portas de máquinas remotas (80 para http e 8000 para transmissão ao vivo) com o formato do comando:

ssh -R sshServer_port:destination_address:destination_port1 -R sshServer_port:destination_address:destination_port2 sshServer_address

Exemplo:

ssh -R 3000:192.168.1.210:80 -R 3000:192.168.1.210:8000 [email protected]

Eu tentei executar o comando, mas recebi este erro: Aviso: o encaminhamento de porta remoto falhou para a porta de escuta 3000

Você tem uma ideia de como corrigir isso?

    
por Wrath13 11.10.2018 / 16:19

2 respostas

1

O que você quer é não criar um túnel que ouça em duas portas de máquinas remotas, você quer dois túneis que escutam na mesma porta remota.

Isso não é possível. Como o ssh deve saber para qual porta uma conexão de entrada deve ser encaminhada?

Existem soluções que podem distinguir entre protocolos, mas nenhuma delas é genérica. É a porta 80 que você usa é uma indicação de tráfego http, você pode configurar um proxy reverso, mas seria muito mais fácil usar apenas duas portas diferentes para os dois destinos.

Editar

Dos seus comentários, parece que você está perdendo a opção -g para o SSH para permitir que outros hosts se conectem ao túnel.

    
por 11.10.2018 / 16:26
0

Eu consertei o problema, graças ao ralffriedl pelas dicas.

Primeiro passo: Eu criei o primeiro túnel de encaminhamento de portas remotas entre o endereço da câmera na porta 80 e o servidor ssh na porta 2233, então eu configurei um tcpproxy entre o localhost: 2233 do servidor ssh e o endereço IP público do o servidor (52.214.9.211) na porta 4455

Segundo passo: Eu criei o segundo túnel de encaminhamento de porta remota entre o endereço da câmera na porta 8000 e o servidor ssh na porta 2255, então eu configurei um tcpproxy entre o localhost: 2255 do servidor ssh e o endereço IP público do o servidor (52.214.9.211) na porta 8000

Com isso, quando alguém de uma rede externa, colocar o endereço IP do servidor em seu navegador com a porta encaminhada da porta 80 do endereço IP da câmera, ou seja: (52.214.9.211:4455), ele é capaz de acessar para a câmera e quando uma solicitação de streaming ao vivo é feita na porta 8000, ou seja: (52.214.9.211:8000), ela é encaminhada para o host local: 2255 do servidor e depois para a porta 8000 da câmera.

    
por 12.10.2018 / 18:17