Share via


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:

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. Cloud Shell in dit artikel
Open Cloud Shell in uw browser. https://shell.azure.com/powershell
Klik op de knop Cloud Shell in het menu rechtsboven in Azure Portal. Cloud Shell in de 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

  1. 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.
  2. 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 of Get-AzUserAssignedIdentity als geldige cmdlets. Voer vervolgens de bovenstaande opdracht opnieuw uit.

    Install-Module -Name Az.ManagedServiceIdentity
    
  3. 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.
  4. 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.

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

  1. 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
    
  2. (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.

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