No se puede SSH al servidor con conexión VPN

12

Esto es bastante complicado, lo sé. Déjame explicarte todo.

Tengo un DNS dinámico configurado en mi enrutador. Verifiqué que, después del reenvío de puertos, puedo conectarme a la aplicación deseada (si ejecuto algo en el puerto 1337 y reenvío el puerto a la máquina adecuada, puedo conectarlo desde afuera sin problemas).

Ahora, si conecto mi Macbook a VPN y ejecuto algo como se describió anteriormente, funciona como se esperaba. PERO , si conecto mi máquina que ejecuta Ubuntu Server 16.04 a la VPN y ejecuto algo o quiero conectarme por ssh, falla. Reenvié el puerto que estoy usando para la conexión SSH en el enrutador. También intenté alojar un servidor web, que también falló.

¿Qué puedo hacer al respecto? Esto no tiene sentido para mí.

Acerca de la máquina Ubuntu Server: es una instalación limpia con cliente openvpn y servidor ssh configurados, sin firewall en ejecución, iptables no editados, conectado al enrutador a través de ethernet.

EDITAR: Aquí están las tablas de enrutamiento: http://pastebin.com/ay6fpLcL

Krzysztof Kraszewski
fuente
¿Cuáles son las diferencias en las tablas de enrutamiento con y sin VPN (solo para IPv4, ip -4 ren ubuntu, netstat -f inet -rnen mac)?
user4556274
@ user4556274 aquí están las tablas: pastebin.com/ay6fpLcL
Krzysztof Kraszewski

Respuestas:

9

OK, logré encontrar una solución.

Usando el openvpnpaquete sin envoltorios:

Agregue esas 2 líneas a su .ovpnarchivo (o .confsi se está conectando automáticamente):

script-security 2
up /etc/openvpn/up.sh

Luego, cree /etc/openvpn/up.shcon permisos ejecutables (755/700):

#!/bin/sh
ip rule add from <your-server-ip> table 128
ip route add table 128 to <your-server-subnet> dev <your-interface>
ip route add table 128 default via <server-gateway>

Por ejemplo, aquí está mi configuración:

#!/bin/sh
ip rule add from 192.168.1.26 table 128
ip route add table 128 to 192.168.1.0/24 dev eno1
ip route add table 128 default via 192.168.1.1

Usando un cliente VPN diferente / configuración diferente:

No puedo predecir los pasos requeridos, pero generalmente necesita ejecutar el up.shscript (arriba) cada vez que se establece su conexión VPN.

Espero que ayude a alguien que tiene el mismo problema. ¡Salud!

Krzysztof Kraszewski
fuente
Yo uso NordVPN en ubuntu 18.04. Usar openvpn precedido por este script funciona bien. Sin embargo, el uso del binario nordvpn para conectarse falla con lo anterior.
ma3oun