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:
- El VPN Gateway está configurado para la autenticación de certificados punto a sitio y el tipo de túnel IKEv2. Consulta Configuración de la configuración del servidor para conexiones de VPN Gateway P2S: autenticación de certificados para conocer los pasos.
- Los archivos de configuración del perfil de cliente VPN se han generado y están disponibles. Consulte Generación de los archivos de configuración del perfil del cliente VPN para conocer los pasos.
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:
- Instalación de strongSwan
- 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ó.
- Busque los certificados de cliente necesarios.
- Configure strongSwan.
- 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.
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
Seleccione Configuración y, a continuación, seleccione Red. Seleccione el botón + para crear una conexión.
Seleccione IPsec/IKEv2 (strongSwan) en el menú y haga doble clic.
En la página Add VPN (Agregar VPN), agregue un nombre para la conexión VPN.
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".
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.
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.
Ajuste la conexión en Activado.
Pasos de la CLI
En esta sección se describe la configuración con la CLI de strongSwan.
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.
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
Ejecute el comando siguiente para tomar nota del nombre de host. Usará este valor en el paso siguiente.
hostnamectl --static
Abra el archivo VpnSettings.xml y copie el valor
<VpnServer>
. Usará este valor en el paso siguiente.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
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.
Ejecute los comandos siguientes:
sudo ipsec restart sudo ipsec up azure
Pasos siguientes
Para más pasos, vuelva al artículo P2S Azure portal.