إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
في هذا البرنامج التعليمي تقوم بإنشاء مثيل WAN افتراضي مع Virtual Hub في منطقة واحدة، وتنشر Azure Firewall في Virtual Hub لتأمين الاتصال. في هذا المثال، تظهر اتصالاً آمنًا بين الشبكات الافتراضية. يتم دعم حركة المرور بين الشبكات الافتراضية والفروع من موقع إلى موقع أو من نقطة إلى موقع أو ExpressRoute بواسطة Virtual Secure Hub.
في هذا البرنامج التعليمي، تتعلم كيفية:
- انشر شبكة WAN الافتراضية
- انشر Azure Firewall وقم بتكوين التوجيه المخصص
- اختبار الاتصال
Important
شبكة WAN الظاهرية هي مجموعة من المراكز والخدمات المتوفرة داخل المركز. يمكنك توزيع العديد من شبكات WAN الظاهرية التي تحتاج إليها. في مركز Virtual WAN، هناك خدمات متعددة مثل VPN وExpressRoute وما إلى ذلك. يتم نشر كل خدمة من هذه الخدمات تلقائيا عبر مناطق التوفرباستثناء Azure Firewall، إذا كانت المنطقة تدعم مناطق التوفر. لترقية Azure Virtual WAN Hub موجود إلى مركز آمن ويكون جدار حماية Azure يستخدم مناطق التوفر، يجب استخدام Azure PowerShell، كما هو موضح لاحقا في هذه المقالة.
Prerequisites
في حال لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانيّاً قبل البدء.
PowerShell 7 أو أعلى
يتطلب هذا البرنامج التعليمي تشغيل Azure PowerShell محليا على PowerShell 7 أو أعلى. لتثبيت PowerShell 7، راجع الترحيل من Windows PowerShell 5.1 إلى PowerShell 7.
يجب أن يكون إصدار الوحدة "Az.Network" 4.17.0 أو أعلى.
تسجيل الدخول إلى Azure
Connect-AzAccount
Select-AzSubscription -Subscription "<sub name>"
النشر الأولي لشبكة WAN الافتراضية
للبدء، تحتاج إلى تعيين المتغيرات وإنشاء مجموعة الموارد ومثيل WAN الظاهري والمركز الظاهري:
# Variable definition
$RG = "vwan-rg"
$Location = "westeurope"
$VwanName = "vwan"
$HubName = "hub1"
$FirewallTier = "Standard" # or "Premium"
# Create Resource Group, Virtual WAN and Virtual Hub using the New-AzVirtualWan and New-AzVirtualHub cmdlets
New-AzResourceGroup -Name $RG -Location $Location
$Vwan = New-AzVirtualWan -Name $VwanName -ResourceGroupName $RG -Location $Location -AllowVnetToVnetTraffic -AllowBranchToBranchTraffic -VirtualWANType "Standard"
$Hub = New-AzVirtualHub -Name $HubName -ResourceGroupName $RG -VirtualWan $Vwan -Location $Location -AddressPrefix "192.168.1.0/24" -Sku "Standard"
- قم بإنشاء شبكتين ظاهريتين وتوصيلهما بالمركز كمتحدثين باستخدام
New-AzVirtualHubVnetConnectioncmdlet. يتم إنشاء الشبكات الظاهرية باستخدام بادئات10.1.1.0/24العنوان و10.1.2.0/24.
# Create Virtual Network
$Spoke1 = New-AzVirtualNetwork -Name "spoke1" -ResourceGroupName $RG -Location $Location -AddressPrefix "10.1.1.0/24"
$Spoke2 = New-AzVirtualNetwork -Name "spoke2" -ResourceGroupName $RG -Location $Location -AddressPrefix "10.1.2.0/24"
# Connect Virtual Network to Virtual WAN
$Spoke1Connection = New-AzVirtualHubVnetConnection -ResourceGroupName $RG -ParentResourceName $HubName -Name "spoke1" -RemoteVirtualNetwork $Spoke1 -EnableInternetSecurityFlag $True
$Spoke2Connection = New-AzVirtualHubVnetConnection -ResourceGroupName $RG -ParentResourceName $HubName -Name "spoke2" -RemoteVirtualNetwork $Spoke2 -EnableInternetSecurityFlag $True
في هذه المرحلة، تعمل شبكة WAN الافتراضية الخاصة بك بكامل طاقتها وتوفر اتصالا من أي إلى أي شيء. لتأمين هذه البيئة، انشر جدار حماية Azure في كل مركز ظاهري. يمكنك إدارة جدران الحماية هذه مركزيا باستخدام نهج جدار الحماية.
في هذا المثال، ستقوم أيضا بإنشاء نهج جدار حماية لإدارة مثيل Azure Firewall في مركز Virtual WAN باستخدام New-AzFirewallPolicy cmdlet. سيتم نشر Azure Firewall في المركز باستخدام New-AzFirewall cmdlet.
# New Firewall Policy
$FWPolicy = New-AzFirewallPolicy -Name "VwanFwPolicy" -ResourceGroupName $RG -Location $Location
# New Firewall Public IP
$AzFWPIPs = New-AzFirewallHubPublicIpAddress -Count 1
$AzFWHubIPs = New-AzFirewallHubIpAddress -PublicIP $AzFWPIPs
# New Firewall
$AzFW = New-AzFirewall -Name "azfw1" -ResourceGroupName $RG -Location $Location `
-VirtualHubId $Hub.Id -FirewallPolicyId $FWPolicy.Id `
-SkuName "AZFW_Hub" -HubIPAddress $AzFWHubIPs `
-SkuTier $FirewallTier
Note
لا يستخدم الأمر التالي إنشاء جدار الحماية مناطق التوفر. إذا كنت ترغب في استخدام هذه الميزة ، فستكون هناك حاجة إلى معلمة إضافية -Zone . يتم توفير مثال في قسم الترقية في نهاية هذه المقالة.
يعد تمكين التسجيل من Azure Firewall إلى Azure Monitor اختياريا. في هذا المثال، يمكنك استخدام سجلات جدار الحماية للتحقق من مرور نسبة استخدام الشبكة عبر جدار الحماية. أولا، قم بإنشاء مساحة عمل Log Analytics لتخزين السجلات. بعد ذلك، استخدم Set-AzDiagnosticSetting cmdlet لتكوين إعدادات التشخيص وإرسال السجلات إلى مساحة العمل.
# Optionally, enable logging of Azure Firewall to Azure Monitor
$LogWSName = "vwan-" + (Get-Random -Maximum 99999) + "-" + $RG
$LogWS = New-AzOperationalInsightsWorkspace -Location $Location -Name $LogWSName -Sku Standard -ResourceGroupName $RG
Set-AzDiagnosticSetting -ResourceId $AzFW.Id -Enabled $True -Category AzureFirewallApplicationRule, AzureFirewallNetworkRule -WorkspaceId $LogWS.ResourceId
انشر Azure Firewall وقم بتكوين التوجيه المخصص
Note
هذا هو التكوين الذي يتم نشره عند تأمين الاتصال من مدخل Microsoft Azure باستخدام Azure Firewall Manager عند تعيين إعداد "Inter-hub" إلى معطل. للحصول على إرشادات حول كيفية تكوين التوجيه باستخدام PowerShell عند تعيين "Inter-hub" إلى ممكن، راجع تمكين هدف التوجيه.
لديك الآن جدار حماية Azure في المركز، ولكنك لا تزال بحاجة إلى تعديل التوجيه حتى ترسل شبكة WAN الافتراضية حركة المرور من الشبكات الافتراضية ومن الفروع عبر جدار الحماية. يمكنك القيام بذلك في خطوتين:
- تكوين كافة اتصالات شبكة الاتصال الظاهرية (واتصالات الفرع إذا كان هناك أي) لنشر إلى
Noneجدول التوجيه. تأثير هذا التكوين هو أن الشبكات والفروع الظاهرية الأخرى لن تتعلم بادئاتها، وبالتالي ليس لديها توجيه للوصول إليها. - الآن يمكنك إدراج التوجيهات الثابتة في
Defaultجدول التوجيه (حيث يتم إقران كافة الشبكات والفروع الظاهرية بشكل افتراضي)، بحيث يتم إرسال كافة حركة المرور إلى جدار حماية Azure.
ابدأ بتكوين اتصالات الشبكة الظاهرية الخاصة بك للنشر إلى None جدول التوجيه. تضمن هذه الخطوة أن الشبكات الظاهرية لا تتعلم بادئات عنوان بعضها البعض، مما يمنع الاتصال المباشر بينها. نتيجة لذلك، يجب أن تمر جميع نسبة استخدام الشبكة بين الأجهزة الظاهرية عبر جدار حماية Azure.
للقيام بذلك، استخدم Get-AzVhubRouteTable cmdlet لاسترداد None جدول التوجيه، ثم قم بتحديث تكوين توجيه كل اتصال شبكة ظاهرية باستخدام Update-AzVirtualHubVnetConnection cmdlet.
# Configure Virtual Network connections in hub to propagate to None
$VnetRoutingConfig = $Spoke1Connection.RoutingConfiguration # We take $Spoke1Connection as baseline for the future vnet config, all vnets will have an identical config
$NoneRT = Get-AzVhubRouteTable -ResourceGroupName $RG -HubName $HubName -Name "noneRouteTable"
$NewPropRT = @{}
$NewPropRT.Add('Id', $NoneRT.Id)
$PropRTList = @()
$PropRTList += $NewPropRT
$VnetRoutingConfig.PropagatedRouteTables.Ids = $PropRTList
$VnetRoutingConfig.PropagatedRouteTables.Labels = @()
$Spoke1Connection = Update-AzVirtualHubVnetConnection -ResourceGroupName $RG -ParentResourceName $HubName -Name "spoke1" -RoutingConfiguration $VnetRoutingConfig
$Spoke2Connection = Update-AzVirtualHubVnetConnection -ResourceGroupName $RG -ParentResourceName $HubName -Name "spoke2" -RoutingConfiguration $VnetRoutingConfig
بعد ذلك ، انتقل إلى الخطوة الثانية: إضافة مسارات ثابتة إلى Default جدول التوجيه. يستخدم المثال التالي التكوين الافتراضي الذي يطبقه Azure Firewall Manager عند تأمين الاتصال في شبكة WAN الظاهرية. يمكنك تخصيص قائمة البادئات في المسار الثابت حسب الحاجة باستخدام New-AzVHubRoute cmdlet. في هذا المثال، يتم توجيه جميع نسبة استخدام الشبكة من خلال جدار حماية Azure، وهو الإعداد الافتراضي الموصى به.
# Create static routes in default Route table
$AzFWId = $(Get-AzVirtualHub -ResourceGroupName $RG -name $HubName).AzureFirewall.Id
$AzFWRoute = New-AzVHubRoute -Name "all_traffic" -Destination @("0.0.0.0/0", "10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16") -DestinationType "CIDR" -NextHop $AzFWId -NextHopType "ResourceId"
$DefaultRT = Update-AzVHubRouteTable -Name "defaultRouteTable" -ResourceGroupName $RG -VirtualHubName $HubName -Route @($AzFWRoute)
Note
السلسلة "all_traffic" كقيمة للمعلمة "-Name" في الأمر New-AzVHubRoute أعلاه لها معنى خاص: إذا كنت تستخدم هذه السلسلة بالضبط، فسينعكس التكوين المطبق في هذه المقالة بشكل صحيح في مدخل Microsoft Azure (إدارة جدار الحماية -> المحاور الظاهرية -> [المركز الخاص بك] -> تكوين الأمان). إذا تم استخدام اسم مختلف، تطبيق التكوين المطلوب، ولكن لن ينعكس في مدخل Microsoft Azure.
تمكين هدف التوجيه
إذا كنت ترغب في إرسال نسبة استخدام الشبكة بين المراكز والمنطقة عبر Azure Firewall المنشورة في مركز Virtual WAN، يمكنك بدلا من ذلك تمكين ميزة هدف التوجيه. لمزيد من المعلومات حول هدف التوجيه، راجع وثائق هدف التوجيه.
Note
هذا هو التكوين الذي يتم نشره عند تأمين الاتصال من مدخل Microsoft Azure باستخدام Azure Firewall Manager عند تعيين إعداد "Interhub" إلى ممكن.
# Get the Azure Firewall resource ID
$AzFWId = $(Get-AzVirtualHub -ResourceGroupName <thname> -name $HubName).AzureFirewall.Id
# Create routing policy and routing intent
$policy1 = New-AzRoutingPolicy -Name "PrivateTraffic" -Destination @("PrivateTraffic") -NextHop $firewall.Id
$policy2 = New-AzRoutingPolicy -Name "PublicTraffic" -Destination @("Internet") -NextHop $firewall.Id
New-AzRoutingIntent -ResourceGroupName "<rgname>" -VirtualHubName "<hubname>" -Name "hubRoutingIntent" -RoutingPolicy @($policy1, $policy2)
If your Virtual WAN uses non-RFC1918 address prefixes (for example, `40.0.0.0/24` in a virtual network or on-premises), you should add an extra route to the `defaultRouteTable` after completing the routing intent configuration. Name this route **private_traffic**. If you use a different name, the route will work as expected, but the configuration will not be reflected in the Azure portal.
```azurepowershell-interactive
# Get the defaultRouteTable
$defaultRouteTable = Get-AzVHubRouteTable -ResourceGroupName routingIntent-Demo -HubName wus_hub1 -Name defaultRouteTable
# Get the routes automatically created by routing intent. If private routing policy is enabled, this is the route named _policy_PrivateTraffic. If internet routing policy is enabled, this is the route named _policy_InternetTraffic.
$privatepolicyroute = $defaultRouteTable.Routes[1]
# Create new route named private_traffic for non-RFC1918 prefixes
$private_traffic = New-AzVHubRoute -Name "private-traffic" -Destination @("30.0.0.0/24") -DestinationType "CIDR" -NextHop $AzFWId -NextHopType ResourceId
# Create new routes for route table
$newroutes = @($privatepolicyroute, $private_traffic)
# Update route table
Update-AzVHubRouteTable -ResourceGroupName <rgname> -ParentResourceName <hubname> -Name defaultRouteTable -Route $newroutes
اختبار الاتصال
الآن بعد أن أصبح المركز الآمن الخاص بك يعمل بكامل طاقته، يمكنك اختبار الاتصال عن طريق نشر جهاز ظاهري في كل شبكة ظاهرية محورية متصلة بالمركز:
# Create VMs in spokes for testing
$VMLocalAdminUser = "lab-user"
$VMLocalAdminSecurePassword = ConvertTo-SecureString -AsPlainText -Force
$VMCredential = New-Object System.Management.Automation.PSCredential ($VMLocalAdminUser, $VMLocalAdminSecurePassword);
$VMSize = "Standard_B2ms"
# Spoke1
$Spoke1 = Get-AzVirtualNetwork -ResourceGroupName $RG -Name "spoke1"
Add-AzVirtualNetworkSubnetConfig -Name "vm" -VirtualNetwork $Spoke1 -AddressPrefix "10.1.1.0/26"
$Spoke1 | Set-AzVirtualNetwork
$VM1 = New-AzVM -Name "spoke1-vm" -ResourceGroupName $RG -Location $Location `
-Image "UbuntuLTS" -credential $VMCredential `
-VirtualNetworkName "spoke1" -SubnetName "vm" -PublicIpAddressName "spoke1-pip"
$NIC1 = Get-AzNetworkInterface -ResourceId $($VM1.NetworkProfile.NetworkInterfaces[0].Id)
$Spoke1VMPrivateIP = $NIC1.IpConfigurations[0].PrivateIpAddress
$Spoke1VMPIP = $(Get-AzPublicIpAddress -ResourceGroupName $RG -Name "spoke1-pip")
# Spoke2
$Spoke2 = Get-AzVirtualNetwork -ResourceGroupName $RG -Name "spoke2"
Add-AzVirtualNetworkSubnetConfig -Name "vm" -VirtualNetwork $Spoke2 -AddressPrefix "10.1.2.0/26"
$Spoke2 | Set-AzVirtualNetwork
$VM2 = New-AzVM -Name "spoke2-vm" -ResourceGroupName $RG -Location $Location `
-Image "UbuntuLTS" -credential $VMCredential `
-VirtualNetworkName "spoke2" -SubnetName "vm" -PublicIpAddressName "spoke2-pip"
$NIC2 = Get-AzNetworkInterface -ResourceId $($VM2.NetworkProfile.NetworkInterfaces[0].Id)
$Spoke2VMPrivateIP = $NIC2.IpConfigurations[0].PrivateIpAddress
$Spoke2VMPIP = $(Get-AzPublicIpAddress -ResourceGroupName $RG -Name "spoke2-pip")
بشكل افتراضي، يحظر نهج جدار الحماية كل حركة المرور. للسماح بالوصول إلى أجهزة الاختبار الظاهرية، يجب تكوين قواعد DNAT (ترجمة عنوان الشبكة الوجهة). ستمكنك هذه القواعد من الاتصال بالأجهزة الظاهرية من خلال عنوان IP العام لجدار حماية Azure:
# Adding DNAT rules for virtual machines in the spokes
$AzFWPublicAddress = $AzFW.HubIPAddresses.PublicIPs.Addresses[0].Address
$NATRuleSpoke1 = New-AzFirewallPolicyNatRule -Name "Spoke1SSH" -Protocol "TCP" `
-SourceAddress "*" -DestinationAddress $AzFWPublicAddress -DestinationPort 10001 `
-TranslatedAddress $Spoke1VMPrivateIP -TranslatedPort 22
$NATRuleSpoke2 = New-AzFirewallPolicyNatRule -Name "Spoke2SSH" -Protocol "TCP" `
-SourceAddress "*" -DestinationAddress $AzFWPublicAddress -DestinationPort 10002 `
-TranslatedAddress $Spoke2VMPrivateIP -TranslatedPort 22
$NATCollection = New-AzFirewallPolicyNatRuleCollection -Name "SSH" -Priority 100 `
-Rule @($NATRuleSpoke1, $NATRuleSpoke2) -ActionType "Dnat"
$NATGroup = New-AzFirewallPolicyRuleCollectionGroup -Name "NAT" -Priority 100 -RuleCollection $NATCollection -FirewallPolicyObject $FWPolicy
بعد ذلك، قم بتكوين أمثلة على القواعد لنهج جدار الحماية الخاص بك. أولا، قم بإنشاء قاعدة شبكة للسماح بحركة مرور SSH بين الشبكات الظاهرية. بعد ذلك، أضف قاعدة تطبيق للسماح بالوصول إلى الإنترنت فقط إلى اسم المجال المؤهل بالكامل (FQDN) ifconfig.co، والذي يرجع عنوان IP المصدر الذي يظهر في طلب HTTP:
# Add Network Rule
$SSHRule = New-AzFirewallPolicyNetworkRule -Name PermitSSH -Protocol TCP `
-SourceAddress "10.0.0.0/8" -DestinationAddress "10.0.0.0/8" -DestinationPort 22
$NetCollection = New-AzFirewallPolicyFilterRuleCollection -Name "Management" -Priority 100 -ActionType Allow -Rule $SSHRule
$NetGroup = New-AzFirewallPolicyRuleCollectionGroup -Name "Management" -Priority 200 -RuleCollection $NetCollection -FirewallPolicyObject $FWPolicy
# Add Application Rule
$ifconfigRule = New-AzFirewallPolicyApplicationRule -Name PermitIfconfig -SourceAddress "10.0.0.0/8" -TargetFqdn "ifconfig.co" -Protocol "http:80","https:443"
$AppCollection = New-AzFirewallPolicyFilterRuleCollection -Name "TargetURLs" -Priority 300 -ActionType Allow -Rule $ifconfigRule
$NetGroup = New-AzFirewallPolicyRuleCollectionGroup -Name "TargetURLs" -Priority 300 -RuleCollection $AppCollection -FirewallPolicyObject $FWPolicy
قبل إرسال أي نسبة استخدام للشبكة، تحقق من المسارات الفعالة لكل جهاز ظاهري. يجب أن تعرض جداول التوجيه البادئات التي تم تعلمها من شبكة WAN الظاهرية (0.0.0.0/0 نطاقات RFC1918)، ولكن يجب ألا تتضمن بادئة العنوان للشبكة الظاهرية الأخرى التي يتم التحدث بها.
# Check effective routes in the VM NIC in spoke 1
# Note that 10.1.2.0/24 (the prefix for spoke2) should not appear
Get-AzEffectiveRouteTable -ResourceGroupName $RG -NetworkInterfaceName $NIC1.Name | ft
# Check effective routes in the VM NIC in spoke 2
# Note that 10.1.1.0/24 (the prefix for spoke1) should not appear
Get-AzEffectiveRouteTable -ResourceGroupName $RG -NetworkInterfaceName $NIC2.Name | ft
قم بإنشاء نسبة استخدام الشبكة من جهاز ظاهري إلى آخر وتحقق من تصفيتها بواسطة Azure Firewall. استخدم SSH للاتصال بالأجهزة الظاهرية - اقبل بصمة SSH وأدخل كلمة المرور التي قمت بتعيينها أثناء إنشاء الجهاز الظاهري. في هذا المثال، سوف:
- أرسل خمسة طلبات صدى ICMP (pings) من الجهاز الظاهري في spoke1 إلى الجهاز الظاهري في spoke2.
- حاول اتصال TCP على المنفذ 22 باستخدام
ncالأداة المساعدة (netcat) مع العلامات-vz، التي تتحقق من الاتصال دون إرسال البيانات.
يجب أن تلاحظ أن طلبات إختبار الاتصال تفشل (محظورة بواسطة جدار الحماية)، بينما ينجح اتصال TCP على المنفذ 22، كما هو مسموح به بواسطة قاعدة الشبكة التي تم تكوينها مسبقا.
# Connect to one VM and ping the other. It should not work, because the firewall should drop the traffic, since no rule for ICMP is configured
ssh $AzFWPublicAddress -p 10001 -l $VMLocalAdminUser "ping $Spoke2VMPrivateIP -c 5"
# Connect to one VM and send a TCP request on port 22 to the other. It should work, because the firewall is configured to allow SSH traffic (port 22)
ssh $AzFWPublicAddress -p 10001 -l $VMLocalAdminUser "nc -vz $Spoke2VMPrivateIP 22"
يمكنك أيضا اختبار الوصول إلى الإنترنت من خلال جدار الحماية. يجب أن تنجح طلبات HTTP التي تستخدم الأداة curl المساعدة إلى FQDN (ifconfig.co) المسموح به، بينما يجب حظر الطلبات إلى وجهات أخرى (مثل bing.com) بواسطة نهج جدار الحماية:
# This HTTP request should succeed, since it is allowed in an app rule in the AzFW, and return the public IP of the FW
ssh $AzFWPublicAddress -p 10001 -l $VMLocalAdminUser "curl -s4 ifconfig.co"
# This HTTP request should fail, since the FQDN bing.com is not in any app rule in the firewall policy
ssh $AzFWPublicAddress -p 10001 -l $VMLocalAdminUser "curl -s4 bing.com"
للتأكد من أن جدار الحماية يقوم بإسقاط الحزم كما هو متوقع، راجع السجلات المرسلة إلى Azure Monitor. نظرا لأنه تم تكوين Azure Firewall لإرسال سجلات التشخيص إلى Azure Monitor، يمكنك استخدام لغة استعلام Kusto (KQL) للاستعلام عن إدخالات السجل ذات الصلة وتحليلها:
Note
قد يستغرق الأمر حوالي دقيقة واحدة حتى تظهر السجلات ليتم إرسالها إلى Azure Monitor
# Getting Azure Firewall network rule Logs
$LogWS = Get-AzOperationalInsightsWorkspace -ResourceGroupName $RG
$LogQuery = 'AzureDiagnostics
| where Category == "AzureFirewallNetworkRule"
| where TimeGenerated >= ago(5m)
| parse msg_s with Protocol " request from " SourceIP ":" SourcePortInt:int " to " TargetIP ":" TargetPortInt:int *
| parse msg_s with * ". Action: " Action1a
| parse msg_s with * " was " Action1b " to " NatDestination
| parse msg_s with Protocol2 " request from " SourceIP2 " to " TargetIP2 ". Action: " Action2
| extend SourcePort = tostring(SourcePortInt),TargetPort = tostring(TargetPortInt)
| extend Action = case(Action1a == "", case(Action1b == "",Action2,Action1b), Action1a),Protocol = case(Protocol == "", Protocol2, Protocol),SourceIP = case(SourceIP == "", SourceIP2, SourceIP),TargetIP = case(TargetIP == "", TargetIP2, TargetIP),SourcePort = case(SourcePort == "", "N/A", SourcePort),TargetPort = case(TargetPort == "", "N/A", TargetPort),NatDestination = case(NatDestination == "", "N/A", NatDestination)
| project TimeGenerated, Protocol, SourceIP,SourcePort,TargetIP,TargetPort,Action, NatDestination, Resource
| take 25 '
$(Invoke-AzOperationalInsightsQuery -Workspace $LogWS -Query $LogQuery).Results | ft
في الأمر السابق، ينبغي أن تشاهد إدخالات مختلفة:
- يجري DNAT'ed اتصال SSH الخاص بك
- حزم ICMP المسقطة بين VMs في المتحدث (10.1.1.4 و 10.1.2.4)
- يسمح باتصالات SSH بين VMs في المتحدث
هنا نموذج ناتج بواسطة الأمر أعلاه:
TimeGenerated Protocol SourceIP SourcePort TargetIP TargetPort Action NatDestination Resource
------------- -------- -------- ---------- -------- ---------- ------ -------------- --------
2020-10-04T20:53:02.41Z TCP 109.125.122.99 62281 51.105.224.44 10001 DNAT'ed 10.1.1.4:22 AZFW1
2020-10-04T20:53:07.045Z TCP 10.1.1.4 35932 10.1.2.4 22 Allow N/A AZFW1
2020-10-04T20:53:50.119Z TCP 109.125.122.99 62293 51.105.224.44 10001 DNAT'ed 10.1.2.4:22 AZFW1
2020-10-04T20:52:47.475Z TCP 109.125.122.99 62273 51.105.224.44 10001 DNAT'ed 10.1.2.4:22 AZFW1
2020-10-04T20:51:04.682Z TCP 109.125.122.99 62200 51.105.224.44 10001 DNAT'ed 10.1.2.4:22 AZFW1
2020-10-04T20:51:17.031Z ICMP Type=8 10.1.1.4 N/A 10.1.2.4 N/A Deny N/A AZFW1
2020-10-04T20:51:18.049Z ICMP Type=8 10.1.1.4 N/A 10.1.2.4 N/A Deny N/A AZFW1
2020-10-04T20:51:19.075Z ICMP Type=8 10.1.1.4 N/A 10.1.2.4 N/A Deny N/A AZFW1
2020-10-04T20:51:20.097Z ICMP Type=8 10.1.1.4 N/A 10.1.2.4 N/A Deny N/A AZFW1
2020-10-04T20:51:21.121Z ICMP Type=8 10.1.1.4 N/A 10.1.2.4 N/A Deny N/A AZFW1
2020-10-04T20:52:52.356Z TCP 10.1.1.4 53748 10.1.2.4 22 Allow N/A AZFW1
في حال كنت تريد مشاهدة سجلات قواعد التطبيق (تصف اتصالات HTTP المسموح بها والناسف) أو تغيير الطريقة التي يتم عرض السجلات، يمكنك محاولة مع استعلامات KQL الأخرى. يمكنك العثور على بعض الأمثلة في سجلات Azure Monitor لجدار حماية Azure.
لتنظيف بيئة الاختبار، احذف مجموعة الموارد وجميع الموارد المقترنة باستخدام Remove-AzResourceGroup cmdlet. سيؤدي هذا إلى إزالة Virtual WAN وVirtual Hub وAzure Firewall وأي موارد أخرى تم إنشاؤها أثناء هذا البرنامج التعليمي.
# Delete resource group and all contained resources
Remove-AzResourceGroup -Name $RG
نشر جدار حماية Azure جديد مع مناطق التوفر إلى مركز موجود
أوضحت الخطوات السابقة كيفية استخدام Azure PowerShell لإنشاء Azure Virtual WAN Hub جديد وتأمينه باستخدام Azure Firewall. يمكنك أيضا تأمين Azure Virtual WAN Hub موجود باستخدام نهج مشابه يستند إلى البرنامج النصي. بينما يمكن ل Firewall Manager تحويل مركز إلى مركز آمن، إلا أنه لا يدعم نشر Azure Firewall عبر مناطق التوفر من خلال المدخل. لنشر Azure Firewall في جميع مناطق التوفر الثلاث، استخدم البرنامج النصي PowerShell التالي لتحويل Virtual WAN Hub الحالي إلى مركز آمن.
Note
ينشر هذا الإجراء Azure Firewall جديدا. لا يمكنك ترقية جدار حماية Azure موجود دون مناطق توفر إلى منطقة ذات مناطق توفر. يجب أولا حذف جدار حماية Azure الموجود في المركز وإنشاءه مرة أخرى باستخدام هذا الإجراء.
# Variable definition
$RG = "vwan-rg"
$Location = "westeurope"
$VwanName = "vwan"
$HubName = "hub1"
$FirewallName = "azfw1"
$FirewallTier = "Standard" # or "Premium"
$FirewallPolicyName = "VwanFwPolicy"
# Get references to vWAN and vWAN Hub to convert #
$Vwan = Get-AzVirtualWan -ResourceGroupName $RG -Name $VwanName
$Hub = Get-AzVirtualHub -ResourceGroupName $RG -Name $HubName
# Create a new Firewall Policy #
$FWPolicy = New-AzFirewallPolicy -Name $FirewallPolicyName -ResourceGroupName $RG -Location $Location
# Create a new Firewall Public IP #
$AzFWPIPs = New-AzFirewallHubPublicIpAddress -Count 1
$AzFWHubIPs = New-AzFirewallHubIpAddress -PublicIP $AzFWPIPs
# Create Firewall instance #
$AzFW = New-AzFirewall -Name $FirewallName -ResourceGroupName $RG -Location $Location `
-VirtualHubId $Hub.Id -FirewallPolicyId $FWPolicy.Id `
-SkuName "AZFW_Hub" -HubIPAddress $AzFWHubIPs `
-SkuTier $FirewallTier `
-Zone 1,2,3
بعد تشغيل هذا البرنامج النصي، يجب أن تظهر مناطق التوفر في خصائص المركز الآمن كما هو موضح في لقطة الشاشة التالية:
بعد نشر Azure Firewall، يجب إكمال خطوات التكوين الموضحة في قسم نشر Azure Firewall السابق وتكوين قسم التوجيه المخصص لضمان التوجيه والأمان المناسبين.