Conexión al servidor de acceso con Linux
Elección del software cliente
La conexión al servidor de acceso OpenVPN desde Linux requiere un programa cliente. Este capturará el tráfico que se desea enviar a través del túnel OpenVPN, encriptándolo y pasándolo al servidor OpenVPN. Y por supuesto, a la inversa, para desencriptar el tráfico de retorno.
Paquetes Linux discutidos
Servidor de acceso OpenVPN | openvpn-as |
OpenVPN 3 Linux Client | openvpn3 |
OpenVPN open source | openvpn |
Cliente Linux OpenVPN 3
El proyecto OpenVPN 3 Linux es un nuevo cliente construido sobre la librería principal de OpenVPN 3. Este cliente es el programa oficial OpenVPN Linux Client. Puede encontrar un resumen de las características, las preguntas más frecuentes y las instrucciones para instalar el paquete openvpn3 en nuestro sitio de OpenVPN 3 para Linux.
Después de seguir las instrucciones allí para instalar el cliente, necesitará un perfil de conexión. Este es un archivo generado por la instalación de su servidor de acceso OpenVPN para su cuenta de usuario específica. Contiene los certificados necesarios y la configuración de la conexión. Vaya a la interfaz web del cliente de su servidor de acceso (la dirección principal, no la parte /admin). Inicie sesión con sus credenciales de usuario. Se le mostrará una lista de archivos disponibles para descargar. Elija el perfil bloqueado por el usuario o el perfil de inicio de sesión automático, y se le enviará un archivo client.ovpn. Guarde este archivo en su sistema operativo Linux.
Una vez que haya trasladado el archivo a su sistema Linux, puede importarlo.
openvpn3 config-import --config ${client.ovpn}
Puede iniciar una nueva sesión VPN:
openvpn3 session-start --config ${client.ovpn}
Puede gestionar una sesión VPN en curso:
openvpn3 sessions-list
Y así sucesivamente. Puede encontrar más detalles aquí: OpenVPN3Linux.
Programa CLI OpenVPN de código abierto
El programa cliente del proyecto de código abierto también puede conectarse al servidor de acceso. El paquete está disponible en la mayoría de las distribuciones y se conoce simplemente como openvpn. Soporta la opción de conectarse a múltiples servidores OpenVPN simultáneamente, y viene con un componente de servicio que puede iniciar automática y silenciosamente cualquier perfil de inicio de sesión automático que encuentre en la carpeta /etc/openvpn, incluso antes de que un usuario haya iniciado la sesión. Este componente de servicio puede configurarse para que se inicie automáticamente en el momento del arranque con las herramientas disponibles en su distribución de Linux si es compatible. En Ubuntu y Debian, cuando se instala el paquete openvpn, se configura automáticamente para que se inicie en el momento del arranque.
Para instalar el cliente OpenVPN en Linux, es posible en muchos casos utilizar simplemente la versión que se encuentra en el repositorio de software de la propia distribución de Linux. Si se encuentra con algún problema de conectividad al utilizar un software obsoleto, puede deberse a una posible falta de soporte para versiones superiores de TLS en versiones antiguas de OpenVPN. Siga las instrucciones que se encuentran en la wiki de la comunidad openvpn de código abierto si desea instalar el cliente OpenVPN en su sistema Linux.
Después de la instalación, necesitará un perfil de conexión. Se trata de un archivo generado por la instalación del servidor de acceso OpenVPN para su cuenta de usuario específica. Contiene los certificados necesarios y la configuración de la conexión. Vaya a la interfaz web del cliente de su servidor de acceso (la dirección principal, no la parte /admin). Inicie sesión con sus credenciales de usuario. Se le mostrará una lista de archivos disponibles para su descarga. Elija el perfil bloqueado por el usuario o el perfil de inicio de sesión automático, y se le enviará un archivo client.ovpn. Guarde este archivo en algún lugar de su sistema operativo Linux. El servidor de acceso de OpenVPN admite perfiles de bloqueo del servidor, de usuario y de inicio de sesión automático, pero el cliente de línea de comandos de OpenVPN sólo puede conectarse con perfiles de conexión de usuario o de inicio de sesión automático.
Suponemos que va a iniciar la conexión a través de la línea de comandos como usuario root o a través del demonio de servicio. Si desea que los usuarios sin privilegios puedan realizar una conexión, eche un vistazo a la wiki de la comunidad para obtener más información sobre cómo implementarla. Aquí vamos a centrarnos en la implementación más sencilla; ejecutar la conexión como usuario root directamente, o a través del demonio de servicio.
Iniciar una conexión con un perfil de auto-login manualmente:
openvpn --config client.ovpn
Iniciar una conexión con un perfil de usuario bloqueado manualmente:
openvpn --config client.ovpn --auth-user-pass
Si utilizas Google Authenticator u otro factor de autenticación extra, añade el parámetro auth-retry:
openvpn --config client.ovpn --auth-user-pass --auth-retry interact
Para iniciar una conexión auto-login a través del demonio de servicio, coloca client.ovpn en /etc/openvpn/ y renombre el archivo. Debe terminar con .conf como extensión de archivo. Asegúrese de que el demonio de servicio está habilitado para ejecutarse después de un reinicio, y luego simplemente reinicie el sistema. El perfil de tipo auto-login será recogido automáticamente y la conexión se iniciará sola. Puede verificar esto comprobando la salida del comando ifconfig; debería ver un adaptador de red tun0 en la lista.
Una característica importante que falta con el cliente de línea de comandos es la capacidad de implementar automáticamente los servidores DNS que son empujados por el servidor VPN. Es posible, pero requiere instalar un programa de gestión de DNS como resolvconf u openresolv, y puede o no chocar con el software de gestión de red existente en su sistema operativo. La idea aquí, sin embargo, es que utilices un script que se ejecute cuando la conexión suba, y cuando baje, que utilice resolvconf u openresolv para implementar los servidores DNS por ti. La razón por la que este cliente no es capaz de gestionarlo completamente por sí mismo es principalmente porque en un sistema operativo como Windows, Macintosh, Android o iOS, ya existe un método único establecido para manejar la gestión de DNS. Por lo tanto, es fácil para nosotros crear un cliente de software para esos sistemas operativos que ya sabe cómo manejar el DNS. Pero Linux está disponible en muchas variantes y también soporta diferentes programas y métodos de implementación de servidores DNS, por lo que era razonable dejar el soporte DNS incorporado fuera del programa OpenVPN y en su lugar proporcionar, cuando sea posible, un script que maneje la implementación de DNS. Tal script podría incluso ser escrito por usted mismo para hacer cualquier tarea necesaria para implementar los servidores DNS en su situación única.
Afortunadamente en Ubuntu y Debian, por ejemplo, existe el script /etc/openvpn/update-resolv-conf que viene con el paquete openvpn que maneja la implementación de DNS para estos sistemas operativos. Sólo tiene que activar el uso de estos siguiendo las instrucciones:
Abra su archivo client.ovpn en un editor de texto:
nano client.ovpn
Al final simplemente añada estas líneas:
script-security 2up /etc/openvpn/update-resolv-confdown /etc/openvpn/update-resolv-conf
La primera línea habilita el uso de scripts externos para manejar las tareas de implementación de DNS. Las líneas de subida y bajada están ahí para implementar los servidores DNS empujados por el servidor VPN cuando la conexión sube, y después para deshacerlo, cuando la conexión baja.
Programa de gestión de red de Ubuntu
También existe la opción de conectarse a través de la GUI usando la extensión openvpn para el plugin de gestión de red de Gnome. Pero esto es actualmente un poco complicado de configurar. Existe, por ejemplo, la suposición incorrecta de que todas las VPNs serán capaces de redirigir el tráfico de Internet, y las versiones más antiguas podrían no entender el formato de archivo .ovpn, lo que requeriría dividir el certificado incrustado en él en un archivo separado. Además, es probable que tengas que indagar en las opciones para asegurarte de que la ruta de tráfico de Internet que pasa por el servidor VPN no esté siempre activada por defecto, especialmente en el caso de los servidores en los que sólo das acceso a algunos recursos internos, y no a todo Internet. Sin embargo, la ventaja de usar el componente GUI es que puedes iniciar/detener la conexión desde el entorno de escritorio en Linux.