Headscale: Acessando sua VPN usando o Tailscale

Neste guia, você aprenderá a utilizar o Tailscale, um cliente VPN de fácil utilização, para se conectar à sua VPN headscale. O Tailscale está disponível para Linux, Windows, Android e Mac/iOS.

Como não iremos utilizar a rede padrão do Tailscale, é necessário modificar o endereço do servidor no cliente.

Requisitos

Possuir um servidor VPN Headscale configurado e rodando.

Cliente Tailscale Instalado

Headscale: Acessando o Servidor

Se seu servidor headscale foi instalado no fly.io execute o comando abaixo no diretório da sua aplicação

fly ssh console

Caso voce esteja usando ele uma vps com uma imagem docker o comando seria:

sudo docker exec -it nomedocontainer sh

Tailscale: Configurando no Linux

Para instalar o Tailscale no Linux, você pode seguir os seguintes passos:

Abra um terminal e execute o comando

curl -fsSL https://tailscale.com/install.sh | sh

Esse comando vai baixar e executar um script que vai adicionar o repositório do Tailscale, instalar a chave pública e instalar o pacote do Tailscale.

Execute o comando abaixo para se conectar ao seu servidor

sudo tailscale up --login-server https://seuheadscale.com

Siga as instruções na tela para se conectar. Digite o comando abaixo, substituindo <chave> pelo código gerado e <usuario> pelo nome de usuário que você escolheu para o dispositivo dentro do seu headscale server.

headscale --user nomedeusuario nodes register --key chave

Tailscale: Configurando no Windows

Uma maneira fácil de configurar no Windows é acessar o endereço do seu servidor seguido por /windows

Ex: https://seuheadscale.com/windows

Deve ser disponibilizado um arquivo .reg que, ao ser incorporado ao Registro do Windows, modificará o endereço para o seu servidor.

Reinicie o seu computador.

Depois de reiniciar, faça o download e a instalação do cliente Tailscale para Windows.

Clique no ícone do Tailscale e em Connect. Você deve se conectar à sua VPN com sucesso.

Configurando via PowerShell no Windows

Além das opções mencionadas para se conectar à nossa VPN headscale, podemos configurar manualmente:

Siga os passos abaixo para fazer isso:

  • Abra o PowerShell como administrador. Para isso, digite powershell na caixa de pesquisa do Windows, clique com o botão direito no resultado e selecione Executar como administrador.
  • Execute o seguinte comando, substituindo seuheadscale.com pelo endereço do seu servidor headscale:
\$url = https://seuheadscale.com
New-Item –Path "HKLM:\SOFTWARE" –Name "Tailscale IPN"
New-ItemProperty -path "HKLM:\SOFTWARE\Tailscale IPN" -name "UnattendedMode" -value "always" -propertytype "string"
New-ItemProperty -path "HKLM:\SOFTWARE\Tailscale IPN" -name "LoginURL" -value "\$url" -propertytype "string"

Tailscale: Configurando no Android

Faça o seguinte para configurar o Tailscale no seu celular:

  • Instale o aplicativo do Tailscale na loja de aplicativos do seu celular.
  • Abra o aplicativo e toque no ícone de três pontos no canto superior direito da tela três vezes. Toque na opção Change server e digite o endereço do seu servidor headscale. Toque em Save para salvar a alteração.
  • Feche e reabra o aplicativo do Tailscale. Na tela principal, toque na opção Sign in with other. Você vai ver informações na tela que deve ser executadas no seu servidor headscale para registrar o seu celular na VPN.
  • Copie o comando e execute-o no seu servidor headscale, substituindo <user> pelo nome de usuário que você criou no headscale para o seu celular.

Tailscale: Configuração no MacOS e iOS

Uma maneira fácil de configurar no MacOS é acessar o endereço do seu servidor seguido por /apple

Ex: https://meuheadscale.com/apple

segue um resumo do processo:

Versões Recentes do Tailscale (1.34.0 e superiores)

Configuração no macOS

Linha de Comando:

tailscale login --login-server https://seuheadscale.com

Interface Gráfica (GUI):

  • ALT + Clique no ícone do Tailscale no menu.
  • Em “Custom Login Server”, escolha “Add Account…”.
  • Insira “https://seuheadscale.com” e pressione “Add Account”.
  • Siga o procedimento de login no navegador.

Configurações da Apple (1.32.0 e inferiores)

Perfis para macOS:

  • AppStore Client: curl https://seuheadscale.com/apple/macos-app-store
  • Standalone Client: curl https://seuheadscale.com/apple/macos-standalone

Configuração Padrão via Terminal:

  • AppStore Client: defaults write io.tailscale.ipn.macos ControlURL https://seuheadscale.com
  • Standalone Client: defaults write io.tailscale.ipn.macsys ControlURL https://seuheadscale.com

Configuração no iOS

Versões Recentes do Tailscale (1.38.1 e superiores)

Configuração no iOS:

  • Instale o Tailscale iOS na App Store.
  • Abra Tailscale, vá para Configurações.
  • Em “third party apps”, encontre Tailscale.
  • Se conectado anteriormente, ative “Reset Keychain” e insira “https://seuheadscale.com” em “Alternate Coordination Server URL”.
  • Reinicie o aplicativo, selecione o login regular (não SSO) e faça o login. Headscale deve funcionar no seu iOS.

Exit Node

Um exit node é um nó que permite que outros dispositivos na sua rede Headscale acessem a internet através dele, usando o seu endereço IP público. Isso pode ser útil para contornar restrições geográficas, proteger o seu tráfego em redes não confiáveis ou acessar recursos locais do nó. Para usar um exit node, você precisa configurá-lo no nó, no servidor de controle e no cliente.

Tanto no windows como no celular esse processo pode ser feito clicando em “exit node” no aplicativo do tailscale

No linux para o cliente tailscale use o comando abaixo:

sudo tailscale up --login-server https://seuheadscale.com --advertise-exit-node

Comando Úteis Servidor Headscale

  • headscale namespaces list: lista todas as redes existentes no headscale.

  • headscale users create <nome do usuário>: cria um novo usuário no headscale

    • headscale nodes list : lista todos os dispositivos registrados na rede, mostrando seus nomes, IDs, IPs e status.

    • headscale nodes delete : exclui um dispositivo da rede, removendo sua chave de autenticação.

    • headscale routes list: lista todas as rotas habilitadas e desabilitadas para cada dispositivo na rede.

    • headscale routes enable -r 1: habilita uma rota para um dispositivo na rede, permitindo que ele acesse um endereço ou uma sub-rede específica.

    • headscale routes disable: desabilita uma rota para um dispositivo na rede, impedindo que ele acesse um endereço ou uma sub-rede específica.

    Deixe um comentário