Configurar un servidor VPN de Linux con OpenVPN – Guía paso a paso

VPN significa Red Privada Virtual, por sus siglas en inglés. Uno de estos software VPN de código abierto es OpenVPN y puede funcionar como un servidor VPN de Linux.

En un nivel básico, una VPN asegura las conexiones creando una conexión segura punto a punto. Usar una buena VPN para Linux es una de las mejores formas de permanecer seguro a través de Internet o una red abierta.

En este tutorial, te mostraremos cómo configurar tu propio servidor VPN Linux utilizando OpenVPN. Convierte tu VPS en una increíble medida de seguridad.

Por qué usar un servidor VPN de Linux

Una VPN brinda diferentes beneficios. Algunos de estos se destacan a continuación:

  • Seguridad: una VPN proporciona una protección mejor y más sólida ya que todos los datos están encriptados. Esto otorga seguridad adicional, en comparación con los firewalls.
  • Acceso remoto: para garantizar una alta seguridad, muchas organizaciones, oficinas gubernamentales y de defensa permiten el acceso remoto solo a través de su VPN.
  • Cifrado de ISP: ISP significa proveedor de servicios de Internet. Si utilizas una conexión Wi-Fi pública, el ISP puede leer todos tus datos no cifrados. Al usar una VPN, puedes mantener tus datos seguros y encriptados al no permitir que ni siquiera el ISP los lea.
  • Anonimato: una VPN permite a los usuarios mantener el anonimato mientras navegan por Internet. Las IP no son rastreables.
  • Cambio de IP: Configurar una VPN permite a los usuarios cambiar sus IP y navegar de forma segura. Esto, en ciertos casos, se usa en regiones que tienen restricciones basadas en la ubicación.
  • Desbloquea sitios web: ciertos sitios web están bloqueados en algunas regiones geográficas. Una VPN mantiene el anonimato y, por lo tanto, se usa comúnmente para evitar la censura de Internet y desbloquear sitios web.
  • Regulación: ciertos ISP reducen el ancho de banda del usuario en función del contenido. Tal estrangulamiento puede evitarse utilizando una VPN.

En un nivel superior, una VPN hace que tus transacciones sean seguras mediante el cifrado.

Después de mostrarte algunos de los beneficios de una VPN, te mostraremos a continuación cómo configurar e instalar el software OpenVPN en Linux. Cubriremos la configuración de un servidor VPN de Linux usando OpenVPN y te explicaremos cómo conectarlo a Windows, Android y otros dispositivos.

Prerrequisitos:

  1. Debes tener acceso root o privilegios sudo.
  2. No debes tener OpenVPN preinstalado.
  3. El firewall debe permitir el tráfico TCP sobre el puerto 943 y el tráfico UDP sobre el puerto 1194. Recomendamos usar UFW. Consulta nuestro tutorial sobre UFW para aprender todo lo que necesitas.

Configurar un servidor VPN de Linux con el servidor de acceso OpenVPN

Primero, vamos a actualizar el sistema. Si usas CentOS:

yum -y update

Si usas Ubuntu o Debian, actualiza los índices usando:

sudo apt update

Para instalar OpenVPN, necesitarás un paquete de herramientas de red. Instálalo si no lo tienes preinstalado. El paquete net-tools contiene ifcfg, herramienta necesaria para la instalación del servidor OpenVPN.

Puedes instalar esto en CentOS usando:

sudo yum install net-tools

En Ubuntu y Debian, puedes usar el siguiente comando:

sudo apt install net-tools

Puedes descargar un cliente OpenVPN para tu versión desde el sitio web de OpenVPN. Puedes obtener el enlace desde aquí y usarlo junto con el comando curl. Un ejemplo del comando curl en Ubuntu es el que se muestra a continuación:

curl -O http://swupdate.openvpn.org/as/openvpn-as-2.5.2-Debian9.amd_64.deb

En CentOS, el comando curl sería:

curl -O http://swupdate.openvpn.org/as/openvpn-as-2.7.3-CentOS7.x86_64.rpm

Así puedes agregar la URL a tu versión. Para validar que se descargue la instalación correcta, imprime la suma de verificación SHA256. Puedes usar el siguiente comando:

sha256sum openvpn-as-*

Esto imprimirá la suma de verificación como se muestra a continuación:

6354ac41be811829e60b028d3a7a527e839232d7f782c1d29bb4d8bd32bf24d5  openvpn-as-2.7.3-CentOS7.x86_64.rpm

Puedes comparar la suma de comprobación de este número binario descargado con la proporcionada en el sitio web. Si la suma de comprobación coincide, instala el binario descargado previamente.

Para instalar en CentOS usa:

sudo rpm --install openvpn-as-*.rpm

Del mismo modo, en Ubuntu y Debian puedes ingresar el siguiente comando en la línea de comando:

sudo dpkg -i openvpn-as-*.deb

La instalación tomará un poco de tiempo. Una vez que se complete, se te mostrarán los detalles de la IU de administrador y la IU del cliente. Por defecto, se creará un usuario openvpn durante esta instalación. Puedes establecer la contraseña para este usuario usando:

passwd openvpn

Esto establecerá tu nueva contraseña. Recuerda la contraseña, ya que se utilizará para iniciar sesión. Usa la URL de administrador para iniciar sesión y finalizar el proceso de instalación. En nuestro caso, la URL del administrador es: https://31.220.111.160:943/admin. Normalmente, la URL es simplemente tu dirección VPS, el puerto :943 con /admin al final, como en el ejemplo.

Se abrirá la siguiente pantalla:

Abrir la pantalla de inicio de sesión del cliente administrador VPN

El nombre de usuario, como se mencionó anteriormente, es openvpn y la contraseña es la que acabas de configurar para este usuario.

Una vez que inicies sesión, podrás ver una página de Términos y condiciones. Léelo y presiona el botón Aceptar para continuar. La siguiente página te proporcionará detalles sobre la configuración y te indicará el estado del servidor.

La configuración predeterminada es lo suficientemente buena y permite que MacOS, Linux, Windows, Android e iOS se conecten al servidor VPN de Linux.

En caso de que desees cambiar alguna configuración, asegúrate de hacer clic en Aplicar y actualizar el servidor en ejecución para habilitar los cambios.

Esto completa la instalación predeterminada. A continuación, sigamos en el camino de aprender sobre cómo configurar un VPN, pasemos a configurar el túnel OpenVPN.

Configurar un servidor Linux VPS con OpenVPN para hacer túneles

Habilita el reenvío de IP en tu núcleo mediante el siguiente comando:

echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.d/99-sysctl.conf

Esto permite el reenvío de tráfico a través de IPv4. Para aplicar estos cambios, usa el siguiente comando:

sudo sysctl -p

OpenVPN no admite túneles simultáneos sobre IPv6 e IPv4, por lo que puedes deshabilitar IPv6 usando:

sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1

Para inhabilitar IPv6 manualmente, agrega los siguientes parámetros de configuración para el arranque. Estos parámetros deben agregarse al archivo 99-sysctl.conf ubicado en /etc/sysctl.d/. Simplemente use el comando cd para acceder a la carpeta y usa tu editor de texto preferido para editar el archivo. ¡Recuerda guardar los cambios realizados!

net.ipv6.conf.all.disable_ipv6 = 1 
net.ipv6.conf.default.disable_ipv6 = 1 
net.ipv6.conf.lo.disable_ipv6 = 1 
net.ipv6.conf.eth0.disable_ipv6 = 1

A continuación, puedes activar la nueva configuración utilizando:

sysctl -p

A continuación, en los hosts de archivos ubicados en /etc/ comenta la línea de resolución IPv6 como se muestra a continuación:

#::1     localhost ip6-localhost ip6-loopback

Con esto, habrás deshabilitado IPv6. A continuación, vuelve a iniciar sesión en la URL del servidor de administración y ve a la configuración de VPN.

Pestaña de configuración del cliente web OpenVPN

En la sección de Routing, en la opción Should VPN clients have access to private subnets (non-public networks on the server side)? (¿Deben los clientes VPN tener acceso a subredes privadas (redes no públicas en el lado del servidor)?) debe seleccionarse No.

Ejemplos de configuración de enrutamiento en el cliente web openVPN

En la opción Should client Internet traffic be routed through the VPN? (¿Se debe enrutar el tráfico de Internet del cliente a través de la VPN?) debe seleccionarse en .

Ejemplo de configuración del cliente web OpenVPN

Para evitar cualquier fuga de DNS, modifica la configuración de resolución de DNS. Ubica en si la opción Have clients to use the same DNS servers as the Access Server host

Sección de configuración de DNS de OpenVPN

Guarda esta configuración y no olvides hacer clic en Update Running Server. Puedes reiniciar el servidor OpenVPN utilizando la pestaña Status de la Consola del administrador. Desde aquí, puedes detener el servidor y luego volver a iniciarlo.

Panel de administración principal de OpenVPN

Esto completa la configuración para el servidor OpenVPN. A continuación, puedes verificar las instalaciones del cliente.

Cómo conectar tu servidor VPN de Linux a otros dispositivos con OpenVPN

Ahora que tu servidor está en funcionamiento, ¡puedes conectarle algunos dispositivos! A continuación cubriremos las opciones de sistema operativo más populares:

Cómo instalar y conectar el cliente OpenVPN para Windows

Abre la URL del cliente OpenVPN, podrás mostrar enlaces a descargas de clientes para diferentes sistemas operativos.

Elige la versión de Windows y ejecuta la instalación.

Una vez que se complete la instalación, se te solicitará el nombre de usuario y la contraseña de OpenVPN. La IP del servidor se completará automáticamente.

Puedes usar el icono de OpenVPN de tu barra de tareas de Windows para desconectar, volver a conectar y ver el estado de la conexión.

Cómo instalar y conectar el cliente OpenVPN para MacOS

Conéctate a la interfaz de usuario del cliente OpenVPN y haz clic en el enlace para descargar el software OpenVPN para MacOS. Una vez descargado este paquete, se abrirá una ventana con el ícono del paquete instalador.

Sigue el procedimiento estándar de instalación de aplicaciones en MacOS.

Haz doble clic en el icono del instalador y haz clic en Open para ejecutar la instalación.

Una vez que se complete la instalación, podrás ver el icono de OpenVPN en tu barra de tareas de MacOS. Puedes hacer clic derecho en dicho icono para ver las diferentes opciones. Desde aquí puedes conectarte a OpenVPN.

Una vez hagas clic en la opción Connect to, verás una ventana emergente que te solicitará el nombre de usuario y la contraseña de OpenVPN. Aquí debes ingresar las credenciales y hacer clic en Connect para establecer la conexión del servidor VPN de Linux.

Cómo instalar y conectar el cliente OpenVPN para Linux

La instalación del cliente para Linux es ligeramente diferente. Descarga e instala el software de cliente OpenVPN en CentOS utilizando el siguiente comando:

sudo yum install OpenVPN

Del mismo modo, puedes instalar el software de cliente OpenVPN en Debian o Ubuntu usando el siguiente comando:

sudo apt-get install openvpn

Abre la interfaz de usuario del cliente OpenVPN y descarga el perfil apropiado para tu sistema operativo. Alternativamente, puedes usar el comando wget o curl y proporcionar la URL para descargar el software.

Copia el perfil descargado en la ubicación /etc/openvpn y cámbiale el nombre a client.conf. Puedes iniciar el servicio de túnel OpenVPN donde se te solicitará el nombre de usuario y la contraseña. Para comenzar la operación usa:

sudo service openvpn start

Puedes usar ipconfig o ip addr para ver las conexiones de red. Una vez que la interfaz VPN esté disponible, verás una interfaz tun0 agregada a la lista existente que se muestra en la salida.

Cómo instalar y conectar el cliente OpenVPN para Android

Primero, ve a la tienda Google Play y busca OpenVPN Connect. Instala la aplicación OpenVPN Connect.

Una vez abierta, te mostrará tres opciones: Túnel privado, Servidor de acceso y Perfil OVPN.

Selecciona Servidor de acceso y completa todos los detalles manualmente:

  • Título: establece tu nombre preferido para la conexión.
  • Access Server Hostname: la IP de tu servidor VPN de Linux.
  • Puerto: el puerto 934 de tu servidor VPN de Linux.
  • Nombre de usuario: el nombre de usuario configurado en tu servidor openvpn por defecto.
  • Contraseña: la contraseña que configuraste en la consola al configurar el servidor VPN de Linux en el entorno del terminal.

O bien, puedes importar el archivo .ovpn para tu perfil. Puedes obtener el perfil de conexión desde la interfaz de usuario del cliente.

Cómo instalar y conectar el cliente OpenVPN para iOS

Similar a los dispositivos Android, puedes instalar el software OpenVPN desde la App Store.

Completa la instalación y abre la aplicación recién instalada. Te pedirá que completes la información del perfil o que cargues el archivo de perfil, igual que en la versión de Android.

Una vez que lo agregues, puedes comenzar a usar OpenVPN en tu iPhone o iPad.

Configuración de compresión del servidor VPN de Linux

En caso de que estés conectado a la VPN y no puedas navegar por Internet, puedes consultar los registros de OpenVPN en /var/log/openvpnas.log en tu VPS. En caso de que encuentres entradas similares a la que se muestra a continuación, lo más probable es que tengas problemas de compresión:

2019-03-23 18:24:05+0800 [-] OVPN 11 OUT: 'Mon Mar 23 08:59:05 2016 guest/123.45.67.89:55385 Bad compression stub decompression header byte: 251'

Para resolver esto, puedes inhabilitar la compresión. Esto se puede hacer desde la IU de administrador. Abre la IU de administrador y haz clic en Advanced VPN.

Ve a Default Compression Settings (Configuración de compresión predeterminada). Una vez ahí, inhabilita la opción Support compression on client VPN connections (Soporte de compresión en las conexiones VPN del cliente).

Aplica los cambios y haz clic en la opción Actualizar servidor en ejecución. El problema debe resolverse con este cambio.

Agrega usuarios a un servidor VPN de Linux que ejecute OpenVPN

El cliente gratuito de OpenVPN admite dos usuarios. Para crear más usuarios, deberás seleccionar cualquiera de los planes pagos. Puedes agregar usuarios adicionales desde la interfaz de usuario del administrador. Ve a la pestaña de Administración de usuarios y haz clic en el enlace Permisos de usuario.

Ingresa el nuevo nombre de usuario como se muestra a continuación:

Ficha de configuración de permisos de usuario de OpenVPN

Para este nuevo usuario, configura ajustes adicionales haciendo clic en el link Más configuraciones. Ahí podrás configurar la contraseña y otros detalles.

Ficha de configuración avanzada de usuario de OpenVPN

Guarda esta configuración y haz clic en la opción Actualizar servidor en ejecución.

Configura perfiles de inicio de sesión automático para un servidor VPN de Linux con OpenVPN

Con OpenVPN, también puedes configurar tu VPN con perfiles de inicio de sesión automático. Esto hará que todo tu tráfico no local se enrute a través de una VPN automáticamente. En caso de que desees habilitar o deshabilitar manualmente la VPN, puedes usar perfiles bloqueados de usuario o servidor.

Para configurar el inicio de sesión automático, abre la IU de administrador, luego selecciona el enlace Permisos de usuario. Aquí puedes seleccionar la casilla de verificación para Permitir inicio de sesión automático (Allow Auto-login).

Cómo probar un servidor VPN de Linux con OpenVPN

Para probar si OpenVPN funciona como esperabas, conecta el cliente VPN y verifica tu dirección IP. Puedes usar el sitio web de prueba de fugas de DNS desde el navegador. Debería mostrarte la dirección IPv4 del servidor OpenVPN.

A continuación, puedes elegir la prueba extendida. La prueba debería generar las IP para el solucionador DNS que elegiste para tu dispositivo cliente.

También puedes confirmar que el tráfico no utiliza IPv6. Para verificar esto, puedes usar el sitio web de prueba de IPv6. Este debería mostrar nuevamente la IP del servidor y mostrará un mensaje que indica que no se detectó ninguna dirección IPv6.

Conclusión

En este tutorial, aprendiste cómo configurar un servidor VPN de Linux con OpenVPN y cómo conectarlo utilizando varios clientes como Windows, Linux, Android, iPhone o iPad y MacOS.

Ahora que conoces todos los tips básicos, puedes navegar por Internet de manera segura con tu nuevo servidor VPN de Linux. Para obtener más información, puedes leer el manual oficial de OpenVPN, que puedes encontrar en la interfaz de usuario del administrador. Esto completa u primera configuración OpenVPN servidor-cliente.

Author
El autor

Deyimar A.

Deyi es una entusiasta del marketing digital, con experiencia en diseño de páginas web, creación de contenido, copywrite y SEO. Forma parte del equipo de SEO & Localization de Hostinger. En su tiempo libre, le gusta desarrollar proyectos, leer un libro o ver una buena película.