استخدام وتكوين 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 مجاني قبل أن تبدأ.

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

  • تتطلب هذه المقالة الإصدار 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

اختبار جدار الحماية

الآن، اختبر جدار الحماية للتأكد من أنه يعمل كما هو متوقع.

  1. لاحظ عنوان IP الخاص للجهاز الظاهري Srv-Work:

    az vm list-ip-addresses \
    -g Test-FW-RG \
    -n Srv-Work
    
  2. قم بتوصيل سطح مكتب بعيد بجهاز Srv-Jump الظاهري، وقم بتسجيل الدخول. من هناك، افتح اتصال سطح المكتب البعيد بعنوان IP الخاص لـ Srv-Work وقم بتسجيل الدخول.

  3. في SRV-Work، افتح نافذة PowerShell وقم بتشغيل الأوامر التالية:

    nslookup www.google.com
    nslookup www.microsoft.com
    

    ينبغي أن يعرض كلا الأمرين إجابات توضح أن استعلامات DNS الخاصة بك تمر عبر جدار الحماية.

  4. شغّل الأوامر التالية:

    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

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