Alguém no fórum do DD-WRT ajudou-me a resolver isto da melhor forma possível maneira (mais simples).
O roteamento baseado em diretivas é a maneira correta de realizar a parte seletiva do problema de tunelamento da VPN . É um dos campos em que você especifica detalhes para a conexão do OpenVPN. Você tem que entrar aqui os dispositivos que você quer ir através da VPN. Note que, devido a um bug no DD-WRT, o IP do roteador em si não pode estar nesta lista.
Então eu configurei o seguinte:
- O DHCP serve de 1 a 127.
- Todos os dispositivos que eu quero na VPN recebem IPs estáticos > 127
- Os dispositivos que não devem passar pela VPN devem receber um IP estático < 128 ou apenas receber um IP de DHCP, que será < 128
- O roteamento baseado em política CIDR é 192.168.1.128/25 (o que significa colocar todos os dispositivos com IP > 127 através da VPN )
Agora, para a segunda parte do problema, que está negando o acesso WAN aos dispositivos que devem estar na VPN quando a VPN está desligada / com falha pode ser feita inserindo os seguintes comandos no Seção> Salvar Firewall :
iptables -I FORWARD -s 192.168.1.128/25 -o $(nvram get wan_iface) -m state --state NEW -j REJECT --reject-with icmp-host-prohibited
iptables -I FORWARD -p tcp -s 192.168.1.128/25 -o $(nvram get wan_iface) -m state --state NEW -j REJECT --reject-with tcp-reset
Duas notas sobre os comandos acima:
- Ele usa
REJECT
em vez deDROP
, pois o primeiro é um pouco mais amigável do que o segundo.DROP
não responde e exige que o cliente atinja o tempo limite, o que pode ser irritante para os usuários. Em contraste,REJECT
faz com que o cliente saia IMEDIATAMENTE. - O estado da conexão verificada é
NEW
. Ao verificar NEW, impedimos que esses dispositivos iniciem conexões de saída, mas não impedem que eles sejam acessados remotamente e enviem respostas por meio da WAN (pelo menos quando a VPN estiver inativa). Se você quiser impedir o acesso remoto, remova--state NEW
dessas regras.