Como usar o túnel SSH reverso para permitir conexões externas ao seu PC

Cum se utilizează tunelul SSH invers pentru a permite conexiuni externe la computer
⏱️ 5 min read

Se você tiver sorte o suficiente para que seu provedor de serviços de Internet (ISP) forneça um endereço IP dedicado, você pode configurar um servidor doméstico e torná-lo disponível para a Internet adicionando algumas regras de encaminhamento de porta ao seu roteador. Mas se o seu ISP faz com que você compartilhe esse IP com seus vizinhos, o encaminhamento de porta não ajudará. Outros provedores simplesmente bloqueiam as conexões de entrada por meio de regras de firewall.

Você pode ignorar todas essas restrições com a ajuda de um servidor virtual privado. Qualquer coisa funcionará, mesmo que tenha menos de 512 MB de RAM, pois basta redirecionar o tráfego da rede. Isso é muito leve em CPU e RAM. O servidor receberá conexões de entrada e as redirecionará para o seu computador por meio do que é chamado de “túnel SSH reverso”. Desta forma, você pode configurar qualquer tipo de servidor doméstico, com custos mensais muito reduzidos.

Imagine que você crie um servidor NextCloud para fazer upload / sincronizar seus arquivos. Você obtém a privacidade de ter esses arquivos em seu servidor doméstico e, em seguida, pode comprar um disco rígido de 6 TB para obter todo o espaço de que precisa. Você só precisa pagar uma conta de eletricidade mensal e menos de US $ 5 / mês por um servidor virtual privado. Isso é muito mais barato do que a conta mensal de um servidor com 6 TB de espaço.

Nota: Isso só funciona para redirecionar o tráfego de rede TCP. TCP é usado por coisas como servidores da web (porta 80 / tcp). O UDP é usado por alguns (não todos) servidores de jogos, por exemplo, Counter Strike (porta 27015 / UDP). O tunelamento UDP é possível, mas com alguns “hacks”, que podem ser o tópico de um tutorial futuro.

O Windows 10 agora tem um cliente SSH integrado

Não há mais necessidade de usar PuTTY para iniciar conexões SSH. Na verdade, para este tutorial, você realmente usará este cliente integrado para configurar o túnel. Leia o tutorial sobre o cliente OpenSSH do Windows 10 se ainda não estiver familiarizado com ele.

Preparar servidor virtual privado para conexões de túnel

Crie um Servidor Privado Virtual com seu provedor favorito, como DigitalOcean, Linode, Vultr ou qualquer outro que você preferir. O mais importante é escolher um local de servidor que seja o mais próximo possível de você para minimizar a latência da rede. Tente configurar o servidor de forma que você consiga logar na conta root diretamente, de preferência com uma chave SSH, pois é mais seguro. Isso é necessário se você quiser que o servidor escute as conexões que chegam nas portas abaixo de 1024, chamadas portas privilegiadas.

Abra o prompt de comando (ou um terminal, se estiver no Linux) e faça login no servidor por meio de SSH.

Editar configurações do servidor OpenSSH:

Se você não fez o login como root, mas como um usuário normal, você precisará usar este comando, caso contrário, não será possível salvar o arquivo:

Role para baixo até encontrar uma variável chamada “GatewayPorts”. A linha pode ser parecida com esta: #GatewayPorts no. Exclua o “#” anterior (para descomentar) e altere a linha para GatewayPorts yes.

Se você não conseguir encontrar a linha, role para baixo até o final e adicione a linha você mesmo:

pressione Ctrl + X, então aperte ye, finalmente, pressione Enter para salvar o arquivo.

Recarregue o daemon SSH para que ele pegue a nova configuração.

Saia da sessão SSH.

Como configurar um túnel SSH reverso

Os parâmetros de comando são os mesmos no Linux, Windows e até nos sistemas operacionais BSD. A sintaxe geral é:

  • remote_port diz ao servidor para redirecionar as conexões que chegam a ele nessa porta.
  • host informa ao servidor em qual endereço IP a conexão deve ser redirecionada. 127.0.0.1 será usado aqui para redirecionar para seu próprio computador.
  • localport instrui para qual porta os pacotes de dados devem ser redirecionados. Aqui, você deve colocar o número da porta em que seu aplicativo, instalado em seu computador local, escuta.

Por exemplo, para encaminhar todas as conexões que vêm na porta 80 (para o servidor) e enviá-las para a porta 8080 em seu computador local, o comando seria:

Isso pressupõe que você tenha um servidor web, como Apache ou Nginx, que escuta na porta 8080 em sua máquina local. Mas se o Apache / Nginx estiver escutando na porta 80 padrão, então não há problema em usar a mesma porta duas vezes no comando anterior (já que eles estão se referindo à porta 80 em um servidor diferente).

Nesse ponto, se alguém inserir o endereço IP do seu servidor virtual privado na barra de endereços de um navegador, a conexão será redirecionada e servida pelo seu computador local.

ssh-reverse-testing-tunnel

Na foto acima, um servidor web simples para Chrome foi usado para escuta na porta 8887 por padrão. Você pode tentar essa configuração instalando o aplicativo e usando o comando, como na imagem.

Vale ressaltar que para manter o túnel ativo, sua sessão SSH deve permanecer ativa. Para fechar o túnel, digite exit na janela do terminal / prompt de comando.

Conclusão

Como você pode ver, não é difícil criar um túnel SSH reverso, mas proteger um site é. Portanto, se você escolher implementar uma ideia como um servidor NextCloud local, isole-o pelo menos em uma máquina virtual. Dessa forma, se o seu site for comprometido, pelo menos o resto do seu sistema operacional ficará ileso.

E, você sabe … sempre faça backup do que você não quer arriscar perder!

Join our Newsletter and receive offers and updates! ✅

0 0 votes
Article Rating
Avatar of Routech

Routech

Routech is a website that provides technology news, reviews and tips. It covers a wide range of topics including smartphones, laptops, tablets, gaming, gadgets, software, internet and more. The website is updated daily with new articles and videos, and also has a forum where users can discuss technology-related topics.

Você pode gostar...

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x