6 votos

¿Hacer que una aplicación use VPN mientras otras no lo hacen en Linux?

Quiero que una aplicación use una conexión VPN mientras que otras no.

Estoy usando Xubuntu (por lo tanto XFCE) pero me gustaría una solución de línea de comandos/configuración estática si es posible.

¿Es posible lograrlo, y si es así, cómo?

4voto

timday Puntos 517

Una vez quise hacer esto y corrí la aplicación en una máquina virtual (me gusta VirtualBox) y configuré la instancia del SO huésped para que todo su tráfico fuera completamente enrutado por VPN. Podría decirse que es un poco exagerado, pero significa que te preocupas mucho menos por si todos los paquetes de la aplicación (y cualquier cosa que haya generado) se enrutan como tú quieres. Las funciones de Windows y de carpetas compartidas de las VM modernas permiten que el uso de la aplicación en una VM sea bastante sencillo.

2voto

Steve Scheffler Puntos 1166

La forma más fácil sería usar una VPN que pueda exponerse como un servidor de SOCKS, entonces cualquiera de las herramientas de envoltura de calcetines (por ejemplo, tsocks) podría hacer eso.

De lo contrario, se podría hacer que los iptables lo hicieran usando la marcación de paquetes y luego usando eso para la selección de la ruta.

Si es sólo a un destino específico que se logra fácilmente haciendo que la VPN sólo añada la ruta relevante para eso y no otra.

Por supuesto, si es sólo una aplicación, intentaría que usara SSL para que no se necesitara ninguna VPN.

2voto

Adam Puntos 534

Si la aplicación que necesitas usar sólo se conecta a una dirección específica (por ejemplo: una sesión RDP a una máquina de trabajo), podrías usar la tabla de enrutamiento para forzar el destino de ese tráfico a pasar por el enlace VPN, o usar iptables como se sugiere.

1voto

mortenbpost Puntos 1204

Puedes intentar jugar con los iptables owner si puede hacer que la aplicación en cuestión se ejecute como un usuario particular ( man iptables buscar owner y piense en lo que puede hacer a partir de eso, no tengo la solución lista, ni recuerdo la sintaxis más allá de lo que usa --uid-owner opción de línea de comando).

La solución propuesta por timday (hacer que la aplicación se ejecute en la instancia de invitados con openvz, xen o virtualbox) también debería funcionar, pero si se puede ir a por ello, probablemente se pueda restringir el proceso en cuestión a un usuario concreto.

0voto

Gerald Combs Puntos 4598

Si estás usando IPSEC deberías poder añadir una política de seguridad que coincida con un puerto TCP o UDP específico. Para Xubuntu tendrías que instalar las herramientas ipsec y poner algo como

spdadd 10.1.1.0/24 10.2.2.0/24[4000] tcp -P in ipsec esp/tunnel//require;

en /etc/ipsec-tools.conf. El ejemplo anterior (totalmente inventado, sin probar) fuerza el tráfico al puerto TCP 4000 a través de la VPN.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: