Implantar o Tailscale

Sumário

Este guia mostra como instalar o Tailscale para Android (com.tailscale.ipn) em dispositivos da empresa gerenciados pelo Nomid MDM e como configurá-lo com configurações gerenciadas. O Tailscale chama esses valores de políticas de sistema (system policies). Com elas, o app entra somente na sua tailnet, permanece conectado, usa seu DNS e suas rotas de sub-rede e mostra o contato do seu suporte.

As etapas usam o editor Policy 2.0. No editor Classic, os mesmos campos abrem pela engrenagem do card do app; veja 4.1 Políticas de tablets — Classic.

Risco: as configurações do Tailscale mudam a forma como o dispositivo chega à rede. Uma tailnet obrigatória, uma conexão forçada, uma lista de roteamento por app ou uma VPN sempre ativa que bloqueia o restante do tráfego podem cortar o acesso a apps da empresa e ao gerenciamento do dispositivo. Teste cada mudança em uma política piloto com um único dispositivo antes de vincular a política à frota.

Antes de começar

  • Uma empresa Android Enterprise no Nomid MDM com dispositivos totalmente gerenciados ou com perfil de trabalho, e a permissão Editar política na política que você vai alterar.
  • Tailscale para Android 1.66 ou posterior. O Tailscale lê políticas de sistema a partir da versão 1.66. As versões 1.78 e posteriores aplicam mudanças sem reiniciar; versões anteriores aplicam depois que o app reinicia.
  • Uma tailnet do Tailscale e acesso ao console de administração dela. O Tailscale informa que suas integrações com MDM estão disponíveis nos planos Standard, Premium e Enterprise; confirme seu plano com o Tailscale.
  • Os valores que você pretende usar: o ID da tailnet (exibido no console de administração do Tailscale em Settings > General), o ID de um exit node se for forçar um, e os nomes de pacote dos apps que devem passar pelo Tailscale ou ficar fora dele.
  • Configurações de VPN definida como Permitido em Conectividade na política. Enquanto estiver Bloqueado, isso pode impedir o Tailscale de obter acesso à VPN, como ocorreu no nosso dispositivo piloto. Permitido também deixa quem usa o dispositivo adicionar, editar ou remover VPNs.
  • Uma política piloto vinculada a um único dispositivo de teste, para que um valor errado afete somente esse dispositivo.

Adicionar o Tailscale à política

  1. No Portal Nomid, abra Políticas e selecione a política piloto.
  2. Abra a aba Apps e experiência e selecione Apps nesta política.
  3. Selecione Adicionar App. Escolha Adicionar via Pacote, digite com.tailscale.ipn e confira se Tailscale aparece abaixo do campo. Selecione Adicionar. Você também pode escolher Adicionar via Play Store e procurar o Tailscale no Google Play gerenciado.

Adicionar via Pacote com com.tailscale.ipn digitado e o Tailscale exibido como app correspondente.

Digite o nome do pacote e confira se o resultado é o Tailscale antes de adicioná-lo.

  1. O Tailscale passa a aparecer na lista com o selo Configurável, que indica que o app publica configurações gerenciadas. O rodapé do painel mostra Editado. Salve a política para aplicar até você salvar. A opção de instalação ao lado do app começa como Obrigatório, que instala o Tailscale e o mantém no dispositivo. Opcional, Bloqueado e os demais controles do app estão descritos em 4. Políticas — Policy 2.0.

Abrir as configurações gerenciadas

Selecione a engrenagem ao lado do Tailscale na lista. O editor Configurações gerenciadas lista todos os campos que a versão instalada do Tailscale publica. O Google Play fornece essa lista a partir do app, por isso ela pode mudar quando o Tailscale lançar uma nova versão.

  • Cada campo mostra o título, uma descrição escrita pelo Tailscale e o nome da chave. O botão ao lado da chave copia um link para aquele campo.
  • Valor padrão mostra o valor que o app declara. É apenas informativo: o editor não o envia.
  • Not Set não envia nada para aquele campo, e o app mantém o próprio comportamento.
  • Use a caixa de filtro para encontrar uma chave, e Todos, Preenchido ou Não Preenchido para revisar o que você preencheu.
  • A ação com ícone de lixeira, no fim da lista, apaga todos os valores do Tailscale nesta política.
  • Salvar mantém seus valores na edição da política; Cancelar sai do editor sem eles. Nenhuma das duas envia algo aos dispositivos até você salvar a política.

Editor Configurações gerenciadas do Tailscale com o campo Force enabled connection toggle aberto, a chave ForceEnabled, o valor padrão e as opções Not Set, Enabled e Disabled.

Cada campo mostra o nome da chave documentado pelo Tailscale. Deixe o campo em Not Set, a menos que precise dele.

Chaves de configuração gerenciada

As tabelas seguem os títulos dos campos exibidos no editor, que o Tailscale publica em inglês. Os valores marcados como "escolha" oferecem Always, Never e User Decides: Always impõe a configuração, Never a desativa e User Decides deixa a pessoa escolher no app. Os campos de visibilidade oferecem Show e Hide. Deixar qualquer campo em Not Set mantém o padrão do Tailscale. Os números de versão indicam a primeira versão do Tailscale que aceita a chave, segundo as políticas de sistema do Tailscale.

Tailnet e login

Campo e chave Valor Efeito
Required/Suggested Tailnet (Tailnet) ID da tailnet ou ID da organização, por exemplo T123456CNTRL; aceita lista separada por vírgulas Sugere a tailnet cujo provedor de identidade a página de login usa. Com o prefixo required:, por exemplo required:T123456CNTRL, as pessoas só conseguem entrar nessa tailnet.
Custom control server URL (LoginURL) URL Direciona o app para outro servidor de coordenação. Deixe em Not Set quando usar o serviço do próprio Tailscale.
Auth Key (AuthKey) Chave de autenticação do Tailscale Faz o login do dispositivo sem interação quando o Tailscale inicia e ainda não está conectado a uma conta. Veja o aviso abaixo. 1.74 ou posterior.
Hostname (Hostname) Texto Substitui o nome do dispositivo que o Tailscale mostra no console de administração. 1.80 ou posterior.

Aviso sobre a auth key: qualquer pessoa que consiga ver a política no Portal consegue ler a chave, e o Tailscale desaconselha guardar auth keys em um MDM. A política envia a mesma chave para todos os dispositivos dela, e uma chave de uso único só faz o login do primeiro dispositivo: um piloto com um aparelho pode funcionar e o resto da frota falhar. Se usar uma chave, crie-a no console de administração do Tailscale como reutilizável, pré-aprovada e com tags. Uma chave reutilizável faz o login de quantos dispositivos for preciso até expirar ou ser revogada, então dê a ela a menor validade que cubra a implantação. Revogue a chave e volte o campo para Not Set quando os dispositivos já tiverem entrado. Nunca mostre uma chave em capturas de tela ou chamados de suporte.

Conexão e roteamento

Campo e chave Valor Efeito
Force enabled connection toggle (ForceEnabled) Enabled, Disabled Enabled mantém o Tailscale conectado e desativa o botão que o desconecta. Disabled deixa o botão com a pessoa. O Tailscale marca esta chave como obsoleta em favor de AlwaysOn.Enabled, que a documentação dele não lista para Android; por isso, no Android, esta é a opção disponível.
Exit node ID (ExitNodeID) ID do dispositivo exit node, ou auto:any Envia todo o tráfego por esse exit node e impede que as pessoas o desliguem ou escolham outro. auto:any deixa o Tailscale escolher um (1.70 ou posterior). Se esse exit node estiver offline ou inacessível, o dispositivo fica sem internet, o que também pode impedir atualizações da política; teste primeiro no dispositivo piloto.
Allow LAN access when using an exit node (ExitNodeAllowLANAccess) Escolha Define se o dispositivo continua alcançando a rede local, como impressoras ou leitores, enquanto usa um exit node.
Use Tailscale DNS settings (UseTailscaleDNSSettings) Escolha Define se o dispositivo usa as configurações de DNS da tailnet, incluindo nomes MagicDNS, enquanto está conectado.
Use Tailscale subnets (UseTailscaleSubnets) Escolha Define se o dispositivo usa as rotas de sub-rede anunciadas na tailnet. No Android, as rotas são usadas quando o campo não está definido.
Allow incoming connections (AllowIncomingConnections) Escolha Never bloqueia toda conexão de entrada pelo Tailscale, mesmo quando suas regras de acesso a permitem.
Excluded packages (ExcludedPackageNames) Nomes de pacote separados por vírgulas Os apps listados ignoram as rotas e o DNS do Tailscale; todos os outros apps usam o Tailscale. 1.70 ou posterior.
Included packages (IncludedPackageNames) Nomes de pacote separados por vírgulas Somente os apps listados usam as rotas e o DNS do Tailscale; os demais ignoram o Tailscale enquanto o campo tiver valor. 1.70 ou posterior.

Use Excluded packages ou Included packages, não os dois. Confira cada nome de pacote no dispositivo piloto: um app que falte em Included packages perde o acesso aos recursos da tailnet.

O que as pessoas veem no app

Campo e chave Valor Efeito
Managed by - organization name (ManagedByOrganizationName) Texto Mostra o nome da sua organização na área de gerenciamento do app.
Managed by - caption (ManagedByCaption) Texto Mostra uma mensagem curta ao lado do nome da organização, como a quem recorrer.
Managed by - URL (ManagedByURL) URL Adiciona um botão de suporte que abre esse endereço.
Hidden network devices (HiddenNetworkDevices) Current user devices, Other users devices, Tagged devices Oculta essas categorias da lista de dispositivos no app. Selecionar as três remove a lista.
Exit node picker visibility (ExitNodesPicker) Show, Hide Hide remove a tela em que as pessoas escolhem um exit node.
Run as exit node visibility (RunExitNode) Show, Hide Hide remove a opção de transformar este dispositivo em exit node.
Manage Tailnet lock visibility (ManageTailnetLock) Show, Hide Hide remove as configurações de Tailnet Lock do app.
Skip the Onboarding Flow (OnboardingFlow) Show, Hide Hide pula a apresentação exibida na primeira abertura do app. 1.86 ou posterior.

Campos de identidade do dispositivo

O editor também mostra Enable posture checking (PostureChecking), Serial number of the device that is running Tailscale (DeviceSerialNumber) e Enable hardware attestation (HardwareAttestation). O app Android publica esses campos, mas a página de políticas de sistema do Tailscale não os lista para Android. Deixe-os em Not Set, a menos que o suporte do Tailscale confirme como sua tailnet os usa.

Algumas chaves da documentação do Tailscale, como AdvertiseExitNode e ReconnectAfter, não aparecem no editor porque o app Android não as publica. O editor envia somente os campos que o app declara.

Exemplo de política para dispositivos compartilhados da linha de frente

Este exemplo mantém dispositivos compartilhados na tailnet da empresa, com um app fixo e simples. Substitua T123456CNTRL pelo ID da sua tailnet e os dados de suporte pelos seus.

Campo Valor Motivo
Required/Suggested Tailnet required:T123456CNTRL As pessoas não conseguem entrar em outra tailnet.
Force enabled connection toggle Enabled A equipe não desconecta a VPN por engano.
Use Tailscale DNS settings Always Os apps internos resolvem os nomes da tailnet.
Use Tailscale subnets Always Os dispositivos alcançam os servidores atrás dos seus subnet routers.
Allow incoming connections Never Dispositivos compartilhados não aceitam conexões vindas da tailnet.
Exit node picker visibility Hide Remove uma escolha de que a equipe não precisa.
Run as exit node visibility Hide Impede que um dispositivo vire exit node.
Manage Tailnet lock visibility Hide Mantém o gerenciamento do Tailnet Lock com os administradores.
Skip the Onboarding Flow Hide Abre o app direto no login.
Managed by - organization name TI da Example Corp Mostra à equipe quem gerencia a VPN.
Managed by - caption Fale com o suporte de TI para obter acesso Define o caminho de suporte.
Managed by - URL https://help.example.com/vpn Abre a sua página de ajuda.

Configurações gerenciadas do Tailscale filtradas por Preenchido, mostrando os valores de nome da organização, legenda e URL de suporte, seguidos do campo Required/Suggested Tailnet.

Use Preenchido para revisar todos os valores antes de salvar.

Salvar e aplicar a política

  1. No editor de configurações gerenciadas, selecione Salvar e depois Concluído no painel de apps.
  2. Selecione Salvar no cabeçalho da política, revise a lista de alterações e confirme.
  3. Os dispositivos vinculados recebem a política quando sincronizam. O Tailscale 1.78 ou posterior aplica os novos valores sozinho; em versões anteriores, reinicie o app.

Opcional: VPN sempre ativa

Para que o Android inicie o Tailscale na inicialização e o mantenha em execução, escolha o Tailscale como app de VPN em Conectividade > Roteamento de tráfego > VPN sempre ativa, conforme 4. Políticas — Policy 2.0. Deixe Bloquear conexões sem a VPN desligado até o dispositivo piloto entrar e reconectar de forma confiável. Com ele ligado, um dispositivo desconectado da conta do Tailscale fica sem rede, o que também pode impedir atualizações da política.

Verificar no dispositivo

  1. Em Dispositivos, abra o dispositivo piloto, execute uma sincronização e confirme que o Tailscale está instalado.
  2. No dispositivo, abra o Tailscale. O nome da organização, a legenda e o botão de suporte que você definiu aparecem na área de gerenciamento do app. Com Force enabled connection toggle em Enabled, o botão de desconectar fica indisponível.
  3. Faça login, ou deixe a auth key fazer o login do dispositivo. Com uma tailnet obrigatória, a página de login vai direto ao seu provedor de identidade.
  4. No console de administração do Tailscale, abra Machines e confirme que o dispositivo aparece, com o hostname e as tags esperados.
  5. No dispositivo, abra um endereço interno ou um nome MagicDNS para confirmar que o DNS e as rotas funcionam. Se definiu Included packages, teste um app da lista e um app fora dela.

Solução de problemas

Problema Causa provável O que fazer
Sem o selo Configurável ou sem campos no editor O pacote não foi encontrado no Google Play, ou a lista ainda não carregou. Remova o app, adicione-o de novo com com.tailscale.ipn e confira se o Tailscale aparece como resultado.
Falta uma chave da documentação do Tailscale O app Android não a publica. Use somente os campos que o editor lista; consulte a documentação do Tailscale sobre suporte por plataforma.
Os valores não chegam ao app A política não foi salva, o dispositivo não sincronizou, ou o Tailscale é anterior à 1.66. Salve a política, sincronize o dispositivo em Dispositivos e atualize o Tailscale pelo Google Play.
As mudanças só valem depois de reabrir o app Tailscale 1.76 ou anterior. Reinicie o Tailscale ou atualize para a 1.78 ou posterior.
As pessoas conseguem entrar em outra tailnet Tailnet está sem o prefixo required:. Adicione o prefixo, por exemplo required:T123456CNTRL.
A auth key não faz o login do dispositivo O app já está conectado a uma conta, ou a chave expirou, se esgotou ou foi revogada. Confira a chave no console de administração do Tailscale e crie outra se necessário.
O Tailscale diz que precisa de acesso à VPN e que o dispositivo pode não mostrar as configurações de VPN Configurações de VPN está como Bloqueado na política, ou outra VPN está em execução. Defina Configurações de VPN como Permitido em Conectividade e salve a política. Desconecte qualquer outra VPN e abra o Tailscale de novo.
Um app não alcança serviços internos Ele está em Excluded packages, ou falta em Included packages. Corrija a lista e salve a política.
Os nomes da tailnet não resolvem Use Tailscale DNS settings está em Never, ou a pessoa desligou o DNS com User Decides. Defina como Always.
O dispositivo fica sem internet depois de ativar a VPN sempre ativa Bloquear conexões sem a VPN está ligado e o Tailscale está sem login ou desconectado. Desligue o bloqueio na política, salve e faça login no Tailscale de novo.

Desfazer a configuração

  • Para deixar de impor um valor, abra o campo e escolha Not Set, ou apague o texto, e salve a política.
  • A ação com ícone de lixeira, no fim do editor, remove todos os valores do Tailscale desta política depois que você salva.
  • Para remover o app, mude a instalação para Bloqueado, conforme 4. Políticas — Policy 2.0, e salve. Revogue toda auth key que você distribuiu.

Veja também

Documentação

Escolha o seu horário

Carregando...
Abrir calendário de agendamento