استخدام وتكوين Azure Firewall باستخدام Azure CLI
التحكم في الوصول إلى الشبكة الصادرة جزء هام من خطة أمان الشبكة بشكل عام. على سبيل المثال، قد تحتاج إلى تقييد الوصول إلى مواقع ويب. أو قد تحتاج إلى تحديد عناوين IP الصادرة والمنافذ التي يمكن الوصول إليها.
إحدى الطرق التي يمكنك التحكم في الوصول إلى شبكة الاتصال الصادرة من شبكة فرعية Azure باستخدام Azure Firewall. باستخدام Azure Firewall، يمكنك تكوين:
- قواعد التطبيق التي تعرّف أسماء المجالات المؤهلة بالكامل (FQDN)، والتي يمكن الوصول إليها من شبكة فرعية. يمكن لـ FQDN أيضاً تضمين مثيلات SQL.
- قواعد الشبكة التي تعرّف عنوان المصدر، والبروتوكول، ومنفذ الوجهة، وعنوان الوجهة.
يتم عرض حركة مرور شبكة الاتصال لقواعد جدار الحماية المكونة عند توجيه نسبة استخدام الشبكة إلى جدار الحماية كبوابة الشبكة الفرعية الافتراضية.
بالنسبة لهذه المقالة، يمكنك إنشاء شبكة VNet فردية مبسطة بثلاث شبكات فرعية لتوزيعها بسهولة. لعمليات توزيع الإنتاج، يوصى باستخدام نموذج المحور والشعاع . حدود أمان البوابة موجود في شبكة VNet الخاصة به. خوادم حمل العمل هي في VNets منظر في نفس المنطقة مع شبكة فرعية واحدة أو أكثر.
- AzureFirewallSubnet - جدار الحماية في هذه الشبكة الفرعية.
- Workload-SN - خادم حمل العمل في هذه الشبكة الفرعية. مرور شبكة الاتصال هذه الخاصة بالشبكة الفرعية عبر جدار الحماية.
- Jump-SN - خادم "الانتقال" موجود في هذه الشبكة الفرعية. يحتوي خادم الانتقال السريع على عنوان IP عام يمكنك الاتصال به باستخدام سطح المكتب البعيد. من هناك، يمكنك الاتصال (باستخدام سطح مكتب بعيد آخر) بخادم حمل العمل.
في هذه المقالة، ستتعرف على كيفية:
- إعداد بيئة شبكة اختبار
- انشر جدار الحماية
- إنشاء مسار افتراضي
- تكوين قاعدة تطبيق للسماح بالوصول لـwww.google.com
- تكوين قاعدة شبكة اتصال للسماح بالوصول إلى خوادم DNS الخارجية
- اختبار جدار الحماية
يمكنك، إذا كنت تفضل ذلك، إكمال هذا الإجراء باستخدام مدخل Microsoft Azure أو Azure PowerShell.
إذا لم يكن لديك اشتراك في Azure، فأنشئ حساب Azure مجاني قبل أن تبدأ.
المتطلبات الأساسية
استخدم بيئة Bash في Azure Cloud Shell. لمزيد من المعلومات، راجع التشغيل السريع ل Bash في Azure Cloud Shell.
إذا كنت تفضل تشغيل أوامر مرجع CLI محلياً قم بتثبيت CLI Azure. إذا كنت تعمل على نظام تشغيل Windows أو macOS، ففكر في تشغيل Azure CLI في حاوية Docker. لمزيد من المعلومات، راجع كيفية تشغيل Azure CLI في حاوية Docker.
إذا كنت تستخدم تثبيت محلي، يُرجى تسجيل الدخول إلى Azure CLI مستخدمًا أمر az login. لإنهاء عملية المصادقة، اتبع الخطوات المعروضة في جهازك. للحصول على خيارات أخرى لتسجيل دخول، راجع تسجيل الدخول باستخدام Azure CLI.
عندما يُطلب منك، قم بتثبيت ملحق Azure CLI عند الاستخدام لأول مرة. لمزيد من المعلومات بشأن الامتدادات، راجع استخدام امتدادات مع Azure CLI.
يُرجى تشغيل إصدار az للوصول إلى الإصدار والمكتبات التابعة التي تم تثبيتها. للتحديث لآخر إصدار، يُرجى تشغيل تحديث az.
- تتطلب هذه المقالة الإصدار 2.55.0 أو أحدث من Azure CLI. إذا كنت تستخدم Azure Cloud Shell، يتم تثبيت أحدث إصدار بالفعل.
إعداد الشبكة
أولاً، إنشاء مجموعة موارد لاحتواء الموارد اللازمة لتوزيع جدار الحماية. ثم قم بإنشاء شبكة VNet وشبكات فرعية وخوادم اختبار.
إنشاء مجموعة موارد
تحتوي مجموعة الموارد على جميع الموارد للتوزيع.
az group create --name Test-FW-RG --location eastus
إنشاء شبكة افتراضية
تحتوي هذه الشبكة الظاهرية على ثلاث شبكات فرعية.
إشعار
حجم الشبكة الفرعية AzureFirewallSubnet هو /26. لمزيد من المعلومات عن حجم الشبكة الفرعية، راجع الأسئلة المتداولة عن Azure Firewall.
az network vnet create \
--name Test-FW-VN \
--resource-group Test-FW-RG \
--location eastus \
--address-prefix 10.0.0.0/16 \
--subnet-name AzureFirewallSubnet \
--subnet-prefix 10.0.1.0/26
az network vnet subnet create \
--name Workload-SN \
--resource-group Test-FW-RG \
--vnet-name Test-FW-VN \
--address-prefix 10.0.2.0/24
az network vnet subnet create \
--name Jump-SN \
--resource-group Test-FW-RG \
--vnet-name Test-FW-VN \
--address-prefix 10.0.3.0/24
أنشئ الأجهزة الظاهرية
الآن قم بإنشاء أجهزة افتراضية للقفز وحمل العمل، وضعها في الشبكات الفرعية المناسبة. عند مطالبتك، اكتب كلمة مرور للجهاز الظاهري.
قم بإنشاء الجهاز الظاهري Srv-Jump.
az vm create \
--resource-group Test-FW-RG \
--name Srv-Jump \
--location eastus \
--image win2016datacenter \
--vnet-name Test-FW-VN \
--subnet Jump-SN \
--admin-username azureadmin
az vm open-port --port 3389 --resource-group Test-FW-RG --name Srv-Jump
قم بإنشاء NIC لـ Srv-Work باستخدام عناوين IP لخادم DNS محددة ولا يوجد عنوان IP عام للاختبار معه.
az network nic create \
-g Test-FW-RG \
-n Srv-Work-NIC \
--vnet-name Test-FW-VN \
--subnet Workload-SN \
--public-ip-address "" \
--dns-servers 209.244.0.3 209.244.0.4
الآن قم بإنشاء الجهاز الظاهري لحمل العمل. عند مطالبتك، اكتب كلمة مرور للجهاز الظاهري.
az vm create \
--resource-group Test-FW-RG \
--name Srv-Work \
--location eastus \
--image win2016datacenter \
--nics Srv-Work-NIC \
--admin-username azureadmin
إشعار
يوفر Azure عنوان IP افتراضيا للوصول الصادر للأجهزة الظاهرية التي لم يتم تعيين عنوان IP عام لها أو الموجودة في تجمع الواجهة الخلفية لموازن تحميل Azure الأساسي الداخلي. توفر آلية IP للوصول الصادر الافتراضي عنوان IP صادر غير قابل للتكوين.
يتم تعطيل عنوان IP الافتراضي للوصول الصادر عند حدوث أحد الأحداث التالية:
- يتم تعيين عنوان IP عام إلى الجهاز الظاهري.
- يتم وضع الجهاز الظاهري في تجمع الواجهة الخلفية لموازن التحميل القياسي، مع قواعد صادرة أو بدونها.
- يتم تعيين مورد Azure NAT Gateway إلى الشبكة الفرعية للجهاز الظاهري.
لا تتمتع الأجهزة الظاهرية التي تقوم بإنشائها باستخدام مجموعات مقياس الجهاز الظاهري في وضع التنسيق المرن بالوصول الصادر الافتراضي.
لمزيد من المعلومات حول الاتصالات الصادرة في Azure، راجع الوصول الصادر الافتراضي في Azure واستخدام ترجمة عنوان الشبكة المصدر (SNAT) للاتصالات الصادرة.
انشر جدار الحماية
قم الآن بتوزيع جدار الحماية في الشبكة الظاهرية.
az network firewall create \
--name Test-FW01 \
--resource-group Test-FW-RG \
--location eastus
az network public-ip create \
--name fw-pip \
--resource-group Test-FW-RG \
--location eastus \
--allocation-method static \
--sku standard
az network firewall ip-config create \
--firewall-name Test-FW01 \
--name FW-config \
--public-ip-address fw-pip \
--resource-group Test-FW-RG \
--vnet-name Test-FW-VN
az network firewall update \
--name Test-FW01 \
--resource-group Test-FW-RG
az network public-ip show \
--name fw-pip \
--resource-group Test-FW-RG
fwprivaddr="$(az network firewall ip-config list -g Test-FW-RG -f Test-FW01 --query "[?name=='FW-config'].privateIpAddress" --output tsv)"
لاحظ عنوان IP الخاص. ستستخدمه لاحقاً عند إنشاء المسار الافتراضي.
إنشاء مسار افتراضي
إنشاء جدول توجيه، مع تعطيل نشر مسار BGP
az network route-table create \
--name Firewall-rt-table \
--resource-group Test-FW-RG \
--location eastus \
--disable-bgp-route-propagation true
قم بإنشاء المسار.
az network route-table route create \
--resource-group Test-FW-RG \
--name DG-Route \
--route-table-name Firewall-rt-table \
--address-prefix 0.0.0.0/0 \
--next-hop-type VirtualAppliance \
--next-hop-ip-address $fwprivaddr
اتصال جدول التوجيه بالشبكة الفرعية
az network vnet subnet update \
-n Workload-SN \
-g Test-FW-RG \
--vnet-name Test-FW-VN \
--address-prefixes 10.0.2.0/24 \
--route-table Firewall-rt-table
تكوين قاعدة تطبيق
تسمح قاعدة التطبيق بالوصول الصادر إلى www.google.com.
az network firewall application-rule create \
--collection-name App-Coll01 \
--firewall-name Test-FW01 \
--name Allow-Google \
--protocols Http=80 Https=443 \
--resource-group Test-FW-RG \
--target-fqdns www.google.com \
--source-addresses 10.0.2.0/24 \
--priority 200 \
--action Allow
يتضمن جدار حماية Azure مجموعة قواعد مضمنة لأجل FQDNs البنية الأساسية المسموح بها بشكل افتراضي. FQDNs هي خاصة بالمنصة ولا يمكن استخدامها لأغراض أخرى. لمزيد من المعلومات، راجع FQDNs البنية التحتية.
تكوين قاعدة شبكة
تسمح قاعدة الشبكة بالوصول الصادر إلى عنواني IP في المنفذ 53 (DNS).
az network firewall network-rule create \
--collection-name Net-Coll01 \
--destination-addresses 209.244.0.3 209.244.0.4 \
--destination-ports 53 \
--firewall-name Test-FW01 \
--name Allow-DNS \
--protocols UDP \
--resource-group Test-FW-RG \
--priority 200 \
--source-addresses 10.0.2.0/24 \
--action Allow
اختبار جدار الحماية
الآن، اختبر جدار الحماية للتأكد من أنه يعمل كما هو متوقع.
لاحظ عنوان IP الخاص للجهاز الظاهري Srv-Work:
az vm list-ip-addresses \ -g Test-FW-RG \ -n Srv-Work
قم بتوصيل سطح مكتب بعيد بجهاز Srv-Jump الظاهري، وقم بتسجيل الدخول. من هناك، افتح اتصال سطح المكتب البعيد بعنوان IP الخاص لـ Srv-Work وقم بتسجيل الدخول.
في SRV-Work، افتح نافذة PowerShell وقم بتشغيل الأوامر التالية:
nslookup www.google.com nslookup www.microsoft.com
ينبغي أن يعرض كلا الأمرين إجابات توضح أن استعلامات DNS الخاصة بك تمر عبر جدار الحماية.
شغّل الأوامر التالية:
Invoke-WebRequest -Uri https://www.google.com Invoke-WebRequest -Uri https://www.google.com Invoke-WebRequest -Uri https://www.microsoft.com Invoke-WebRequest -Uri https://www.microsoft.com
يجب أن تنجح طلبات
www.google.com
ويجب أن تفشل طلباتwww.microsoft.com
. يوضح هذا أن قواعد جدار الحماية الخاص بك تعمل بالشكل المتوقع.
إذن الآن، تحققت من أن قواعد جدار الحماية تعمل:
- يمكنك حل أسماء DNS باستخدام خادم DNS الخارجي المكون.
- يمكنك التصفح للوصول إلى اسمح المجال المؤهل بالكامل (FQDN) المسموح به، ولكن ليس لأي مجالٍ آخر.
تنظيف الموارد
يمكنك الاحتفاظ بموارد جدار الحماية الخاصة بك من أجل البرنامج التعليمي التالي، أو إذا لم تعد هناك حاجة، فاحذف مجموعة الموارد Test-FW-RG لحذف جميع الموارد المتعلقة بجدار الحماية:
az group delete \
-n Test-FW-RG