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 :

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 :

  1. Installer strongSwan.
  2. 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é.
  3. Rechercher les certificats clients nécessaires.
  4. Configurer strongSwan.
  5. 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.

  1. 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
    
  2. Sélectionnez Paramètres, puis Réseau. Sélectionnez le bouton + pour créer une connexion.

    Capture d’écran montrant la page des connexions réseau.

  3. Sélectionnez IPsec/IKEv2 (strongSwan) dans le menu, puis double-cliquez dessus.

    Capture d’écran montrant la page Ajouter un VPN.

  4. Dans la page Ajouter un VPN, ajoutez un nom pour votre connexion VPN.

    Capture d’écran montrant Choisir un type de connexion.

  5. 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 ».

    Capture d’écran montre la copie de données.

  6. 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.

  7. 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.

    Capture d’écran montrant Demander une adresse IP interne.

  8. Activez la connexion.

    Capture d’écran montrant la copie.

Étapes dans l’interface CLI

Cette section vous guide tout au long de la configuration à l’aide de l’interface CLI strongSwan.

  1. À 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.

  2. 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
    
  3. Exécutez la commande suivante pour prendre note de votre nom d’hôte. Vous utiliserez cette valeur à l'étape suivante.

    hostnamectl --static
    
  4. Ouvrez le fichier VpnSettings.xml et copiez la valeur <VpnServer>. Vous utiliserez cette valeur à l'étape suivante.

  5. 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
    
  6. 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. 
    
  7. 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.