Execute o cliente OpenVPN no VPS

0

Eu tentei executar o OpenVPN como um cliente no meu VPS, mas como o tráfego é roteado, não consigo mais me conectar ao VPS via SSH. Eu tentei a seguinte abordagem, mas não funcionou

ip rule add table 128 from 50.1.2.3
ip route add table 128 to 50.1.2.0/24 dev tun0
ip route add table 128 default via 10.10.10.5

Eu tenho o gateway padrão de

root@server:~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.10.10.1      10.10.10.5      255.255.255.255 UGH   0      0        0 tun0
10.10.10.5      0.0.0.0         255.255.255.255 UH    0      0        0 tun0
0.0.0.0         10.10.10.5      128.0.0.0       UG    0      0        0 tun0
128.0.0.0       10.10.10.5      128.0.0.0       UG    0      0        0 tun0
0.0.0.0         0.0.0.0         0.0.0.0         U     0      0        0 venet0

Qual parte estou fazendo errado?

    
por Googlebot 27.04.2017 / 16:32

1 resposta

1

O problema é que o gateway padrão é alterado pelo OpenVPN, e isso quebra sua conexão SSH atual, a menos que você configure as rotas apropriadas antes de iniciar o OpenVPN.

Para uma solução que usa iptables e ip (iproute2), supõe-se que a interface de gateway padrão antes de o OpenVPN ser iniciado seja "eth0". A idéia é garantir que, quando uma conexão com a eth0 seja feita, mesmo que a eth0 não seja mais a interface de gateway padrão, os pacotes de resposta para a conexão voltarão à eth0 novamente.

Usando abaixo números distintos para maior clareza, embora o mesmo número possa ser usado para todos:

# set "connection" mark of connection from eth0 when first packet of connection arrives
sudo iptables -t mangle -A PREROUTING -i eth0 -m conntrack --ctstate NEW -j CONNMARK --set-mark 1234

# set "firewall" mark for response packets in connection with our connection mark
sudo iptables -t mangle -A OUTPUT -m connmark --mark 1234 -j MARK --set-mark 4321

# our routing table with eth0 as gateway interface
sudo ip route add default dev eth0 table 3412

# route packets with our firewall mark using our routing table
sudo ip rule add fwmark 4321 table 3412

Algumas versões do Linux precisam adicionar "via" à entrada da tabela de roteamento:

# our routing table with eth0 as gateway interface
sudo ip route add default dev eth0 via 12.345.67.89 table 3412

onde "12.345.67.89" é o gateway não-VPN original.

    
por 27.04.2017 / 23:37