Configurando um Servidor VPN Tailscale

NOTA

Isto é opcional. Você só precisa considerar esta seção se executar um nó em casa e quiser se conectar a ele de fora da sua rede doméstica.

Se você quiser fazer login na sua rede doméstica remotamente, como durante férias ou uma viagem de negócios, a rota mais comum é usar um servidor de Rede Privada Virtual (VPN). Isso permitirá que você se conecte ao seu nó via SSH e monitore seu painel Grafana de qualquer lugar do mundo, tudo sem expor sua porta SSH à internet.

Muitos operadores de nós Rocket Pool usam Tailscale como seu servidor VPN de escolha para isso. Tailscale é um túnel VPN P2P de código aberto e serviço de descoberta de endpoint hospedado. Ele cuida da autenticação, publicação e travessia NAT necessária para estabelecer um caminho criptografado ponta a ponta entre sua máquina e seu nó sem enviar qualquer tráfego sensível para um servidor centralizado. É uma ferramenta muito poderosa.

Vamos cobrir brevemente uma configuração básica, mas sinta-se à vontade para revisar a documentação deles para mais detalhes.

Configurando o Tailscale

Primeiro, crie uma conta Tailscale gratuita. Tailscale requer o uso de um provedor de identidade SSO como Google, GitHub, Okta, Microsoft, etc. Para detalhes, visite a página SSO deles.

É recomendado que você habilite 2FA (Autenticação de Dois Fatores) em qualquer provedor de identidade que você escolher para segurança adicional.

Em seguida, siga o guia de integração deles para instalar o Tailscale no seu cliente - a máquina que você quer conectar à sua rede. Por exemplo, isso pode ser um laptop ou seu telefone. Note que não é seu nó Rocket Pool!

Uma vez concluído, você deve ver seu computador como 'conectado' no painel Tailscale.

Agora, instale o Tailscale no seu nó Rocket Pool. Você pode encontrar instruções para isso no site deles; por exemplo, aqui estão as instruções de instalação para Ubuntu.

NOTA

Se você tiver o UFW configurado, você também vai querer seguir as Instruções de Configuração do UFW).

Primeiro, adicione a chave de assinatura de pacote e repositório do Tailscale no seu nó Rocket Pool:

curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/focal.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/focal.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list

Agora, instale o Tailscale no seu nó Rocket Pool:

sudo apt-get update
sudo apt-get install tailscale

Finalmente, autentique e conecte sua máquina à sua rede Tailscale no seu nó Rocket Pool:

sudo tailscale up

Você está conectado! Você pode encontrar seu endereço IPv4 do Tailscale executando:

tailscale ip -4

Você agora deve ver sua máquina de nó adicionada ao painel Tailscale. Você também pode mudar o nome da máquina de nó através do painel, por exemplo, para rocketnode.

É sugerido desabilitar a expiração de chave para a máquina de nó para evitar a necessidade de autenticar periodicamente.

Nota

Se você quiser acessar seu nó usando um nome de host memorável como rocketnode, você pode fazê-lo habilitando MagicDNS nas configurações do Tailscale.

Você agora deve ser capaz de fazer exit da sessão SSH para seu nó no seu cliente, e fazer SSH no seu nó novamente através do Tailscale usando ssh seu.usuario@rocketnode.

NOTA

Se você modificou a porta SSH da máquina de nó em /etc/ssh/sshd_config quando você primeiro a configurou, use ssh seu.usuario@rocketnode -p <sua porta> em vez disso.

Por exemplo, se você atribuiu SSH à porta 1234, você faria:

ssh seu.usuario@rocketnode -p 1234

Você agora também pode visitar http://rocketnode:3100 no seu navegador web para acessar seu painel Grafana do seu cliente.

Se você tiver o UFW configurado, agora você pode adicionar uma regra para aceitar qualquer conexão SSH recebida via Tailscale.

AVISO

Os seguintes passos irão modificar suas regras de firewall. **Você deve ter pelo menos 2 sessões SSH abertas para sua máquina de nó antes de prosseguir - uma para modificar a configuração e testá-la depois, e uma que ficará logada como backup caso suas mudanças quebrem o SSH para que você possa revertê-las!

Execute esses comandos na máquina de nó.

Permita acesso a todas as conexões ssh recebidas via Tailscale.

sudo ufw allow in on tailscale0

Você também pode remover o acesso à porta SSH adicionando nos passos de habilitar um firewall para bloquear completamente seu nó. Note que você não poderá fazer login da rede local, pois o tailscale se tornará a única forma de fazer login. Apenas execute o seguinte comando se você estiver de acordo com isso.

sudo ufw delete "22/tcp"

Uma vez que você tenha configurado as regras de firewall para restringir todas as conexões não-Tailscale, reinicie o UFW e SSH:

sudo ufw reload
sudo service ssh restart

Agora, confirme que tudo está funcionando como esperado. Faça exit de uma de suas sessões SSH atuais (mas lembre-se de manter a segunda aberta como backup).

Em seguida, conecte-se à máquina de nó via SSH usando o endereço IP do Tailscale:

ssh seu.usuario@rocketnode

Se funcionar, você fez tudo certo e agora pode fazer login com segurança na sua rede doméstica enquanto estiver no exterior!

DICA

Se você redirecionou a porta SSH do seu nó anteriormente no seu roteador, agora você pode removê-la.