MACsec configureren op ExpressRoute Direct-poorten
Dit artikel bevat richtlijnen voor het configureren van MACsec, een beveiligingsprotocol dat de communicatie tussen uw randrouters en edge-routers van Microsoft beveiligt met behulp van PowerShell-opdrachten.
Voordat u begint
Voordat u MACsec gaat configureren, moet u ervoor zorgen dat u voldoet aan de volgende vereisten:
- U bent vertrouwd met de ExpressRoute Direct-inrichtingswerkstromen.
- U hebt een ExpressRoute Direct-poortresource gemaakt volgens de instructies.
- U hebt de nieuwste versie van Azure PowerShell op uw computer geïnstalleerd als u PowerShell lokaal wilt uitvoeren.
Werken met Azure PowerShell
In de stappen en voorbeelden in dit artikel wordt gebruikgemaakt van Azure PowerShell Az-modules. Zie Azure PowerShell installeren als u de Az-modules lokaal op uw computer wilt installeren. Zie Introductie van de nieuwe Az-module van Azure PowerShell voor meer informatie over de Az-module. PowerShell-cmdlets worden regelmatig bijgewerkt. Als u niet de nieuwste versie uitvoert, kunnen de in de instructies opgegeven waarden mislukken. Gebruik de cmdlet Get-Module -ListAvailable Az
om de geïnstalleerde versies van PowerShell op uw systeem te vinden.
U kunt Azure Cloud Shell gebruiken om de meeste PowerShell-cmdlets en CLI-opdrachten uit te voeren. U hoeft Azure PowerShell of CLI niet lokaal te installeren. Azure Cloud Shell is een gratis, interactieve shell waarop algemene Azure-hulpprogramma's vooraf zijn geïnstalleerd. Het is geconfigureerd voor gebruik met uw account. Als u een code uit dit artikel wilt uitvoeren in Azure Cloud Shell, opent u een Cloud Shell-sessie, gebruikt u de knop Kopiëren in een codeblok om de code te kopiëren en plakt u deze als volgt in de Cloud Shell-sessie: in Windows en Linux met Ctrl+Shift+V; in macOS met Cmd+Shift+V. Geplakte tekst wordt niet automatisch uitgevoerd. Druk op Enter om code uit te voeren.
U kunt Cloud Shell op verschillende manieren starten:
Optie | Koppeling |
---|---|
Klik op Nu uitproberen in de rechterbovenhoek van een codeblok. | |
Open Cloud Shell in uw browser. | |
Klik op de knop Cloud Shell in het menu rechtsboven in Azure Portal. | |
Meld u aan en selecteer het juiste abonnement
Volg deze stappen om de configuratie te starten:
Meld u aan bij uw Azure-account met uw referenties.
Kies het abonnement dat u voor deze configuratie wilt gebruiken.
Als u Azure Cloud Shell gebruikt, wordt u automatisch aangemeld bij uw Azure-account nadat u op Probeer het nu hebt geklikt. Als u zich lokaal wil aanmelden, opent u de PowerShell-console met verhoogde rechten en voert u de cmdlet uit om verbinding te maken.
Connect-AzAccount
Als u meer dan één abonnement hebt, haalt u een lijst met uw abonnementen op.
Get-AzSubscription
Geef het abonnement op dat u wilt gebruiken.
Select-AzSubscription -SubscriptionName "Name of subscription"
Azure Key Vault, MACsec-geheimen en gebruikersidentiteit maken
Als u MACsec-geheimen veilig wilt opslaan, moet u een Key Vault-exemplaar maken in een nieuwe resourcegroep. Key Vault is een service waarmee u cryptografische sleutels, certificaten en geheimen in Azure kunt beheren en beveiligen. Zie Wat is Azure Key Vault? voor meer informatie.
New-AzResourceGroup -Name "your_resource_group" -Location "resource_location" $keyVault = New-AzKeyVault -Name "your_key_vault_name" -ResourceGroupName "your_resource_group" -Location "resource_location" -SoftDeleteRetentionInDays 90
U kunt een bestaande Sleutelkluis of resourcegroep opnieuw gebruiken voor deze configuratie. U moet er echter voor zorgen dat de [functie voor voorlopig verwijderen ] is ingeschakeld in uw Key Vault. Met deze functie kunt u verwijderde sleutels, geheimen en certificaten binnen een bewaarperiode herstellen. Als voor uw Key Vault voorlopig verwijderen niet is ingeschakeld, voert u de volgende opdrachten uit om deze in te schakelen:
($resource = Get-AzResource -ResourceId (Get-AzKeyVault -VaultName "your_existing_keyvault").ResourceId).Properties | Add-Member -MemberType "NoteProperty" -Name "enableSoftDelete" -Value "true" Set-AzResource -ResourceId $resource.ResourceId -Properties $resource.Properties
Notitie
- ExpressRoute is een vertrouwde service in Azure die ondersteuning biedt voor netwerkbeveiligingsbeleid in Azure Key Vault. Zie Azure Key Vault Firewall en virtuele netwerken configureren voor meer informatie.
- Plaats de Azure Key Vault niet achter een privé-eindpunt, omdat hiermee de communicatie met het ExpressRoute-beheervlak wordt voorkomen. Het ExpressRoute-beheervlak is verantwoordelijk voor het beheren van de MACsec-sleutels en -parameters voor uw verbinding.
Als u een nieuwe gebruikersidentiteit wilt maken, moet u de
New-AzUserAssignedIdentity
cmdlet gebruiken. Met deze cmdlet maakt u een door de gebruiker toegewezen beheerde identiteit in Microsoft Entra-id en registreert u deze bij het opgegeven abonnement en de opgegeven resourcegroep. Een door de gebruiker toegewezen beheerde identiteit is een zelfstandige Azure-resource die kan worden toegewezen aan elke Azure-service die beheerde identiteiten ondersteunt. U kunt deze identiteit gebruiken om toegang tot Azure-resources te verifiëren en autoriseren zonder referenties op te slaan in uw code- of configuratiebestanden. Zie Wat zijn beheerde identiteiten voor Azure-resources? voor meer informatie.$identity = New-AzUserAssignedIdentity -Name "identity_name" -Location "resource_location" -ResourceGroupName "your_resource_group"
Voer de volgende opdracht uit om een bestaande gebruikersidentiteit te gebruiken:
$identity = Get-AzUserAssignedIdentity -ResourceGroupName "your_resource_group" -Name "identity_name"
Installeer de volgende module in de beheerdersmodus als PowerShell geen geldige cmdlets herkent
New-AzUserAssignedIdentity
ofGet-AzUserAssignedIdentity
als geldige cmdlets. Voer vervolgens de bovenstaande opdracht opnieuw uit.Install-Module -Name Az.ManagedServiceIdentity
Maak een verbindingskoppelingssleutel (CAK) en een naam van de verbindingskoppelingssleutel (CKN) en sla deze op in de Sleutelkluis.
$CAK = ConvertTo-SecureString "your_key" -AsPlainText -Force $CKN = ConvertTo-SecureString "your_key_name" -AsPlainText -Force $MACsecCAKSecret = Set-AzKeyVaultSecret -VaultName "your_key_vault_name" -Name "CAK_name" -SecretValue $CAK $MACsecCKNSecret = Set-AzKeyVaultSecret -VaultName "your_key_vault_name" -Name "CKN_name" -SecretValue $CKN
Notitie
- CKN moet een even lange tekenreeks zijn tot 64 hexadecimale cijfers (0-9, A-F).
- Cak-lengte is afhankelijk van de opgegeven coderingssuite:
- Voor GcmAes128 en GcmAesXpn128 moet de CAK een even lange tekenreeks zijn met 32 hexadecimale cijfers (0-9, A-F).
- Voor GcmAes256 en GcmAesXpn256 moet de CAK een even lange tekenreeks zijn met 64 hexadecimale cijfers (0-9, A-F).
- Voor CAK moet de volledige lengte van de sleutel worden gebruikt. Als de sleutel korter is dan de vereiste lengte,
0's
wordt deze toegevoegd aan het einde van de sleutel om te voldoen aan de lengtevereiste. CAK van 1234 is bijvoorbeeld 123400000... voor zowel 128-bits als 256-bits op basis van de codering.
Verdeel de gebruikersidentiteit de autorisatie om de
GET
bewerking uit te voeren.Set-AzKeyVaultAccessPolicy -VaultName "your_key_vault_name" -PermissionsToSecrets get -ObjectId $identity.PrincipalId
De gebruikersidentiteit heeft de toegang verkregen om de geheimen, zoals CAK en CKN, op te halen uit de Key Vault.
Configureer de gebruikersidentiteit als de aangewezen service-principal voor ExpressRoute.
$erIdentity = New-AzExpressRoutePortIdentity -UserAssignedIdentityId $identity.Id
MACsec configureren op ExpressRoute Direct-poorten
MACsec inschakelen
Elk ExpressRoute Direct-exemplaar bestaat uit twee fysieke poorten. U kunt MACsec op beide poorten tegelijk of op één poort afzonderlijk activeren. Met de laatste optie kunt u het verkeer omleiden naar een werkende poort terwijl u de andere poort onderhoudt, wat de onderbreking kan verminderen als uw ExpressRoute Direct operationeel is.
Notitie
U kunt zowel XPN- als niet-XPN-coderingen configureren:
- GcmAes128
- GcmAes256
- GcmAesXpn128
- GcmAesXpn256
De voorgestelde best practice is het instellen van versleuteling met xpn-coderingen om sporadische sessiefouten te voorkomen die optreden met niet-xpn-coderingen op snelle koppelingen.
Stel de MACsec-geheimen en codering vast en koppel de gebruikersidentiteit aan de poort om de ExpressRoute-beheercode in te schakelen om de MACsec-geheimen op te halen wanneer dat nodig is.
$erDirect = Get-AzExpressRoutePort -ResourceGroupName "your_resource_group" -Name "your_direct_port_name" $erDirect.Links[0]. MacSecConfig.CknSecretIdentifier = $MacSecCKNSecret.Id $erDirect.Links[0]. MacSecConfig.CakSecretIdentifier = $MacSecCAKSecret.Id $erDirect.Links[0]. MacSecConfig.Cipher = "GcmAes256" $erDirect.Links[1]. MacSecConfig.CknSecretIdentifier = $MacSecCKNSecret.Id $erDirect.Links[1]. MacSecConfig.CakSecretIdentifier = $MacSecCAKSecret.Id $erDirect.Links[1]. MacSecConfig.Cipher = "GcmAes256" $erDirect.identity = $erIdentity Set-AzExpressRoutePort -ExpressRoutePort $erDirect
(Optioneel) Als de poorten de status Systeembeheer hebben, kunt u de volgende opdrachten uitvoeren om de poorten weer te geven.
$erDirect = Get-AzExpressRoutePort -ResourceGroupName "your_resource_group" -Name "your_direct_port_name" $erDirect.Links[0].AdminState = "Enabled" $erDirect.Links[1].AdminState = "Enabled" Set-AzExpressRoutePort -ExpressRoutePort $erDirect
MACsec is nu ingeschakeld op de ExpressRoute Direct-poorten aan de zijde van Microsoft. Als u deze niet hebt geconfigureerd op uw edge-apparaten, kunt u doorgaan met het configureren van deze met dezelfde MACsec-geheimen en codering.
(Optioneel) Voer de volgende opdrachten uit om de poorten met de status Administrator Down te activeren:
$erDirect = Get-AzExpressRoutePort -ResourceGroupName "your_resource_group" -Name "your_direct_port_name" $erDirect.Links[0].MacSecConfig.SciState = "Enabled" $erDirect.Links[1].MacSecConfig.SciState = "Enabled" Set-AzExpressRoutePort -ExpressRoutePort $erDirect
SCI is nu ingeschakeld op de ExpressRoute Direct-poorten.
MACsec uitschakelen
Als u MACsec wilt deactiveren op uw ExpressRoute Direct-exemplaar, voert u de volgende opdrachten uit:
$erDirect = Get-AzExpressRoutePort -ResourceGroupName "your_resource_group" -Name "your_direct_port_name"
$erDirect.Links[0]. MacSecConfig.CknSecretIdentifier = $null
$erDirect.Links[0]. MacSecConfig.CakSecretIdentifier = $null
$erDirect.Links[1]. MacSecConfig.CknSecretIdentifier = $null
$erDirect.Links[1]. MacSecConfig.CakSecretIdentifier = $null
$erDirect.identity = $null
Set-AzExpressRoutePort -ExpressRoutePort $erDirect
MACsec is nu uitgeschakeld op de ExpressRoute Direct-poorten aan de zijde van Microsoft.
Connectiviteit testen
Zodra u MACsec hebt ingesteld (inclusief MACsec-sleutelupdate) op uw ExpressRoute Direct-poorten, controleert u de status van de BGP-sessies van de circuits. Als u nog geen circuit op de poorten hebt gemaakt, moet u dit eerst doen en azure-privépeering of Microsoft-peering van het circuit tot stand brengen. Onjuiste MACsec-configuratie, zoals een MACsec-sleutel die niet overeenkomt tussen uw netwerkapparaten en de netwerkapparaten van Microsoft, voorkomt dat u ARP-resolutie op laag 2 of BGP-instelling op laag 3 kunt observeren. Als alles correct is geconfigureerd, ziet u dat de BGP-routes correct worden geadverteerd in beide richtingen en dat uw toepassingsgegevens dienovereenkomstig via ExpressRoute worden geadverteerd.
Volgende stappen
- Een ExpressRoute-circuit maken op ExpressRoute Direct
- Een virtueel netwerk koppelen aan een ExpressRoute-circuit
- ExpressRoute-connectiviteit controleren