VPS, VPN e roteamento de políticas no Linux

4

Estou procurando uma maneira de configurar minha VPN em meu VPS de forma que minha conexão SSH passe pela rede normal, mas todo o tráfego restante desse VPS passará pela VPN.

Eu decidi usar o roteamento de políticas para isso.

Eu adicionei uma nova tabela de roteamento chamada VPN ao arquivo / etc / iptables2 / rt_tables

Depois marquei todos os pacotes que não são SSH

iptables -t mangle -A PREROUTING -p tcp ! --dport 22 -j MARK --set-mark 1
iptables -t mangle -A PREROUTING ! -p tcp -j MARK --set-mark 2
iptables -t mangle -A OUTPUT -p tcp ! --sport 22 -j MARK --set-mark 3
iptables -t mangle -A OUTPUT ! -p tcp -j MARK --set-mark 4

E os atribuiu à política recém-criada:

ip rule add fwmark 1 table VPN
ip rule add fwmark 2 table VPN
ip rule add fwmark 3 table VPN
ip rule add fwmark 4 table VPN

agora, desde que o OpenVPN irá, por padrão, adicionar todas as rotas à tabela de roteamento principal, usei o --route-noexec para evitar que isso aconteça e criei um script que simplesmente adicionará rota padrão à tabela de roteamento VPN usando as variáveis Ambientais:

openvpn --config [config file] --script-security 2 --route-noexec --route-up /home/user/script.sh 

E o script em si é apenas:

#cat script.sh

#!/bin/bash
ip route add default via $route_vpn_gateway table VPN

Depois de executar este comando, ainda estou conectado ao VPS, mas não tenho conexão com o mundo externo.

Veja o que posso ver nas minhas tabelas de roteamento:

# ip route show table VPN

default via 10.7.7.1 dev tun0

# ip route show table main

default via [VPS Gateway] dev eth0 
10.7.7.0/24 dev tun0 proto kernel scope link src 10.7.7.210 
[VPS Gateway] dev ens3 scope link 

Agora, meu entendimento é que a segunda linha da tabela de roteamento principal não deve estar lá, mas não sei como movê-la para a tabela VPN.

Alguma pista? Além disso - alguma idéia o que mais estou faltando nessa configuração?

Obrigado

    
por Shravaka 17.08.2017 / 14:54

0 respostas