يمكنك استخدام مجموعات أمان الشبكة لتصفية حركة مرور الشبكة الواردة والصادرة والتحكم فيها من وإلى موارد Azure. يمكنك أيضا استخدام Azure Virtual Network Manager لتطبيق قواعد أمان المسؤول على موارد Azure للتحكم في حركة مرور الشبكة.
في هذه المقالة، ستتعلم كيفية استخدام تشخيصات NSG ل Azure Network Watcher للتحقق من قواعد الأمان المطبقة على حركة مرور Azure واستكشاف الأخطاء وإصلاحها. تتحقق تشخيصات NSG من السماح بنسبة استخدام الشبكة أو رفضها بواسطة قواعد الأمان المطبقة.
يوضح لك المثال في هذه المقالة كيف يمكن لمجموعة أمان شبكة تم تكوينها بشكل خاطئ منعك من استخدام Azure Bastion للاتصال بجهاز ظاهري.
تعمل الخطوات الواردة في هذه المقالة على تشغيل أوامر Cmdlets Azure PowerShell بشكل تفاعلي في Azure Cloud Shell. لتشغيل الأوامر في Cloud Shell، حدد Open Cloud Shell في الزاوية العلوية اليسرى من كتلة التعليمات البرمجية. حدد نسخ لنسخ التعليمات البرمجية ثم لصقها في Cloud Shell لتشغيلها. يمكنك أيضا تشغيل Cloud Shell من داخل مدخل Microsoft Azure.
يمكنك أيضا تثبيت Azure PowerShell محليا لتشغيل cmdlets. تتطلب هذه المقالة الوحدة النمطية Az PowerShell. لمزيد من المعلومات، راجع كيفية تثبيت Azure PowerShell. للعثور على الإصدار المثبت، قم بتشغيل Get-InstalledModule -Name Az. إذا قمت بتشغيل PowerShell محليا، فقم بتسجيل الدخول إلى Azure باستخدام Connect-AzAccount cmdlet.
تعمل الخطوات الواردة في هذه المقالة على تشغيل أوامر Azure CLI بشكل تفاعلي في Azure Cloud Shell. لتشغيل الأوامر في Cloud Shell، حدد Open Cloud Shell في الزاوية العلوية اليسرى من كتلة التعليمات البرمجية. حدد نسخ لنسخ التعليمات البرمجية، ولصقها في Cloud Shell لتشغيلها. يمكنك أيضا تشغيل Cloud Shell من داخل مدخل Microsoft Azure.
في هذا القسم، يمكنك إنشاء شبكة ظاهرية مع شبكتين فرعيتين ومضيف Azure Bastion. يتم استخدام الشبكة الفرعية الأولى للجهاز الظاهري، ويتم استخدام الشبكة الفرعية الثانية لمضيف Bastion. يمكنك أيضا إنشاء مجموعة أمان شبكة وتطبيقها على الشبكة الفرعية الأولى.
في مربع البحث أعلى المدخل، أدخل الشبكات الظاهرية. حدد Virtual networks من نتائج البحث.
حدد + إنشاء. في Create virtual network، أدخل القيم التالية أو حددها في علامة التبويب Basics :
الإعداد
القيمة
تفاصيل المشروع
الاشتراك
حدد اشتراك Azure الخاص بك.
مجموعة الموارد
حدد إنشاء جديد. أدخِل myResourceGroup في الاسم. حدد موافق.
تفاصيل المثيل
اسم الشبكة الظاهرية
أدخل «myVNet»
المنطقة
حدد (US) East US.
حدد علامة التبويب الأمان، أو حدد الزر التالي في أسفل الصفحة.
ضمن Azure Bastion، حدد Enable Azure Bastion واقبل القيم الافتراضية:
الإعداد
القيمة
اسم مضيف Azure Bastion
myVNet-Bastion.
عنوان IP العام ل Azure Bastion
(جديد) myVNet-bastion-publicIpAddress.
حدد علامة التبويب عناوين IP، أو حدد الزر التالي في أسفل الصفحة.
اقبل مساحة عنوان IP الافتراضية 10.0.0.0/16 وقم بتحرير الشبكة الفرعية الافتراضية عن طريق تحديد أيقونة القلم الرصاص. في صفحة تحرير الشبكة الفرعية، أدخل القيم التالية:
الإعداد
القيمة
تفاصيل الشبكة الفرعية
الاسم
أدخل mySubnet.
الأمان
مجموعة أمان الشبكة
حدد إنشاء جديد. أدخل mySubnet-nsg في Name. حدد موافق.
حدد Review + create.
راجع الإعدادات، ثم حدّد "إنشاء".
أنشئ مجموعة موارد باستخدام New-AzResourceGroup. مجموعة موارد Azure هي حاوية منطقية يتم بها نشر موارد Azure وإدارتها.
# Create a resource group.
New-AzResourceGroup -Name 'myResourceGroup' -Location 'eastus'
# Create a public IP address for Azure Bastion.
New-AzPublicIpAddress -ResourceGroupName 'myResourceGroup' -Name 'myBastionIp' -Location 'eastus' -AllocationMethod 'Static' -Sku 'Standard'
يبدأ التسعير بالساعة من لحظة نشر مضيف Bastion، بغض النظر عن استخدام البيانات الصادرة. لمزيد من المعلومات، راجع الأسعار. نوصي بحذف هذا المورد بمجرد الانتهاء من استخدامه.
إنشاء جهاز ظاهري
في هذا القسم، يمكنك إنشاء جهاز ظاهري ومجموعة أمان شبكة مطبقة على واجهة الشبكة الخاصة به.
# Create a default network security group.
az network nsg create --name 'myVM-nsg' --resource-group 'myResourceGroup' --location 'eastus'
إنشاء جهاز ظاهري باستخدام az vm create. عند المطالبة، أدخل اسم مستخدم وكلمة مرور.
# Create a virtual machine using the latest Windows Server 2022 image.
az vm create --resource-group 'myResourceGroup' --name 'myVM' --location 'eastus' --vnet-name 'myVNet' --subnet 'mySubnet' --public-ip-address '' --nsg 'myVM-nsg' --image 'Win2022AzureEditionCore'
إضافة قاعدة أمان إلى مجموعة أمان الشبكة
في هذا القسم، يمكنك إضافة قاعدة أمان إلى مجموعة أمان الشبكة المقترنة بواجهة شبكة myVM. ترفض القاعدة أي حركة مرور واردة من الشبكة الظاهرية.
# Place the network security group configuration into a variable.
$networkSecurityGroup = Get-AzNetworkSecurityGroup -Name 'myVM-nsg' -ResourceGroupName 'myResourceGroup'
# Create a security rule that denies inbound traffic from the virtual network service tag.
Add-AzNetworkSecurityRuleConfig -Name 'DenyVnetInBound' -NetworkSecurityGroup $networkSecurityGroup `
-Access 'Deny' -Protocol '*' -Direction 'Inbound' -Priority '1000' `
-SourceAddressPrefix 'virtualNetwork' -SourcePortRange '*' -DestinationAddressPrefix '*' -DestinationPortRange '*'
# Updates the network security group.
Set-AzNetworkSecurityGroup -NetworkSecurityGroup $networkSecurityGroup
استخدم az network nsg rule create لإضافة قاعدة أمان إلى مجموعة أمان الشبكة التي ترفض نسبة استخدام الشبكة من الشبكة الظاهرية.
# Add to the network security group a security rule that denies inbound traffic from the virtual network service tag.
az network nsg rule create --name 'DenyVnetInBound' --resource-group 'myResourceGroup' --nsg-name 'myVM-nsg' --priority '1000' \
--access 'Deny' --protocol '*' --direction 'Inbound' --source-address-prefixes 'virtualNetwork' --source-port-ranges '*' \
--destination-address-prefixes '*' --destination-port-ranges '*'
إشعار
تمثل علامة خدمة VirtualNetwork مساحة عنوان الشبكة الظاهرية، وجميع مساحات العناوين المحلية المتصلة، والشبكات الظاهرية النظيرة، والشبكات الظاهرية المتصلة ببوابة شبكة ظاهرية، وعنوان IP الظاهري للمضيف، وبادئات العناوين المستخدمة في المسارات المعرفة من قبل المستخدم. لمزيد من المعلومات، راجع علامات الخدمة.
التحقق من قواعد الأمان المطبقة على حركة مرور الجهاز الظاهري
استخدم تشخيصات NSG للتحقق من قواعد الأمان المطبقة على حركة المرور التي نشأت من الشبكة الفرعية Bastion إلى الجهاز الظاهري.
في مربع البحث أعلى المدخل، ابحث عن Network Watcher وحدده.
ضمن أدوات تشخيص الشبكة، حدد تشخيصات NSG.
في صفحة تشخيصات NSG، أدخل القيم التالية أو حددها:
الإعداد
القيمة
المورد الهدف
نوع المورد المستهدف
حدد الأجهزة الظاهرية.
الجهاز الظاهري
حدد الجهاز الظاهري myVM .
تفاصيل حركة المرور
البروتوكول
حدد TCP. الخيارات الأخرى المتاحة هي: أي، UDP وICMP.
الاتجاه
حدد الوارد. الخيار المتوفر الآخر هو: الصادر.
نوع المصدر
حدد عنوان IPv4/CIDR. الخيار الآخر المتاح هو: علامة الخدمة.
عنوان IPv4/CIDR
أدخل 10.0.1.0/26، وهو نطاق عناوين IP للشبكة الفرعية Bastion. القيم المقبولة هي: عنوان IP واحد، وعناوين IP متعددة، وبادئة IP واحدة، وبادئات IP متعددة.
عنوان IP الوجهة
اترك الإعداد الافتراضي 10.0.0.4، وهو عنوان IP الخاص ب myVM.
منفذ الوجهة
أدخل * لتضمين جميع المنافذ.
حدد Run NSG diagnostics لتشغيل الاختبار. بمجرد اكتمال تشخيص NSG للتحقق من جميع قواعد الأمان، فإنه يعرض النتيجة.
تظهر النتيجة أن هناك ثلاث قواعد أمان تم تقييمها للاتصال الوارد من الشبكة الفرعية Bastion:
GlobalRules: يتم تطبيق قاعدة مسؤول الأمان هذه على مستوى الشبكة الظاهرية باستخدام Azure Virtual Network Manage. تسمح القاعدة بنسبة استخدام الشبكة TCP الواردة من الشبكة الفرعية Bastion إلى الجهاز الظاهري.
mySubnet-nsg: يتم تطبيق مجموعة أمان الشبكة هذه على مستوى الشبكة الفرعية (الشبكة الفرعية للجهاز الظاهري). تسمح القاعدة بنسبة استخدام الشبكة TCP الواردة من الشبكة الفرعية Bastion إلى الجهاز الظاهري.
myVM-nsg: يتم تطبيق مجموعة أمان الشبكة هذه على مستوى واجهة الشبكة (NIC). ترفض القاعدة حركة مرور TCP الواردة من الشبكة الفرعية Bastion إلى الجهاز الظاهري.
حدد عرض تفاصيلmyVM-nsg للاطلاع على تفاصيل حول قواعد الأمان التي تحتوي عليها مجموعة أمان الشبكة هذه والقاعدة التي ترفض حركة المرور.
في مجموعة أمان شبكة myVM-nsg ، ترفض قاعدة الأمان DenyVnetInBound أي حركة مرور قادمة من مساحة العنوان لعلامة خدمة VirtualNetwork إلى الجهاز الظاهري. يستخدم مضيف Bastion عناوين IP من نطاق العنوان: 10.0.1.0/26، المضمنة في علامة خدمة VirtualNetwork ، للاتصال بالجهاز الظاهري. لذلك، يتم رفض الاتصال من مضيف Bastion بواسطة قاعدة الأمان DenyVnetInBound .
تظهر النتيجة أن هناك ثلاث قواعد أمان تم تقييمها للاتصال الوارد من الشبكة الفرعية Bastion:
GlobalRules: يتم تطبيق قاعدة مسؤول الأمان هذه على مستوى الشبكة الظاهرية باستخدام Azure Virtual Network Manage. تسمح القاعدة بنسبة استخدام الشبكة TCP الواردة من الشبكة الفرعية Bastion إلى الجهاز الظاهري.
mySubnet-nsg: يتم تطبيق مجموعة أمان الشبكة هذه على مستوى الشبكة الفرعية (الشبكة الفرعية للجهاز الظاهري). تسمح القاعدة بنسبة استخدام الشبكة TCP الواردة من الشبكة الفرعية Bastion إلى الجهاز الظاهري.
myVM-nsg: يتم تطبيق مجموعة أمان الشبكة هذه على مستوى واجهة الشبكة (NIC). ترفض القاعدة حركة مرور TCP الواردة من الشبكة الفرعية Bastion إلى الجهاز الظاهري.
في مجموعة أمان شبكة myVM-nsg ، ترفض قاعدة الأمان DenyVnetInBound أي حركة مرور قادمة من مساحة العنوان لعلامة خدمة VirtualNetwork إلى الجهاز الظاهري. يستخدم مضيف Bastion عناوين IP من 10.0.1.0/26، والتي تم تضمينها علامة خدمة VirtualNetwork ، للاتصال بالجهاز الظاهري. لذلك، يتم رفض الاتصال من مضيف Bastion بواسطة قاعدة الأمان DenyVnetInBound .
تظهر النتيجة أن هناك ثلاث قواعد أمان تم تقييمها للاتصال الوارد من الشبكة الفرعية Bastion:
GlobalRules: يتم تطبيق قاعدة مسؤول الأمان هذه على مستوى الشبكة الظاهرية باستخدام Azure Virtual Network Manage. تسمح القاعدة بنسبة استخدام الشبكة TCP الواردة من الشبكة الفرعية Bastion إلى الجهاز الظاهري.
mySubnet-nsg: يتم تطبيق مجموعة أمان الشبكة هذه على مستوى الشبكة الفرعية (الشبكة الفرعية للجهاز الظاهري). تسمح القاعدة بنسبة استخدام الشبكة TCP الواردة من الشبكة الفرعية Bastion إلى الجهاز الظاهري.
myVM-nsg: يتم تطبيق مجموعة أمان الشبكة هذه على مستوى واجهة الشبكة (NIC). ترفض القاعدة حركة مرور TCP الواردة من الشبكة الفرعية Bastion إلى الجهاز الظاهري.
في مجموعة أمان شبكة myVM-nsg ، ترفض قاعدة الأمان DenyVnetInBound أي حركة مرور قادمة من مساحة العنوان لعلامة خدمة VirtualNetwork إلى الجهاز الظاهري. يستخدم مضيف Bastion عناوين IP من 10.0.1.0/26، والتي تم تضمينها علامة خدمة VirtualNetwork ، للاتصال بالجهاز الظاهري. لذلك، يتم رفض الاتصال من مضيف Bastion بواسطة قاعدة الأمان DenyVnetInBound .
إضافة قاعدة أمان للسماح بنسبة استخدام الشبكة من الشبكة الفرعية Bastion
للاتصال ب myVM باستخدام Azure Bastion، يجب السماح بنسبة استخدام الشبكة من الشبكة الفرعية Bastion بواسطة مجموعة أمان الشبكة. للسماح بنسبة استخدام الشبكة من 10.0.1.0/26، أضف قاعدة أمان ذات أولوية أعلى (رقم أولوية أقل) من قاعدة DenyVnetInBound أو قم بتحرير قاعدة DenyVnetInBound للسماح بنسبة استخدام الشبكة من الشبكة الفرعية Bastion.
يمكنك إضافة قاعدة الأمان إلى مجموعة أمان الشبكة من صفحة Network Watcher التي أظهرت لك تفاصيل حول قاعدة الأمان التي ترفض حركة المرور إلى الجهاز الظاهري.
لإضافة قاعدة الأمان من داخل Network Watcher، حدد + Add security rule، ثم أدخل القيم التالية أو حددها:
الإعداد
القيمة
Source
حدد IP Addresses.
عناوين IP المصدر/نطاقات CIDR
أدخل 10.0.1.0/26، وهو نطاق عناوين IP للشبكة الفرعية Bastion.
نطاقات منافذ المصادر
دخل*.
الوجهة
حدد "Any".
الخدمة
حدد مخصص.
نطاقات المنفذ الوجهات
دخل*.
البروتوكول
حدد "Any".
الإجراء
حدد السماح.
أولوية
أدخل 900، وهو أولوية أعلى من 1000 مستخدم لقاعدة DenyVnetInBound.
الاسم
أدخل AllowBastionConnections.
حدد إعادة التحقق لتشغيل جلسة التشخيص مرة أخرى. يجب أن تظهر جلسة التشخيص الآن أن نسبة استخدام الشبكة من الشبكة الفرعية Bastion مسموح بها.
تسمح قاعدة الأمان AllowBastionConnections بنسبة استخدام الشبكة من أي عنوان IP في 10.0.1.0/26 إلى الجهاز الظاهري. لأن مضيف Bastion يستخدم عناوين IP من 10.0.1.0/26، يسمح باتصاله بالجهاز الظاهري بواسطة قاعدة أمان AllowBastionConnections .
تسمح قاعدة الأمان AllowBastionConnections بنسبة استخدام الشبكة من أي عنوان IP في 10.0.1.0/26 إلى الجهاز الظاهري. لأن مضيف Bastion يستخدم عناوين IP من 10.0.1.0/26، يسمح باتصاله بالجهاز الظاهري بواسطة قاعدة أمان AllowBastionConnections .
استخدم az network nsg rule create لإضافة قاعدة أمان إلى مجموعة أمان الشبكة تسمح بحركة المرور من الشبكة الفرعية Bastion.
# Add a security rule to the network security group.
az network nsg rule create --name 'AllowBastionConnections' --resource-group 'myResourceGroup' --nsg-name 'myVM-nsg' --priority '900' \
--access 'Allow' --protocol '*' --direction 'Inbound' --source-address-prefixes '10.0.1.0/26' --source-port-ranges '*' \
--destination-address-prefixes '*' --destination-port-ranges '*'
تسمح قاعدة الأمان AllowBastionConnections بنسبة استخدام الشبكة من أي عنوان IP في 10.0.1.0/26 إلى الجهاز الظاهري. لأن مضيف Bastion يستخدم عناوين IP من 10.0.1.0/26، يسمح باتصاله بالجهاز الظاهري بواسطة قاعدة أمان AllowBastionConnections .
تنظيف الموارد
عندما لم تعد هناك حاجة، احذف مجموعة الموارد وجميع الموارد التي تحتوي عليها: