Isso é feito usando o Policy Based Routing.
Normalmente, as decisões de roteamento são feitas com base na rede de destino, no entanto, com o roteamento baseado em política, você pode rotear com base em todos os tipos de aspectos de uma conexão. Seu cenário é simples: se a interface de entrada for wlan1
, a rota padrão deverá estar fora de tun0
Primeiro, configuramos uma nova tabela de roteamento chamada "vpn" (ou o que você quiser):
echo "200 vpn" >> /etc/iproute2/rt_tables
Ou você pode editar este arquivo e adicionar 200 vpn
ao final.
Em seguida, precisamos adicionar uma regra:
sudo ip rule add iif wlan1 lookup vpn
Isso está dizendo "se a interface de entrada for wlan1
, use a tabela de roteamento chamada" vpn ", em vez da normal.
Em seguida, adicionamos uma rota padrão à tabela de roteamento vpn:
sudo ip route add default dev tun0 table vpn
sudo ip route flush cache
Isso diz que qualquer coisa que esteja usando a tabela de roteamento chamada "vpn" usará a interface tun0 como seu gateway padrão. Em seguida, liberamos o cache de rota para uma boa medida.
Você pode usar este comando para visualizar a tabela de roteamento vpn:
sudo ip route list table vpn
Agora é apenas um caso de executar esses comandos, talvez como um script após a ativação da VPN. Eu tenho certeza que o openvpn tem um script de post-up que você pode adicioná-los.