Por padrão, o OpenVPN adiciona a rota ao servidor OpenVPN na tabela de roteamento padrão. A decisão de roteamento é feita pela regra mais correspondente, se nenhuma regra for correspondida, o gateway padrão será usado. Como existe uma regra mais precisa para o servidor OpenVPN, ele é usado no lugar da rota padrão.
Você deve ter sua configuração padrão encaminhando todo o tráfego via OpenVPN e depois configurar as exceções para seus casos especiais.
Você pode configurar um namespace de rede separado com sua própria configuração de roteamento e executar os serviços lá. Isso possivelmente requer que você atribua um endereço IP separado para o seu namespace e / ou use uma configuração NAT entre seus namespaces.
A alternativa para namespaces de rede separados é usar o roteamento de políticas com a marcação de pacotes .
Use iptables
para marcar pacotes com 10
das portas de origem 80 , 443 e 22 :
iptables -t mangle -A OUTPUT -p tcp -m multiport --sports 80,443,22 -j MARK --set-mark 10
Configure as tabelas de roteamento. Use a configuração OpenVPN para a tabela de roteamento padrão (todo o tráfego via túnel OpenVPN, exceto o próprio túnel). Tenha uma tabela de roteamento separada para o tráfego marcado.
# add new routing table 100 and set its default routing to your default gw
ip route add table 100 default via $DEFAULT_GW
# add rule to use the new table for packets marked 10
ip rule add fwmark 10 table 100
# flush routing cache
ip route flush cache