نطاقات عناوين IP الخاصة SNAT جدار حماية Azure

يوفر جدار حماية Azure إمكانية SNAT لجميع نسبة استخدام الشبكة الصادرة إلى عناوين IP العامة. بشكل افتراضي، لا يقوم جدار حماية Azure SNAT باستخدام قواعد الشبكة عندما يكون عنوان IP الوجهة في نطاق عناوين IP خاص لكل IANA RFC 1918 أو مساحة عنوان مشتركة لكل IANA RFC 6598. قواعد التطبيق دائما SNATed باستخدام وكيل شفاف مهما كان عنوان IP الوجهة.

يعمل هذا المنطق جيداً عندما توجه حركة المرور مباشرة إلى الإنترنت. ومع ذلك، هناك سيناريوهات حيث قد ترغب في تجاوز سلوك SNAT الافتراضي.

  • إذا قمت بتمكين الاتصال النفقي القسري، فإن نسبة استخدام الشبكة المرتبطة بالإنترنت هي SNATed إلى أحد عناوين IP الخاصة بجدار الحماية في AzureFirewallSubnet، ما يخفي المصدر من جدار الحماية المحلي.
  • إذا كانت مؤسستك تستخدم نطاقات عناوين IP المسجلة خارج IANA RFC 1918 أو IANA RFC 6598 للشبكات الخاصة، فإن Azure Firewall SNATs نسبة استخدام الشبكة إلى أحد عناوين IP الخاصة بجدار الحماية في AzureFirewallSubnet. ومع ذلك، يمكنك تكوين جدار حماية Azure بحيث ليس SNAT نطاق عناوين IP العام الخاص بك. على سبيل المثال، لتحديد عنوان IP فردي، يمكنك تحديده على النحو التالي: 192.168.1.10. لتحديد نطاق من عناوين IP، يمكنك تحديده على النحو التالي: 192.168.1.0/24.

يمكن تغيير سلوك SNAT لجدار حماية Azure بالطرق التالية:

  • لتكوين Azure Firewall على عدم معالجة نسبة استخدام الشبكة SNAT بواسطة قواعد الشبكة بغض النظر عن عنوان IP الوجهة، استخدم 0.0.0.0/0 كنطاق عنوان IP الخاص بك. باستخدام هذا التكوين، لا يمكن لـ Azure Firewall توجيه حركة المرور مباشرةً إلى الإنترنت.

  • لتكوين جدار الحماية ل SNAT الذي تتم معالجته دائما بواسطة قواعد الشبكة بغض النظر عن عنوان الوجهة، استخدم 255.255.255.255/32 كنطاق عناوين IP الخاص بك.

  • يمكن تكوين Azure Firewall للتعلم التلقائي للنطاقات المسجلة والخاصة كل ساعة واستخدام المسارات المستفادة ل SNAT. يجب أن تحتوي إمكانية المعاينة هذه على Azure Route Server منشور في نفس VNet مثل Azure Firewall.

هام

ينطبق تكوين نطاق العنوان الخاص فقط على قواعد الشبكة. حالياً، قواعد التطبيق دائماً SNAT.

هام

إذا كنت ترغب في تحديد نطاقات عناوين IP الخاصة بك، والاحتفاظ بنطاقات عناوين IANA RFC 1918 الافتراضية، فتأكد من أن قائمتك المخصصة لا تزال تتضمن نطاق IANA RFC 1918.

يمكنك تكوين عناوين IP الخاصة بـ SNAT باستخدام الطرق التالية. يجب عليك تكوين عناوين SNAT الخاصة باستخدام الطريقة المناسبة لتكوينك. يجب أن تحدد جدران الحماية المقترنة بنهج جدار الحماية النطاق في النهج ولا تستخدم AdditionalProperties.

الطريقة استخدام القواعد الكلاسيكية استخدام نهج جدار الحماية
مدخل Azure مدعومة مدعومة
Azure PowerShell PrivateRangeتكوين غير مدعوم حالياً
Azure CLI --private-rangesتكوين غير مدعوم حالياً
قالب ARM تكوين AdditionalProperties في خاصية جدار الحماية تكوين snat/privateRanges في نهج جدار الحماية

تكوين نطاقات عناوين IP الخاصة بـ SNAT - Azure PowerShell

القواعد الكلاسيكية

يمكنك استخدام Azure PowerShell لتحديد نطاقات عناوين IP الخاصة لجدار الحماية.

إشعار

يتم تجاهل خاصية جدار الحماية PrivateRange لجدران الحماية المرتبطة بنهج جدار الحماية. يجب عليك استخدام الخاصية SNAT في firewallPolicies كما هو موضح في تكوين نطاقات عناوين IP الخاصة بـ SNAT - قالب ARM .

جدار حماية جديد

بالنسبة إلى جدار حماية جديد يستخدم القواعد الكلاسيكية، يكون Azure PowerShell cmdlet هو:

$azFw = @{
    Name               = '<fw-name>'
    ResourceGroupName  = '<resourcegroup-name>'
    Location           = '<location>'
    VirtualNetworkName = '<vnet-name>'
    PublicIpName       = '<public-ip-name>'
    PrivateRange       = @("IANAPrivateRanges", "192.168.1.0/24", "192.168.1.10")
}

New-AzFirewall @azFw

إشعار

يتطلب توزيع Azure Firewall باستخدام New-AzFirewall وجود VNet وعنوان IP عام. راجع توزيع وتكوين Azure Firewall باستخدام Azure PowerShell للحصول على دليل توزيع كامل.

إشعار

يتم توسيع IANAPrivateRanges إلى الإعدادات الافتراضية الحالية على Azure Firewall بينما تتم إضافة النطاقات الأخرى إليه. للاحتفاظ بـ IANAPrivateRanges افتراضياً في مواصفات النطاق الخاص، يجب أن تظل في مواصفات PrivateRange كما هو موضح في الأمثلة التالية.

لمزيد من المعلومات، راجع New-AzFirewall.

جدار الحماية الحالي

لتكوين جدار حماية موجود باستخدام القواعد الكلاسيكية، استخدم أوامر Azure PowerShell cmdlets التالية:

$azfw = Get-AzFirewall -Name '<fw-name>' -ResourceGroupName '<resourcegroup-name>'
$azfw.PrivateRange = @("IANAPrivateRanges","192.168.1.0/24", "192.168.1.10")
Set-AzFirewall -AzureFirewall $azfw

تكوين نطاقات عناوين IP الخاصة SNAT - Azure CLI

القواعد الكلاسيكية

يمكنك استخدام Azure CLI لتحديد نطاقات عناوين IP الخاصة لجدار الحماية باستخدام القواعد الكلاسيكية.

جدار حماية جديد

بالنسبة لجدار حماية جديد يستخدم القواعد التقليدية، يكون أمر Azure CLI هو:

az network firewall create \
-n <fw-name> \
-g <resourcegroup-name> \
--private-ranges 192.168.1.0/24 192.168.1.10 IANAPrivateRanges

إشعار

يتطلب توزيع Azure Firewall باستخدام أمر Azure CLI az network firewall create خطوات تكوين إضافية لإنشاء عناوين IP عامة وتكوين IP. راجع توزيع وتكوين Azure Firewall باستخدام Azure CLI للحصول على دليل توزيع كامل.

إشعار

يتم توسيع IANAPrivateRanges إلى الإعدادات الافتراضية الحالية على Azure Firewall بينما تتم إضافة النطاقات الأخرى إليه. للاحتفاظ بـ IANAPrivateRanges افتراضياً في مواصفات النطاق الخاص، يجب أن تظل في مواصفات private-ranges كما هو موضح في الأمثلة التالية.

جدار الحماية الحالي

لتكوين جدار حماية حالي باستخدام القواعد الكلاسيكية، يكون أمر Azure CLI هو:

az network firewall update \
-n <fw-name> \
-g <resourcegroup-name> \
--private-ranges 192.168.1.0/24 192.168.1.10 IANAPrivateRanges

تكوين نطاقات عناوين IP الخاصة SNAT - قالب ARM

القواعد الكلاسيكية

لتكوين SNAT أثناء توزيع قالب ARM، يمكنك إضافة ما يلي إلى خاصية additionalProperties:

"additionalProperties": {
   "Network.SNAT.PrivateRanges": "IANAPrivateRanges , IPRange1, IPRange2"
},

نهج جدار الحماية

دعم جدران الحماية Azure المرتبطة بنهج جدار الحماية نطاقات SNAT الخاصة منذ إصدار 2020-11-01 API. حالياً، يمكنك استخدام نموذج لتحديث نطاق SNAT الخاص في نهج جدار الحماية. يعمل النموذج التالي على تكوين جدار الحماية لحركة مرور شبكة SNAT دائماً:

{ 

            "type": "Microsoft.Network/firewallPolicies", 
            "apiVersion": "2020-11-01", 
            "name": "[parameters('firewallPolicies_DatabasePolicy_name')]", 
            "location": "eastus", 
            "properties": { 
                "sku": { 
                    "tier": "Standard" 
                }, 
                "snat": { 
                    "privateRanges": "[255.255.255.255/32]" 
                } 
            } 

تكوين نطاقات عناوين IP الخاصة SNAT - مدخل Microsoft Azure

القواعد الكلاسيكية

يمكنك استخدام مدخل Microsoft Azure لتحديد نطاقات عناوين IP الخاصة لجدار الحماية.

  1. حدد مجموعة الموارد الخاصة بك، ثم حدد جدار الحماية الخاص بك.

  2. في صفحة نظرة عامة، نطاقات IP الخاصة، حدد القيمة الافتراضية IANA RFC 1918.

    تفتح صفحة تحرير بادئات IP الخاصة:

    Screenshot of edit private IP prefixes.

  3. افتراضياً، يتم تكوين IANAPrivateRanges.

  4. قم بتحرير نطاقات عناوين IP الخاصة لبيئتك، ثم حدد Save.

نهج جدار الحماية

  1. حدد مجموعة الموارد الخاصة بك، ثم حدد نهج جدار الحماية الخاص بك.

  2. حدد Private IP ranges (SNAT) في عمود Settings.

  3. حدد الشروط لتنفيذ SNAT للبيئة الخاصة بك ضمن تنفيذ SNAT لتخصيص تكوين SNAT. Screenshot of Private IP ranges (SNAT).

  4. حدد تطبيق.

التعرف التلقائي على مسارات SNAT (معاينة)

يمكنك تكوين جدار حماية Azure للتعلم التلقائي لكل من النطاقات المسجلة والخاصة كل 30 دقيقة. تعتبر نطاقات العناوين المستفادة هذه داخلية للشبكة، لذا فإن نسبة استخدام الشبكة إلى الوجهات في النطاقات المستفادة ليست SNATed. تتطلب نطاقات SNAT للتعلم التلقائي نشر Azure Route Server في نفس VNet مثل Azure Firewall. يجب أن يكون جدار الحماية مقترنا ب Azure Route Server وأن يكون للتعلم التلقائي لنطاقات SNAT في نهج جدار حماية Azure. يمكنك حاليا استخدام قالب ARM أو Azure PowerShell أو مدخل Microsoft Azure لتكوين مسارات SNAT للتعلم التلقائي.

إشعار

يمكن الاستفادة من مسارات SNAT للتعلم التلقائي فقط على عمليات نشر الشبكة الظاهرية (الشبكة الظاهرية المركزية). لا يمكن الاستفادة منه في عمليات نشر VWAN (المركز الظاهري الآمن). لمزيد من المعلومات حول خيارات بنية جدار حماية Azure، راجع ما هي خيارات بنية Azure Firewall Manager؟

تكوين باستخدام قالب ARM

يمكنك استخدام JSON التالي لتكوين التعلم التلقائي. يجب أن يكون Azure Firewall مقترنا ب Azure Route Server.

	  "type": "Microsoft.Network/firewallPolicies",
         "apiVersion": "2022-11-01",
	"name": "[parameters('firewallPolicies_DatabasePolicy_name')]", 
            "location": "eastus", 
            "properties": { 
                "sku": { 
                    "tier": "Standard" 
                }, 
                "snat": { 
                     "autoLearnPrivateRanges": "Enabled"
                } 
            } 

استخدم JSON التالي لربط Azure Route Server:

  "type": "Microsoft.Network/azureFirewalls",
  "apiVersion": "2022-11-01",
  "name": "[parameters('azureFirewalls_testFW_name')]",
  "location": "eastus",
  "properties": {
    "sku": {
      "name": "AZFW_VNet",
      "tier": "Standard"
    },
    "threatIntelMode": "Alert",
    "additionalProperties": {
      "Network.RouteServerInfo.RouteServerID": "[parameters'virtualHubs_TestRouteServer_externalid')]"
    },
    ...
  }

قم بالتكوين باستخدام Azure PowerShell

  • إنشاء جدار حماية جديد باستخدام RouteServerId.

    # specify RouteServerId Uri
    $routeServerId="/subscriptions/your_sub/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/TestRS"
    
    # Create AzureFirewall 
    $azureFirewall = New-AzFirewall -Name $azureFirewallName -ResourceGroupName `
       $rgname -Location $location -RouteServerId $routeServerId 
    
    # Get firewall and confirm if RouteServerId is included on the response under additional properties (Network.RouteServerInfo.RouteServerID) 
    Get-AzFirewall -Name $azureFirewallName -ResourceGroupName $rgname 
    
  • تحديث جدار حماية موجود باستخدام RouteServerId

    # specify RouteServerId Uri 
    $routeServerId="/subscriptions/ your_sub /resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/TestRS"
    
    # Get firewall 
    $azFirewall = Get-AzFirewall -Name $azureFirewallName -ResourceGroupName $rgname 
    
    # Update the response with RouteServerId and do firewall SET 
    $azFirewall.RouteServerId = $routeServerId 
    Set-AzFirewall -AzureFirewall $azFirewall
    
    # Do firewall Get and confirm if routeServerId is updated 
    Get-AzFirewall -Name $azureFirewallName -ResourceGroupName $rgname
    
    
  • إنشاء نهج جدار حماية جديد مع توفير معلمة SNAT

    # If AutoLearnPrivateRange parameter is provided, auto learn will be enabled, if not it will be disabled 
    $snat = New-AzFirewallPolicySnat -PrivateRange $privateRange -AutoLearnPrivateRange
    
    # Create AzureFirewallPolicy (with SNAT) 
    $azureFirewallPolicy = New-AzFirewallPolicy -Name $azureFirewallPolicyName `
       -ResourceGroupName $rgname -Location $location -Snat $snat
    
    # Get AzureFirewallPolicy and verify 
    Get-AzFirewallPolicy -Name $azureFirewallPolicyName -ResourceGroupName $rgname 
    
    
  • تحديث نهج جدار حماية موجود باستخدام SNAT

    $snat = New-AzFirewallPolicySnat -PrivateRange $privateRange2 
    
    # Set AzureFirewallPolicy 
    $azureFirewallPolicy.Snat = $snat 
    Set-AzFirewallPolicy -InputObject $azureFirewallPolicy 
    
    # Do Get and Verify 
    Get-AzFirewallPolicy -Name $azureFirewallPolicyName -ResourceGroupName $rgname 
    
  • الحصول على البادئات المستفادة من جدار الحماية

      Get-AzFirewallLearnedIpPrefix -Name $azureFirewallName -ResourceGroupName $rgname 
    

تكوين باستخدام مدخل Microsoft Azure

يمكنك استخدام المدخل لربط Route Server بجدار حماية Azure لتكوين مسارات SNAT للتعلم التلقائي (معاينة).

استخدم المدخل لإكمال المهام التالية:

  • أضف شبكة فرعية تسمى RouteServerSubnet إلى VNet لجدار الحماية الحالي. يجب أن يكون حجم الشبكة الفرعية /27 على الأقل.
  • انشر Route Server في جدار الحماية الظاهري الموجود. للحصول على معلومات حول Azure Route Server، راجع التشغيل السريع: إنشاء وتكوين Route Server باستخدام مدخل Microsoft Azure.
  • أضف خادم التوجيه على صفحة Firewall Learned SNAT IP Prefixes (preview). Screenshot showing firewall add a route server.
  • قم بتعديل نهج جدار الحماية لتمكين بادئات IP للتعلم التلقائي (معاينة) في قسم نطاقات IP الخاصة (SNAT ). Screenshot showing firewall policy Private IP ranges (SNAT) settings.
  • يمكنك مشاهدة المسارات المستفادة في صفحة البادئات IP SNAT المستفادة (معاينة ).

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