stamatios
← Voltar ao feed
Cabo luminoso atravessa engrenagens metálicas diante de porta sem cadeado, ferramenta Tailcat sobre o data plane do Tailscale
Open Source

Tailcat leva o netcat para o data plane do Tailscale

resumo de ~3 min

{ "resumo": "## O que é o Tailcat\n\nA Tailscale lançou o Tailcat, uma ferramenta de código aberto (licença BSD-3-Clause) descrita como "Tailscale sem Tailscale": funciona como o netcat, mas usando o data plane da Tailscale sem depender do control plane da empresa. Isso significa que dois computadores podem estabelecer túneis criptografados ponta a ponta com WireGuard, sem necessidade de conta na Tailscale, sem privilégios de root/admin e sem alterar tabelas de roteamento ou DNS do sistema.\n\n## Como funciona\n\nO Tailcat reutiliza componentes de rede da Tailscale: uma implementação WireGuard em espaço de usuário, o magicsock (camada de transporte que multiplica tráfego entre UDP direto e relés DERP, com NAT traversal via STUN e hole-punching), o netstack do gVisor (pilha TCP/IP em espaço de usuário) e o protocolo DERP como canal de rendezvous e fallback quando a conexão direta não é possível.\n\nO fluxo é simples: um lado roda o servidor, que gera ou carrega chaves WireGuard, conecta a um relé DERP e imprime um endereço tailcat curto (prefixo "tc" seguido de base64/CBOR contendo chave pública WireGuard, chave de path-discovery, pre-shared key e info de DERP). O cliente usa esse endereço para conectar; a descoberta inicial passa pelo DERP, e depois o NAT traversal tenta elevar a conexão a UDP direto. Os metadados de conexão são trocados fora de banda, sem o control plane da Tailscale.\n\n## Funcionalidades\n\nO CLI suporta:\n\n- Pipes stdin/stdout entre máquinas, como o netcat.\n- Port forwarding: expor portas TCP locais, encaminhar portas remotas para uso local e modo exit-node para alcançar ativos da rede do servidor.\n- SSH: servidor SSH autenticado por chaves públicas (de arquivos authorized_keys, chaves literais ou contas GitHub via user@github), ou modo no-auth-ssh em que o endereço do túnel é a única credencial.\n- Serviço exec: executa um comando por conexão, estilo inetd, com a conexão como stdin/stdout e o comando após --.\n- Transferência de arquivos: drop box write-only (tailcat cp), listagem e leitura via SFTP (tailcat ls), com confinamento de caminhos via os.Root do Go, impedindo escape por .. ou symlinks.\n- Comandos diversos: ping com --until-direct, proxy SOCKS5, parse/resolve de endereços, e navegação em servidores web (tailcat browse).\n- Demo na web: compilação WebAssembly que envia/recebe arquivos e texto, interoperando com o CLI (relé DERP apenas, sem conexão direta até suporte WebRTC).\n\n## Endereços, chaves e segurança\n\nO endereço tailcat é uma capacidade de segredo (bearer capability) quando contém a pre-shared key: quem o conhece pode conectar. Pre-shared keys são habilitadas por padrão, protegendo contra operadores DERP que observem chaves públicas e oferecendo proteção pós-quântica contra tráfego gravado. Chaves efêmeras (padrão) geram endereços de uso único que morrem com o processo; chaves salvas (tailcat genkey) mantêm endereços estáveis, mas exigem restrição de clientes via --allow.\n\nO projeto alerta explicitamente: publicar um endereço em registro DNS TXT o torna público e escaneado, exigindo que o servidor autentique clientes por outros meios (--allow ou --ssh-authorized-keys). Um exemplo documentado mostra SSH protegido sobre DNS: o servidor só aceita uma chave de cliente específica, handshakes de estranhos são silenciados, e tailcat ssh sonda DNS-named destinations antes de conectar, recusando servidores mal configurados.\n\nÉ possível trazer o próprio relé DERP (run your own) ou apontar --derpmap-url para um mapa próprio, sem contatar os servidores da Tailscale. Os relés públicos são rate-limited e sem SLA de uptime.\n\n## História e estabilidade\n\nO projeto nasceu em setembro de 2023 como "derpcat", escrito durante um voo, dentro de um fork do repositório tailscale.com, e sofria bitrot. Foi refeito como um módulo Go cliente do repositório em vez de fork e open sourced em agosto de 2026 na conferência TailscaleUp. O README adverte que não há promessas de estabilidade: a API Go, flags do CLI e formato de fio podem mudar, e o acesso aos relés públicos pode ser revogado a qualquer momento. Há opção comercial via contact sales. O repositório já contabiliza cerca de 7,3 mil estrelas no GitHub.", "hook": "A Tailscale open sourced o Tailcat, uma ferramenta que funciona como o netcat, mas roda sobre o data plane da empresa - túneis WireGuard ponta a ponta sem control plane, sem conta e sem precisar de root. O projeto nasceu em 2023 como "derpcat" durante um voo e foi apresentado na conferência TailscaleUp em agosto de 2026.", "entities": ["Tailscale", "Tailcat"], "themes": ["open-weights-e-modelos-locais", "seguranca-digital"], "story_key": "tailscale-tailcat-lancamento", "reasoning": { "story_key": "Lançamento open source do Tailcat pela Tailscale é o fato canônico único do texto.", "themes": { "open-weights-e-modelos-locais": "Ferramenta open source para tunelamento ponto a ponto direto entre máquinas, sem control plane centralizado - distribuição aberta/self-hosted é o ângulo central.", "seguranca-digital": "Foco extenso em modelo de segurança: túneis WireGuard, pre-shared keys, proteção pós-quântica, avisos sobre DNS TXT e autenticação de clientes." }, "entities": { "Tailscale": "Empresa que criou e open sourced a ferramenta.", "Tailcat": "Ferramenta lançada, sujeito central do texto." }, "excluded": { "GitHub": "Plataforma hospedeira, menção secundária.", "DERP/magicsock/gVisor": "Componentes técnicos, não sujeitos do fato." } } }