Compartir por


Configurar VPN strongSwan para conexiones IKEv2 con autenticación de certificado P2S - Linux

Este artículo le ayuda a conectarse a su red virtual Azure (VNet) utilizando VPN Gateway punto a sitio (P2S) VPN y Autenticación de certificado desde un cliente Ubuntu Linux utilizando strongSwan.

Antes de empezar

Antes de empezar, compruebe que está en el artículo correcto. En la tabla siguiente se muestran los artículos de configuración disponibles para los clientes VPN de punto a sitio de Azure VPN Gateway. Los pasos difieren en función del tipo de autenticación, el tipo de túnel y el sistema operativo del cliente.

Authentication Tipo de túnel Sistema operativo del cliente Cliente de VPN
Certificate
IKEv2, SSTP Windows Cliente VPN nativo
IKEv2 macOS Cliente VPN nativo
IKEv2 Linux strongSwan
OpenVPN Windows Cliente VPN de Azure
Versión 2.x del cliente de OpenVPN
Versión 3.x del cliente de OpenVPN
OpenVPN macOS Cliente OpenVPN
OpenVPN iOS Cliente OpenVPN
OpenVPN Linux Cliente VPN de Azure
Cliente OpenVPN
Microsoft Entra ID
OpenVPN Windows Cliente VPN de Azure
OpenVPN macOS Cliente VPN de Azure
OpenVPN Linux Cliente VPN de Azure

Requisitos previos

En este artículo se supone que ya has realizado los siguientes requisitos previos:

Requisitos de la conexión

Para conectarse a Azure mediante el cliente strongSwan y la autenticación de certificados mediante el tipo de túnel IKEv2, cada cliente de conexión requiere los siguientes elementos:

  • Cada cliente debe configurarse para usar strongSwan.
  • El cliente debe tener instalados localmente los certificados correctos.

Flujo de trabajo

El flujo de trabajo de este artículo es:

  1. Instalación de strongSwan
  2. Vea los archivos de configuración del perfil de cliente VPN incluidos en el paquete de configuración del perfil de cliente VPN que generó.
  3. Busque los certificados de cliente necesarios.
  4. Configure strongSwan.
  5. Conéctese a Azure.

Información acerca de los certificados

Para la autenticación de certificados, se debe instalar un certificado de cliente en cada equipo cliente. El certificado de cliente que quiere usar debe exportarse con la clave privada y contener todos los certificados de la ruta de acceso de certificación. Además, para algunas configuraciones, también tendrá que instalar la información del certificado raíz.

Para obtener más información sobre los certificados para Linux, consulte los siguientes artículos:

Instalación de strongSwan

Se usó la siguiente configuración al especificar comandos:

  • Equipo: Ubuntu Server 18.04
  • Dependencias: strongSwan

Ejecute los comandos siguientes para instalar la configuración necesaria de strongSwan:

sudo apt-get update
sudo apt-get upgrade
sudo apt install strongswan
sudo apt install strongswan-pki
sudo apt install libstrongswan-extra-plugins
sudo apt install libtss2-tcti-tabrmd0

Vista de los archivos de configuración del perfil del cliente VPN

Cuando se genera un paquete de configuración del perfil de cliente VPN, todos los ajustes de configuración necesarios para los clientes VPN están contenidos en un archivo zip de configuración del perfil de cliente VPN. Los archivos de configuración de perfil del cliente VPN son específicos de la configuración de puerta de enlace VPN de punto a sitio para la red virtual. Si se produce algún cambio en la configuración de VPN de punto a sitio después de generar los archivos (por ejemplo, cambios en el tipo de protocolo VPN o en el tipo de autenticación), debe generar archivos de configuración de perfil de cliente VPN nuevos y aplicar la nueva configuración a todos los clientes VPN que quiera conectar.

Localice y descomprima el paquete de configuración del perfil de cliente VPN que generó y descargó. Puede encontrar toda la información que necesita para la configuración en la carpeta Genérico. Azure no proporciona un archivo mobileconfig para esta configuración.

Si no aparece la carpeta Generic, compruebe los elementos siguientes y vuelva a generar el archivo ZIP.

  • Compruebe el tipo de túnel para la configuración. Es probable que IKEv2 no se haya seleccionado como tipo de túnel.
  • En la puerta de enlace de VPN, compruebe que la SKU no sea Básica. La SKU básica de VPN Gateway no admite IKEv2. Luego, seleccione IKEv2 y vuelva a generar el archivo ZIP para recuperar la carpeta Genérico.

que son los archivos siguientes:

  • VpnSettings.xml, con configuración importante, como el tipo de túnel y la dirección del servidor.
  • VpnServerRoot.cer, que contiene el certificado raíz necesario para validar la puerta de enlace de VPN de Azure durante la configuración de la conexión de punto a sitio.

Configuración del cliente VPN

Después de ver los archivos del perfil del cliente VPN, continúe con los pasos que desee utilizar:

Pasos de interfaz gráfica de usuario

En esta sección se describe la configuración con la GUI de strongSwan. Las siguientes instrucciones se crearon en Ubuntu 18.0.4. Ubuntu 16.0.10 no admite la GUI de strongSwan. Si quiere usar Ubuntu 16.0.10, deberá usar la línea de comandos. Los ejemplos siguientes pueden no coincidir con las pantallas que vea, en función de la versión de Linux y strongSwan que tenga.

  1. Abra la herramienta Terminal para instalar strongSwan y su Network Manager (Administrador de red) ejecutando el comando del ejemplo.

    sudo apt install network-manager-strongswan
    
  2. Seleccione Configuración y, a continuación, seleccione Red. Seleccione el botón + para crear una conexión.

    Captura de pantalla que muestra la página Conexiones de red.

  3. Seleccione IPsec/IKEv2 (strongSwan) en el menú y haga doble clic.

    Captura de pantalla que muestra la página para agregar VPN.

  4. En la página Add VPN (Agregar VPN), agregue un nombre para la conexión VPN.

    Captura de pantalla que muestra la opción de elegir un tipo de conexión.

  5. Abra el archivo VpnSettings.xml de la carpeta Generic incluida en los archivos de configuración del perfil del cliente VPN descargados. Busque la etiqueta denominada VpnServer y copie el nombre, que comienza con "azuregateway" y termina con ".cloudapp.net".

    Captura de pantalla que muestra la opción de copiar datos.

  6. Pegue este nombre en el campo Address (Dirección) de la nueva conexión VPN de la sección Gateway (Puerta de enlace). Luego, seleccione el icono de carpeta al final del campo Certificate (Certificado), vaya a la carpeta Generic (Genérico) y seleccione el archivo VpnServerRoot.

  7. En la sección Client (Cliente) de la conexión, para Authentication (Autenticación), seleccione Certificate/private key (Certificado/clave privada). En Certificate (Certificado) y Private key (Clave privada), elija el certificado y la clave privada que se crearon anteriormente. En Options (Opciones), seleccione Request an inner IP address (Solicitar una dirección IP interna). Después, seleccione Agregar.

    Captura de pantalla que muestra la opción de solicitar una dirección IP interna.

  8. Ajuste la conexión en Activado.

    Captura de pantalla que muestra la opción de copiar.

Pasos de la CLI

En esta sección se describe la configuración con la CLI de strongSwan.

  1. Desde la carpeta Generic de los archivos de configuración del perfil del cliente de VPN, copie o mueva VpnServerRoot.cer a /etc/ipsec.d/cacerts.

  2. Copie o mueva los archivos que generó en /etc/ipsec.d/certs y /etc/ipsec.d/private/ respectivamente. Estos archivos son el certificado de cliente y la clave privada, y deben ubicarse en sus directorios correspondientes. Use los comandos siguientes:

    sudo cp ${USERNAME}Cert.pem /etc/ipsec.d/certs/
    sudo cp ${USERNAME}Key.pem /etc/ipsec.d/private/
    sudo chmod -R go-rwx /etc/ipsec.d/private /etc/ipsec.d/certs
    
  3. Ejecute el comando siguiente para tomar nota del nombre de host. Usará este valor en el paso siguiente.

    hostnamectl --static
    
  4. Abra el archivo VpnSettings.xml y copie el valor <VpnServer>. Usará este valor en el paso siguiente.

  5. Ajuste los valores del ejemplo siguiente y, luego, agregue el ejemplo a la configuración de /etc/ipsec.conf.

    conn azure
          keyexchange=ikev2
          type=tunnel
          leftfirewall=yes
          left=%any
          # Replace ${USERNAME}Cert.pem with the key filename inside /etc/ipsec.d/certs  directory. 
          leftcert=${USERNAME}Cert.pem
          leftauth=pubkey
          leftid=%client # use the hostname of your machine with % character prepended. Example: %client
          right= #Azure VPN gateway address. Example: azuregateway-xxx-xxx.vpn.azure.com
          rightid=% #Azure VPN gateway FQDN with % character prepended. Example: %azuregateway-xxx-xxx.vpn.azure.com
          rightsubnet=0.0.0.0/0
          leftsourceip=%config
          auto=add
          esp=aes256gcm16
    
  6. Agregue los valores secretos a /etc/ipsec.secrets.

    El nombre del archivo PEM debe coincidir con lo que ha usado anteriormente como archivo de claves de cliente.

    : RSA ${USERNAME}Key.pem  # Replace ${USERNAME}Key.pem with the key filename inside /etc/ipsec.d/private directory. 
    
  7. Ejecute los comandos siguientes:

    sudo ipsec restart
    sudo ipsec up azure
    

Pasos siguientes

Para más pasos, vuelva al artículo P2S Azure portal.