Criou uma rede de convidados, adicionou uma rota para ela, e os convidados continuam a sair pela sua ligação normal à internet. O túnel está ativo, a LAN principal funciona, e os dispositivos convidados reportam um endereço no intervalo que atribuiu, por isso nada parece estar avariado. O que costuma faltar não é uma rota mas um seletor: o router decide o caminho antes de considerar por que interface o pacote chegou, e a menos que algo corresponda explicitamente ao tráfego de convidados, esse tráfego herda a predefinição. A correção é um segmento, uma regra de política e um caminho de resposta, por essa ordem.

O sintoma: os convidados continuam a sair pela WAN

A pista é o endereço de saída. Um dispositivo convidado que chega à internet pelo túnel reportará o endereço do fornecedor do túnel, e um que herdou a predefinição reportará a sua ligação normal. Compare lado a lado um dispositivo convidado e um dispositivo da LAN principal, porque o caso interessante é quando diferem do que configurou e coincidem entre si.

A segunda pista é a ausência de qualquer tráfego na interface do túnel enquanto os convidados navegam. Se os contadores não se moverem, a política nunca foi aplicada, e ajustar o próprio túnel não pode ajudar.

Passo 1: um segmento real, não apenas um nome

Um nome de SSID não cria isolamento. Verifique que a rede de convidados termina na sua própria interface, VLAN ou ponte, e que o intervalo de endereços é distinto da LAN de confiança. Em muitos pontos de acesso domésticos, o SSID de convidados é ligado por ponte ao mesmo segmento que tudo o resto, o que torna o resto deste trabalho impossível até isso ser corrigido.

Depois confirme o intervalo de convidados e o seu servidor DHCP, e mantenha as definições do resolver associadas a esse segmento em vez de ao router inteiro. Uma sub-rede de convidados que só existe como comentário numa regra de firewall não é um segmento, e o router não terá nenhuma interface com que corresponder.

Não ligue os convidados por ponte à LAN principal para facilitar a configuração da VPN. Isso troca o isolamento que queria por um atalho de encaminhamento, e é a razão habitual para uma rede de convidados acabar com acesso à impressora e ao NAS.

Passo 2: selecione o túnel por origem

As tabelas de encaminhamento são escolhidas por destino, por isso uma regra que diz «envie 0.0.0.0/0 para o túnel» aplica-se a todos. O encaminhamento por políticas acrescenta uma segunda dimensão: selecionar a tabela pelo endereço de origem. Num router baseado em Linux, isso é uma regra adicional mais uma tabela dedicada, e a ordem importa porque ganha a primeira regra correspondente:

ip rule add from 192.168.60.0/24 lookup 100 priority 1000
ip route add default dev wg0 table 100
ip route get 1.1.1.1 from 192.168.60.10

Esse último comando responde diretamente à pergunta: que interface esta origem vai usar para este destino. Execute-o antes e depois da alteração e saberá se a política produziu efeito sem tocar num navegador.

A maioria dos firmwares de router exprime o mesmo como uma regra de interface ou uma seleção de gateway baseada na origem. Qualquer que seja a sintaxe usada pela sua plataforma, o princípio é idêntico: corresponda à interface de entrada ou ao prefixo de origem e, em seguida, substitua a rota apenas para essa correspondência. Uma regra correspondida por destino não consegue distinguir um convidado de um dispositivo doméstico.

Passo 3: o caminho de resposta e a tradução

Um pacote que sai pelo túnel tem de voltar. Ou o par do túnel conhece uma rota de volta para o prefixo de convidados, ou o router traduz a origem dos convidados para o endereço do túnel. Escolha um e registe-o, porque os modos de falha parecem diferentes: um caminho de retorno ausente dá uma ligação que se estabelece e nunca responde, enquanto uma tradução ausente muitas vezes não produz nada.

nft add rule ip nat POSTROUTING ip saddr 192.168.60.0/24 oifname "wg0" masquerade

Se escolher a tradução, lembre-se de que o par passa a ver um único endereço para todos os convidados, por isso qualquer política por cliente no extremo remoto desaparece. Se conservar os endereços, ambas as extremidades precisam do prefixo de convidados no seu encaminhamento e na sua política, o que dá mais trabalho e é mais previsível.

O IPv6 precisa da sua própria regra. Uma política escrita para IPv4 não cobre a outra família, e um dispositivo convidado com IPv6 a funcionar usá-lo-á de bom grado enquanto o seu caminho IPv4 cuidadosamente encaminhado fica inativo. Encaminhe ambas as famílias ou desative o IPv6 no segmento de convidados, mas não assuma que a regra combinada que escreveu cobre o que o dispositivo realmente faz. Teste com um cliente que tenha ambas as famílias ativas, porque é esse o caso que o projeto tem de suportar. Um portátil que prefere IPv6 parece correto num teste só com IPv4 e foge no real.

Teste o isolamento, não apenas a navegação

Navegar prova que a saída mudou. Não prova que o segmento está isolado, e o isolamento é a razão pela qual a rede de convidados existe. A partir de um dispositivo convidado, tente alcançar a interface de administração do router, um anfitrião da LAN de confiança e um serviço que deveria ser recusado; os três devem falhar, e a falha deve ser uma decisão de política em vez de um tempo limite que ninguém consegue explicar.

Depois teste um dispositivo da LAN principal e confirme que a sua saída não mudou. É a regressão que este projeto causa com mais frequência: uma regra ampla destinada a convidados, aplicada a todas as interfaces porque a correspondência foi escrita no destino.

Por fim, decida o que acontece quando o túnel está em baixo. Os convidados ou ficam sem internet ou passam para um caminho que aprova, e deixar isso por decidir significa um retrocesso silencioso para a ligação normal, que é exatamente a fuga que a política de convidados devia impedir. A receita de encaminhamento do tráfego de internet percorre a mesma seleção de caminho para um router baseado em pfSense.

O DNS originado no router é o caso que surpreende as pessoas por último. Se os convidados usarem o router como resolver, as consultas do próprio router seguem a rota do router em vez da regra de convidados, por isso as pesquisas podem sair pela ligação normal enquanto o tráfego da aplicação não. Mantenha o segmento, o resolver e a política de falha numa única nota, e a pessoa seguinte poderá verificar os três sem voltar a deduzir o projeto.

Artigos relacionados