البرنامج التعليمي: قم بتأمين المحور الافتراضي الخاص بك باستخدام Azure PowerShell

في هذا البرنامج التعليمي تقوم بإنشاء مثيل WAN افتراضي مع Virtual Hub في منطقة واحدة، وتنشر Azure Firewall في Virtual Hub لتأمين الاتصال. في هذا المثال، تظهر اتصالاً آمنًا بين الشبكات الافتراضية. يتم دعم حركة المرور بين الشبكات الافتراضية والفروع من موقع إلى موقع أو من نقطة إلى موقع أو ExpressRoute بواسطة Virtual Secure Hub.

في هذا البرنامج التعليمي، تتعلم كيفية:

  • انشر شبكة WAN الافتراضية
  • انشر Azure Firewall وقم بتكوين التوجيه المخصص
  • اختبار الاتصال

هام

شبكة WAN الظاهرية هي مجموعة من المراكز والخدمات المتوفرة داخل المركز. يمكنك نشر العديد من شبكات WAN الظاهرية التي تحتاج إليها. في مركز Virtual WAN، هناك خدمات متعددة مثل VPN وExpressRoute وما إلى ذلك. يتم توزيع كل من هذه الخدمات تلقائيا عبر مناطق التوفرباستثناء جدار حماية Azure، إذا كانت المنطقة تدعم مناطق التوفر. لترقية Azure Virtual WAN Hub موجود إلى مركز آمن ويكون جدار حماية Azure يستخدم مناطق التوفر، يجب عليك استخدام Azure PowerShell، كما هو موضح لاحقا في هذه المقالة.

المتطلبات الأساسية

تسجيل الدخول إلى 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
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"

إنشاء شبكتين افتراضيتين وربطهما بالمحور كمتحدث:

# 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 لكل مركز افتراضي. يمكنك استخدام نُهج جدار الحماية لإدارة مثيل جدار حماية WAN Azure الظاهري بكفاءة. لذلك يتم إنشاء نهج جدار حماية أيضا في هذا المثال:

# 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

ملاحظة

لا يستخدم أمر إنشاء جدار الحماية التالي مناطق التوفر. إذا كنت ترغب في استخدام هذه الميزة، يلزم وجود معلمة -Zone إضافية. يتم توفير مثال في قسم الترقية في نهاية هذه المقالة.

يعد تمكين التسجيل من Azure Firewall إلى Azure Monitor اختياريًا، ولكنك في هذا المثال تستخدم سجلات جدار الحماية لإثبات أن حركة المرور تتجاوز جدار الحماية:

# Optionally, enable looging 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 وقم بتكوين التوجيه المخصص

ملاحظة

هذا هو التكوين الذي تم توزيعه عند تأمين الاتصال من مدخل Microsoft Azure باستخدام Azure Firewall Manager عند تعيين إعداد "Inter-hub" إلى معطل. للحصول على إرشادات حول كيفية تكوين التوجيه باستخدام powershell عند تعيين "Inter-hub" إلى ممكن، راجع تمكين هدف التوجيه.

لديك الآن جدار حماية Azure في المركز، ولكنك لا تزال بحاجة إلى تعديل التوجيه حتى ترسل شبكة WAN الافتراضية حركة المرور من الشبكات الافتراضية ومن الفروع عبر جدار الحماية. يمكنك القيام بذلك في خطوتين:

  1. تكوين كافة اتصالات شبكة الاتصال الظاهرية (واتصالات الفرع إذا كان هناك أي) لنشر إلى None جدول التوجيه. تأثير هذا التكوين هو أن الشبكات والفروع الظاهرية الأخرى لن تتعلم بادئاتها، وبالتالي ليس لديها توجيه للوصول إليها.
  2. الآن يمكنك إدراج التوجيهات الثابتة في Default جدول التوجيه (حيث يتم إقران كافة الشبكات والفروع الظاهرية بشكل افتراضي)، بحيث يتم إرسال كافة حركة المرور إلى جدار حماية Azure.

ابدأ بالخطوة الأولى لتكوين اتصالات شبكة الاتصال الظاهرية الخاصة بك لنشر إلى None جدول التوجيه:

# 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 بإنشائه عند تأمين الاتصال في WAN الظاهري، ولكن يمكنك تغيير قائمة البادئات في التوجيه الثابت لتناسب متطلباتك المحددة:

# 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)

ملاحظة

سلسلة all_traffic" كقيمة للمعلمة "-Name" في الأمر New-AzVHubRoute أعلاه له معنى خاص: إذا كنت تستخدم هذه السلسلة بالضبط التكوين المطبق في هذه المقالة سوف تنعكس بشكل صحيح في مدخل Azure (إدارة جدار الحماية --> المراكز الظاهرية --> [المركز الخاص بك] --> تكوين الأمان). إذا كان سيتم استخدام اسم مختلف، سيتم تطبيق التكوين المطلوب، ولكن لن ينعكس في مدخل Azure.

تمكين هدف التوجيه

إذا كنت ترغب في إرسال نسبة استخدام الشبكة بين المراكز والمنطقة عبر جدار حماية Azure الموزع في مركز Virtual WAN، يمكنك بدلا من ذلك تمكين ميزة هدف التوجيه. لمزيد من المعلومات حول هدف التوجيه، راجع وثائق هدف التوجيه.

ملاحظة

هذا هو التكوين الذي تم نشره عند تأمين الاتصال من مدخل 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)

إذا كنت تستخدم بادئات غير RFC1918 في Virtual WAN مثل 40.0.0.0/24 في الشبكة الظاهرية أو محليا، أضف مسارا إضافيا في defaultRouteTable بعد اكتمال تكوين هدف التوجيه. تأكد من تسمية هذا المسار على أنه private_traffic. إذا تمت تسمية المسار بخلاف ذلك، فسيتم تطبيق التكوين المطلوب ولكن لن ينعكس في مدخل Microsoft Azure.

# 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 العام لجدار الحماية:

# 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 بالإضافة إلى قاعدة تطبيق تسمح الوصول إلى إنترنت إلى اسم المجال مؤهل بالكامل ifconfig.co. يقوم عنوان URL هذا بإرجاع عنوان 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. في أوامر SSH التالية تحتاج إلى قبول بصمات الأصابع الأجهزة الظاهرية وتوفير كلمة المرور التي قمت بتعريفها عند إنشاء الأجهزة الظاهرية. في هذا المثال، ستقوم بإرسال خمس حزم طلب صدى ICMP من الجهاز الظاهري في spoke1 إلى spoke2، بالإضافة إلى محاولة اتصال TCP على المنفذ 22 باستخدام الأداة المساعدة Linux nc (مع -vz الإشارات التي يرسلها فقط طلب اتصال ويظهر النتيجة). ينبغي أن تشاهد فشل ping ومحاولة اتصال 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)، ولكن يجب أن تفشل طلبات HTTP إلى أي وجهة أخرى (في هذا المثال الذي تختبره 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 لإرسال السجلات إلى Azure Monitor، يمكنك استخدام Kusto Query Language لاسترداد السجلات ذات الصلة من Azure Monitor:

ملاحظة

قد يستغرق الأمر حوالي دقيقة واحدة حتى تظهر السجلات ليتم إرسالها إلى 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.

تنظيف الموارد

لحذف بيئة الاختبار، يمكنك إزالة مجموعة الموارد بكافة الكائنات المضمنة:

# Delete resource group and all contained resources
Remove-AzResourceGroup -Name $RG

ترقية مركز موجود مع مناطق التوفر

يستخدم الإجراء السابق Azure PowerShell لإنشاء Azure Virtual WAN Hub جديد، ثم يحوله على الفور إلى مركز آمن باستخدام جدار حماية Azure. يمكن تطبيق نهج مماثل على Azure Virtual WAN Hub موجود. يمكن أيضا استخدام Firewall Manager للتحويل، ولكن لا يمكن توزيع Azure Firewall عبر مناطق التوفر دون نهج يستند إلى البرنامج النصي. يمكنك استخدام مقتطف التعليمات البرمجية التالي لتحويل Azure Virtual WAN Hub موجود إلى مركز آمن، باستخدام جدار حماية 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 السابق وتكوين قسم التوجيه المخصص.

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