إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
التحكم في الوصول إلى الشبكة الصادرة جزء هام من خطة أمان الشبكة بشكل عام. على سبيل المثال، قد ترغب في تقييد الوصول إلى المواقع الإلكترونية. أو، قد تحتاج إلى الحد من عناوين IP الصادرة والمنافذ التي يمكن الوصول إليها.
يمكنك التحكم في الوصول الصادر إلى الشبكة من شبكة Azure الفرعية باستخدام جدار الحماية Azure. باستخدام جدار الحماية في أزور، يمكنك إعداد:
- قواعد التطبيق التي تعرّف أسماء المجالات المؤهلة بالكامل (FQDN)، والتي يمكن الوصول إليها من شبكة فرعية.
- قواعد الشبكة التي تعرّف عنوان المصدر، والبروتوكول، ومنفذ الوجهة، وعنوان الوجهة.
يتم عرض حركة مرور شبكة الاتصال لقواعد جدار الحماية المكونة عند توجيه نسبة استخدام الشبكة إلى جدار الحماية كبوابة الشبكة الفرعية الافتراضية.
في هذا المقال، تنشئ شبكة افتراضية واحدة مبسطة مع ثلاث شبكات فرعية لتسهيل النشر. لنشر الإنتاج، استخدم نموذج المحور والسباكي، حيث يكون جدار الحماية في شبكته الافتراضية الخاصة. توجد خوادم حمل العمل في شبكات ظاهرية نظيرة في نفس المنطقة مع شبكة فرعية واحدة أو أكثر.
- AzureFirewallSubnet - جدار الحماية في هذه الشبكة الفرعية.
- Workload-SN - خادم حمل العمل في هذه الشبكة الفرعية. مرور شبكة الاتصال هذه الخاصة بالشبكة الفرعية عبر جدار الحماية.
- AzureBastionSubnet - الشبكة الفرعية المستخدمة في Azure Bastion، والتي تُستخدم للاتصال بخادم حمل العمل.
لمعرفة مزيد من المعلومات بخصوص Azure Bastion، راجع ما هو Azure Bastion؟
هام
يبدأ التسعير بالساعة من اللحظة التي يتم فيها نشر Bastion، بغض النظر عن استخدام البيانات الصادرة. لمزيد من المعلومات، راجع التسعير ووحدات SKU. إذا كنت تقوم بنشر Bastion كجزء من برنامج تعليمي أو اختبار، نوصي بحذف هذا المورد بعد الانتهاء من استخدامه.
في هذه المقالة، ستتعرف على كيفية:
- إعداد بيئة شبكة اختبار
- انشر جدار الحماية
- إنشاء مسار افتراضي
- تكوين قاعدة تطبيق للسماح بالوصول إلى
www.google.com - تكوين قاعدة شبكة اتصال للسماح بالوصول إلى خوادم DNS الخارجية
- اختبار جدار الحماية
إذا فضلت، يمكنك إكمال هذا الإجراء باستخدام بوابة Azure.
في حال لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانيّاً قبل البدء.
المتطلبات الأساسية
يتطلب هذا الإجراء تشغيل PowerShell محلياً. يجب أن يكون لديك وحدة Azure PowerShell مثبتة. قم بتشغيل Get-Module -ListAvailable Az للعثور على الإصدار. إذا كنت بحاجة إلى الترقية، فراجع تثبيت الوحدة النمطية Azure PowerShell. بعد التحقق من إصدار PowerShell، قم بتشغيل Connect-AzAccount لإنشاء اتصال مع Azure.
إعداد الشبكة
أولاً، إنشاء مجموعة موارد لاحتواء الموارد اللازمة لتوزيع جدار الحماية. ثم أنشئ شبكة افتراضية، وشبكات فرعية، وخوادم اختبار.
إنشاء مجموعة موارد
استخدم New-AzResourceGroup لإنشاء مجموعة موارد للنشر:
New-AzResourceGroup -Name Test-FW-RG -Location "East US"
قم بإنشاء شبكة ظاهرية ومضيف Azure Bastion
تحتوي هذه الشبكة الظاهرية على ثلاث شبكات فرعية. استخدم New-AzVirtualNetworkSubnetConfig لتعريفها:
إشعار
حجم الشبكة الفرعية AzureFirewallSubnet هو /26. لمزيد من المعلومات عن حجم الشبكة الفرعية، راجع الأسئلة المتداولة عن Azure Firewall.
$Bastionsub = New-AzVirtualNetworkSubnetConfig `
-Name AzureBastionSubnet `
-AddressPrefix 10.0.0.0/27
$FWsub = New-AzVirtualNetworkSubnetConfig `
-Name AzureFirewallSubnet `
-AddressPrefix 10.0.1.0/26
$Worksub = New-AzVirtualNetworkSubnetConfig `
-Name Workload-SN `
-AddressPrefix 10.0.2.0/24
استخدم شبكة New-AzVirtualNetwork لإنشاء الشبكة الافتراضية:
$testVnet = New-AzVirtualNetwork `
-Name Test-FW-VN `
-ResourceGroupName Test-FW-RG `
-Location "East US" `
-AddressPrefix 10.0.0.0/16 `
-Subnet $Bastionsub, $FWsub, $Worksub
قم بإنشاء عنوان IP عام لمضيف Azure Bastion
استخدم New-AzPublicIpAddress لإنشاء عنوان IP عام ثابت لمضيف Bastion:
$publicip = New-AzPublicIpAddress `
-ResourceGroupName Test-FW-RG `
-Location "East US" `
-Name Bastion-pip `
-AllocationMethod static `
-Sku standard
قم بإنشاء مضيف Azure Bastion
استخدم New-AzBastion لإنشاء مضيف Bastion:
New-AzBastion `
-ResourceGroupName Test-FW-RG `
-Name Bastion-01 `
-PublicIpAddress $publicip `
-VirtualNetwork $testVnet
إنشاء جهاز ظاهري
استخدم New-AzVM لإنشاء آلة الحمل الافتراضية. عند الطلب، اكتب اسم المستخدم وكلمة المرور:
# Create the NIC
$wsn = Get-AzVirtualNetworkSubnetConfig `
-Name Workload-SN `
-VirtualNetwork $testVnet
$NIC01 = New-AzNetworkInterface `
-Name Srv-Work `
-ResourceGroupName Test-FW-RG `
-Location "East US" `
-Subnet $wsn
# Define the virtual machine
$SecurePassword = ConvertTo-SecureString "<choose a password>" -AsPlainText -Force
$Credential = New-Object System.Management.Automation.PSCredential ("<choose a user name>", $SecurePassword);
$VirtualMachine = New-AzVMConfig `
-VMName Srv-Work `
-VMSize "Standard_DS2"
$VirtualMachine = Set-AzVMOperatingSystem `
-VM $VirtualMachine `
-Windows `
-ComputerName Srv-Work `
-ProvisionVMAgent `
-EnableAutoUpdate `
-Credential $Credential
$VirtualMachine = Add-AzVMNetworkInterface `
-VM $VirtualMachine `
-Id $NIC01.Id
$VirtualMachine = Set-AzVMSourceImage `
-VM $VirtualMachine `
-PublisherName 'MicrosoftWindowsServer' `
-Offer 'WindowsServer' `
-Skus '2019-Datacenter' `
-Version latest
# Create the virtual machine
New-AzVM `
-ResourceGroupName Test-FW-RG `
-Location "East US" `
-VM $VirtualMachine `
-Verbose
إشعار
يوفر Azure عنوان IP افتراضيا للوصول الصادر للأجهزة الظاهرية التي لم يتم تعيين عنوان IP عام لها أو الموجودة في تجمع الواجهة الخلفية لموازن تحميل Azure الأساسي الداخلي. توفر آلية IP للوصول الصادر الافتراضي عنوان IP صادر غير قابل للتكوين.
يتم تعطيل عنوان IP الافتراضي للوصول الصادر عند حدوث أحد الأحداث التالية:
- يتم تعيين عنوان IP عام إلى الجهاز الظاهري.
- يتم وضع الجهاز الظاهري في تجمع الواجهة الخلفية لموازن التحميل القياسي، مع قواعد صادرة أو بدونها.
- يتم تعيين مورد Azure NAT Gateway إلى الشبكة الفرعية للجهاز الظاهري.
لا تتمتع الأجهزة الظاهرية التي تقوم بإنشائها باستخدام مجموعات مقياس الجهاز الظاهري في وضع التنسيق المرن بالوصول الصادر الافتراضي.
لمزيد من المعلومات حول الاتصالات الصادرة في Azure، راجع الوصول الصادر الافتراضي في Azure واستخدام ترجمة عنوان الشبكة المصدر (SNAT) للاتصالات الصادرة.
انشر جدار الحماية
استخدم New-AzPublicIpAddress و New-AzFirewall لنشر جدار الحماية في الشبكة الافتراضية:
# Get a Public IP for the firewall
$FWpip = New-AzPublicIpAddress `
-Name "fw-pip" `
-ResourceGroupName Test-FW-RG `
-Location "East US" `
-AllocationMethod Static `
-Sku Standard
# Create the firewall
$Azfw = New-AzFirewall `
-Name Test-FW01 `
-ResourceGroupName Test-FW-RG `
-Location "East US" `
-VirtualNetwork $testVnet `
-PublicIpAddress $FWpip
# Save the firewall private IP address for future use
$AzfwPrivateIP = $Azfw.IpConfigurations.privateipaddress
$AzfwPrivateIP
لاحظ عنوان IP الخاص. يمكنك استخدامه لاحقا عند إنشاء المسار الافتراضي.
إنشاء مسار افتراضي
استخدم New-AzRouteTable و Add-AzRouteConfig لإنشاء جدول مسارات مع مسار افتراضي يشير إلى جدار الحماية، ثم ربطه بشبكة عبء العمل:
$routeTableDG = New-AzRouteTable `
-Name Firewall-rt-table `
-ResourceGroupName Test-FW-RG `
-location "East US" `
-DisableBgpRoutePropagation
# Create a route
Add-AzRouteConfig `
-Name "DG-Route" `
-RouteTable $routeTableDG `
-AddressPrefix 0.0.0.0/0 `
-NextHopType "VirtualAppliance" `
-NextHopIpAddress $AzfwPrivateIP
Set-AzRouteTable
# Associate the route table to the subnet
Set-AzVirtualNetworkSubnetConfig `
-VirtualNetwork $testVnet `
-Name Workload-SN `
-AddressPrefix 10.0.2.0/24 `
-RouteTable $routeTableDG | Set-AzVirtualNetwork
تكوين قاعدة تطبيق
استخدم New-AzFirewallApplicationRule و New-AzFirewallApplicationRuleCollection لإنشاء قاعدة تطبيق تمنح الوصول الصادر إلى www.google.com:
$AppRule1 = New-AzFirewallApplicationRule `
-Name Allow-Google `
-SourceAddress 10.0.2.0/24 `
-Protocol http, https `
-TargetFqdn www.google.com
$AppRuleCollection = New-AzFirewallApplicationRuleCollection `
-Name App-Coll01 `
-Priority 200 `
-ActionType Allow `
-Rule $AppRule1
$Azfw.ApplicationRuleCollections.Add($AppRuleCollection)
Set-AzFirewall -AzureFirewall $Azfw
يتضمن جدار حماية Azure مجموعة قواعد مضمنة لأجل FQDNs البنية الأساسية المسموح بها بشكل افتراضي. هذه الشبكات الخاصة بالمنصة ولا يمكن استخدامها لأغراض أخرى. لمزيد من المعلومات، راجع FQDNs البنية التحتية.
تكوين قاعدة شبكة
استخدم New-AzFirewallNetworkRule و New-AzFirewallNetworkRuleCollection لإنشاء قاعدة شبكة تمنح وصولا صادرا إلى عنواني IP عند المنفذ 53 (DNS):
$NetRule1 = New-AzFirewallNetworkRule `
-Name "Allow-DNS" `
-Protocol UDP `
-SourceAddress 10.0.2.0/24 `
-DestinationAddress 209.244.0.3,209.244.0.4 `
-DestinationPort 53
$NetRuleCollection = New-AzFirewallNetworkRuleCollection `
-Name RCNet01 `
-Priority 200 `
-Rule $NetRule1 `
-ActionType "Allow"
$Azfw.NetworkRuleCollections.Add($NetRuleCollection)
Set-AzFirewall -AzureFirewall $Azfw
تغيير عنوان DNS الأساسي والثانوي لواجهة شبكة Srv-Work
لأغراض الاختبار في هذا الإجراء، قم بتكوين عناوين DNS الأساسية والثانوية للخادم. هذا التكوين ليس متطلبا عاما لجدار حماية Azure.
$NIC01.DnsSettings.DnsServers.Add("209.244.0.3")
$NIC01.DnsSettings.DnsServers.Add("209.244.0.4")
$NIC01 | Set-AzNetworkInterface
اختبار جدار الحماية
الآن، اختبر جدار الحماية للتأكد من أنه يعمل كما هو متوقع.
اتصل بالآلة الافتراضية Srv-Work باستخدام Bastion، وسجل الدخول.
في Srv-Work، افتح نافذة PowerShell وقم بتشغيل الأوامر التالية:
nslookup www.google.com nslookup www.microsoft.comكلا الأمرين يعيدان الإجابات، مما يدل على أن استفسارات DNS الخاصة بك تمر عبر جدار الحماية.
شغّل الأوامر التالية:
Invoke-WebRequest -Uri https://www.google.com Invoke-WebRequest -Uri https://www.microsoft.comتنجح
www.google.comالطلبات، وتفشل الطلباتwww.microsoft.com. تظهر هذه النتيجة أن قواعد جدار الحماية لديك تعمل كما هو متوقع.
الآن تأكدت من أن قواعد جدار الحماية تعمل:
- يمكنك حل أسماء DNS باستخدام خادم DNS الخارجي المكون.
- يمكنك التصفح للوصول إلى اسمح المجال المؤهل بالكامل (FQDN) المسموح به، ولكن ليس لأي مجالٍ آخر.
تنظيف الموارد
يمكنك الاحتفاظ بموارد جدار الحماية الخاص بك في البرنامج التعليمي التالي. إذا لم تعد بحاجة إليها، قم بحذف مجموعة موارد Test-FW-RG لحذف جميع الموارد المتعلقة بجدار الحماية:
Remove-AzResourceGroup -Name Test-FW-RG