Tener una Red Privada Virtual (VPN) es imprescindible en esta era de tecnología. Las VPN se han vuelto cada vez más cruciales tanto para uso personal como, especialmente, para empresas y corporaciones. Y si aún estás decidiendo en qué solución VPN apostar, ¿por qué no considerar OpenConnect VPN?
OpenConnect VPN es una solución VPN gratuita con rendimiento y características de grado empresarial. Y en este tutorial, aprenderás cómo configurar y conectarte al Servidor OpenConnect VPN (ocserv).
Sigue leyendo y mantén alejadas a las entidades maliciosas de tu red.
Prerrequisitos
Este tutorial incluye demostraciones prácticas. Para seguir, asegúrate de tener lo siguiente en su lugar:
- A Linux server running Debian- This tutorial uses a Debian 11 Bullseye with hostname ocserv-debian.
- Un usuario administrativo o un usuario no root con privilegios de sudo/root.
- A domain name pointed to your Linux server IP address – This tutorial uses a domain name vpn.atadomain.io.
- A client machine like Windows 10 or Linux Desktop – This tutorial uses a Windows 10 machine.
Instalación del Servidor VPN OpenConnect
El Servidor VPN OpenConnect es un servidor VPN de código abierto basado en SSL para Linux, disponible en la mayoría de las distribuciones de Linux, como Debian, Ubuntu, RHEL/CentOS y Fedora.
El Servidor VPN OpenConnect es compatible con la mayoría de los clientes, desde equipos de escritorio hasta dispositivos móviles (Android e iOS). Asimismo, el Servidor VPN OpenConnect admite múltiples sistemas de autenticación, como Radius, OpenID, Kerberos y Tarjeta Inteligente.
Pero antes de aprovechar estas funciones, primero debes instalar el Servidor VPN OpenConnect, de la siguiente manera:
1. Conéctate a tu servidor SSH y ejecuta el siguiente comando apt update
para actualizar y refrescar el índice de paquetes. Este comando asegura que tengas la información de paquetes más reciente.

2. A continuación, ejecuta el siguiente comando apt install
para instalar el paquete ocserv
.
Una vez que la instalación esté completa, el nuevo servicio systemd llamado ocserv
estará arriba y

3. Ahora, ejecuta los siguientes comandos systemctl
para asegurarte de que el servicio ocserv
esté en ejecución.
Como puedes ver en la salida, el estado del servicio ocserv
está habilitado y en ejecución.

Generación de Certificados SSL/TLS
Con el servidor VPN OpenConnect instalado, el siguiente paso es asegurarte de que puedas conectar de forma segura al servidor VPN OpenConnect. ¿Cómo? El primer paso es generar certificados SSL/TLS a través de Certbot y LetsEncrypt.
Pero antes de generar certificados, asegúrate de tener una dirección de correo electrónico para registrarte en LetsEncrypt y de que el nombre de dominio esté apuntando a la dirección IP del servidor Debian.
Para generar certificados SSL/TLS:
1. Ejecuta el siguiente comando para instalar certbot
en tu servidor Linux.

2. A continuación, ejecuta el comando certbot
a continuación para generar certificados SSL/TLS. Asegúrate de cambiar la dirección de correo electrónico ([email protected]
) y el nombre de dominio (vpn.atadomain.io
) según corresponda.

3. Por último, ejecuta el siguiente comando para verificar que los certificados SSL/TLS generados existan en el directorio de tu dominio.
Si tienes éxito, verás las claves pública (fullchain.pem) y privada (privkey.pem), como se muestra a continuación.

Configuración del servidor VPN OpenConnect
Incluso con los certificados SSL/TSL a tu disposición, permanecerán inactivos a menos que configures el servidor VPN OpenConnect. Modificarás la configuración predeterminada del servidor VPN OpenConnect (/etc/ocserv/ocserv.conf) de la siguiente manera:
- Cambia el método de autenticación predeterminado.
- Deshabilita UDP en el servidor VPN OpenConnect.
- Cambia los certificados SSL/TLS predeterminados.
- Configuración del nombre de dominio y una red interna o dirección IP para los clientes.
Para configurar el servidor VPN OpenConnect, sigue los pasos a continuación:
1. Primero, ejecuta el comando cp
a continuación para hacer una copia de seguridad de la configuración predeterminada del servidor OpenConnect VPN (ocserv.conf
) en ocserv.conf.orig
almacenado en el directorio /etc/ocserv
.
2. A continuación, abre la configuración del servidor OpenConnect VPN (/etc/ocserv/ocserv.conf) con tu editor preferido.
3. Cambia el valor del parámetro auth
a plain[passwd=/etc/ocserv/ocpasswd]
, como se muestra a continuación. Esto reemplaza la autenticación predeterminada con el archivo de contraseñas Módulos de Autenticación Enchufables (PAM).
auth = "plain[passwd=/etc/ocserv/ocpasswd]"

4. Ahora, coloca #
al principio del parámetro udp-port
para deshabilitar las conexiones UDP predeterminadas.
Usarás OpenConnect VPN en modo solo TCP, lo que puede aumentar la velocidad a través de los parámetros del kernel.
tcp-port = 443
#udp-port = 443

5. Reemplaza la ruta del archivo de certificado en el parámetro server-cert
con la clave pública y el parámetro server-key
con la clave privada.
server-cert = /etc/letsencrypt/live/vpn.atadomain.io/fullchain.pem
server-key = /etc/letsencrypt/live/vpn.atadomain.io/privkey.pem

6. Cambia el valor del parámetro try-mtu-discovery
a true
para habilitar el descubrimiento de MTU. Al hacerlo, se aumenta la velocidad y el rendimiento del Servidor VPN OpenConnect.
try-mtu-discovery = true

7. A continuación, introduce el nombre de dominio del Servidor VPN OpenConnect en el parámetro default-domain
, y cambia la dirección IP interna predeterminada en el parámetro ipv4-network
.
En este ejemplo, los clientes VPN utilizarán la red interna 10.11.0.0/24
.
default-domain = vpn.atadomain.io
ipv4-network = 10.11.0.0

8. Comenta los parámetros route
predeterminados agregando el carácter #
al inicio de cada línea para deshabilitar la puerta de enlace de ruta predeterminada. Una vez terminado, guarda el archivo y sal del editor.
#route = 10.0.0.0/8
#route = 172.16.0.0/12
#route = 192.168.0.0/16
#route = fd00::/8
#route = default

9. Ahora, ejecuta los siguientes comandos para restart
ear el servicio ocserv
, aplicar los cambios y listar todos los puertos abiertos (ss
) en tu sistema.
Si el Servidor VPN OpenConnect está en ejecución, verás el puerto 443 en estado LISTEN y utilizado por el servicio ocserv, como se muestra a continuación.

Agregar Usuarios al Servidor VPN OpenConnect
Con el servidor VPN OpenConnect configurado, necesitas una forma de conectarte a él. ¿Cómo? Creando y añadiendo un usuario VPN al servidor VPN OpenConnect.
Para agregar un usuario al servidor VPN OpenConnect, creará un usuario VPN y generará un archivo de contraseña a través de la utilidad ocpasswd
de la siguiente manera:
Ejecute el siguiente comando ocpasswd
a continuación para crear un nuevo usuario. Cuando se le solicite, ingrese una nueva contraseña para el usuario y repítala. La elección de este tutorial para el nombre de usuario es atauser
, pero puedes proporcionar el tuyo propio.
Una vez creado el usuario, también se creará el archivo de contraseña (/etc/ocserv/ocpasswd
).

Ahora, ejecute el siguiente comando cat
para verificar los detalles del archivo de contraseña (/etc/ocserv/ocpasswd
).

Agregando Reglas de Firewall UFW a Puertos Cruciales Abiertos
En un sistema Debian, el firewall predeterminado es IPTables, que requiere un entendimiento profundo de redes para configurar. ¿Por qué no simplificar el proceso? En este tutorial, instalará y configurará UFW como el firewall predeterminado.
1. Ejecute el siguiente comando para instalar
UFW mientras acepta automáticamente todas las solicitudes (-y
)

2. Una vez instalado UFW, ejecute los siguientes comandos ufw
para abrir puertos cruciales para que el servidor VPN OpenConnect funcione correctamente.
Cuando se le solicite, ingrese Y y presione Enter para proceder con la operación, como se muestra a continuación.

3. Por último, ejecute el siguiente comando para verificar el estado de UFW y asegurarse de que UFW esté en ejecución.
La salida a continuación muestra el estado activo de UFW y todas las reglas de firewall agregadas.

Habilitar el reenvío de puertos
Con un servidor VPN en funcionamiento, debe dirigir el tráfico desde el mundo exterior a su servidor habilitando el reenvío de puertos. Permitirá el reenvío de puertos en su servidor Debian a través de los parámetros del kernel.
Para habilitar el reenvío de puertos, siga estos pasos:
Ejecute el siguiente comando, que no produce salida en la terminal, pero crea un nuevo archivo llamado /etc/sysctl.d/60-ocserv.conf
. Este archivo contiene parámetros del kernel para habilitar el reenvío de puertos en su sistema.
Ahora, ejecute el comando sysctl
a continuación para aplicar los nuevos parámetros del kernel y habilitar el reenvío de puertos.

Configuración de NAT con UFW
Habilitar el reenvío de puertos es solo uno de los primeros pasos a seguir. Esta vez, debe asegurarse de que los clientes de VPN puedan conectarse a Internet o a redes específicas a través del Servidor VPN OpenConnect. ¿Cómo? Configurando NAT a través de UFW.
Para configurar NAT con UFW para el servidor VPN OpenConnect:
1. Ejecute el siguiente comando para verificar la lista de interfaces en su sistema.
En este ejemplo, la interfaz eth1 será la puerta de enlace NAT para los clientes VPN.

2. A continuación, abra la configuración de UFW (/etc/ufw/before.rules) usando su editor preferido y agregue las siguientes líneas antes de la opción *filter
. Estas configuraciones harán NAT a los usuarios de VPN (especificar interfaz de salida) o red interna a la interfaz eth1
.
Asegúrese de cambiar la subred (10.11.0.0/24
) con las redes de sus clientes de VPN y la interfaz (eth1
) con su interfaz de red.
# NAT para el servidor VPN OpenConnect
# con la red del cliente 10.11.0.0/24
# a la interfaz eth1
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.11.0.0/24 -o eth1 -j MASQUERADE
COMMIT

3. Agregue las siguientes líneas debajo de la sección ok icmp code for FORWARD
de las opciones ufw-before-forward
, guarde el archivo y salga del editor.
Estas configuraciones habilitan el reenvío (origen y destino) de la red del cliente VPN.
# permitir reenvío de red de cliente VPN
-A ufw-before-forward -s 10.11.0.0/24 -j ACCEPT
-A ufw-before-forward -d 10.11.0.0/24 -j ACCEPT

4. Una vez guardado, ejecute el siguiente comando para recargar las reglas de UFW y reiniciar el servicio UFW. Al hacerlo, se asegura que la configuración NAT se aplicará al sistema.
5. Por último, ejecute el siguiente comando iptables
para verificar el estado NAT en UFW ya que el backend de UFW es IPTables.
Cuando sea exitoso, recibirá una salida como la que se muestra a continuación.

Conectándose al servidor VPN OpenConnect a través de OpenConnect-GUI
A continuación, siguiendo las instrucciones, deberías tener un servidor VPN OpenConnect completamente funcional en ejecución. Pero después de todo el trabajo duro, ha llegado el momento de la verdad.
El servidor VPN OpenConnect puede estar en funcionamiento, pero solo hay una mejor manera de verificarlo: conectándose al servidor VPN OpenConnect.
Para conectarse al servidor VPN OpenConnect, debes instalar la aplicación OpenConnect-GUI:
1. Abre tu navegador web favorito y visita la página de GitHub de OpenConnect-GUI.
2. A continuación, descarga e instala la aplicación OpenConnect VPN para Windows.

3. Abre el cliente VPN OpenConnect-GUI y haz clic en el menú Archivo → Perfiles → Nuevo perfil (avanzado) (o presiona Ctrl+Shift+N). Aparecerá una pequeña ventana donde podrás completar los detalles del nuevo perfil (paso cuatro).

4. Ahora, completa la información del perfil VPN con lo siguiente:
- Nombre – Proporciona un nombre de conexión (por ejemplo, testvpn).
- Puerta de enlace – Especifica el nombre de dominio de tu servidor VPN OpenConnect (por ejemplo, https://vpn.atadomain.io).
- Usuario – El usuario añadido (atauser) al servidor VPN OpenConnect.
Una vez completado, haz clic en Guardar para confirmar la información y crear el perfil VPN.

5. A continuación, configura tu perfil de VPN recién creado (testvpn) como el Servidor y haz clic en Conectar para establecer una conexión con el servidor de VPN OpenConnect.

6. Cuando se te solicite, ingresa la Contraseña de tu usuario de VPN y haz clic en OK.

7. Una vez conectado, el color del candado cambiará a verde, como se muestra a continuación.

8. Por último, haz clic en la pestaña Información de VPN para obtener detalles sobre el estado de la conexión. Deberías ver la dirección IP interna que obtuviste del servidor VPN, el servidor DNS y la versión de TLS que estás utilizando.

Conclusión
A lo largo de este tutorial, has aprendido a configurar el servidor VPN OpenConnect. Al mismo tiempo, has aprendido a utilizar certificados SSL/TSL y agregar reglas de firewall para establecer una conexión segura con el servidor de VPN OpenConnect.
Con este conocimiento recién adquirido, ¿por qué no integrar el servidor VPN OpenConnect con múltiples sistemas de autenticación, como Radius y OpenID? ¿O agregar una capa de seguridad para la autenticación del cliente a través de autenticación de dos factores?