SSH al servidor que está conectado a VPN

SSH al servidor que está conectado a VPN

Mi servidor debería estar conectado a una VPN comocliente. Cuando ejecuto el script OpenVPN (desde HMA), la conexión desde mi máquina local al servidor a través de SSH se pierde; ya no es posible conectarme y tengo que finalizar manualmente el proceso VPN. Además, un servicio TOR oculto (página .onion) no está disponible en ese momento.

¿Es posible de alguna manera que la página TOR esté disponible y pueda conectarme a través de SSH mientras el servidor está conectado a la VPN?

Respuesta1

El problema es que OpenVPN cambia la puerta de enlace predeterminada y eso interrumpe cualquier conexión que entre en la interfaz que no es VPN. ¡Linux enviará respuestas a los paquetes que entraron en la interfaz real desde la interfaz VPN! Debe configurar rutas adecuadas antes de iniciar OpenVPN.

Lo que sigue me funciona. Utiliza iptables e ip (iproute2). A continuación, se supone que la interfaz de puerta de enlace predeterminada antes de iniciar OpenVPN es "eth0". La idea es garantizar que cuando se establece una conexión a eth0, incluso si eth0 ya no es la interfaz de puerta de enlace predeterminada, los paquetes de respuesta para la conexión vuelvan a eth0.

Puede utilizar el mismo número para la marca de conexión, la marca del firewall y la tabla de enrutamiento. Utilicé números distintos para hacer más evidentes las diferencias entre ellos.

# 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

===

ACTUALIZAR:

Lo anterior me funciona bien en Debian Jessie. Pero en un sistema Wheezy más antiguo descubrí que necesito agregar "vía" a la entrada de la tabla de enrutamiento:

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

Allí "12.345.67.89" debe ser la puerta de enlace original que no es VPN.

Respuesta2

Tengo un problema similar. Mi escritorio Ubuntu está en una VPN y mi conexión SSH normal no funciona desde fuera de la red doméstica.

Sin embargo, algo en lo que acabo de pensar. ¿Aún tienes los puertos reenviados a esa computadora?

La VPN asigna una nueva dirección IP desde el sitio VPN para que el enrutador ya no pueda encontrar esa dirección IP para conectarse.

Supongo que necesitaría saber la nueva dirección IP asignada por el host VPN para saber a qué dirección conectarse.

Sólo estoy dando conjeturas fundamentadas, no una solución conocida; así que por favor no abuses de mí si no funciona. :)

Investigando más a fondo, descubrí que necesitas reenviar los puertos a través de tu VPN (creo) porque la VPN redirige el puerto 80 y tus túneles SSH generalmente usan el puerto 22. Creo que necesitas reenviar el puerto 22 a través de tu VPN para que cuando te conectas a tu VPN en el puerto 80 y te redirige al puerto reenviado requerido por tu túnel SSH, es decir. Masilla.

Todavía no estoy 100% seguro de cómo hacerlo. Si alguien puede confirmarlo sería genial.

información relacionada