Transformando um notebook de R$100 em um servidor remoto

Recentemente navegando na OLX me deparei com um anúncio de um notebook HP por R$100,00. Fui checar com o vendedor e ele tinha um problema na tela. Fora isso, era um AMD com processador dual e 4GB de ram.

Como estava pensando há algum tempo em ter um servidor caseiro para estudar algumas coisas, resolvi arriscar. Em casa eu tinha um pente de memória de 4GB para fazer um upgrade no notebook e a tela não seria problema pois, após a instalação, eu acessaria o notebook exclusivamente por ssh.

O problema

Notebook instalado, tudo funcionando. Ops! Como costumo estudar fora de casa, preciso acessar meu notebook remotamente.

Há uns 15 anos atrás, quando as coisas eram mais simples, eu poderia configurar um port forwarding no meu roteador de casa, um script para atualizar um ip dinâmico no No-ip e tudo estaria resolvido.

Hoje, meu provedor de internet (ISP) me fornece um endereço IP público, mas, para minha surpresa, descobri que minha conexão passa por um Network Address Translation (NAT). Para complementar, além do modem eu também utilizo uma rede mesh em minha residência. Seria necessário modificar as configurações de pelo menos 2 equipamentos diferentes.

Embora esse cenário não torne o acesso via ISP impossível e seja até mesmo um desafio interessante, nesse momento eu queria me dedicar a estudar outros temas.

Então me perguntei se haveria uma solução mais prática.

A solução

Nesse cenário, pensei em fazer uma POC: e se eu subisse uma EC2 na AWS, usando a oferta free tier e estabelecesse um túnel ssh entre meu servidor local e a EC2? Isso funcionaria?

A arquitetura funcionaria assim:

Arquitetura da POC

Após criar uma conta na AWS, subi uma instância t2.micro, configurei as chaves ssh e a partir do meu servidor caseiro abri um túnel ssh com o comando:

ssh  -N -R 12312:localhost:22 -i .ssh/meykey.pem ec2-user@123.123.123.123

Túnel aberto, hora de testar o acesso:

1 – Acessar a AWS: ssh -i mykey ec2-user@123.123.123.123

2 – Utilizar o túnel ssh para acessar meu servidor: 

ssh user@localhost -p 12312

SIM, funciona!

Considerações finais

Existem diversas formas de obter acesso remoto a um servidor caseiro: port fowarding, VPN, ssh e etc.

Nesse caso optei por utilizar uma solução sem custo, que exigiu pouca configuração e ainda mitigou o risco de abrir a porta do meu roteador diretamente para o mundo.

Para o futuro, vou analisar se vale a pena transformar a criação do túnel ssh em um serviço do systemd e talvez configurar uma função lambda para ligar a EC2 apenas quando necessário.

E você? Acessa remotamente algum equipamento na sua residência? Precisou fazer alguma configuração? Quem sabe você não tem a solução que alguém está procurando? Compartilha aqui nos comentários que eu respondo você.

4 comentários em “Transformando um notebook de R$100 em um servidor remoto

Deixe um comentário para Nelson Marcos Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *