Como ter acesso externo a Aplicações Locais no Homelab?
Data de publicação

Um dos principais dilemas e dúvidas ao iniciar no mundo dos self-hosted ou homelab é: como faço para acessar um aplicativo quando estou fora de casa? Ou até mesmo: como conceder acesso a outros membros da minha família para que eles acessem meu Jellyfin?
Existem várias formas de realização desse acesso, mas cada método traz consigo suas próprias dificuldades, problemas de usabilidade e desafios relacionados à segurança. Afinal, uma das suas preocupações deve ser como liberar uma aplicação para acesso externo de forma segura, evitando ficar totalmente exposto na internet e com "as calças na mão".
Neste artigo, buscarei abordar as principais formas de permitir acesso remoto a suas aplicações, além de discutir os pontos cruciais que merecem a sua atenção.
Riscos e Precauções
Ao falar sobre auto custódia de dados, a última coisa que você deseja é expor suas informações pessoais à internet. Enfrentar problemas como acesso massivo de bots e tentativas de invasão ao seu aplicativo pode ser um pesadelo, especialmente para aqueles que hospedam aplicações de código aberto. É como deixar a porta da sua casa aberta sem se preocupar com quem pode entrar.
Outro ponto a ser considerado é a quantidade de dados que podem circular pela sua rede. Por exemplo, compartilhar o acesso ao Jellyfin com suas famílias pode aumentar significativamente o tráfego de upload da sua conexão. Isso se torna um problema para aqueles que têm limitações em termos de largura de banda ou velocidade da conexão.
Felizmente, muitos desses desafios podem ser enfrentados através da configuração correta dos aplicativos e da implementação de estratégias como CDN (Content Delivery Network) e cache. Mesmo uma abertura parcial do acesso à sua rede pode ser uma solução viável. Porém, vamos explorar isso em detalhes mais adiante. Primeiro, é importante apresentar algumas das ferramentas e técnicas que você pode usar para conseguir acesso externo a aplicações em seu homelab.
Técnicas
Hoje em dia, é possível implementar o acesso remoto de várias maneiras. A escolha da solução vai depender de suas necessidades específicas. Aqui, vou sugerir algumas abordagens que utilizo em meu homelab e que já me ajudaram a liberar acesso remoto para amigos e familiares, sem dor de cabeça.
VPN
A VPN (Virtual Private Network) é um serviço que proporciona segurança e privacidade ao criar um túnel entre o seu dispositivo e um servidor remoto. Essa prática é bastante comum e muitos de nós já vimos anúncios da NordVPN enquanto assistimos a vídeos. Entretanto, ao ajustar essa solução para um homelab, é essencial lembrar que a configuração pode ser bastante manual, exigindo um servidor remoto para fazer essa ponte.
Embora a VPN seja uma das opções mais seguras — criando um túnel de ponta a ponta sem a necessidade de terceiros ou domínios — a complexidade de configuração e o custo de manutenção de um VPS podem ser desanimadores. Para mim, ter que lidar com uma configuração complicada e ainda pagar um valor que pode ser baixo, mas se soma ao longo do tempo, torna a ideia menos atrativa.
Particularmente, estou mais inclinado a evitar o uso de VPN para acesso externo ao homelab. Defendo que essa tecnologia seja usada principalmente para proteção quando você estiver acessando a rede do seu ISP (Internet Service Provider) ou, em situações mais específicas, contra organizações estatais.
Proxy Reverso
Agora, imagine que você está em um prédio e precisa entregar uma carta. Você vai até o porteiro e diz que deseja enviar a carta para o apartamento 301. O porteiro sabe exatamente como fazer isso, mas você não. O mesmo se aplica ao Proxy Reverso.
Este tipo de servidor atua como intermediário, recebendo e entregando toda a comunicação de serviços que ele conheça. Com isso, é possível redirecionar tráfego de arquivos estáticos para CDNs e aliviar a carga do servidor final. O Proxy Reverso é uma opção poderosa que oferece muitos pontos positivos, como cache, balanceamento de carga e redirecionamento dinâmico. Contudo, é importante sempre considerar que cada método de entrada pode ter suas desvantagens.
Por exemplo, ao utilizar o encaminhamento de portas, você expõe seu IP e servidor para quem conheça o ponto inicial, que pode ser o seu domínio. Já para configurar uma VPN, é necessário adquirir uma assinatura de domínio. A chave aqui é buscar o equilíbrio certo com base nas suas necessidades. Eu particularmente utilizo Proxy Reverso em serviços que exigem maior velocidade, como o Jellyfin, onde estou sempre fazendo cache das imagens no meu proxy.
A ferramenta que recomendo para isso é o Nginx Proxy Manager, que oferece uma interface muito prática e fácil de usar.
Tunelamento de Proxy
O Tunelamento de Proxy é, de certo modo, semelhante às VPNs, mas se diferencia por redirecionar o tráfego por meio de um gateway que mantém uma conexão constante com um servidor. Aqui, deve-se lembrar que, ao contrário das VPNs, o Tunelamento de Proxy não criptografa os dados, o que o torna uma alternativa mais rápida e econômica.
Atualmente, serviços gratuitos de tunelamento estão disponíveis, bastando atenção aos limites legais de cada um. Essa abordagem, que é a que mais utilizo, não só facilita o acesso aos serviços que uso pessoalmente, como também oferece uma maneira simples para que amigos e familiares acessem o Jellyfin.
Um dos principais benefícios dessa técnica é sua fácil configuração. Geralmente, você precisará somente criar uma conta em um serviço e rodar um aplicativo no servidor que será o destino dos dados. Se você decidir usar um serviço como o Cloudflare Tunnel, terá a proteção adicional contra ataques DDoS e ainda poderá implementar abordagens de Zero Trust. Com isso, você aponta quais e-mails têm acesso ao serviço, e o Cloudflare cuida do resto, sem precisar modificar nada na aplicação que está servindo.
Porém, cabe ressaltar que o tráfego pode ser analisado pela operadora que fornece o serviço de tunelamento, e depender de terceiros sempre tem seus riscos. Além disso, dependendo do serviço, o termo de uso pode ser restrito. Por exemplo, a Cloudflare não permite streaming de arquivos, e se você ultrapassar o limite permitido, pode acabar sendo banido.
Dessa forma, o Tunelamento de Proxy aparece como uma das opções mais viáveis, unindo facilidade de uso e um bom custo-benefício com a segurança necessária.
HTTPS
Em meio a todo esse processo, não podemos ignorar a importância do HTTPS, uma preocupação frequentemente negligenciada por quem começa a expor serviços ao acesso remoto. Um site sem um certificado SSL é como deixar as janelas da sua casa abertas para possíveis invasores. Com um pouco de conhecimento, alguém pode facilmente interceptar seus pacotes e acessar informações sensíveis como senhas.
Por isso, quando for expor um serviço, prefira usar um certificado digital. Caso você opte por utilizar o Tunnel da Cloudflare, ele oferece um certificado digital gratuito que garantirá a comunicação segura entre o cliente e o gateway. O Nginx Proxy Manager também configura automaticamente um certificado através do Let's Encrypt, um provedor gratuito de certificados.
Meu conselho é simples: evite certificados auto-assinados, optando sempre por um serviço externo de certificados para garantir máxima segurança.
Considerações Legais
Antes de finalizarmos nossa jornada em busca de acesso remoto, é imprescindível observar algumas questões legais. Por exemplo, seu provedor de internet pode ter restrições e termos de uso referentes a uploads de arquivos. Embora isso seja raro, pode gerar complicações caso não seja considerado. Nessas circunstâncias, uma VPN pode servir como um canal de comunicação que ajuda a contornar limites específicos.
Além disso, é importante estar ciente de que serviços como o Cloudflare também têm restrições em seus termos de serviço, como a proibição do streaming. Tais problemas não são fáceis de serem contornados, exceto se você optar por um serviço que não imponha essas limitações, ou recorrer a um VPS para criar seu próprio tunelamento.
De maneira geral, é necessário explorar os termos de serviço de todos os envolvidos no processo para ter uma compreensão clara das limitações e riscos. Assim, você poderá decidir se vale a pena correr esses riscos.
Próximos Passos
Com todo esse conhecimento em mãos, você agora possui um ótimo contexto sobre como implementar o acesso externo para suas aplicações locais. As opções variam e são diversas, e o que resta é escolher a que melhor se encaixa nas suas necessidades.
Para dar o próximo passo, tenho três artigos que podem ser úteis:
O primeiro é sobre a configuração de um tunelamento utilizando o Cloudflare Tunnel, um serviço que mencionamos ao longo do texto. Você pode acessar este artigo clicando aqui.
O segundo é em relação ao Twingate, uma alternativa de tunelamento que se assemelha a uma VPN, permitindo o acesso a aplicações sem a necessidade de configurações complicadas. Clique aqui para saber mais.
Por fim, se você considerar a configuração de um Proxy Reverso utilizando Nginx, também temos um artigo dedicado a essa abordagem que será útil. Confira aqui.
Espero que o conteúdo deste artigo tenha iluminado sua mente e fornecido novas alternativas para implementar em seu homelab. Seja para facilitar o acesso de outras pessoas ou para você mesmo quando estiver em movimento, não hesite em explorar as opções até encontrar a que melhor se adequa ao seu estilo.
Obrigado por me acompanhar até aqui, e até o próximo artigo!