Configurer un VPN strongSwan pour les connexions IKEv2 avec authentification par certificat P2S – Linux
Cet article vous aide à vous connecter à votre réseau virtuel Azure en utilisant un VPN point à site (P2S) de passerelle VPN et l’authentification par certificat depuis un client Ubuntu Linux avec strongSwan.
Avant de commencer
Avant de commencer, vérifiez que vous êtes sur le bon article. Le tableau suivant présente les articles de configuration disponibles pour les clients VPN P2S de la passerelle Azure VPN. Les étapes diffèrent selon le type d’authentification, le type de tunnel et le système d’exploitation client.
Authentification | Type de tunnel | Système d’exploitation client | Client VPN |
---|---|---|---|
Certificat | |||
IKEv2, SSTP | Windows | Client VPN natif | |
IKEv2 | macOS | Client VPN natif | |
IKEv2 | Linux | strongSwan | |
OpenVPN | Windows | Client VPN Azure Version 2.x du client OpenVPN Version 3.x du client OpenVPN |
|
OpenVPN | macOS | Client OpenVPN | |
OpenVPN | iOS | Client OpenVPN | |
OpenVPN | Linux | Client VPN Azure Client OpenVPN |
|
Microsoft Entra ID | |||
OpenVPN | Windows | Client VPN Azure | |
OpenVPN | macOS | Client VPN Azure | |
OpenVPN | Linux | Client VPN Azure |
Prérequis
Cet article suppose que vous avez déjà effectué les étapes prérequises suivantes :
- La passerelle VPN est configurée pour l’authentification par certificat point à site et le type de tunnel IKEv2. Pour connaître les étapes, consultez Configurer les paramètres du serveur pour les connexions de passerelle VPN P2S – Authentification par certificat.
- Les fichiers de configuration du profil de client VPN ont été générés et sont disponibles. Consultez Générer les fichiers de configuration de profil de client VPN pour découvrir les étapes nécessaires.
Exigences relatives aux connexions
Pour se connecter à Azure en utilisant le client strongSwan et l’authentification par certificat via un type de tunnel IKEv2, chaque client qui se connecte a besoin des éléments suivants :
- Chaque client doit être configuré pour utiliser strongSwan.
- Le client doit disposer les certificats appropriés installés localement.
Workflow
Le workflow de cet article est le suivant :
- Installer strongSwan.
- Visualiser les fichiers de configuration de profil du client VPN contenus dans le package de configuration de profil du client VPN que vous avez généré.
- Rechercher les certificats clients nécessaires.
- Configurer strongSwan.
- Connexion à Azure.
À propos des certificats
Pour l’authentification par certificat, un certificat client doit être installé sur chaque ordinateur client. Le certificat client que vous souhaitez utiliser doit être exporté avec la clé privée et contenir tous les certificats dans le chemin de certification. En outre, pour certaines configurations, vous devez également installer les informations de certificat racine.
Pour plus d’informations sur les certificats pour Linux, consultez les articles suivants :
Installer strongSwan
La configuration suivante a été utilisée lors de la spécification des commandes :
- Ordinateur : Ubuntu Server 18.04
- Dépendances : strongSwan
Utilisez les commandes suivantes pour installer la configuration strongSwan requise :
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
Visualiser les fichiers de configuration de profil de client VPN
Quand vous générez un package de configuration de profil de client VPN, tous les paramètres de configuration nécessaires pour les clients VPN sont contenus dans un fichier zip de configuration de profil de client VPN. Les fichiers de configuration de profil de client VPN sont spécifiques à la configuration de la passerelle VPN P2S pour le réseau virtuel. Si des modifications ont été apportées à la configuration du VPN P2S après avoir généré les fichiers (modifications apportées au type de protocole VPN ou au type d’authentification, par exemple), vous devez générer les nouveaux fichiers de configuration du profil du client VPN et appliquer la nouvelle configuration à tous les clients VPN que vous souhaitez connecter.
Localisez et décompressez le package de configuration de profil de client VPN que vous avez généré et téléchargé. Vous trouverez toutes les informations nécessaires pour la configuration dans le dossier Générique. Azure ne fournit pas de fichier mobileconfig pour cette configuration.
Si vous ne voyez pas le dossier Générique, vérifiez les éléments suivants, puis générez à nouveau le fichier zip.
- Vérifiez le type de tunnel adapté à votre configuration. Il est probable qu’IKEv2 ne soit pas sélectionné en tant que type de tunnel.
- Sur la passerelle VPN, vérifiez que la référence SKU n’est pas De base. La référence SKU de base de passerelle VPN ne prend pas en charge IKEv2. Ensuite, sélectionnez IKEv2 et générez à nouveau le fichier zip pour récupérer le dossier Générique.
Ce dossier contient les fichiers suivants :
- Le fichier VpnSettings.xml, qui contient d’importants paramètres tels que l’adresse et le type de tunnel du serveur.
- Le fichier VpnServerRoot.cer, qui contient le certificat racine requis pour valider la passerelle VPN Azure lors de la configuration de la connexion P2S.
Configurer le client VPN
Après avoir visualisé les fichiers de profil de client VPN, continues avec les étapes que vous voulez utiliser :
Étapes dans l’interface graphique utilisateur
Cette section vous guide tout au long de la configuration à l’aide de l’interface graphique utilisateur strongSwan. Les instructions suivantes ont été créées sur Ubuntu 18.0.4. Ubuntu 16.0.10 ne prend pas en charge l’interface graphique utilisateur strongSwan. Si vous souhaitez utiliser Ubuntu 16.0.10, vous devez utiliser la ligne de commande. Selon votre version de Linux et strongSwan, les exemples suivants peuvent ne pas correspondre aux écrans que vous voyez.
Ouvrez le Terminal pour installer strongSwan et son gestionnaire de réseau en exécutant la commande dans l’exemple.
sudo apt install network-manager-strongswan
Sélectionnez Paramètres, puis Réseau. Sélectionnez le bouton + pour créer une connexion.
Sélectionnez IPsec/IKEv2 (strongSwan) dans le menu, puis double-cliquez dessus.
Dans la page Ajouter un VPN, ajoutez un nom pour votre connexion VPN.
Ouvrez le fichier VpnSettings.xml à partir du dossier Générique contenu dans les fichiers de configuration du profil du client VPN téléchargé. Recherchez la balise appelée VpnServer et copiez le nom, en commençant par « azuregateway » et en terminant par « .cloudapp.net ».
Collez le nom dans le champ Adresse de votre nouvelle connexion VPN sous la section Passerelle. Ensuite, sélectionnez l’icône du dossier à la fin du champ Certificat, accédez au dossier Générique, puis sélectionnez le fichier VpnServerRoot.
Dans la section Client de la connexion, pour Authentification, sélectionnez Certificat/clé privée. Pour Certificat et Clé privée, choisissez le certificat et la clé privée qui ont été créés précédemment. Dans Options, sélectionnez Demander une adresse IP interne. Sélectionnez ensuite Ajouter.
Activez la connexion.
Étapes dans l’interface CLI
Cette section vous guide tout au long de la configuration à l’aide de l’interface CLI strongSwan.
À partir des fichiers de configuration du profil du client VPN Générique, copiez ou déplacez le fichier VpnServerRoot.cer dans /etc/ipsec.d/cacerts.
Copiez ou déplacez les fichiers que vous avez générés vers /etc/ipsec.d/certs et /etc/ipsec.d/private/ respectivement. Ces fichiers sont le certificat client et la clé privée, ils doivent se trouver dans leurs répertoires correspondants. Utilisez les commandes suivantes :
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
Exécutez la commande suivante pour prendre note de votre nom d’hôte. Vous utiliserez cette valeur à l'étape suivante.
hostnamectl --static
Ouvrez le fichier VpnSettings.xml et copiez la valeur
<VpnServer>
. Vous utiliserez cette valeur à l'étape suivante.Ajustez les valeurs de l’exemple suivant, puis ajoutez l’exemple à la configuration /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
Ajoutez les valeurs secrètes à /etc/ipsec.secrets.
Le nom du fichier PEM doit correspondre à celui que vous avez utilisé précédemment pour le fichier de clé du client.
: RSA ${USERNAME}Key.pem # Replace ${USERNAME}Key.pem with the key filename inside /etc/ipsec.d/private directory.
Exécutez les commandes suivantes :
sudo ipsec restart sudo ipsec up azure
Étapes suivantes
Pour d’autres étapes supplémentaires, revenez à l’article Portail Azure P2S.