Configuración de OpenVPN como RoadWarrior

En esta entrada vamos a explicar cómo configurar un servidor Zentyal como servidor VPN para clientes de tipo Roadwarrior usando el módulo de [1] OpenVPN.

[1]Módulo OpenVPN: https://doc.zentyal.org/es/vpn.html

Consideraciones

Antes de configurar nuestro servidor VPN, tenemos que tener presentes las siguientes consideraciones:

  • El servidor tiene ya configurado el módulo de Controlador de Dominio [2] , el cual contiene cierta información que usaremos para las pruebas finales del artículo.
  • El puerto usado para el módulo de OpenVPN será 11194/UCP.
  • El rango de red para la VPN será 192.168.199.0/24.
  • La interfaz de red que recibirá las peticiones de la VPN será externa.
  • La red interna que anunciaremos será 192.168.80.0/24.
  • Si el servidor Zentyal está tras un dispositivo como un router, será necesario configurar una regla Port-forwarding en dicho dispositivo.
[2]Controlador de Dominio: https://doc.zentyal.org/es/directory.html

Entorno del laboratorio

El entorno del laboratorio sobre el que haremos las pruebas tiene las siguientes características:

  • Versión → Zentyal 8.0
  • Módulos instalados → Red, Cortafuegos, Logs, NTP, DNS, Controlador de Dominio.
  • Hostname → zentyal
  • Nombre del dominio → zentyal-domain.lan
  • Interfaz de red externa: eth0 → DHCP
  • Interfaz de red interna: eth1 → 192.168.80.10/24
  • Usuarios del dominio → maria
  • Recursos compartidos → accounting
  • Máquinas cliente → Windows 11 y Ubuntu Desktop 22.04

Configuración del servidor Zentyal

A continuación, vamos a instalar y configurar los módulos necesarios en nuestro servidor Zentyal.

Instalación de los módulos necesarios

Lo primero que vamos a hacer es la instalación de los módulos necesarios:

  1. Nos logeamos en el panel de administración del servidor Zentyal, después iremos a Gestión de software -> Componentes de Zentyal, marcamos el módulo VPN y pulsamos sobre en INSTALAR. Como dependencia, se nos instalará también el módulo [3] de CA.
Instalación de los módulos
  1. Una vez terminada la instalación, vamos a Estado de los módulos, seleccionaremos el módulo VPN para habilitarlo, después, guardamos cambios.
Estado de los módulos
[3]Módulo Autoridad de Certificación: https://doc.zentyal.org/es/ca.html

Módulo Autoridad de Certificación

En éste punto vamos a crear nuestra Autoridad de Certificación:

  1. Creamos la Autoridad de Certificación desde Autoridad de certificación -> General.
Creación de la Entidad de Certificación

Creación de la Entidad de Certificación

  1. Una vez guardados los cambios, podremos ver el certificado para la CA desde Lista de Certificados actual, el cual será necesario para crear cualquier certificado que necesite nuestro módulo de OpenVPN.
Certificado para la CA

Certificado para la CA

Advertencia

Todo certificado que expida la CA recién creada no será reconocido por software de terceros como navegadores web o clientes de correo. Esto es debido a que la CA no es oficial. No obstante, el tráfico estará cifrado.

Módulo de Red

El siguiente paso es crear tanto el servicio [4] - protocolo y puerto que usará la VPN - que más tarde habilitaremos en el Cortafuegos así como el objeto de red [5] - red que anunciará el servicio - para nuestro servidor VPN:

  1. Desde Red -> Servicios, pulsamos en AÑADIR NUEVO, rellenamos los campos y pulsamos AÑADIR.
Servicio VPN

Servicio VPN

  1. Ahora lo podremos ver en la lista de servicios, pulsaremos en el botón de Configuración y despueś en AÑADIR NUEVO.
Listado de servicios

Listado de servicios

  1. Configuramos los parámetros necesarios y pulsaremos en AÑADIR. Finalmente guardaremos cambios.
Configuración del servicio VPN

Configuración del servicio VPN

  1. Vamos a Red -> objetos y pulsaremos en AÑADIR NUEVO. Le daremos el nombre InternalNetwork y pulsaremos en AÑADIR. Una vez creado, podremos ver el listado de todos los objetos de red, incluyendo los creados automáticamente por Zentyal cuando creamos nuestro servidor VPN.
Listado de objetos de red

Listado de objetos de red

  1. Pulsamos en el botón Miembros y después en AÑADIR NUEVO. Una vez configurado, guardaremos cambios.
Miembro del objeto de red

Miembro del objeto de red

[4]Servicio del módulo de red: https://doc.zentyal.org/es/abstractions.html#servicios-de-red
[5]Objeto de red del módulo de red: https://doc.zentyal.org/es/abstractions.html#objetos-de-red

Módulo Cortafuegos

Ahora vamos a configurar el cortafuegos [6] para que Zentyal permita el servicio VPN creado anteriormente:

  1. En la sección Cortafuegos -> Filtrado de paquetes seleccionamos Reglas de filtrado desde las redes externas a Zentyal.
Reglas de filtrado desde las redes externas a Zentyal

Reglas de filtrado desde las redes externas a Zentyal

Advertencia

Si la interfaz de red desde donde recibiremos las peticiones de la VPN es interna, la sección del cortafuegos será Reglas de filtrado desde las redes internas a Zentyal.

  1. Pulsamos en AÑADIR NUEVO, configuramos la regla y guardamos cambios:
Configuración del cortafuegos

Configuración del cortafuegos

[6]Módulo de cortafuegos: https://doc.zentyal.org/es/firewall.html

Módulo VPN

Lo siguiente que haremos será crear y configurar nuestra VPN:

  1. Para ello vamos a VPN -> Servidores, pulsamos en AÑADIR NUEVO, le daremos un nombre y finalmente, pulsamos sobre AÑADIR.
Nombre del servidor VPN

Nombre del servidor VPN

  1. La pantalla nos muestra la Lista de servidores.
Lista de servidores VPN

Lista de servidores VPN

  1. Pulsamos sobre el botón Configuración y configuramos la VPN. Vamos a configurar lo siguiente; puerto del servidor y Dirección VPN.
Configuración del servidor VPN
Configuración del servidor VPN

Configuración del servidor VPN

  1. Lo siguiente que haremos será configurar las redes anunciadas que publicará nuestro servidor Zentyal, para conseguirlo, iremos a VPN -> Servidores, localizamos nuestro servidor y pulsamos en el botón Redes anunciadas. Nos aparecerá una lista con las redes anunciadas que incluye los objetos de red creados automáticamente por Zentyal.
Lista de redes anunciadas

Lista de redes anunciadas

  1. Vamos a eliminar las que ha incluido el sistema automáticamente, añadiremos el objeto de red creado anteriormente y guardamos cambios, quedando de la siguiente manera la configuración.
Red interna anunciada

Red interna anunciada

  1. Finalmente, comprobamos desde la línea de comandos el estado del servicio.

    Confirmamos que el módulo está activo:

    sudo zs openvpn status
    
       status module openvpn:                 [ RUNNING ]
    

    Confirmamos que el servicio de la VPN creado también esté activo:

    sudo systemctl status ebox.openvpn.server.vpnserver.service
    
       ebox.openvpn.client.vpnserver.service
       Loaded: loaded (/lib/systemd/system/ebox.openvpn.client.vpnserver.service; static)
       Active: active (running) since Mon 2024-08-29 11:59:11 CEST; 12min ago
       Main PID: 4045 (openvpn)
          Tasks: 1 (limit: 3418)
       Memory: 3.0M
          CPU: 17ms
       CGroup: /system.slice/ebox.openvpn.client.vpnserver.service
                └─4045 /usr/sbin/openvpn --syslog vpnserver --config /etc/openvpn/vpnserver.d/vpnserver.conf
    
       aug 29 11:59:11 zentyal systemd[1]: Started ebox.openvpn.client.vpnserver.service.
    

    Confirmamos la nueva interfaz de red y su configuración:

    ip -4 a
    
       tap0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 1000
          inet 192.168.199.1/24 scope global tap0
             valid_lft forever preferred_lft forever
    

Módulo Registros

Vamos a registrar en el módulo de registros [7] las conexiones recibidas a nuestro servicio.

  1. Habilitamos el módulo de registros en caso de no estarlo desde Estado de los módulos.
  2. Habilitamos el dominio VPN desde Registros -> Configurar los registros y guardamos cambios.
Habilitar registros del servicio VPN.

Habilitar registros del servicio VPN.

[7]Módulo de registros: https://doc.zentyal.org/es/log.html

Configuración del widget de VPN

Finalmente, configuraremos el Dashboard del panel de administración los widgets relativos a la VPN, de forma que podamos ver rápidamente el estado del módulo y los clientes conectados.

  1. En la parte superior derecha pulsamos en el botón Configurar widgets, después, pulsamos sobre la pestaña VPN y finalmente, arrastramos el campo vpnserver hacía el lugar donde queramos que aparezca. Haremos lo mismo para OpenVPN daemons en caso de no estar ya disponible.
Configuración del widget VPN

Configuración del widget VPN

  1. En nuestro caso vamos a moverlo debajo del widget Demonios OpenVPN quedando de la siguiente manera.
Widget VPN

Widget VPN

Configuración del cliente

A continuación se explica la configuración del cliente en dos tipos de sistemas operativos: Windows 11 y Ubuntu Desktop 22.04.

General

Las siguientes acciones se aplican a cualquier cliente.

  1. Desde el módulo Autoridad de Certificación -> General expedimos un nuevo certificado para nuestro cliente:
Certificado del cliente

Certificado del cliente

  1. Una vez expedido, podremos verlo en la lista de certificados.
Listado de certificados

Listado de certificados

3. Ahora nos vamos al módulo VPN -> Servidores y pulsamos el botón Descargar bundle. Rellenamos los campos para el cliente deseado y pulsamos en Descargar.

Bundle del cliente

Bundle del cliente

Advertencia

Para que el cliente pueda conectarse, la dirección IP establecida deberá ser accesible públicamente. Si la IP introducida pertenece al router, será necesario establecer una regla de port-forwarding.

Windows

En nuestro cliente con Windows 11 realizaremos los siguientes pasos:

  1. Copiamos el bundle anteriormente descargado al equipo y lo descomprimimos.
Directorio del bundle

Directorio del bundle

  1. Instalamos el software OpenVPN a través del archivo .msi que incluye el bundle y seguimos el asistente de Windows.
  2. Una vez instalado el software, copiamos el contenido del directorio del bundle a excepción del instalador en la ruta C:\Users\<nuestro_usuario>\OpenVPN\config.
Configuracion del cliente Windows

Configuracion del cliente Windows

Advertencia

Sustituye <nuestro_usuario> por el nombre del usuario de Windows.

  1. Con la configuración establecida en el directorio correcto, procedemos a establecer la conexión VPN desde OpenVPN GUI -> Connect (icono en el escritorio).

  2. Comprobamos - de varias formas - que la conexión se ha establecido con éxito:

    1. Desde la consola de Windows comprobamos la configuración de la interfaz de red OpenVPN:

      ipconfig /all
      
      Unknown adapter OpenVPN TAP-Windows6:
      
         Connection-specific DNS Suffix  . :
         Link-local IPv6 Address . . . . . : fe80::bfa3:9294:2cd9:ba13%6
         IPv4 Address. . . . . . . . . . . : 192.168.199.2
         Subnet Mask . . . . . . . . . . . : 255.255.255.0
         Default Gateway . . . . . . . . . :
      
    2. Desde el log del software OpenVPN desde el cliente Windows:

      2024-08-29 12:16:20 TCP/UDP: Preserving recently used remote address: [AF_INET]88.4.48.189:11194
      2024-08-29 12:16:20 Socket Buffers: R=[65536->65536] S=[65536->65536]
      2024-08-29 12:16:20 UDPv4 link local: (not bound)
      2024-08-29 12:16:20 UDPv4 link remote: [AF_INET]88.4.48.189:11194
      2024-08-29 12:16:20 MANAGEMENT: >STATE:1724933780,WAIT,,,,,,
      2024-08-29 12:16:20 MANAGEMENT: >STATE:1724933780,AUTH,,,,,,
      2024-08-29 12:16:20 TLS: Initial packet from [AF_INET]88.4.48.189:11194, sid=53c13931 236aeeff
      2024-08-29 12:16:20 VERIFY OK: depth=1, C=US, ST=New York, L=New York, O=Zentyal, CN=Zentyal Authority Certificate
      2024-08-29 12:16:20 VERIFY X509NAME OK: C=US, ST=New York, L=New York, O=Zentyal, CN=vpn-vpnserver
      2024-08-29 12:16:20 VERIFY OK: depth=0, C=US, ST=New York, L=New York, O=Zentyal, CN=vpn-vpnserver
      2024-08-29 12:16:20 Control Channel: TLSv1.3, cipher TLSv1.3 TLS_AES_256_GCM_SHA384, peer certificate: 4096 bits RSA, signature: RSA-SHA256, peer temporary key: 253 bits X25519
      2024-08-29 12:16:20 [vpn-vpnserver] Peer Connection Initiated with [AF_INET]88.4.48.189:11194
      2024-08-29 12:16:20 TLS: move_session: dest=TM_ACTIVE src=TM_INITIAL reinit_src=1
      2024-08-29 12:16:20 TLS: tls_multi_process: initial untrusted session promoted to trusted
      2024-08-29 12:16:20 PUSH: Received control message: 'PUSH_REPLY,route 192.168.80.0 255.255.255.0,route-gateway 192.168.199.1,ping 10,ping-restart 120,ifconfig 192.168.199.2 255.255.255.0,peer-id 0,cipher AES-256-GCM'
      2024-08-29 12:16:20 OPTIONS IMPORT: --ifconfig/up options modified
      2024-08-29 12:16:20 OPTIONS IMPORT: route options modified
      2024-08-29 12:16:20 OPTIONS IMPORT: route-related options modified
      2024-08-29 12:16:20 interactive service msg_channel=492
      2024-08-29 12:16:20 ROUTE_GATEWAY 192.168.145.65/255.255.255.0 I=12 HWADDR=08:00:27:60:90:85
      2024-08-29 12:16:20 open_tun
      2024-08-29 12:16:20 tap-windows6 device [OpenVPN TAP-Windows6] opened
      2024-08-29 12:16:20 TAP-Windows Driver Version 9.26
      2024-08-29 12:16:20 Notified TAP-Windows driver to set a DHCP IP/netmask of 192.168.199.2/255.255.255.0 on interface {4B0C40D5-4032-411B-B8A2-18AFE97E859C} [DHCP-serv: 192.168.199.0, lease-time: 31536000]
      2024-08-29 12:16:20 Successful ARP Flush on interface [20] {4B0C40D5-4032-411B-B8A2-18AFE97E859C}
      2024-08-29 12:16:20 MANAGEMENT: >STATE:1724933780,ASSIGN_IP,,192.168.199.2,,,,
      2024-08-29 12:16:20 IPv4 MTU set to 1500 on interface 20 using service
      2024-08-29 12:16:20 Data Channel: cipher 'AES-256-GCM', peer-id: 0, compression: 'lzo'
      2024-08-29 12:16:20 Timers: ping 10, ping-restart 120
      2024-08-29 12:16:20 Protocol options: explicit-exit-notify 3
      2024-08-29 12:16:25 TEST ROUTES: 1/1 succeeded len=1 ret=1 a=0 u/d=up
      2024-08-29 12:16:25 MANAGEMENT: >STATE:1724933785,ADD_ROUTES,,,,,,
      2024-08-29 12:16:25 C:\Windows\system32\route.exe ADD 192.168.80.0 MASK 255.255.255.0 192.168.199.1
      2024-08-29 12:16:25 Route addition via service succeeded
      2024-08-29 12:16:25 Initialization Sequence Completed
      2024-08-29 12:16:25 MANAGEMENT: >STATE:1724933785,CONNECTED,SUCCESS,192.168.199.2,88.4.48.189,11194,,
      
    1. Desde el widget:
    Comprobación desde el widget de Zentyal

    Comprobación desde el widget de Zentyal

    1. Desde el log de Zentyal /var/log/openvpn/vpnserver.log:

      2024-08-29 12:16:16 176.80.48.112:30102 TLS: Initial packet from [AF_INET]176.80.48.112:30102, sid=5a469a39 6fc5cf68
      2024-08-29 12:16:16 176.80.48.112:30102 VERIFY OK: depth=1, C=US, ST=New York, L=New York, O=Zentyal, CN=Zentyal Authority Certificate
      2024-08-29 12:16:16 176.80.48.112:30102 VERIFY OK: depth=0, C=US, ST=New York, L=New York, O=Zentyal, CN=Maria
      2024-08-29 12:16:16 176.80.48.112:30102 peer info: IV_VER=2.6.8
      2024-08-29 12:16:16 176.80.48.112:30102 peer info: IV_PLAT=win
      2024-08-29 12:16:16 176.80.48.112:30102 peer info: IV_TCPNL=1
      2024-08-29 12:16:16 176.80.48.112:30102 peer info: IV_MTU=1600
      2024-08-29 12:16:16 176.80.48.112:30102 peer info: IV_NCP=2
      2024-08-29 12:16:16 176.80.48.112:30102 peer info: IV_CIPHERS=AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305
      2024-08-29 12:16:16 176.80.48.112:30102 peer info: IV_PROTO=990
      2024-08-29 12:16:16 176.80.48.112:30102 peer info: IV_LZ4=1
      2024-08-29 12:16:16 176.80.48.112:30102 peer info: IV_LZ4v2=1
      2024-08-29 12:16:16 176.80.48.112:30102 peer info: IV_LZO=1
      2024-08-29 12:16:16 176.80.48.112:30102 peer info: IV_COMP_STUB=1
      2024-08-29 12:16:16 176.80.48.112:30102 peer info: IV_COMP_STUBv2=1
      2024-08-29 12:16:16 176.80.48.112:30102 peer info: IV_GUI_VER=OpenVPN_GUI_11.46.0.0
      2024-08-29 12:16:16 176.80.48.112:30102 peer info: IV_SSO=openurl,webauth,crtext
      2024-08-29 12:16:16 176.80.48.112:30102 WARNING: 'tun-mtu' is used inconsistently, local='tun-mtu 1532', remote='tun-mtu 1500'
      2024-08-29 12:16:16 176.80.48.112:30102 Control Channel: TLSv1.3, cipher TLSv1.3 TLS_AES_256_GCM_SHA384, peer certificate: 4096 bit RSA, signature: RSA-SHA256
      2024-08-29 12:16:16 176.80.48.112:30102 [Maria] Peer Connection Initiated with [AF_INET]176.80.48.112:30102
      2024-08-29 12:16:16 Maria/176.80.48.112:30102 MULTI_sva: pool returned IPv4=192.168.199.2, IPv6=(Not enabled)
      2024-08-29 12:16:16 Maria/176.80.48.112:30102 Data Channel: using negotiated cipher 'AES-256-GCM'
      2024-08-29 12:16:16 Maria/176.80.48.112:30102 Outgoing Data Channel: Cipher 'AES-256-GCM' initialized with 256 bit key
      2024-08-29 12:16:16 Maria/176.80.48.112:30102 Incoming Data Channel: Cipher 'AES-256-GCM' initialized with 256 bit key
      2024-08-29 12:16:16 Maria/176.80.48.112:30102 SENT CONTROL [Maria]: 'PUSH_REPLY,route 192.168.80.0 255.255.255.0,route-gateway 192.168.199.1,ping 10,ping-restart 120,ifconfig 192.168.199.2 255.255.255.0,peer-id 0,cipher AES-256-GCM' (status=1)
      2024-08-29 12:16:16 Maria/176.80.48.112:30102 MULTI: Learn: 00:ff:4b:0c:40:d5@0 -> Maria/176.80.48.112:30102
      
  3. Finalmente, desde el cliente Windows accedemos a la carpeta personal del usuario del dominio maria y al recurso compartido accounting en la IP interna 192.168.80.10 del servidor Zentyal que ha publicado la conexión VPN.

Acceso desde el cliente Windows a los recursos compartidos del servidor Zentyal

Acceso desde el cliente Windows a los recursos compartidos del servidor Zentyal

Linux

En nuestro cliente con Ubuntu Desktop 22.04 realizaremos los siguientes pasos:

  1. Instalamos el software OpenVPN:

    sudo apt update
    sudo apt install openvpn
    
  2. Creamos el directorio donde se almacenará el contenido del bundle:

    mkdir -v vpn-roadwarrior
    
  3. Copiamos el bundle al equipo y lo descomprimimos:

    tar -xzvf vpnserver-client-Maria.tar.gz -C vpn-roadwarrior/
    
  4. Nos ubicamos en el directorio que contiene los archivos de configuramos:

    cd vpn-roadwarrior/
    
  5. Establecemos la conexión VPN:

    sudo openvpn --config vpnserver-client.conf
    
       Fri Aug 30 13:27:21 2024 OpenVPN 2.4.12 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on Jun 27 2024
       Fri Aug 30 13:27:21 2024 library versions: OpenSSL 1.1.1f  31 Mar 2020, LZO 2.10
       Fri Aug 30 13:27:21 2024 TCP/UDP: Preserving recently used remote address: [AF_INET]88.4.48.189:11194
       Fri Aug 30 13:27:21 2024 Socket Buffers: R=[212992->212992] S=[212992->212992]
       Fri Aug 30 13:27:21 2024 UDP link local: (not bound)
       Fri Aug 30 13:27:21 2024 UDP link remote: [AF_INET]88.4.48.189:11194
       Fri Aug 30 13:27:21 2024 TLS: Initial packet from [AF_INET]88.4.48.189:11194, sid=40b2b72c 6fc01b2e
       Fri Aug 30 13:27:21 2024 VERIFY OK: depth=1, C=US, ST=New York, L=New York, O=Zentyal, CN=Zentyal Authority Certificate
       Fri Aug 30 13:27:21 2024 VERIFY X509NAME OK: C=US, ST=New York, L=New York, O=Zentyal, CN=vpn-vpnserver
       Fri Aug 30 13:27:21 2024 VERIFY OK: depth=0, C=US, ST=New York, L=New York, O=Zentyal, CN=vpn-vpnserver
       Fri Aug 30 13:27:21 2024 Control Channel: TLSv1.3, cipher TLSv1.3 TLS_AES_256_GCM_SHA384, 4096 bit RSA
       Fri Aug 30 13:27:21 2024 [vpn-vpnserver] Peer Connection Initiated with [AF_INET]88.4.48.189:11194
       Fri Aug 30 13:27:22 2024 SENT CONTROL [vpn-vpnserver]: 'PUSH_REQUEST' (status=1)
       Fri Aug 30 13:27:22 2024 PUSH: Received control message: 'PUSH_REPLY,route 192.168.80.0 255.255.255.0,route-gateway 192.168.199.1,ping 10,ping-restart 120,ifconfig 192.168.199.2 255.255.255.0,peer-id 0,cipher AES-256-GCM'
       Fri Aug 30 13:27:22 2024 OPTIONS IMPORT: timers and/or timeouts modified
       Fri Aug 30 13:27:22 2024 OPTIONS IMPORT: --ifconfig/up options modified
       Fri Aug 30 13:27:22 2024 OPTIONS IMPORT: route options modified
       Fri Aug 30 13:27:22 2024 OPTIONS IMPORT: route-related options modified
       Fri Aug 30 13:27:22 2024 OPTIONS IMPORT: peer-id set
       Fri Aug 30 13:27:22 2024 OPTIONS IMPORT: adjusting link_mtu to 1657
       Fri Aug 30 13:27:22 2024 OPTIONS IMPORT: data channel crypto options modified
       Fri Aug 30 13:27:22 2024 Data Channel: using negotiated cipher 'AES-256-GCM'
       Fri Aug 30 13:27:22 2024 Outgoing Data Channel: Cipher 'AES-256-GCM' initialized with 256 bit key
       Fri Aug 30 13:27:22 2024 Incoming Data Channel: Cipher 'AES-256-GCM' initialized with 256 bit key
       Fri Aug 30 13:27:22 2024 ROUTE_GATEWAY 192.168.145.65/255.255.255.0 IFACE=enp0s3 HWADDR=08:00:27:28:ca:15
       Fri Aug 30 13:27:22 2024 TUN/TAP device tap0 opened
       Fri Aug 30 13:27:22 2024 TUN/TAP TX queue length set to 100
       Fri Aug 30 13:27:22 2024 /sbin/ip link set dev tap0 up mtu 1500
       Fri Aug 30 13:27:22 2024 /sbin/ip addr add dev tap0 192.168.199.2/24 broadcast 192.168.199.255
       Fri Aug 30 13:27:22 2024 /sbin/ip route add 192.168.80.0/24 via 192.168.199.1
       Fri Aug 30 13:27:22 2024 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
       Fri Aug 30 13:27:22 2024 Initialization Sequence Completed
    

    Advertencia

    Si cerramos la terminal donde hemos iniciado la conexión, la conexión se perderá.

  6. Comprobamos - de varias formas - que la conexión se ha establecido con éxito:

    1. Desde la consola comprobamos que la interfaz de red está configurada:

      ip -4 a
      
         tap0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100
            inet 192.168.199.2/24 brd 192.168.199.255 scope global tap0
               valid_lft forever preferred_lft forever
      
    2. Desde el widget:

    Comprobación desde el widget de Zentyal

    Comprobación desde el widget de Zentyal

    1. Desde el log de Zentyal /var/log/openvpn/vpnserver.log:

      2024-08-29 13:46:34 176.80.48.112:30047 TLS: Initial packet from [AF_INET]176.80.48.112:30047, sid=b6c8eb84 da892ea7
      2024-08-29 13:46:34 176.80.48.112:30047 VERIFY OK: depth=1, C=US, ST=New York, L=New York, O=Zentyal, CN=Zentyal Authority Certificate
      2024-08-29 13:46:34 176.80.48.112:30047 VERIFY OK: depth=0, C=US, ST=New York, L=New York, O=Zentyal, CN=Maria
      2024-08-29 13:46:34 176.80.48.112:30047 peer info: IV_VER=2.4.12
      2024-08-29 13:46:34 176.80.48.112:30047 peer info: IV_PLAT=linux
      2024-08-29 13:46:34 176.80.48.112:30047 peer info: IV_PROTO=2
      2024-08-29 13:46:34 176.80.48.112:30047 peer info: IV_NCP=2
      2024-08-29 13:46:34 176.80.48.112:30047 peer info: IV_CIPHERS=AES-256-GCM:AES-128-GCM:AES-256-CBC
      2024-08-29 13:46:34 176.80.48.112:30047 peer info: IV_LZ4=1
      2024-08-29 13:46:34 176.80.48.112:30047 peer info: IV_LZ4v2=1
      2024-08-29 13:46:34 176.80.48.112:30047 peer info: IV_LZO=1
      2024-08-29 13:46:34 176.80.48.112:30047 peer info: IV_COMP_STUB=1
      2024-08-29 13:46:34 176.80.48.112:30047 peer info: IV_COMP_STUBv2=1
      2024-08-29 13:46:34 176.80.48.112:30047 peer info: IV_TCPNL=1
      2024-08-29 13:46:34 176.80.48.112:30047 Control Channel: TLSv1.3, cipher TLSv1.3 TLS_AES_256_GCM_SHA384, peer certificate: 4096 bit RSA, signature: RSA-SHA256
      2024-08-29 13:46:34 176.80.48.112:30047 [Maria] Peer Connection Initiated with [AF_INET]176.80.48.112:30047
      2024-08-29 13:46:34 Maria/176.80.48.112:30047 MULTI_sva: pool returned IPv4=192.168.199.2, IPv6=(Not enabled)
      2024-08-29 13:46:34 Maria/176.80.48.112:30047 Data Channel: using negotiated cipher 'AES-256-GCM'
      2024-08-29 13:46:34 Maria/176.80.48.112:30047 Outgoing Data Channel: Cipher 'AES-256-GCM' initialized with 256 bit key
      2024-08-29 13:46:34 Maria/176.80.48.112:30047 Incoming Data Channel: Cipher 'AES-256-GCM' initialized with 256 bit key
      2024-08-29 13:46:35 Maria/176.80.48.112:30047 PUSH: Received control message: 'PUSH_REQUEST'
      2024-08-29 13:46:35 Maria/176.80.48.112:30047 SENT CONTROL [Maria]: 'PUSH_REPLY,route 192.168.80.0 255.255.255.0,route-gateway 192.168.199.1,ping 10,ping-restart 120,ifconfig 192.168.199.2 255.255.255.0,peer-id 0,cipher AES-256-GCM' (status=1)
      2024-08-29 13:46:35 Maria/176.80.48.112:30047 MULTI: Learn: f2:c5:27:c4:d0:3c@0 -> Maria/176.80.48.112:30047
      
  1. Finalmente, desde el cliente GNU/Linux accedemos a la carpeta personal del usuario del dominio maria y al recurso compartido accounting en la IP interna 192.168.80.10 del servidor Zentyal que ha publicado la conexión VPN.
Acceso desde el cliente GNU/Linux a los recursos compartidos del servidor Zentyal

Acceso desde el cliente GNU/Linux a los recursos compartidos del servidor Zentyal