Adicione um comando de rota personalizado à sua configuração do cliente openvpn:
route add 84.X.x.X 255.255.255.255 <your real default gw>
Eu tenho um VPS rodando o Ubuntu 16.04.1 ao qual me conecto com o SSH. Eu gostaria de executar um cliente OpenVPN no VPS para que o tráfego da Internet seja roteado através da VPN, mas ainda permitir que eu me conecte ao servidor via SSH. Quando eu inicio o OpenVPN, minha sessão SSH é desconectada e não consigo mais me conectar ao meu VPS. Como posso configurar o VPS para permitir que conexões SSH (portas 22) de entrada sejam abertas no IP real do VPS (84.XxX), mas ainda direcionar o tráfego de saída (como de um navegador da Web no VPS) através da VPN?
O serviço OpenVPN que uso é o PrivateInternetAccess, e um exemplo do arquivo config.ovpn é:
proto udp
tun-mtu 1500
fragment 1300
mssfix
cipher AES-256-CBC
remote amsterdam.perfect-privacy.com 149
remote amsterdam.perfect-privacy.com 1151
remote amsterdam.perfect-privacy.com 1150
remote amsterdam.perfect-privacy.com 1149
remote amsterdam.perfect-privacy.com 151
remote amsterdam.perfect-privacy.com 150
remote amsterdam.perfect-privacy.asia 151
remote amsterdam.perfect-privacy.asia 150
remote amsterdam.perfect-privacy.org 1149
remote amsterdam.perfect-privacy.info 1150
remote amsterdam.perfect-privacy.asia 149
auth SHA512
auth-user-pass password.txt
client
comp-lzo
dev tun
#float
hand-window 120
inactive 604800
mute-replay-warnings
nobind
ns-cert-type server
persist-key
persist-remote-ip
persist-tun
ping 5
ping-restart 120
redirect-gateway def1
remote-random
reneg-sec 3600
resolv-retry 60
route-delay 2
route-method exe
script-security 2
tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256:TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA:TLS-DHE-RSA-WITH-AES-256-CBC-SHA:TLS-RSA-WITH-CAMELLIA-256-CBC-SHA:TLS-RSA-WITH-AES-256-CBC-SHA
tls-timeout 5
verb 4
tun-ipv6
ca ca.crt
cert Amsterdam_cl.crt
key Amsterdam_cl.key
tls-auth Amsterdam_ta.key 1
down /etc/openvpn/update-resolv-conf
up /etc/openvpn/update-resolv-conf
crl-verify ca.crl
ip addr do VPS:
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
venet0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:127.0.0.2 P-t-P:127.0.0.2 Bcast:0.0.0.0 Mask:255.255.255.255
UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1
RX packets:27052 errors:0 dropped:0 overruns:0 frame:0
TX packets:30619 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3363556 (3.3 MB) TX bytes:4903075 (4.9 MB)
venet0:0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:84.200.105.209 P-t-P:84.X.x.X
Bcast:84.X.x.X Mask:255.255.255.255
UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1
Eu li que isso pode ser feito via Routing, mas eu não tenho muita experiência em Linux e eu não quero travar meus Vps, então eu estou pedindo sua ajuda.
Adicione um comando de rota personalizado à sua configuração do cliente openvpn:
route add 84.X.x.X 255.255.255.255 <your real default gw>
Você provavelmente encontrará sua resposta aqui: link
Seu cliente OpenVPN altera a rota padrão do seu servidor. Quando você tenta entrar em SSH, o handshake TCP não é concluído, pois o servidor tenta responder através do túnel OpenVPN. O pacote pode se perder em algum momento, ou na melhor das hipóteses chegaria de outro IP.