Túnel dividido: por que um link abre fora da VPN que você configurou
O roteamento segue o processo que abre o socket, não o aplicativo que mostrou o link. Prove qual programa se conecta antes de ampliar as exclusões.
Encaminhar um aplicativo por um túnel não transporta o roteamento dele para tudo o que esse aplicativo inicia, embora a interface sugira o contrário. Um link entrega uma requisição a outro programa, esse programa abre o próprio socket, e a plataforma aplica as regras ao processo novo, não ao que exibiu o texto. Esse segundo processo é o que a política do túnel realmente enxerga, e não é o que você configurou.
Um aplicativo incluído pode, portanto, abrir um navegador que fica fora do túnel. Um navegador excluído pode devolver trabalho a um aplicativo que fica dentro. As duas direções dessa surpresa são comportamento comum.
A parte do fluxo de trabalho que ninguém configurou
A política por aplicativo é escrita contra a identidade de um executável ou pacote, e cada conexão é avaliada no momento em que é criada. O navegador, o visualizador de documentos, o reprodutor de mídia e a folha de compartilhamento do sistema carregam cada um a sua identidade, e cada um recebe o seu veredito. Um link profundo transporta dados, não política.
Por isso a observação parece arbitrária: o mesmo clique é roteado de duas maneiras, conforme qual manipulador responde. Um cliente de e-mail dentro do túnel abre um link num navegador que vive fora do túnel, e a página carrega a partir do seu endereço de casa. Um navegador fora do túnel abre um documento num visualizador que vive dentro dele, e o arquivo chega pela saída. Nenhum dos dois resultados é um defeito do cliente.
Um manipulador já em execução piora a situação. Se o navegador já está aberto, o link vira uma mensagem para um processo existente, e esse processo mantém o roteamento que tinha ao iniciar. Fechar e reabrir o manipulador muda o resultado, e é por isso que o problema nunca se reproduz sob demanda.
| Platform | Policy object | What it is evaluated against |
|---|---|---|
| Android | Per-app VPN allowlist | Package name of the process opening the socket |
| Windows | Application traffic filters | Application path in the filter rule |
| Linux | UID or cgroup routing rules | Owner of the socket, which can be a different program |
Qual processo realmente fez a conexão
Meça o lado que recebe em vez de raciocinar sobre ele. Mantenha o túnel ativo, clique num link inocente e olhe os sockets que o programa novo mantém.
ss -tnp state established '( dport = :443 )' Get-NetTCPConnection -State Established | Select-Object RemoteAddress,OwningProcess
O primeiro comando nomeia o processo por trás de cada socket estabelecido no Linux, e o segundo faz o mesmo no Windows resolvendo o identificador do processo proprietário. Compare o nome do processo com os nomes da sua política. Se o nome é o navegador e o navegador está excluído, o clique saiu do túnel por projeto e não por falha. Associar uma regra de política a um socket vivo é todo o método.
Repita a verificação com o manipulador já em execução e depois com ele fechado. Os dois resultados podem diferir, e essa diferença explica a maioria dos relatos intermitentes sobre links que escapam de um túnel.
A cobertura é uma propriedade do fluxo de trabalho
Se uma tarefa precisa permanecer dentro do túnel do começo ao fim, cada componente que ela pode alcançar tem de estar dentro da política: o iniciador, o manipulador, o visualizador e qualquer intermediário que a plataforma insira entre eles. Uma cobertura mais ampla costuma ser a resposta honesta, e sai mais barata do que auditar cada destino de compartilhamento.
Excluir um intermediário do sistema para consertar um aplicativo é um erro comum. Os intermediários são compartilhados, então a exclusão segue todos os outros aplicativos que usam o mesmo caminho, geralmente sem que ninguém perceba até um relato chegar semanas depois. Leia o que mais depende do componente antes de excluí-lo.
Mantenha a identidade separada do roteamento. Um link pode carregar um token de sessão ou um identificador de conta, independentemente de qual saída recebe a requisição. Um clique roteado corretamente ainda pode dizer ao destino exatamente quem o seguiu.
Documente o fluxo de trabalho, não a primeira caixa de seleção. Quando uma tarefa abrange quatro programas, é o diagrama com quatro programas que prevê para onde vai o tráfego, e a configuração de um único aplicativo é apenas uma linha dele.