¿Limitar un proceso específico a la conexión OpenVPN?

¿Limitar un proceso específico a la conexión OpenVPN?

¿Hay alguna forma de forzar que un proceso específico use una conexión OpenVPN, pero permitir que todos los demás procesos en un sistema usen la conexión de red predeterminada en Ubuntu Linux?

Tengo una aplicación Python personalizada ejecutándose en AWS que estoy intentando integrar con un servicio PostgreSQL externo. El servicio proporciona una VPN configurada con OpenVPN para que pueda acceder a su servidor PostgreSQL.

Según tengo entendido, de forma predeterminada, OpenVPN obliga a todo el tráfico de red en el servidor a utilizar la VPN, que normalmente es exactamente lo que desea. Sin embargo, dado que mi aplicación se ejecuta en AWS, que administra su propia seguridad y tiene un enrutamiento de red optimizado, si configuro mi servidor para usar esta VPN para todo, forzaré todo mi tráfico a esta conexión externa, lo que ralentizará todo está caído y probablemente resulte en problemas de acceso a la seguridad, ya que el acceso del servidor a mis otros recursos de AWS parecería provenir de fuera de mi cuenta.

¿Cuál es la forma más sencilla de crear una interfaz de red VPN, pero evitando que todos los procesos, excepto un proceso específico, la utilicen?

Respuesta1

Puede utilizar el route-nopullcomando en la configuración del cliente para evitar que se creen entradas de ruta. Después de esto, puede agregar manualmente el que apunta al servidor de la base de datos. De esta manera, cualquier cosa que acceda al servidor de base de datos usará VPN y todo lo demás usará las rutas que usaron antes.

Por ejemplo, suponiendo que el servidor de la base de datos está en 192.168.111.111 (detrás del servidor VPN), debe incluir esto en la configuración de su cliente:

route-nopull
route 192.168.111.111 255.255.255.255

información relacionada