Como eu compartilho um túnel SSH reverso em uma rede?

4

Eu tenho um computador remoto em uma conexão 3G PPP. Não consigo me conectar a este computador pela Internet, pois acredito que o pool de IPs PPP usa NAT para se conectar à Internet (recebo um endereço 10.x.x.x ao conectar-me)

Assim, obtenho o computador remoto para criar uma conexão SSH com um servidor na Internet. Eu posso então desmembrar essa conexão do servidor e obter um shell no computador remoto. Ótimo.

Eu quero poder acessar a interface da Web de uma câmera na rede remota. Então eu crio um segundo túnel SSH que redireciona o tráfego para o endereço da câmera, ou seja: ssh -R 9000 ::

Do meu host da Internet isso funciona, eu recebo a página da web: wget 127.0.0.1:9000 Ótimo

Agora, preciso que isso funcione no meu PC cliente, então:

PC cliente - > Servidor da Internet - túnel - > Computador remoto - > Câmera IP

Então, basicamente, preciso disponibilizar meu túnel SSH reverso pela rede.

Eu assumi que se eu usasse o iptables para encaminhar o tráfego de entrada em uma certa porta no meu servidor de Internet para 127.0.0.1:9000, isso funcionaria, mas eu não consegui fazê-lo funcionar após horas de reprodução com iptables, NAT etc.

Isso deve funcionar?

    
por Matt Cooper 23.12.2012 / 23:59

1 resposta

2

Acho que você precisa de -o GatewayPorts=yes para permitir que outros hosts que não o local usem seu túnel. Do man-page:

Specifies whether remote hosts are allowed to connect to local forwarded ports. By default, ssh(1) binds local port forwardings to the loopback address. This prevents other remote hosts from connecting to forwarded ports. GatewayPorts can be used to specify that ssh should bind local port forwardings to the wildcard address, thus allowing remote hosts to connect to forwarded ports. The argument must be “yes” or “no”. The default is “no”.

    
por 25.02.2013 / 14:03