No se puede acceder a la máquina de Ubuntu localmente ejecutando un cliente OpenVPN


0

Actualmente estoy ejecutando una máquina de Ubuntu Server que ejecuta un cliente OpenVPN utilizando una conexión de túnel. Aunque quiero que los datos de la red pasen a través del túnel VPN, también quiero acceder a la máquina desde la red pública mediante el reenvío de puertos (para permitir la ejecución de un servidor web en la máquina a la que se puede acceder desde su casa).

Al usar algunas publicaciones en otros foros, pude configurar algunas tablas y rutas de red personalizadas para permitir que algunas redes en puertos específicos pasen por mi interfaz de red habitual. Esto funciona perfectamente bien y toda la actividad de mi red ahora pasa por el cliente VPN de forma predeterminada y la actividad de la red en los puertos que especificé ahora pasa por mi interfaz de red física, lo que me permite abrir un navegador web y navegar a esta máquina utilizando el puerto 80.

Sin embargo, el problema al que me estoy enfrentando actualmente es que con estas tablas y rutas personalizadas parece que ya no puedo navegar a la máquina (por ejemplo, 192.168.0.110) localmente en la misma red (por ejemplo, desde 192.168.0.27 ). Cuando intento abrir un navegador web y navegar al puerto 80 en la máquina, recibo un tiempo de espera después de un tiempo. Lo interesante es que cuando uso mi dirección IP pública usando el reenvío de puertos, puedo acceder a la máquina en el puerto 80 muy bien. Cuando elimino la configuración de la tabla personalizada o la ruta personalizada para el acceso "sin VPN", puedo acceder a la máquina de nuevo localmente, pero esto interrumpe el acceso desde la red pública.

He estado tratando de encontrar personas en línea con problemas similares, pero no puedo encontrar nada relacionado con el problema al que me enfrento.

Tengo la sensación de que, desde que agregué estas tablas y rutas personalizadas, la respuesta de la máquina de Ubuntu se redirige a la puerta de enlace predeterminada en lugar de directamente a la computadora que envió la solicitud a la máquina de Ubuntu.

Esta es mi configuración de la tabla mangle: Captura de pantalla

Utilizo estos comandos para configurar la regla y la ruta para la tabla: Captura de pantalla

¿Tiene alguna idea de qué estoy haciendo mal aquí y cómo puedo lograr poder acceder a la máquina en el puerto 80 desde dentro y fuera de mi LAN?

TLDR; He usado tablas y rutas personalizadas para permitir que algunos puertos se enruten utilizando mi puerta de enlace predeterminada para permitir el acceso a la máquina, incluso aunque haya un cliente VPN ejecutándose en la máquina. Por alguna razón, esto hace que sea imposible acceder a la máquina en el puerto 80 localmente, aunque es posible usar este puerto utilizando mi dirección IP externa y el reenvío de puertos.

Respuestas:


0

Muy bien, así que finalmente pude resolver este problema ...

Como pude crear una situación en la que solo se podía acceder al servidor web desde LAN y en una situación en la que solo se podía acceder desde la red externa, empecé a pensar si había una forma de combinar estos escenarios de otra manera.

Estoy usando Nginx como servidor web y descubrí que es posible ejecutar el servidor web en varios puertos. Así que edité la configuración de Nginx para ejecutarse tanto en el puerto 80 como en el 8090 y apliqué las tablas, reglas y rutas descritas en el OP solo para el puerto 8090. Luego actualicé las reglas de control de mi enrutador para reenviar el puerto 80 al puerto 8090 mi LAN Me sentí MUY complacido al descubrir que esto soluciona el problema completamente, ya que ahora puedo acceder al servidor en el puerto 80 desde mi LAN y el puerto 80 usando mi dirección IP externa, ya que la reenvía al puerto 8090, que contiene el 'no Reglas de VPN.

Supongo que hay una mejor manera de solucionar este problema, pero por el momento estoy satisfecho con la solución actual.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.