Como conectar o SSH ao computador com IPs públicos e privados usando o DDNS

0

Eu tenho um laptop Mac (computador A) executando o OS X el capitan que gostaria de acessar remotamente com o SSH. Como o computador está sempre na rede da minha escola, não consigo obter um endereço IP público estático. Depois de fazer pesquisas, aprendi que posso

  1. defina o mac os x para solicitar um determinado IP privado na rede da minha escola
  2. use ddclient para sempre atualizar o IP público que meu computador tem para nsupdate.info de tal forma que um URL estático sempre aponte para o computador A

Como mencionado anteriormente, o computador A está na rede da minha escola. Como posso usar meu computador (computador B) na minha rede doméstica, que é longe da minha escola, para ssh no computador A?

Digamos que eu configurei o computador A para configurar o IPv4 usando DHCP com endereço IP manual 172.27.133.200 e para usar o ddclient para atualizar o testurl.nsupdate.info para sempre apontar para o endereço IP público do computador A. Existe um comando que usaria esses dados? dois endereços que eu posso conectar, por exemplo (conceitualmente)

userOnComputerB$ ssh [email protected]@testurl.nsupdate.info

Saúdo também outras soluções que funcionam dentro dos limites do problema. Eu consultei outro perguntas envolvendo tunelamento reverso e encaminhamento de porta , mas não vejo como eles se aplicam a isso, porque acho que não tenho controle sobre o encaminhamento de porta dos roteadores da rede da minha escola.

Por fim, se um comando como o acima não for possível, qual é a razão técnica ou de design ssh do porquê de tal comando não ser possível?

anon294719
fonte
Suas credenciais devem receber acesso do administrador da rede da escola. Comece por aí, eles são os únicos que podem permitir que você acesse a rede remotamente.
ejbytes
1
Na questão do túnel reverso a que você se refere, considere o lappy como seu computador da escola e o remotey como seu computador doméstico. Isso não alcança o que você quer?
hertitu

Respostas:

0

Quando você SSH para testurl.nsupdate.info a conexão será encerrada no firewall da sua escola (ou outro dispositivo que implementa NAT para o seu IP interno 172.27.133.200). O firewall não saberá que isso precisa ser encaminhado ao seu IP interno, a menos que o administrador do firewall tenha configurado o encaminhamento de porta, mas, como você diz, você não tem controle sobre isso.

Se você pensar sobre isso, a razão de existência do firewall é exatamente para impedir que alguém de fora possa se conectar a um dispositivo interno (exceto as conexões aprovadas pelo administrador do firewall).

No entanto, normalmente o firewall faz permitir que o seu dispositivo interno para SSH para o exterior, então você poderia usar essa conexão SSH de saída para encapsular uma conexão de entrada, o que é explicado em perguntas envolvendo tunelamento reverso que você mencionou. Basta ler isso, tendo em mente que "lappy" é o computador da sua escola e "remotamente" o seu computador doméstico.

hertitu
fonte
No exemplo vinculado, o autor diz que lappy e remotey estão na mesma rede e remotey é usado como um ponto intermediário entre lappy e outro computador (ao qual o OP se refere como computador C). Isso significa que é necessário usar 3 computadores, onde lappy e remotey estão na mesma rede e o computador C está na minha rede doméstica?
anon294719
Eu poderia fazer isso, mas como o autor escreve, isso requer duas etapas: primeiro faça o login para remotey então use a porta do túnel reverso. Gostaria que os dados fossem criptografados ponto-a-ponto entre o computador doméstico e lappy. Seria esse o caso se eu me conectasse remotey como intermediário? Existe um único comando que eu poderia usar para mesclar essas duas etapas?
anon294719
ok desculpe se isso foi confuso. Ignore a questão no exemplo vinculado, concentre-se na primeira parte da resposta que apenas fala sobre lappy e remotey. Esta parte é onde você deve ter uma conexão de trabalho de remotey (home pc) para lappy (school pc): test out reverse tunnel port [user@remotey ~]$ ssh -p 12345 localhost should now be back on lappy user@localhost's password: Last login: Thu Aug 1 17:53:54 2013 /usr/bin/xauth: creating new authority file /home/user/.Xauthority [user@lappy ~]$
hertitu
Ok, obrigado. No entanto, o autor da resposta é capaz de fazer esse login porque lappy e remotey estão na mesma rede. No meu caso, nem o computador da escola nem o computador da minha casa têm IPs públicos estáticos. Isso significa que o computador intermediário é necessário? Posso usar um login para criptografia de ponta a ponta?
anon294719
Ok, não percebi que o seu computador doméstico não tem um IP público. Nesse caso, acho que você tem duas opções: de fato, use um terceiro computador "C" que tenha um IP público. Ou configure o DDNS no seu PC doméstico e, a partir do PC da escola, configure o túnel SSH para "myhomepc.nsupdate.info". Configure seu roteador doméstico para fazer o encaminhamento de porta para o seu PC doméstico. A desvantagem é que você precisará reiniciar o túnel de alguma forma quando seu IP público em casa mudar; Eu suponho que você poderia escrever algum cron job que testa se o ip mudou e então restabelece a conexão.
hertitu