قم بتهيئة MACsec في منافذ ExpressRoute Direct

توفر هذه المقالة إرشادات حول كيفية تكوين MACsec، وهو بروتوكول أمان يحمي الاتصال بين أجهزة توجيه الحافة وأجهزة التوجيه الطرفية من Microsoft، باستخدام أوامر PowerShell.

قبل البدء

قبل البدء في تكوين MACsec، تأكد من تلبية المتطلبات الأساسية التالية:

  • لقد تعرفت على مهام سير عمل تزويد ExpressRoute Direct.
  • لقد قمت بإنشاء مورد منفذ ExpressRoute Direct وفقا للإرشادات.
  • قمت بتثبيت أحدث إصدار من Azure PowerShell على جهاز الكمبيوتر الخاص بك إذا كنت تنوي تشغيل PowerShell محليا.

إدارة باستخدام Azure PowerShell

تستخدم الخطوات والأمثلة الموجودة في هذه المقالة الوحدات النمطية Azure PowerShell Az. لتثبيت وحدات Az النمطية محليا على جهاز الكمبيوتر الخاص بك، راجع تثبيت Azure PowerShell. لمعرفة المزيد حول الوحدة النمطية Az الجديدة، راجع تقديم الوحدة النمطية Azure PowerShell Az الجديدة. تحديث cmdlets PowerShell بشكل متكرر إذا لم تكن تستخدم أحدث إصدار، فقد تفشل القيم المُحددة في الإرشادات. للعثور على الإصدارات المثبتة من PowerShell على النظام الخاص بك، استخدم Get-Module -ListAvailable Az cmdlet.

يمكنك استخدام Azure Cloud Shell لتشغيل معظم أوامر Cmdlets وCLI PowerShell، بدلاً من تثبيت Azure PowerShell أو CLI محليًا. Azure Cloud Shell هي بيئة تفاعلية مجانية تحتوي على أدوات Azure الشائعة مثبتة مسبقًا وتم تكوينها للاستخدام مع حسابك. لتشغيل أي رمز موجود في هذه المقالة على Azure Cloud Shell، افتح جلسة عمل Cloud Shell، استخدم الزر نسخ على كتلة التعليمات البرمجية لنسخ التعليمات البرمجية، ولصقها في جلسة عمل Cloud Shell باستخدام Ctrl+Shift+V على Windows وLinux، أو Cmd+Shift+V على macOS. لن يتم تنفيذ النص الملصق تلقائيًا، اضغط على زر إدخال لتشغيل التعليمات البرمجية.

هناك بعض الطرق لتشغيل Cloud Shell:

الخيار الارتباط‬
انقر فوق جربه في الزاوية العلوية اليسرى من كتلة التعليمات البرمجية. Cloud Shell in this article
انتقل إلى لفتح Cloud Shell في متصفحك. https://shell.azure.com/powershell
انقر فوق الزر Cloud Shell في القائمة في أعلى يمين مدخل Azure. Cloud Shell in the portal

قم بتسجيل الدخول، وحدد الاشتراك الصحيح

اتبع هذه الخطوات لبدء التكوين:

  • سجل الدخول إلى حساب Azure الخاص بك باستخدام بيانات الاعتماد الخاصة بك.

  • اختر الاشتراك الذي تريد استخدامه لهذا التكوين.

    إذا كنت تستخدم Azure Cloud Shell، يمكنك تسجيل الدخول إلى حساب Azure الخاص بك تلقائيًا بعد النقر فوق "جربه". لتسجيل الدخول محليًا، افتح وحدة تحكم PowerShell بامتيازات مسؤول وافتح cmdlet للاتصال.

    Connect-AzAccount
    

    إذا كان لديك أكثر من اشتراك واحد، فاحصل على قائمة باشتراكات Azure.

    Get-AzSubscription
    

    حدد الاشتراك المراد استخدامه.

    Select-AzSubscription -SubscriptionName "Name of subscription"
    

إنشاء Azure Key Vault وأسرار MACsec وهوية المستخدم

  1. لتخزين أسرار MACsec بشكل آمن، تحتاج إلى إنشاء مثيل Key Vault في مجموعة موارد جديدة. Key Vault هي خدمة تسمح لك بإدارة وحماية مفاتيح التشفير والشهادات والأسرار في Azure. لمزيد من المعلومات، راجع ما هو Azure Key Vault؟.

    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
    

    يمكنك إعادة استخدام Key Vault أو مجموعة موارد موجودة لهذا التكوين. ومع ذلك، يجب عليك التأكد من تمكين [ميزة الحذف المبدئي] على Key Vault الخاص بك. تتيح لك هذه الميزة استرداد المفاتيح والأسرار والشهادات المحذوفة خلال فترة الاستبقاء. إذا لم يتم تمكين الحذف المبدئي ل Key Vault، فقم بتشغيل الأوامر التالية لتمكينه:

    ($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
    

    إشعار

    • ExpressRoute هي خدمة موثوق بها داخل Azure تدعم نهج أمان الشبكة داخل Azure Key Vault. لمزيد من المعلومات، راجع تكوين جدار حماية Azure Key Vault والشبكات الظاهرية.
    • يجب عدم وضع Azure Key Vault خلف نقطة نهاية خاصة، لأن هذا سيمنع الاتصال ب مستوى إدارة ExpressRoute. وحدة إدارة ExpressRoute مسؤولة عن إدارة مفاتيح MACsec والمعلمات للاتصال الخاص بك.
  2. لإنشاء هوية مستخدم جديدة، تحتاج إلى استخدام New-AzUserAssignedIdentity cmdlet. ينشئ cmdlet هذا هوية مدارة معينة من قبل المستخدم في معرف Microsoft Entra ويسجلها مع الاشتراك المحدد ومجموعة الموارد. الهوية المدارة المعينة من قبل المستخدم هي مورد Azure مستقل يمكن تعيينه إلى أي خدمة Azure تدعم الهويات المدارة. يمكنك استخدام هذه الهوية لمصادقة وتخويل الوصول إلى موارد Azure دون تخزين أي بيانات اعتماد في التعليمات البرمجية أو ملفات التكوين. لمزيد من المعلومات، راجع ما هي الهويات المدارة لموارد Azure؟.

    $identity = New-AzUserAssignedIdentity  -Name "identity_name" -Location "resource_location" -ResourceGroupName "your_resource_group"
    

    لاستخدام هوية مستخدم موجودة، قم بتشغيل الأمر التالي:

    $identity = Get-AzUserAssignedIdentity -ResourceGroupName "your_resource_group" -Name "identity_name"
    

    قم بتثبيت الوحدة النمطية التالية في وضع مسؤول istrator إذا لم يتعرف PowerShell على أوامر cmdlets صالحة أو Get-AzUserAssignedIdentity لا يتعرف New-AzUserAssignedIdentity عليها. ثم قم بتنفيذ الأمر أعلاه مرة أخرى.

    Install-Module -Name Az.ManagedServiceIdentity
    
  3. إنشاء مفتاح اقتران اتصال (CAK) واسم مفتاح اقتران اتصال (CKN) وتخزينها في Key Vault.

    $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
    

    إشعار

    • يجب أن تكون CKN سلسلة ذات طول زوجي حتى 64 رقمًا سداسيًا عشريًا (0-9، A-F).
    • يعتمد طول CAK على مجموعة التشفير المحددة:
      • بالنسبة إلى GcmAes128 وGcmAesXpn128، يجب أن يكون CAK سلسلة متساوية الطول مع 32 رقما سداسيا عشريا (0-9، A-F).
      • بالنسبة إلى GcmAes256 وGcmAesXpn256، يجب أن يكون CAK سلسلة متساوية الطول مع 64 رقما سداسيا عشريا (0-9، A-F).
    • بالنسبة إلى CAK، يجب استخدام الطول الكامل للمفتاح. إذا كان المفتاح أقصر من الطول 0's المطلوب، فستتم إضافته إلى نهاية المفتاح لتلبية متطلبات الطول. على سبيل المثال، سيكون CAK من 1234 12340000... لكل من 128 بت و256 بت استنادا إلى التشفير.
  4. امنح هوية المستخدم التخويل لتنفيذ GET العملية.

    Set-AzKeyVaultAccessPolicy -VaultName "your_key_vault_name" -PermissionsToSecrets get -ObjectId $identity.PrincipalId
    

    حصلت هوية المستخدم على حق الوصول لاسترداد الأسرار، مثل CAK وCKN، من Key Vault.

  5. تكوين هوية المستخدم ككيان خدمة معين ل ExpressRoute.

    $erIdentity = New-AzExpressRoutePortIdentity -UserAssignedIdentityId $identity.Id
    

قم بتهيئة MACsec في منافذ ExpressRoute Direct

كيفية تمكين MACsec

يتكون كل مثيل ExpressRoute Direct من منفذين فعليين. يمكنك تنشيط MACsec على كلا المنفذين في وقت واحد أو على منفذ واحد على حدة. يسمح لك الخيار الأخير بتحويل حركة المرور إلى منفذ يعمل مع الحفاظ على المنفذ الآخر، والذي يمكن أن يقلل من التعطيل إذا كان ExpressRoute Direct الخاص بك قيد التشغيل.

إشعار

يمكنك تكوين تشفير بين كل من XPN وNon-XPN:

  • GcmAes128
  • GcmAes256
  • GcmAesXpn128
  • GcmAesXpn256

أفضل الممارسات المقترحة هي إعداد التشفير باستخدام شفرات xpn لمنع حالات فشل الجلسة المتقطعة التي تحدث مع شفرات غير xpn على ارتباطات عالية السرعة.

  1. قم بإنشاء أسرار MACsec وشفرة وربط هوية المستخدم بالمنفذ لتمكين رمز إدارة ExpressRoute لاسترداد أسرار MACsec عند الحاجة.

    $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. (اختياري) إذا كانت المنافذ في حالة تعطل إداري، يمكنك تشغيل الأوامر التالية لإحضار المنافذ.

    $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 الآن على منافذ ExpressRoute Direct على جانب Microsoft. إذا لم تقم بتكوينه على أجهزة الحافة الخاصة بك، يمكنك المتابعة لتكوينها بنفس أسرار MACsec والشفرة.

  3. (اختياري) لتنشيط المنافذ الموجودة في حالة مسؤول istrative Down، قم بتشغيل الأوامر التالية:

    $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 الآن على منافذ ExpressRoute Direct.

كيفية تعطيل MACsec

لإلغاء تنشيط MACsec على مثيل ExpressRoute Direct، قم بتشغيل الأوامر التالية:

$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 على منافذ ExpressRoute Direct على جانب Microsoft.

اختبار الاتصال

بمجرد إعداد MACsec (بما في ذلك تحديث مفتاح MACsec) على منافذ ExpressRoute Direct، تحقق من حالة جلسات BGP للدوائر. إذا لم تكن قد أنشأت دائرة على المنافذ بعد، فقم بذلك أولا وإنشاء نظير Azure الخاص أو نظير Microsoft للدائرة. يمنعك تكوين MACsec غير الصحيح، مثل عدم تطابق مفتاح MACsec بين أجهزة الشبكة وأجهزة شبكة Microsoft، من مراقبة دقة ARP في الطبقة 2 أو إنشاء BGP في الطبقة 3. إذا تم تكوين كل شيء بشكل صحيح، فسترى مسارات BGP المعلن عنها بشكل صحيح في كلا الاتجاهين وتدفق بيانات التطبيق وفقا لذلك عبر ExpressRoute.

الخطوات التالية