como ssh dois computadores atrás de NAT e Firewall, sem terceiro computador

8

Estou tentando usar minha caixa Linux em casa. Minha casa é um ambiente estilo dormitório - NAT e Firewall com laptop pessoal rodando o Arch Linux. Meu trabalho é o estilo corporativo do Windows 7 - NAT e firewall de proxy, sem direitos de administrador.

Eu consigo conectar os dois portáteis Team Viewer em execução. No entanto, isso não combina com o que eu realmente estou procurando. Eu estou olhando para simplesmente SSH em minha caixa de Linux em casa, deixando minha caixa de Linux logada completamente - basicamente sem cabeça quando eu não estou lá.

Eu li sobre tunelamento, no entanto, se eu entendi o tunelamento corretamente, eu preciso de um servidor de terceiros que os dois computadores possam se conectar. Eu não tenho tal servidor e não quero pagar por tal coisa.

Qual é a solução simples e segura para o SSH no meu laptop do trabalho? Existe um 'terceiro servidor' livre e seguro? Eu tenho sido para cima e para baixo do Google, mas parece estar ficando cada vez mais confuso.

    
por user1026169 08.08.2012 / 20:36

5 respostas

5

Pessoalmente, acho que o tunelamento é sua melhor opção, mesmo que você ainda não possua um terceiro servidor.

O Amazon EC2 oferece uma opção de preços Camada Livre que permite que novos clientes executem uma micro instância do Linux / Windows por até a 750 horas / mês, grátis, por um ano. Eu mesmo não usei o serviço, mas presumo que, se você só executar o servidor virtual quando necessário, obterá um túnel SSH funcionando gratuitamente. Você pode até achar o serviço barato o suficiente para justificar o pagamento?

Hak5 produziu uma boa introdução ao tunelamento (com persistência). Você também pode configurar um script acionado por CRON para tentar conexões com o servidor virtual, para que você tenha acesso ao laptop poucos minutos depois de iniciar a instância do EC2 ...

    
por 17.08.2012 / 16:00
15

pwnat é uma ferramenta de código aberto que supostamente resolve esse problema. Diz:

pwnat is a tool that allows any number of clients behind NATs to communicate with a server behind a separate NAT with no port forwarding and no DMZ setup on any routers in order to directly communicate with each other. The server does not need to know anything about the clients trying to connect.

There is no middle man, no proxy, no 3rd party, no UPnP/STUN/ICE required, no spoofing, and no DNS tricks.

More importantly, the client can then connect to any host or port on any remote host or to a fixed host and port decided by the server.

pwnat estabelece esse tipo de conexão:

Machine A (IP: 192.168.1.3) -> NAT A (IP: 122.x.x.x) -> Internet -> NAT B (IP: 59.x.x.x) -> Machine B (192.168.2.10)

pwnat é distribuído apenas para Linux, mas o artigo PWNAT: Versão Completa do Windows contém o Versão do Windows . Veja também, pelo mesmo autor PWNAT: Example .

O método usado pelo pwnat é inacreditavelmente inteligente, mas não há garantia de que funcionará com o seu ambiente.

    
por 11.08.2012 / 09:14
3

A melhor opção seria configurar o encaminhamento de porta se você puder, mas se o seu campus faz o firewall e você não pode fazer nenhum encaminhamento de porta, então use esta sugestão.

Sim, há um terceiro servidor gratuito e você já o está usando, o TeamViewer. Certifique-se de ter o TeamViewer instalado como um serviço (ou o equivalente ao Linux, eu só uso a versão do Windows). Em seguida, instale o driver VPN no trabalho e em casa. Você poderá, então, conectar-se usando uma VPN do trabalho e sua máquina doméstica terá um endereço IP 7.x.x.x. Então, se você quiser entrar em uma sessão de terminal, execute o SSH pelo link da VPN.

A opção VPN de instalação está em configurações avançadas.

Issoadicionaráumaopção"VPN" aos tipos de conexão que você pode fazer.

    
por 08.08.2012 / 20:56
1

Você deve ser capaz de configurar o encaminhamento de porta (porta 22) em seu roteador / firewall doméstico. Em seguida, conecte-se ao seu endereço IP público quando estiver no trabalho. Você poderia usar algo como dyndns se você não tem um ip público estático em casa.

    
por 08.08.2012 / 20:56
0

Você pode usar um servidor público XMPP / Tox como o "terceiro servidor". Ou seja, há projetos como Tuntox e PPPoAT (PPP sobre qualquer transporte), que usa esses protocolos de mensagens instantâneas como camadas de transporte.

Eu tentei o PPPoAT, que suporta o XMPP e, ao contrário do PWNAT, esse mecanismo realmente funciona para mim.

Para usá-lo, você precisa de duas contas XMPP em qualquer servidor público - uma para o servidor no qual deseja fazer login, outra para o seu cliente. Depois de iniciar pppoat no servidor, em seguida, no cliente (ambos com parâmetros de configuração apropriados), você poderá iniciar a conexão imediatamente, por exemplo,

ssh [email protected]

Vai ser mais lento que a conexão direta, é claro, e a velocidade provavelmente dependerá do servidor XMPP que você escolher, mas para a atividade normal do console é bom o suficiente.

Quanto à segurança, o SSH pode funcionar em uma rede totalmente insegura, já que ele já implementa sua própria criptografia, portanto, se a conexão baseada em XMPP é segura, é irrelevante quando você usa o SSH.

    
por 13.07.2018 / 22:20