Excluir um nome de anfitrião é algo que um túnel não consegue fazer. Uma rota, porém, pode encaminhar um único endereço para fora do túnel e pela gateway de casa, e isso costuma bastar para um site. O senão é que tudo o que está a jusante da rota tem de concordar: a firewall tem de deixar sair o pacote, o DNS tem de devolver o endereço que encaminhou, e o site tem de continuar a usar esse endereço. Quando qualquer um dos três se desvia, a exceção deixa de funcionar sem se anunciar.

Leia o endereço de destino antes de tocar no túnel

Carregue o site uma vez com o túnel ativo e depois veja o endereço do par a que o navegador realmente se ligou. No Linux, ss -tunp lista o endereço remoto de cada socket aberto, e dig +short no mesmo nome mostra o que o resolvedor devolveu. Tenha os dois números à frente.

As duas respostas muitas vezes não coincidem, e essa discrepância é todo o problema. Os sites grandes colocam uma rede de conteúdos à frente da origem, pelo que o endereço que o seu resolvedor devolve agora pode não ser o que o navegador usou há um minuto. Encaminhe o que observou no socket, não o que um guia mais antigo lista. Se as respostas continuarem a rodar entre regiões, uma exceção de endereço é a ferramenta errada para esse site em concreto.

Execute a pesquisa uma segunda vez a partir de outra rede e registe a resposta IPv6 juntamente com a IPv4. Um túnel que transporta ambas as famílias precisa de uma exceção nas duas, senão o navegador recua em silêncio para o caminho IPv6 que nunca tocou. Anote os endereços e a data num sítio onde volte a olhar.

Coloque uma rota de anfitrião no cliente

Suponha que a interface se chama home-wg e que o router LAN está em 192.168.1.1. O NetworkManager aceita uma rota cuja gateway é esse router e cujo comprimento de prefixo cobre os 32 bits completos, e o kernel prefere-a porque o prefixo mais longo ganha.

nmcli connection modify home-wg +ipv4.routes "198.51.100.20/32 192.168.1.1"
nmcli connection up home-wg
ip route get 198.51.100.20

A gateway tem de ser alcançável sem o túnel; apontar o salto seguinte para o endereço do túnel frustra o propósito, porque o pacote voltaria a entrar na interface que está a tentar evitar. Depois de a ligação voltar a subir, ip route get para a exceção deverá imprimir a gateway LAN, e o mesmo comando para um resolvedor público deverá continuar a imprimir o dispositivo do túnel.

Um perfil wg-quick não tem campo de rotas, por isso a mesma exceção vive numa linha PostUp que acrescenta a rota de anfitrião à tabela principal com a interface LAN como seu dispositivo. Baixe e volte a subir a interface depois de editar, porque uma interface em execução nunca relê o seu ficheiro. As regras fwmark que o wg-quick instala guiam apenas os seus próprios pacotes encapsulados, por isso o tráfego normal do navegador continua a seguir a tabela principal e encontra o seu /32.

O kill switch é a próxima coisa que o bloqueia

Uma política de firewall que só admite tráfego na interface do túnel rejeitará a exceção mesmo quando a rota está exatamente certa. Leia as regras por trás do interruptor em vez de confiar no interruptor, porque as que implementam um kill switch costumam estar limitadas a um nome de interface.

O que quer é uma permissão estreita para a interface física e esse único destino, colocada antes do descarte, enquanto a política predefinida fica intocada. Pausar o kill switch por completo prova o ponto, mas também deixa a máquina exposta enquanto se esquece de o voltar a ligar.

Teste as duas direções em separado. Um pedido ao endereço da exceção deverá ter sucesso, enquanto um pedido a um site não relacionado continua a sair pelo túnel. Se ambos tiverem sucesso mas o segundo indicar o endereço de casa, é a ordem das regras da firewall que está errada, não a rota.

O DNS decide a que endereço o navegador liga

Quando o nome é resolvido dentro do túnel, o resolvedor do fornecedor pode responder com um endereço diferente do que o local deu. A sua rota aplica-se então a um endereço que o navegador nunca contacta, e a página carrega pelo túnel como se nada tivesse mudado. Esta falha parece uma exceção quebrada mesmo quando a tabela de encaminhamento está correta.

Envie também as consultas desse nome pelo resolvedor local, ou ignore os nomes por completo e teste o endereço diretamente. Separar o endereço deixando o DNS dentro do túnel é a versão meio acabada mais comum desta configuração, e também a mais difícil de notar, porque o site continua a funcionar, só não como pretendia.

A mesma exceção no router, uma vez, para cada dispositivo

Com o túnel a correr no router, a rota de anfitrião pertence à tabela de encaminhamento por políticas do router e aponta para a gateway WAN em vez da LAN. Cada dispositivo atrás herda a exceção, o que conta para uma box de streaming ou um portátil de trabalho cujas definições de rede não pode alterar.

Deixe o túnel como saída predefinida para todos os outros clientes e depois verifique a partir de uma máquina cliente, não da consola do router. Carregue o site da exceção e um segundo site na mesma sessão do navegador e compare os endereços de saída; se o segundo ainda mostrar o túnel, a tabela de políticas está a fazer o que pediu.

Anote o endereço, a data e o motivo nas notas do router. Uma exceção construída em torno de um endereço que depois se muda torna-se uma avaria que ninguém consegue explicar dentro de um ano, e a correção parece sempre um mistério até alguém encontrar a nota antiga.

Artigos relacionados