Azure Bastion est votre ami !

Par moment, les machines virtuelles ont besoin de passer entre les mains de l’IT pour différentes tâches : mises à jour OS, installation d’applications, résolution de problème, etc … A l’inverse des accès utilisateurs, les connexions réalisées par les équipes IT, dont les privilèges sont potentiellement plus élevés, sont souvent occasionnelles et externes.

Ce besoin de connexion irrégulier ne doit pas pourtant donner lieu à abaissement de la sécurité, car des risques pour vos VMs Azure sont toujours présents :

  • Risques d’attaque plus élevés si la sécurité de l’accès IT est dégradée
  • Risques de dégâts plus importants compte tenu des privilèges IT élevés

Comme pour n’importe quel accès, des mesures de sécurité en couche sont nécessaires, même pour les équipes IT. Voici des liens vers des articles précédemment écrits de blog :

Qu’est-ce qu’Azure Bastion ?

Voici la définition d’Azure Bastion donnée par Microsoft

Azure Bastion est un service complètement managé qui offre un accès RDP (Remote Desktop Protocol) et SSH (Secure Shell) plus sécurisé et transparent pour les machines virtuelles sans aucune exposition via des adresses IP publiques. Approvisionnez le service directement dans votre réseau virtuel local ou appairé pour prendre en charge toutes les machines virtuelles qu’il contient.

Documentation Azure

Azure Bastion est donc un service de jump pour accéder aux machines virtuelles sur Azure, que celles-ci soient Windows ou Linux.

Le schéma ci-dessous nous montre le tunnel d’accès créé entre Azure Bastion et l’utilisateur initiateur (via une connexion inversée) grâce au protocole TLS :

J’ai également trouvé une vidéo dédiée à Azure Bastion en français, dont voici le lien :

Quel est son point fort ?

Un seul mot doit vous venir en tête :

La sécurité

Comme tout service de jump, Azure Bastion devient de facto la ressource exposée de votre infrastructure Cloud. Dans les faits, ce dernier intègre des fonctions de pare-feu et des mesures périmétriques de sécurité.

De plus, l’accès au service depuis le portail Azure apporte la couche de pré-authentification d’Azure AD. Celui-ci profite alors de toutes ses mesures de sécurité, comme l’Accès conditionnel, la gestion des droits RBAC, etc …

L’approche d’une connexion sécurisée via TLS permet de s’affranchir de règles sécurités lourdes.

Enfin, Azure Bastion mettra tout le monde d’accord grâce au retrait des adresses IP publiques sur vos VMs Azure, car la connexion RDP/SSH entre Bastion et votre machine virtuelle se fera via le réseau virtuel privé Azure, donc grâce et uniquement par son adresse IP privée.

Combien coûte Azure Bastion ?

Disons-le tout de suite, Azure Bastion n’est pas un service gratuit 🤣. La documentation Azure nous donne toutes les informations tarifaires. Voici la copie d’écran du service dans la région Azure Suisse Nord :

Voici ces mêmes données tarifaires pour un mois complet, dans le cas où le service reste actif :

  • Azure Bastion Basic : 125 CHF environ
  • Azure Bastion Standard : 192 CHF environ

Gardez à l’esprit que ce service ne nécessite pas systématiquement un déploiement aussi long. Dans beaucoup d’infrastructures IT, il est possible d’envisager son déploiement à la demande.

Cinq petites minutes vous suffiront pour déployer Azure Bastion !

Comment choisir son SKU Bastion ?

Choisir le SKU d’Azure Bastion adapté à vos besoins doit reposer sur les fonctionnalités voulues. Quelques fonctionnalités diffèrent entre les versions Basic et Standard :

A noter qu’il est possible de migrer du SKU Basic au SKU Standard après le déploiement de Bastion, mais pas le chemin inverse n’est plus possible.

Comment mettre en place Azure Bastion ?

Rien de plus simple ! Quelques clics suffisent pour déployer Azure Bastion.

Dans cet article, nous allons déployer Azure Bastion, puis tester quelques fonctionnalités de connexion. Bref, ne perdons pas de temps :

Etape 0 – Rappel des prérequis :

Pour réaliser cet exercice sur Azure Bastion, dont certaines fonctionnalités sont encore en préversion, il vous faudra disposer de :

  • Un tenant Microsoft
  • Une souscription Azure valide

Mon environnement Azure de départ ne contient aucune autre ressource, commençons par la préparation d’un nouvel environnement Azure :

Etape I – Préparation de votre environnement Azure :

Commencez par rechercher le service Réseau Virtuel dans la barre de recherche tout en haut :

Cliquez ici pour créer votre premier réseau virtuel Azure :

Créez un premier groupe de ressources, donnez un nom à votre réseau virtuel, puis lancez la validation Azure :

Une fois la validation Azure réussie, cliquez-ici pour commencer la création :

Attendez environ une minute que le processus de création se termine :

Une fois terminé, recherchez le service des Machines Virtuelles Azure :

Cliquez-ici pour créer une première machine virtuelle Azure :

Renseignez les informations de base relatives à votre VM :

Pensez à désactiver les règles publiques de port entrant, puis cliquez sur Suivant :

Aucune option n’est à modifier sur l’onglet des disques, cliquez sur Suivant :

Dans l’onglet réseau, effectuez les modifications suivantes :

  • Retirez l’adresse IP publique proposée par Azure
  • Vérifiez que les règles publiques du NSG lié à la carte réseau de la VM sont bien désactivées

Puis, cliquez-ici pour lancer la validation :

Une fois la validation réussie, cliquez-ici pour démarrer le processus de création :

Environ deux minutes plus tard, cliquez-ici pour accéder à votre machine virtuelle Azure :

Cliquez sur Connecter pour démarrer une session de bureau à distance :

Azure commence par effectuer contrôles d’accès. Deux points sur trois sont déjà considérés comme des blocages potentiels :

  • Port RDP fermé : L’accès publique au port RDP a été volontairement fermé lors de la création de la machine virtuelle.
  • Absence d’adresse IP publique : celle-ci a volontairement été retirée lors de la création de la machine virtuelle.

Cliquez-ici pour télécharger le fichier RDP préconfiguré pour vous connecter à votre VM :

Exécutez le fichier RDP téléchargé précédemment, puis attendez :

Environ vingt secondes plus tard, un message d’échec de connexion doit apparaître :

Pas d’adresse IP publique et pas de port RDP ouvert en public sont bien les explications logiques du blocage de l’accès distant.

Retrouvez la configuration de ces deux points justes ici :

L’accès RDP à notre machine virtuelle est bien sécurisé. Mais du coup … personne en dehors d’Azure peut s’y connecter ! Il nous faut trouver une solution sans exposer la machine virtuelle.

C’est ici qu’Azure Bastion rentre en scène.

Etape II – Déploiement d’Azure Bastion :

Comme l’indique le schéma ci-dessous, Azure Bastion s’installe sur un sous-réseau dédié dont son nom est normé : AzureBastionSubnet.

Sur votre Portail Azure, recherchez le réseau virtuel créé précédemment :

Dans la section des sous-réseaux, ajoutez-en un :

Le sous-réseau doit avoir la configuration suivante :

  • Le nom du sous-réseau doit être AzureBastionSubnet.
  • La taille du sous-réseau doit être /26 ou plus grand
  • Le sous-réseau ne pourra pas contenir d’autres ressources Azure

Renseignez les champs, puis sauvegardez-le :

Recherchez ensuite le service Bastion dans la barre de recherche du portail Azure :

Cliquez-ici pour créer votre Azure Bastion :

Renseignez les champs nécessaires, en prenant soin de sélectionner un SKU de type Basic, puis lancez la validation Azure :

Une fois la validation réussie, lancez la création de votre Azure Bastion :

Attendez environ 5 minutes pour que le service soit entièrement déployé sur votre environnement :

Selon la charge présente sur la région Azure sélectionnée, il arrive que le processus de création soit un peu plus long.

Retournez sur votre machine virtuelle de test, puis lancez une connexion comme ceci :

Renseignez les identifiants de l’administrateur local renseignés lors de la création de votre VM, puis cliquez sur Connecter :

Un nouvel onglet dans votre navigateur interne s’ouvre et ouvre une session Windows sur votre machine virtuelle :

Si rien ne se passe, vérifiez si ce dernier ne bloque pas les pop-ups Azure.

Gardez ouverte la session de bureau à distance via Azure Bastion.

Sur la partie gauche de votre session, notez la présence de deux flèches, cliquez dessus, puis constatez le presse-papier de base :

Retournez sur le portail Azure, le menu Session affiche une liste des utilisateurs connectés à Azure Bastion.

Note : Il est en effet possible d’ouvrir plusieurs sessions Bastions vers différentes machines virtuelles.

Votre service Bastion fonctionne bien, l’accès RDP à votre machine virtuelle Windows est sécurisé. Continuons un peu en testant une autre méthode de connexion grâce à Azure Bastion.

Etape III – Azure Bastion via un appairage entre réseaux virtuels Azure :

Bien souvent, les infrastructures Azure contiennent plusieurs réseaux virtuels. Cela fait sens dans le cadre d’architecture multi-régions. Ici, nul besoin de créer et de payer plusieurs Bastion !

Afin de tester le bon fonctionnement d’un seul service Azure Bastion sur un autre réseau virtuel, j’ai créé les ressources Azure suivantes :

  • Second réseau virtuel Azure
  • Seconde machine virtuelle Azure
  • Appairage entre les 2 réseaux virtuels

Voici l’appairage et son statut Connecté sur un des 2 réseaux virtuels :

Sur la seconde machine virtuelle, cliquez sur le service Azure Bastion pour m’y connecter :

  • Azure recherche si un service Bastion est déployé sur le même réseau virtuel
  • Si non, Azure recherche un Bastion sur un réseau virtuel appairé à celui-ci

Renseignez les identifiants de l’administrateur local de ma seconde VM, puis cliquez sur Connecter :

Constatez la bonne connexion RDP à ma seconde machine virtuelle :

Azure Bastion fonctionne donc de manière étendue à plusieurs réseaux virtuels. Cette fonction est accessible dès le SKU Basic. Aucun doute que cela est fortement apprécié car il simplifie les méthodes de connexion, mais réduit aussi les coûts !

D’autres méthodes de connexion sont disponibles via Azure Bastion, mais elles nécessitent de changer le SKU de notre service.

Etape IV – Upgrade d’Azure Bastion vers le SKU Standard :

Pour tester les autres méthodes de connexion, il nous est nécessaire de changer le SKU d’Azure Bastion de Basic vers Standard :

Attention, la migration du SKU en Standard n’est pas réversible !

Attendez quelques minutes qu’Azure applique votre upgrade :

Le changement de SKU d’Azure Bastion entraine d’ailleurs une fermeture des sessions ouvertes via Azure Bastion :

Quelques minutes plus tard, le traitement d’upgrade est terminé :

Notre Azure Bastion est maintenant Standard. Nous allons pouvoir tester d’autres moyens de connexion, comme par exemple via le client natif.

Etape V – Support du client natif d’Azure Bastion :

La fonctionnalité de client natif vous permet de vous connecter à vos machines virtuelles cibles par le biais de Bastion en utilisant Azure CLI

Microsoft Learn

En quelques mots, cette méthode est utile quand on souhaite se passer du portail Azure. Pour utiliser ce moyen de connexion, il est nécessaire d’activer ce service sur Bastion.

Comme les options supplémentaires de Bastion sont maintenant dégrisées, cochez la case Support du client natif, puis cliquez sur Appliquer :

Attendez quelques minutes qu’Azure applique votre modification :

Sur votre poste local, ouvrez une session Terminal :

Commencez par mettre à jour le sous-module réseau d’Azure, utilisé par Azure Bastion :

Update-Module Az.Network -Force

Attendez quelques minutes que le téléchargement, puis l’installation du module se termine :

Copiez l’ID de la souscription contenant votre service Azure Bastion :

Dans votre fenêtre Terminal, lancez le processus d’authentification à Azure :

az login

Microsoft Edge doit alors s’ouvrir pour vous proposer de réutiliser un compte Azure déjà authentifié. Cliquez sur celui-ci si cela est votre cas :

Le message suivant apparaît alors dans votre navigateur :

De retour sur Terminal, saisissez la commande pour vous positionner sur la souscription Azure de votre Bastion :

az account set --subscription "<subscription ID>"

Sur le portail Azure, récupérez l’ID de ressource de votre première machine virtuelle :

Dans votre fenêtre Terminal, saisissez la commande suivante en prenant soin de modifier les 3 variables suivantes :

  • Nom de votre ressource Azure Bastion
  • Groupe de ressources votre service Azure Bastion
  • ID de ressource de votre machine virtuelle
az network bastion rdp --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId>"

Un pop-up RDP s’ouvre alors, cliquez sur Connecter :

Renseignez les identifiants de l’administrateur local renseignés lors de la création de votre VM :

Acceptez le risque en cliquant sur Oui :

Une connexion RDP s’ouvre sur le bureau de votre VM :

Fermez la session de bureau à distance.

Comme Microsoft et d’autres le rappellent, la sécurité de la connexion native peut être renforcée en limitant l’accès uniquement aux ports 22/3389 :

Continuons en testant une autre méthode de connexion à Azure Bastion: les liens partageables.

Etape VI – Utilisation de liens partageables Azure Bastion :

La fonctionnalité lien partageable Bastion permet aux utilisateurs de se connecter à une ressource cible (machine virtuelle ou groupe de machines virtuelles identiques) à l’aide d’Azure Bastion sans accéder au Portail Azure.

Microsoft Learn

Là encore, l’accès au portail Azure n’est peut-être pas possible ou voulue. Le lien partageable peut être communiqué à un tier afin que celui-ci puisse se connecter à la machine virtuelle et y effectuer des opérations IT.

Dans l’écran de configuration d’Azure Bastion, cochez la case suivante, puis cliquez sur Appliquer :

Attendez quelques minutes afin qu’Azure applique votre modification :

Un nouveau menu dédié aux liens partagés fait son apparition dans les paramètres votre Azure Bastion. Cliquez-ici pour créer votre premier lien partagé :

Cochez la ou les machines virtuelles accessibles grâce à ce lien, puis cliquer sur Appliquer :

Le nouveau lien partagé s’ajoute aux liens déjà générés, copiez votre lien dans le presse-papier :

Ouvrez un navigateur privé :

Collez votre lien partageable dans la barre d’adresse, renseignez les identifiants de l’administrateur local renseignés lors de la création de votre VM, puis cliquez-ici pour ouvrir la session :

Attendez quelques secondes, puis constatez l’ouverture du bureau à distance :

Avant de fermer la session ouverte grâce au lien partagé, supprimez le lien généré :

Constatez l’absence de fermeture de session, malgré la suppression du lien.

Fermez la session puis retentez l’ouverture par la même URL précédemment copiée :

L’utilisateur est bien bloqué dans sa seconde tentative de connexion.

Ces liens partagés sont donc intéressant si les utilisateurs sont externes au service IT doivent intervenir très ponctuellement sur une machine virtuelle.

Continuons nos tests sur une autre méthode de connexion : les adresses IP privées.

Etape VII – Utilisations des adresses IP privées :

Une connexion basée sur IP vous permet de vous connecter à vos machines virtuelles Azure et non Azure locales via Azure Bastion sur ExpressRoute ou une connexion VPN site à site en utilisant une adresse IP privée spécifiée.

Microsoft Learn

Grâce à cette fonctionnalité, les équipes IT peuvent se connecter à presque tous les VMS grâce à Azure Bastion ! Peu importe où la ressource se trouve : dans ou en dehors d’Azure.

Pour tester cette fonctionnalité, j’ai modifié quelques peu mon infrastructure Azure déjà en place. J’ai simulé une connexion site à site entre mes 2 réseaux virtuels comme ceci :

  • J’ai supprimé l’appairage entre mes deux réseaux virtuels
  • Sur chacun de mes deux réseaux virtuels Azure, j’ai déployé les ressources suivantes :
    • Passerelle VPN Basic
    • Passerelle de réseau local reprenant l’IP publique du VPN opposé
    • Connexion VPN IP Sec

Une des 2 passerelles VPNs configurées :

x2.

Une des 2 passerelles de réseau local configurées :

x2.

Une des 2 connexions VPN configurées :

x2.

Une fois l’infrastructure réseau en place, cochez la case suivante dans la configuration d’Azure Bastion, puis cliquez sur Appliquer :

Attendez quelques minutes qu’Azure applique votre modification :

Un nouveau menu dédié aux adresses IP privées fait son apparition sur votre configuration Azure Bastion. Cliquez-ici pour créer établir une connexion directe :

Attendez quelques secondes, puis constatez l’ouverture du bureau à distance :

Sur une des 2 connexions VPNs, modifiez la clef partagée afin de briser la connexion entre les 2 réseaux virtuels, et de ce fait, couper la session de bureau à distance :

Attendez quelques secondes :

La session d’Azure Bastion fini bien par s’interrompre :

Restaurez la bonne clef partagée, puis sauvegardez :

La connexion du bureau à distance transitant par Bastion est alors automatiquement rétablie :

Conclusion

Bastion rejoint la liste des services managés Azure très utile et très facile à mettre en oeuvre. La non-maîtrise des réseaux rend l’outil encore plus accessible aux débutants, et apporte une première couche de sécurité.

Il ne faut jamais douter des capacités d’attaque de pirates quand des ressources se retrouvent exposées sur internet, Cloud ou pas.

Découvrez les Réseaux Virtuels Azure

Peu importe le type d’architecture déployée sur le Cloud, un réseau est indispensable pour son accès, son administration, mais aussi sa protection. Comme pour l’article dédié à Azure Migrate, ou encore celui consacré aux Machines virtuelles Azure, je vous propose un autre atelier portant les réseaux virtuels Azure. Il s’agit là encore d’un petit exercice que vous pouvez faire par vous-même.

Qu’est-ce qu’un réseau virtuel Azure ?

Le réseau virtuel permet à de nombreux types de ressources Azure, telles que les machines virtuelles (VM) Azure, de communiquer de manière sécurisée entre elles, avec Internet et avec les réseaux locaux. Un réseau virtuel est similaire à un réseau traditionnel que vous utiliseriez dans votre propre centre de données, mais avec les avantages supplémentaires de l’infrastructure Azure, tels que la mise à l’échelle, la disponibilité et l’isolation

Réseau virtuel Azure | Microsoft Learn

Le schéma ci-dessous montre la notion d’ensemble connecté grâce au réseau virtuel Azure :

J’avais déjà écrit plusieurs articles sur les réseaux virtuels d’Azure, voici les liens directs :

Enfin vous trouverez beaucoup d’excellentes vidéos sur YouTube sur les réseaux virtuels Azure. Je vous ai sélectionné les deux suivantes.

Enfin une vidéo simple et claire pour comprendre l’adressage IPv4 !

Comme toujours John nous sauve et nous explique le réseau virtual d’Azure en détail :

L’exercice que je vous propose ici est une reproduction quasi complète de celui proposé sur le GitHub de Microsoft. Comptez environ 1 heure pour le réaliser. J’ai uniquement transformé la tâche 6 de Microsoft par une autre plus intéressante : le peering.

Voici la liste des tâches à effectuer :

  • Tâche 1 : Créer et configurer un réseau virtuel
  • Tâche 2 : Déployer des machines virtuelles dans le réseau virtuel
  • Tâche 3 : Configurer les adresses IP privées et publiques des machines virtuelles
  • Tâche 4 : Configurer les groupes de sécurité du réseau
  • Tâche 5 : Configurer Azure DNS pour la résolution des noms internes
  • Tâche 6 : Configurer un peering de réseaux

Bien souvent, une ressource déployée entraîne un début de tarification par Microsoft. Il est donc important de correctement la dimensionner, et de la supprimer si cette dernière n’est plus utilisée.

Rappel des prérequis :

Pour réaliser cet exercice Azure, il vous faudra disposer de :

  • Un tenant Microsoft
  • Une souscription Azure active

Un script en PowerShell est exécuté durant cet atelier. Commencez par télécharger et extraire les fichiers scripts Microsoft, disponibles depuis leur GitHub juste ici.

Tâche 1 – Créer et configurer un réseau virtuel :

Sur votre portail Azure, recherchez le service Réseau Virtuel Azure :

Cliquez sur Créer pour commencer la configuration de votre réseau virtuel :

Créez un nouveau groupe de ressources, donnez un nom à votre réseau virtuel, choisissez la région Azure où votre réseau Azure va se déployer, puis passez sur l’onglet Suivant :

Un réseau virtuel dans une région Azure ne supporte que des composants de cette même région.
Il sera peut être nécessaire de créer plusieurs réseaux virtuels si plusieurs régions.

Modifiez l’espace d’adressage de votre réseau virtuel comme ceci, puis ajoutez un sous-réseau compris dans l’espace d’adressage :

Une fois la validation passée, cliquez sur Créer :

Environ 30 secondes plus tard, votre premier réseau virtuel est créé, cliquez ici pour modifier sa configuration :

Dans la section des sous-réseaux, cliquez ici pour en ajouter un second :

Vous avez fini la première tâche de cet exercice. Nous allons maintenant créer des machines virtuelles via un script au réseau virtuel précédemment créé.

Tâche 2 – Déployer des machines virtuelles dans le réseau :

Le déploiement d’une machine virtuelle est possible de plusieurs manières (Portail, Azure, PowerShell, CLI, …). Nous allons utiliser un script en PowerShell, mis à disposition par Microsoft pour déployer nos machines virtuelles de test.

Cliquez sur Azure Cloud Shell pour commencer sa configuration :

Dans la configuration avancée, utilisez le même groupe de ressources que celui créé pour le réseau virtuel, puis lancez la création du compte de stockage :

Une fois le compte de stockage créé et la ligne de commande apparue, téléversez les 2 fichiers suivant :

  • \Allfiles\Labs\04\az104-04-vms-loop-template.json
  • \Allfiles\Labs\04\az104-04-vms-loop-parameters.json

Ne sélectionnez qu’un seul fichier à la fois :

Attendez le message de succès du téléversement pour commencer le second :

Recommencez l’opération avec le second fichier :

Avant de lancer le script, il est nécessaire de générer une variable. Modifiez celle-ci au besoin selon le nom de votre groupe de ressources précédemment créé :

$rgName = 'vnet-exercice-1'

Exécutez la commande de variable dans votre Azure Cloud Shell :

Lancez la commande suivante votre Azure Cloud Shell pour déployer vos deux machines virtuelles de test sur votre premier réseau virtuel :

New-AzResourceGroupDeployment `
   -ResourceGroupName $rgName `
   -TemplateFile $HOME/az104-04-vms-loop-template.json `
   -TemplateParameterFile $HOME/az104-04-vms-loop-parameters.json

Le suivi du déploiement est possible via le menu suivant. Tant que la ligne de commande n’est pas à nouveau disponible dans Azure Cloud Shell : cela veut dire que le déploiement n’est pas encore terminé :

Quelques minutes plus tard, constatez le succès du déploiement de votre script par le retour d’information dans Azure Cloud Shell :

Retournez sur votre groupe de ressource et constatez la présence de nouveaux composants Azure :

Nous allons maintenant effectuer quelques modifications sur la configuration réseau sur nos 2 machines virtuelles.

Tâche 3 – Configurer les adresses IP privées et publiques des machines virtuelles :

Une interface réseau permet à une machine virtuelle Azure de communiquer avec des ressources sur Internet, sur Azure et locales.

Microsoft Learn

Les adresses IP privées et publiques sont attribuées aux interfaces réseau, qui sont à leur tour attachées aux machines virtuelles Azure. Mais, il est assez courant de se référer aux adresses IP attribuées aux machines virtuelles Azure.

Cliquez sur votre réseau virtuel :

Dans la section des Périphériques connectés, constatez la présence de deux cartes réseaux rattachées aux deux machines virtuelles créées via le script, puis cliquez sur la première :

Dans la section Configurations IP, cliquez sur la première configuration :

Associez une adresse IP publique via une création juste en dessous :

Donnez-lui un nom, sélectionnez le SKU Standard, puis cliquez sur OK :

Modifiez l’assignation de l’adresse IP en statique, puis sauvegardez la configuration IP :

Répétez la même opération sur la carte réseau de la seconde machine virtuelle :

Notez que l’adresse IP privée est différente puisque la seconde machine virtuelle se trouve sur le second sous-réseau de notre réseau virtuel :

Toujours sur votre portail Azure, recherchez le composant Machine Virtuelle :

Veuillez noter la présence de l’adresse IP publique affectée lors de la modification de la configuration réseau :

Cliquez comme ceci pour vous connectez en RDP sur la première machine virtuelle :

Téléchargez le fichier RDP proposé par Azure :

Cliquez sur Connecter :

Constatez la présence d’un message d’erreur vous refusant la connexion RDP :

Cela s’explique par le fait qu’Azure est un modèle sécurisé par défaut. Il faut autoriser le trafic entrant via un groupe de sécurité réseau (NSG) si une IP publique st de SKU standard.

Tâche 4 – Configurer les groupes de sécurité du réseau virtuel :

Un groupe de sécurité réseau contient des règles de sécurité qui autorisent ou rejettent le trafic réseau entrant et sortant vers différents types de ressources Azure. Pour chaque règle, vous pouvez spécifier la source et la destination, le port et le protocole.

Microsoft Learn

Toujours sur votre portail Azure, recherchez le composant Groupe de sécurité réseau :

Cliquez ici pour créer votre premier groupe de sécurité réseau :

Renseignez tous les champs, puis lancez la validation :

Attendez que la validation se termine, puis lancez la création en cliquant sur Créer :

Environ une minute plus tard, le déploiement est terminé lorsque le message suivant apparaît, puis cliquez alors ici :

Ajoutez une règle de sécurité entrante à votre NSG :

Choisissez le service RDP, la priorité à 300, autorisez le traffic sur cette règle, puis cliquez sur Ajouter :

Il ne vous reste plus qu’à associer le NSG à un sous-réseau :

Choisissez le sous-réseau subnet0, puis cliquez sur OK :

Il est même possible d’associer ce NSG à une carte réseau :

Associez la carte réseau de la seconde machine virtuelle à votre NSG comme ceci :

Recommencez la connexion RDP vers une des deux machines virtuelles :

Téléchargez le fichier RDP :

Cliquez sur Connecter :

Entrez les identifiants suivants, puis cliquez sur OK :

Cliquez sur Oui pour accepter le risque :

Une fois la session de bureau à distance ouverte, réduisez celle-ci pour retourner sur le portail Azure :

Tâche 5 – Configurer Azure DNS pour la résolution de noms internes :

Azure Private DNS gère et résout les noms de domaine dans le réseau virtuel sans nécessiter la configuration d’une solution DNS personnalisée.

Microsoft Learn

Recherchez le service zone DNS privée via la barre du haut :

Cliquez ici pour créer votre première zone DNS privée :

Renseignez les champs suivants, puis lancez la validation :

Une fois la validation passée, cliquez sur Créer :

Environ deux minutes plus tard, le déploiement est terminé lorsque le message suivant apparaît :

Dans votre zone DNS privée, rajoutez le réseau virtuel via un lien comme ceci :

Renseignez les champs, cochez la case puis cliquez sur OK pour lancer la création d’un lien entre la zone DNS privée et votre réseau virtuel :

Attendez quelques secondes :

Sur la page principale, constatez la présence de 2 nouveaux enregistrements DNS, correspondants aux 2 machines virtuelles :

Retournez sur la session de bureau à distance, ouvrez une fenêtre de ligne de commande, puis saisissez les commandes suivantes :

nslookup az104-04-vm0.contoso.org
nslookup az104-04-vm1.contoso.org

Observez les résultats obtenus :

Tâche 6 – Configurer un peering de réseaux :

L’appairage de réseaux virtuels vous permet de connecter en toute transparence deux ou plusieurs réseaux virtuels dans Azure. Les réseaux virtuels apparaissent comme un seul réseau à des fins de connectivité. Le trafic entre les machines virtuelles des réseaux virtuels appairés utilise l’infrastructure principale de Microsoft.

Microsoft Learn

Retournez sur le portail Azure et recherchez le service Machine virtuelles via la barre du haut :

Cliquez ici pour créer une nouvelle machine virtuelle Azure :

Choisissez un groupe de ressources et une région Azure différente des premières ressources :

Attendez que la validation se termine, puis lancez la création de la machine virtuelle en cliquant sur Créer :

Cliquez ici pour conserver la clef privée du serveur Linux :

Environ deux minutes plus tard, le déploiement est terminé lorsque le message suivant apparaît :

Notez l’adresse IP privée affectée à cette nouvelle machine virtuelle :

Retournez sur le premier réseau virtuel créé :

Cliquez ici pour ajouter un peering entre le premier et le second réseau virtuel :

La première partie du peering est consacré au réseau initial, on y retrouve 3 principales options :

  • Trafic vers le réseau virtuel distant
  • Trafic transféré à partir d’un réseau virtuel distant
  • Passerelle de réseau virtuel ou serveur d’itinéraires (Azure Route Server)

Ces mêmes options sont à configurer sur le réseau de destination :

  • Trafic vers le réseau virtuel distant
  • Trafic transféré à partir d’un réseau virtuel distant
  • Passerelle de réseau virtuel ou serveur d’itinéraires (Azure Route Server)

Quelques secondes plus tard, la double opération de connexion est effectuée, et le statut du peering passe en Connecté :

Retournez sur la session de bureau à distance, ouvrez une fenêtre de ligne de commande, puis saisissez la commande suivante :

ping -t 10.0.0.4

Constatez le bon retour de la commande Ping vers la machine Linux :

Ouvrez le second NSG créé lors de la création de la troisième machine virtuelle :

Ajoutez une nouvelle règle de sécurité entrante :

Configurez cette règle pour bloquer les paquets dédiés au Ping :

Attendez quelques secondes pour constater l’ajout de cette règle NSG de refus :

De retour sur la session de bureau à distance, le Ping fini par ne plus répondre à cause de cette règle NSG bloquante :

Retournez sur le portail Azure et supprimez la règle précédemment ajoutée :

Retournez sur la session de bureau à distance pour constater, environ une minute après, le retour des réponses aux requêtes Ping :

Conclusion :

Dans cet atelier conçu par Microsoft, vous avez :

  • Créé et configuré un réseau virtuel Azure
  • Déployé des machines virtuelles dans le réseau virtuel
  • Configuré des adresses IP privées et publiques les machines virtuelles
  • Configuré un groupe de sécurité réseau NSG
  • Configuré un Azure DNS pour la résolution de noms internes
  • Configuré un peering entre deux réseaux virtuels

J’espère que toutes opérations vous auront montré la facilité de déploiement de composants réseaux sur Azure. Enfin, pensez à supprimer les ressources une fois cet atelier terminé afin d’éviter les surcoûts inutiles :

Suppression des ressources Azure :

Machine Virtuelle Azure en IPv6

Il arrive par moment que l’on ait besoin de travailler en IPv6. Pourquoi faire ? Par exemple : tester le bon accès d’un autre composant en IPv6 ???? Ceci est effectivement mon cas : ce blog dédié à Azure est hébergé sur Azure via un App Service, fonctionnant en 2023 encore et toujours … en IPv4. Comme certains fournisseurs d’accès internet ont entièrement basculé sur le protocole IPv6, il est nécessaire de trouver une parade pour rendre le site accessible à tous.

Pourquoi faire un article dédié à l’IPv6 sur Azure ?

Comme il arrive que le blog par moment ne soit plus accessible en IPv6, il peut s’écouler pas mal de temps avant que je m’en rende compte. Cet écueil serait sans doute identifié plus rapidement si le site croulait sous l’audience ????.

Pour m’aider, il existe certains sites spécialisés dans l’affichage en IPv4 / IPv6, mais le résultat n’est pas toujours garantie.

Comment rendre un site hébergé sur Azure Web App compatible IPv6 ?

Plusieurs auteurs ont déjà trouvé une parade avant moi, comme Patrickob Blog, ou via un article rédigé sur la Tech Community de Microsoft : l’ajout du service Azure Front Door permet de disposer d’une adresse IPv6 frontale, cela redirige le flux de requêtes vers l’App Service :

Tout cela est possible grâce à l’ajout d’un enregistrement DNS de type CNAME pointant vers le nom d’hôte de votre service Azure Front Door : xxxxxx.azurefd.net.

Il est aussi possible d’utiliser uniquement un enregistrement DNS de type AAAA, pointant vers l’IPv6 de votre service Azure Front Door :

La configuration entre Azure Front Door et Azure App Service est par la suite assez facile :

Dans cet article, nous allons créer une machine virtuelle Azure afin de se connecter à l’App Service, par le biais d’Azure Front Door, et tout cela en IPv6.

Comme le rappelle Microsoft :

  • L’IPv6 apporte une sécurisation par défaut dans la mesure où la connectivité IPv6 à Internet n’est établie que lorsque vous le demandez explicitement dans votre déploiement.
  • L’utilisation d’adresses IPv6 publiques ou de préfixes IPv6 publics n’est pas facturée.
  • La bande passante associées sont facturées au même tarif que le protocole IPv4.

Avant de commencer notre démonstration, quelques rappels sont importants :

  • Les machines virtuelles uniquement IPv6 ne sont pas pris en charge, chaque carte réseau doit inclure au moins une configuration IPv4.
  • Il en est de même pour les réseaux virtuels Azure et ses sous-réseaux. Ils ne peuvent disposer d’une IPv6 uniquement, mais bien d’un double adressage IPv4 / IPv6.

Etape 0 – Rappel des prérequis :

Des prérequis sont nécessaires pour réaliser ce test sur un environnement Azure :

  • Un tenant Microsoft
  • Une souscription Azure valide

Etape I – Déploiement du Réseau Virtuel Azure :

Commencez par créer un réseau virtuel :

Cochez la case suivante dédiée à l’IPv6, puis ajoutez un plan d0adressage en IPv6 à votre sous-réseau :

Lancez la validation, puis la création :

Attendez la création de votre réseau virtuel pour passer à l’étape suivante :

Un fois le réseau virtuel IPv4 / IPv6 correctement déployé, l’étape suivante consistera à créer une machine virtuelle avec une seule carte réseau sur ce réseau virtuel hybride.

Etape II – Création de la Machine Virtuelle Azure :

Commencez la création de votre machine virtuelle :

Dans l’onglet Réseau, choisissez le sous-réseau comprenant le double adressage IPv4 / IPv6, mais retirez la création de l’IP publique, par défaut prévue en IPv4 :

Lancez la validation, puis la création de votre machine virtuelle :

Attendez la fin de la création de votre machine virtuelle pour passer à l’étape suivante :

L’étape suivante consistera à ajouter une IP publique, mais uniquement sous format IPv6.

Etape III – Déploiement de l’IP publique en IPv6 :

Retournez sur la carte réseau de votre machine virtuelle :

Ajoutez une seconde configuration suivante :

Cliquez sur OK et attendez que la configuration se termine :

Retournez sur la page principale de votre machine virtuelle et constatez l’apparition d’une adresse IPv6 publique seule :

Etape IV – Connexion à la machine virtuelle IPv6 :

Connectez-vous à votre machine virtuelle via le protocole RDP :

Si comme moi vous rencontrez le message d’erreur suivant :

Déployez le service Azure Bastion comme ceci :

Renseignez les champs suivants :

Lancez sa validation, puis sa création :

Attendez la fin de la création d’Azure Bastion :

Connectez-vous à votre machine virtuelle via Azure Bastion nouvellement déployé :

Etape V – Tests IPv6 :

Une fois connecté, ouvrez la configuration IP et constatez la présence d’adresse IP locales en IPv4 et IPv6 :

Ouvrez également Edge et tester les informations réseaux internet depuis un des sites suivants :

Constatez la présence unique de l’IPv6 :

Testez le bon fonctionnement de l’IPv6 du site internet hébergé par l’App Service Azure via le nom de domaine :

Mais aussi via le nom de votre Azure Front Door :

Etape VI – Tests IPv6 d’Azure Front Door :

Afin de vérifier que la connexion entre la machine virtuelle et Azure Front Door s’opère bien uniquement sous le protocole IPv6, il est très facile de désactiver la route de ce dernier comme ceci :

Quelques secondes et un rafraîchissement web plus tard, le status de la route vers l’App Service change de couleur :

Réactualisez la page de votre site de test depuis votre machine virtuelle de test pour constater l’erreur :

Pensez à réactiver la route de votre service Azure Front Door.

Conclusion

Azure a encore du chemin à faire concernant l’implémentation générale de l’IPv6 au sein de l’ensemble de ses services. Nul doute que cela va arriver, mais on peut raisonnablement se demander exactement quand, car l’attente commence à se faire longueeeeeeeeeeeee ????.

Azure VPN couplé à Azure MFA

De temps à autre, je suis sollicité pour valider différentes combinaisons possibles entre des composants du Cloud Microsoft. Je trouvais donc intéressant de partager avec vous l’une d’entre elles.

Dans cet article, nous allons donc déployer une connexion VPN Point à Site sur un réseau Azure, et sécurisée par une authentification multifacteur (MFA).

Etape 0 : Rappel des prérequis

Comme pour beaucoup de mes articles Azure, des prérequis sont nécessaires pour réaliser cette démontration :

  • Un tenant Microsoft
  • Une souscription Azure valide
  • Un réseau virtuel existant sur Azure
  • Une ou des machines virtuelles déployées sur ce réseau (pour les tests)

Comme le montre la copie d’écran ci-dessous, quelques ressources sont déjà en place sur ma souscription Azure. Il s’agit essentiellement de ressources dédiées aux tests finaux.

Etape 1 : Déploiement de la passerelle VPN

Pour tester notre ensemble, nous devons mettre en place une passerelle VPN sur notre réseau virtuel Azure. Pour cela, Azure propose une ressource tout à fait adaptée à ce type de connexion.

Vous la retrouverez en utilisant la barre de recherche du portail

Cliquez sur Créer pour commencer le processus de création

Prenez votre temps pour renseigner tous les champs, en fonction de votre situation

Ne pas utiliser le SKU pour ce type de test.
Vous ne serez pas en mesure d’utiliser une authentification Azure AD avec celui-ci

Info : La copie d’écran ci-dessous montre l’absence d’authentification Azure AD possible lors de l’utilisation d’une passerelle VPN en SKU Basic

Comme pour toute liaison VPN, il est nécessaire de créer une adresse IP publique

Un accès VPN est par essence même une connexion sécurisé sur un réseau non sécurisé (internet).

Une fois terminé, cliquez sur Valider et créer

Une dernière vérification, puis lancez la création de la passerelle VPN.

Ce processus est assez long puisqu’Azure déploie des machines virtuelles managées pour produire la connexion VPN. Comptez environ 30 minutes pour que le déploiement se termine.

Nous allons profiter de ce temps pour créer une second machine virtuelle, représentant une ressource locale utilisant cette passerelle VPN.

Etape 2 : Déploiement d’une seconde machine virtuelle pour jouer le rôle du client de la connexion VPN Point à Site

Comme annoncé juste avant, cette seconde machine ne sera évidemment pas sur le même réseau virtuel que la première.

Créez un second réseau virtuel dans une autre région Azure pour bien les identifier

Continuez avec l’adresse réseau et le sous-réseau

Azure propose par défaut un adressage réseau différent du premier réseau virtuel.
Il reste modifiable.

Lancez la création une fois tous les champs vérifiés

La création d’un réseau virtuel Azure est généralement très rapide

Continuiez avec le déploiement d’une nouvelle machine virtuelle sur ce réseau virtuel local

N’oubliez pas de renseigner le compte d’administrateur local et cochez la case concernant les droits d’utilisation de licence Windows 10

Vérifiez aussi que l’onglet réseau reprend le nouveau réseau virtuel local nouvelle créé, ainsi qu’une nouvelle adresse IP publique, utilisée pour s’y connecter en RDP

Décochez l’arrêt automatique de la machine virtuelle dans l’onglet suivant

Vérifiez une dernière fois les champs et lancez la création de la machine virtuelle

Quelques minutes plus tard, la machine virtuelle est bien créée. Cliquez ici pour rentrer sur la ressource

Démarrer une première connexion RDP sur celle-ci

Renseignez les identifiants indiqués lors de la création de la machine virtuelle

Vérifiez la configuration IP de cette machine locale avec la ligne de commande suivante

Testez le refus de connexion depuis cette machine à sur votre première machine Azure

Retournez sur votre portail Azure et attendez la création de votre passerelle VPN

Un contrôle dans le réseau virtuel Azure affiche bien un nouveau sous-réseau, dédié à notre passerelle VPN

Etape 3 : Préparation du tenant à la connexion VPN

L’opération qui va suivre nécessite un compte administrateur global. Il va falloir en effet donner des permissions spéciales à notre passerelle VPN pour utiliser l’authentification via Azure AD.

Cliquez sur le lien ci-dessous pour lui donner votre consentement :

https://login.microsoftonline.com/common/oauth2/authorize?client_id=41b23e61-6c1e-4545-b367-cd054e0ed4b4&response_type=code&redirect_uri=https://portal.azure.com&nonce=1234&prompt=admin_consent

Authentifiez-vous avec un compte administrateur global de votre tenant

Autorisez l’application Azure VPN

Une fois cette opération terminée, retournez sur le portail Azure AD pour y récolter plusieurs informations. Depuis la page principale, commencez par noter votre tenant ID

Dans la section des applications d’entreprise, localisez la nouvelle application nommée Azure VPN puis cliquez dessus

Notez l’application ID de cette dernière

Etape 4 : Configuration de la connexion Point à Site de la passerelle VPN

Retournez sur la liste des passerelles VPN d’Azure, puis cliquez dessus

Cliquez sur la configuration Point à Site, puis sur Configurer maintenant

Renseignez tous les champs suivants puis cliquez sur Sauvegarder

  • Adressage réseau : pour attribution d’IP aux périphériques, par exemple 172.16.0.0/24
  • Type de d’authentification désirée : Azure Active Directory
  • Tenant : https://login.microsoftonline.com/{AzureAD TenantID}/
  • Audience : ID de l’application « Azure VPN » Azure AD Enterprise App
  • Issuer : https://sts.windows.net/{AzureAD TenantID}/
Ne pas oubliez le / en fin de chacun des 2 arguments.

Une notification Azure vous confirme le succès ou l’échec de votre configuration Point à Site

Raffraîchissez la page web d’Azure pour être en mesure de télécharger la configuration du client VPN sur votre machine virtuelle de test

Copiez et extrayez l’archive ZIP téléchargée sur la machine virtuelle sur laquelle nous allons installer la connexion VPN

Sur cette même machine, ouvrez Microsoft Store pour y télécharger Azure VPN Client

Lancez le téléchargement d’Azure VPN Client

Inutile de vous authentifier pour continuer le téléchargement

Une fois le téléchargement terminé, lancez l’application Azure VPN Client

Importez la configuration de notre VPN créé sur Azure

Cherchez le fichier azurevpnconfig.xml dans l’archive extraite sur le bureau de notre machine de test

Sauvegarder la configuration issue de ce fichier xml

Etape 5 : Test de la connexion Point à Site de la passerelle VPN

Avant de lancer la connexion VPN, retournez sur la fenêtre de commande et lancez la commande PING suivante.

ping 10.0.0.4 -t

Cette commande lance une demande d’écho de manière ininterrompue vers notre première machine Azure

Retournez sur l’application Azure VPN Client et démarrez la connexion

Renseignez les identifiants d’un utilisateur présent dans Azure AD

Décochez la case et cliquez comme ceci

Le status de la connexion VPN devrait alors passer à Connecté

Contrôler le changement de résultat concernant la commande PING

Si cela n’est pas le cas, il vous faudra vous connecter sur la première machine Azure pour autoriser dans Windows Firewall les requêtes d’écho PING

Une fois la connexion réussie, stoppez la connexion VPN

Constatez l’arrêt de succès de la commande PING

Etape 6 : Implémentation de l’accès conditionnel sur la connexion VPN

Comme indiqué au début de cet article, nous voulons une connexion VPN Point à Site couplée à une authentification multifacteur. Le but étant de renforcer par l’exmple l’accès un réseau d’entreprise au moyen d’une authentification supplémentaire.

Voici une vidéo explicative sur l’authentification multifacteur

Voici une seconde vidéo combinant les effets de la MFA et de l’accès conditionnel

La configuration de l’accès conditionnel se fait depuis Azure AD, cliquez sur le menu Sécurité puis Accès Conditionnel

Créez une nouvelle police d’accès conditionnel

Donnez-lui un nom puis cherchez le ou les utilisateurs de test

Restreignez votre police à l’application d’entreprise créée précédemment : Azure VPN

Exigez l’authentification multifacteur et activez votre police en cliquant sur ON puis sauvegardez

Azure demande quelques minutes avant d’appliquer les modifications faites sur les polices d’accès conditionnel.

Quelques minutes plus tard, retourner sur votre seconde machine et relancez la connexion VPN déjà présente dans l’application Azure VPN Client

La MFA devrait rentrer en ligne en compte. Mon compte de test Azure AD étant insuffisamment paramétré, le message suivant apparaît

Terminez au besoin la procédure d’enrôlement de sécurité pour votre utilisateur de test

Retrouvez bien par la suite la demande MFA pour finaliser la connexion VPN

Une fois celle-ci réussie, la connexion VPN s’établit bien

La commande PING retrouve bien l’accès à ma première machine Azure

Conclusion

Par cet article, nous voyons qu’Azure nous apporte toujours plus de sécurité grâce à la combinaison rapide et facile de différentes mesures de protection. Il est toujours important d’aborder la sécurité sous forme de couches hérmétiques entre elles afin de rendre toujours plus difficile les intrusions informatiques.

Comme à chaque fois, pensez également à partager dans les commentaires vos propres expériences ????