De Azure-Connect on-premises à Azure avec VPN

Posté le : 27/04/2021

Partager

Partie 1

De Azure-Connect on-premises à Azure avec VPN

vpn azure point à site

 

Un réseau privé virtuel (VPN) est un type de réseau privé interconnecté. 

Les VPN sont généralement déployés pour connecter deux ou plusieurs réseaux privés de confiance sur un réseau non fiable (sur Internet). 

Le trafic est crypté lorsqu’il circule sur le réseau non fiable afin d’empêcher l’écoute clandestine ou d’autres attaques. 

Vous pouvez envisager les trois types de passerelles ci-dessous lors de la conception de votre réseau hybride : 

  • VPN point à site (PàS) : permet aux ordinateurs clients locaux de se connecter à distance à votre réseau dans Azure à l’aide des protocoles IPSec/OpenVPN/SSTP. 
  • VPN site à site (SàS) : permet de connecter vos réseaux sur site à Azure via des dispositifs VPN dédiés, ou de connecter plusieurs réseaux virtuels dans Azure. Protocoles pris en charge : IPSec/IKE 
  • Azure ExpressRoute : connectez vos réseaux sur site à Azure via un réseau privé. Cela signifie que votre trafic ne passera pas par Internet. 

Dans cette première partie, nous aborderons le VPN Point à Site.

Introduction

Le VPN Point à site vous permet de vous connecter à partir d’un seul ordinateur, de n’importe où, à tout ce qui se trouve dans votre réseau virtuel. 

Dans le cadre de la configuration Point à site, vous installez un certificat et un pack de configuration client VPN, qui contient les paramètres permettant à votre ordinateur de se connecter à toute machine virtuelle ou instance de rôle au sein du réseau virtuel. C’est parfait lorsque vous souhaitez vous connecter à un réseau virtuel, mais que vous ne vous trouvez pas sur place. 

 Voici quelques caractéristiques de ce type de VPN :

 

  Point à site 

 

Services pris en charge par Azure                   Services de Cloud et machines virtuelles 
Bande passante typique  Dépend du SKU de la passerelle VPN 
Protocoles pris en charge  SSTP, OpenVPN et IPsec 
Routage  Basé sur les routes (dynamique) 
Résilience de la connexion  Active-passive 
Cas d’utilisation  Accès sécurisé aux réseaux virtuels Azure pour les utilisateurs distants 
Prix  Prix 

 

Par défaut, cette passerelle VPN est déployée en deux instances dans une configuration active/passive, même si vous ne voyez qu’une seule ressource de passerelle VPN dans Azure. 

Lorsque la maintenance planifiée ou la perturbation non planifiée affecte l’instance active, l’instance passive prend automatiquement en charge les connexions sans aucune intervention de l’utilisateur. 

Si vous avez besoin d’une configuration HA, vous pouvez envisager une configuration VPN active/active supportée par le VPN site à site ou Azure ExpressRoute.

 

Point à site VPN

Approvisionnement des ressources Azure à l'aide de Terraform

  • main.tf : créer un réseau virtuel, trois sous-réseaux et une passerelle de réseau virtuel 

 

  • vm.tf : créer deux machines virtuelles situées dans FrontendSubnet et BackendSubnet. Nous testerons la connexion à ces vms depuis l’ordinateur local une fois le VPN configuré

Créer des certificats pour l'authentification VPN

Pour que les connexions VPN de votre ordinateur local soient authentifiées et permettent d’accéder à votre réseau virtuel dans Azure, vous devez créer deux certificats : un certificat racine qui sera déclaré à votre passerelle de réseau virtuel dans Azure, et un certificat client stocké dans votre ordinateur local qui sera signé avec le certificat racine. 

Windows

  • Créer le certificat racine auto-signé en utilisant Powershell :

code windows powershell

Ouvrez le gestionnaire de certificats (certmgr), allez dans Personnel > Certificats. Sélectionnez le certificat P2SRootCert, puis exportez-le au format .CER (sans clé privée). Nommez ce fichier comme P2SRootCert.cer. 

Ouvrez le certificat P2SRootCert.cer avec un éditeur de texte et enregistrez la clé entre “–BEGIN CERTIFICATE–” et “–END CERTIFICATE–”. 

Ceci est votre donnée publique du certificat racine encodée en base64. Vous devrez les déclarer plus tard dans la configuration de votre passerelle VPN Azure. 

  • Générer un certificat client signé par votre nouveau certificat racine en utilisant Powershell :

code windows powershell

Le client VPN installé sur votre ordinateur local utilisera ce certificat pour authentifier sa connexion à votre réseau virtuel dans Azure. 

Linux

Configurer P2S Linux à l’aide de StrongSwan 

Vous pouvez suivre les étapes ci-dessous pour installer un client VPN sur une machine Ubuntu. 

  • Installer les utilitaires StrongSwan :
sudo apt install strongswan strongswan-pki libstrongswan-extra-plugins curl libxml2-utils cifs-utils
  • Créer des certificats pour l’authentification VPN : un certificat racine et un certificat client signé par le certificat racine
rootCertName="P2SRootCertLinux" 
username="linux" password="[YOUR_PASSWORD]" 
mkdir temp 
cd temp 

sudo ipsec pki --gen --outform pem > rootKey.pem 
sudo ipsec pki --self --in rootKey.pem --dn "CN=$rootCertName" --ca --outform pem > rootCert.pem 
rootCertificate=$(openssl x509 -in rootCert.pem -outform der | base64 -w0 ; echo) 
echo $rootCertificate 
sudo ipsec pki --gen --size 4096 --outform pem > "clientKey.pem" 
sudo ipsec pki --pub --in "clientKey.pem" | \ 
sudo ipsec pki \
  --issue \
  --cacert rootCert.pem \
  --cakey rootKey.pem \
  --dn "CN=$username" \
  --san $username \
  --flag clientAuth \
  --outform pem > "clientCert.pem" 

openssl pkcs12 -in "clientCert.pem" -inkey "clientKey.pem" -certfile rootCert.pem -export -out "client.p12" -password "pass:$password"

Enregistrez le contenu du certificat racine. Vous devez le déclarer à votre passerelle virtuelle dans Azure. 

  •  Configurer le client VPN : remplacer l’espace réservé [YOUR_PASSWORD] et exécuter le script suivant
username="linux"
password="[YOUR_PASSWORD]"
ipsecconfig="/etc/ipsec.conf"

# These values will be found in Generic/VpnSettings.xml of vpn configuration downloaded from Azure Portal
vpnServer="[VpnServer]"
 vpnType="[VpnType]"
 routes="[Routes]"

# Backup current config
sudo cp $ipsecconfig "/etc/ipsec.conf.backup"

# Copy VPN certificates
sudo cp "Generic/VpnServerRoot.cer" "/etc/ipsec.d/cacerts"
sudo cp "temp/${username}.p12" "/etc/ipsec.d/private"

# Update ipsec.conf to create a connection to Azure
echo -e "\nconn azure" | sudo tee -a $ipsecconfig > /dev/null
echo -e "\tkeyexchange=$vpnType" | sudo tee -a $ipsecconfig > /dev/null
echo -e "\ttype=tunnel" | sudo tee -a $ipsecconfig > /dev/null
echo -e "\tleftfirewall=yes" | sudo tee -a $ipsecconfig > /dev/null
echo -e "\tleft=%any" | sudo tee -a $ipsecconfig > /dev/null
echo -e "\tleftauth=eap-tls" | sudo tee -a $ipsecconfig > /dev/null
echo -e "\tleftid=%client" | sudo tee -a $ipsecconfig > /dev/null
echo -e "\tright=$vpnServer" | sudo tee -a $ipsecconfig > /dev/null
echo -e "\trightid=%$vpnServer" | sudo tee -a $ipsecconfig > /dev/null
echo -e "\trightsubnet=$routes" | sudo tee -a $ipsecconfig > /dev/null
echo -e "\tleftsourceip=%config" | sudo tee -a $ipsecconfig > /dev/null
echo -e "\tauto=add" | sudo tee -a $ipsecconfig > /dev/null

echo ": P12 client.p12 '$password'" | sudo tee -a "/etc/ipsec.secrets" > /dev/null

Déclarer les certificats racine à votre passerelle de réseau virtuel dans Azure

Vous pouvez mettre à jour le code Terraform pour inclure ces certificats. 

Tester la connexion VPN

La passerelle de réseau virtuel peut prendre jusqu’à 30 minutes pour être provisionnée. Lorsqu’elle est terminée, vous pouvez télécharger le client VPN depuis le portail Azure pour pouvoir vous connecter à Azure depuis votre ordinateur local. 

 

vpn connexion azure portail

  • Pool d’adresses : 10.2.0.0/24 
  • Type de tunnel : IKEv2 
  • Certificats racine : PS2RootCert (client Windows), PS2RootCertUbuntu (client Ubuntu) 
  • Adresses IP allouées : ip privées allouées à partir du pool d’adresses ci-dessus pour chaque client

 

Windows

Pour un ordinateur Windows, vous pouvez installer un client VPN en exécutant le programme situé dans WindowsAmd64 (Windows 64 bits) ou WindowsX86 (Windows 32 bits). 

Une fois le client VPN installé sur votre ordinateur local, allez dans les paramètres VPN de votre ordinateur et sélectionnez le nom de votre vnet, puis sélectionnez Connecter. 

Maintenant, vous êtes connecté avec succès à Azure et une adresse IP 10.2.0.2 vous est attribuée. Cette adresse IP provient du pool d’adresses 10.2.0.0/24 que vous avez configuré plus tôt dans votre configuration. 

Vous pouvez tester la connexion de ce point final à vos machines virtuelles situées dans FrontendSubnet (172.16.1.4) et BackendSubnet (172.16.2.4) sur votre réseau. 

 

installation vpn windows

Ubuntu

Mettez à jour la configuration IPSec : 

Localisez la configuration IPSec dans /etc/ipsec.conf et remplacez la valeur de quatre champs : tkeyexchange, right, righttid et rightsubnet par les valeurs trouvées dans Generic/VpnSettings.xml téléchargées depuis Azure Portal. 

  • tkeyexchange = [VpnType] (en anglais) 
  • right = [VpnServer] 
  • righttid = %[VpnServer] 
  • rightsubnet = [Routes] 

La configuration finale de ce fichier ressemble à cela : 

 

configuration vpn windows

 

Démarrer les services ipsec  : 

sudo ipsec restart 
sudo ipsec up azure

La connexion à Azure devrait être établie avec succès, puis vous devriez être en mesure d’établir un ping et de vous connecter à vos machines virtuelles à partir de votre ordinateur local.

vpn ubuntu configuration

 

Félicitations ! Votre VPN point-à-site a été configuré avec succès !

Contactez-nous Postuler Nos offres d'emploi