¿Cómo iniciar y conectar automáticamente OpenVPN en Windows 10?

15

El inicio de Windows 10 parece ser extraño, o al menos nuevo. Muchos programas no se inician automáticamente como lo hicieron en versiones anteriores, y muchas personas se preguntan cómo hacer que las cosas se inicien automáticamente. Lo sé, porque estoy constantemente buscando iniciar automáticamente mis programas a los que estoy acostumbrado.

¿Cómo puedo hacer que OpenVPN se inicie en el arranque, evitar el acceso a Internet hasta que esté conectado e iniciar sesión automáticamente en un perfil de OVPN?

Ya tengo las credenciales guardadas en un archivo de texto, por lo que OpenVPN solo necesita cargar el archivo, procesarlo y conectarse.

Solía ​​tener esto funcionando en Windows 7, pero parece que he olvidado cómo hacerlo,

YetAnotherRandomUser
fuente
La forma en que configura una aplicación para que se inicie, cuando un usuario inicia sesión en su perfil, no ha cambiado desde que se lanzó Windows XP. ¿Qué has probado específicamente? Actualiza tu pregunta.
Ramhound

Respuestas:

28

La mejor manera es usar los servicios:

  1. Instale el servicio OpenVPN cuando instale el cliente;
  2. Coloque sus perfiles OpenVPN (con la extensión .ovpn, no .conf como es común en Linux) en el subdirectorio config del directorio de instalación de OpenVPN, probablemente C:\Program Files\OpenVPN\config.
  3. Abra la consola de servicios ( services.msc);
  4. Busque OpenVPNService, haga clic derecho sobre él, Propiedades, y cambie el tipo de inicio de "Manual" a "Automático".
  5. Inicie el servicio, y OpenVPN encontrará y se conectará a los perfiles en cualquier archivo .ovpn. Tenga en cuenta que en la mayoría de las situaciones necesita una interfaz TUN / TAP por archivo de conexión. En Windows, recomiendo asociar permanentemente una interfaz con su conexión utilizando los archivos de configuración: dev-node TAP_Servobliga a OpenVPN a vincular la conexión a la interfaz de red llamada "Tap_Serv".

Es posible que desee investigar si hay una manera de elaborar una lista blanca para obligar al servicio a conectarse solo a archivos específicos, y no a todos. He tenido algunos problemas en el pasado con personas que necesitaban tener un servidor VPN como servicio más varios archivos de cliente vpn en la misma máquina que solo se conectan de vez en cuando. En esas situaciones, si quería que la interfaz gráfica de usuario de OpenVPN les mostrara una lista preciosa de conexiones disponibles, significaba que el servicio veía esos archivos e intentaba conectarse a ellos automáticamente. En esos casos, decidí no utilizar los servicios en absoluto:

Si el uso de un servicio no es una opción, puede pasar argumentos adicionales de la línea de comandos a la invocación de la GUI de OpenVPN para que se conecte automáticamente al inicio (además de mostrar el icono de la bandeja como de costumbre):

openvpn-gui.exe --connect myprofile.ovpn

Para que eso se ejecute cuando inicie sesión, coloque dicho acceso directo en la carpeta de inicio habitual. (Para todos los usuarios, %ProgramData%\Microsoft\Windows\Start Menu\Programs\Startupo solo para el usuario actual,. %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup)


No sé cómo evitar que el usuario se conecte a Internet antes de configurar la VPN. La única forma en que puedo averiguarlo es a través del Firewall de Windows, y no soy un experto en ese tema. Si desea evitar que un usuario avanzado pueda acceder a Internet, necesita un firewall en su puerta de enlace para evitarlo, o políticas de grupo sólidas para evitar la escala de privilegios.

Para un usuario normal, puede configurar la máquina cliente de Windows sin una puerta de enlace predeterminada. Establezca una ruta estática persistente para el servidor VPN en clientes Windows utilizando el siguiente comando (-P lo hace persistente):

route -P add <target> mask <netmask> <gateway IP> metric <metric cost> if <interface>

Las rutas en Windows se almacenan bajo la siguiente clave de registro:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes

En este punto, un cliente desconectado solo tiene acceso al servidor VPN. Luego puede agregar las siguientes líneas en el archivo de configuración del servidor VPN para agregar rutas en los clientes cuando se conectan:

Para configurar el servidor VPN como la puerta de enlace predeterminada:

push "redirect-gateway def1 bypass-dhcp"

Para agregar una ruta específica a través del servidor VPN:

push "route 192.168.1.0 255.255.255.0"

A veces, el empuje de ruta no funciona en Windows. Cuando esto me sucede, desinstalo completamente OpenVPN y sus interfaces de Windows, reinicio el sistema e instalo la última versión del software. Luego, antes de establecer la primera conexión, reinicio Windows. Esto siempre ha resuelto los problemas, sin embargo, la actualización de aniversario de Windows 10 (1607) tiene errores con OpenVPN. Hay un enlace a una discusión más profunda en los foros de OpenVPN:

Problemas de conexión con la actualización de aniversario de Windows 10

Tenga esto en cuenta cuando configure sus clientes Windows 10 OpenVPN.

DGoiko
fuente
Puede usar el comando de ruta para forzar todo el tráfico a través de la VPN. Ver comentum.com/route.html
Jeff F.
Me considero un usuario avanzado, pero me gustaría poder configurarlo para usuarios que no sean usuarios avanzados y que también funcione a la perfección. No necesito evitar que otros usuarios avanzados jueguen.
YetAnotherRandomUser
"El servicio OpenVPN buscará en el directorio de configuración y se conectará a cada perfil VPN que esté almacenado aquí". Ese no parece ser el caso. Parece ser que se conecta con el primero, cuando se ordenan alfabéticamente. ¿Se puede vincular a la documentación? No puedo encontrar una sección que cubra eso.
YetAnotherRandomUser
Hola dan La mayor parte de mi experiencia proviene de servidores OpenVPN en CentOS, y cada vez que almaceno varios archivos de servidor, los ejecuta a todos. Realizaré una prueba para determinar si el comportamiento con los archivos del cliente es el mismo, pero no tengo ninguna razón para pensar que será diferente. Lo siento si te engañé, informaré lo antes posible (estoy en el trabajo en este momento, ya sea cuando tengo algo de tiempo libre o después del trabajo, lo comprobaré en una máquina con Windows).
DGoiko
1
También Taskschd.mscse puede usar el Programador de tareas (<kbd> tecla de Windows </kbd> + <kbd> R </kbd>, escriba y presione <kbd> Enter </kbd>).
user598527