تمرين - تكوين إعدادات الشبكة

مكتمل

في هذا التمرين، ستقوم بتكوين الوصول إلى الجهاز الظاهري (VM) الذي أنشأته سابقًا في هذه الوحدة.

هام

يجب أن تظل بيئة الاختبار المعزولة لـ Microsoft Learn قيد التشغيل. إذا انتهت مهلة بيئة الاختبار المعزولة، فستحتاج إلى إعادة التمرين السابق (التمرين - إنشاء جهاز Azure ظاهري).

للتحقق من أن الجهاز الظاهري الذي قمت بإنشائه مسبقا لا يزال قيد التشغيل، استخدم الأمر التالي:

az vm list


إذا تلقيت استجابة []فارغة ، فستحتاج إلى إكمال التمرين الأول في هذه الوحدة النمطية مرة أخرى. إذا كانت النتيجة تسرد الجهاز الظاهري الحالي وإعداداته، يمكنك المتابعة.

في الوقت الحالي، لا يمكن الوصول إلى الجهاز الظاهري الذي قمت بإنشائه وتثبيت Nginx عليه من الإنترنت. ستقوم بإنشاء مجموعة أمان شبكة تقوم بتغيير ذلك عن طريق السماح بالوصول إلى HTTP الوارد على المنفذ 80.

المهمة 1: الوصول إلى خادم الويب الخاص بك

في هذا الإجراء، يمكنك الحصول على عنوان IP الخاص بك من أجل الجهاز الظاهري ومحاولة الوصول إلى الصفحة الرئيسية لخادم الويب الخاص بك.

  1. شغّل الأمر التالي az vm list-ip-addresses للحصول على عنوان IP الخاص بك للجهاز الظاهري وتخزين النتيجة كمتغير Bash:

    IPADDRESS="$(az vm list-ip-addresses \
      --resource-group "<rgn>[sandbox resource group name]</rgn>" \
      --name my-vm \
      --query "[].virtualMachine.network.publicIpAddresses[*].ipAddress" \
      --output tsv)"    
    
  2. شغّل الأمر التالي curl لتحميل الصفحة الرئيسية:

    curl --connect-timeout 5 http://$IPADDRESS
    

    تحدد --connect-timeoutالوسيطة السماح حتى خمس ثوانٍ لحدوث لاتصال. بعد خمس ثوانٍ، تشاهد رسالة خطأ توضح انتهاء مهلة الاتصال:

    curl: (28) Connection timed out after 5001 milliseconds
    

    تعني هذه الرسالة تعذّر الوصول للجهاز الظاهري إليها خلال فترة المهلة.

  3. كخطوة اختيارية، حاول الوصول إلى خادم الويب من مُستعرض:

    1. شغّل ما يلي لطباعة الجهاز الظاهري لعنوان IP الخاص بك إلى وحدة التحكم:

      echo $IPADDRESS       
      

      راجع عنوان IP، على سبيل المثال، 23.102.42.235.

    2. انسخ عنوان IP الذي تراه إلى الحافظة.

    3. افتح علامة تبويب مُستعرض جديدة ثم انتقل إلى خادم الويب. بعد بضع لحظات، ترى عدم حدوث الاتصال. إذا انتظرت حتى انتهاء مهلة المتصفح، فسترى شيئًا مثل هذا:

      Screenshot of a web browser showing an error message that says the connection timed out.

    4. احتفظ بعلامة التبويب هذه للمستعرض مفتوحة لوقتٍ لاحق.

المهمة 2: سرد بقواعد مجموعة أمان الشبكة الحالية

تعذّر الوصول إلى خادم الويب الخاص بك. لمعرفة السبب، لنفحص قواعد مجموعة أمان الشبكة الحالية.

  1. شغّل الأمر التالي az network nsg list لإنشاء قائمة بمجموعات أمان الشبكة المقترنة مع الجهاز الظاهري:

    az network nsg list \
      --resource-group "<rgn>[sandbox resource group name]</rgn>" \
      --query '[].name' \
      --output tsv    
    

    ترى ذلك:

    my-vmNSG
    
    
    

    يقترن كل جهاز ظاهري على Azure بمجموعة أمان شبكة واحدة على الأقل. في هذه الحالة، أنشأ Azure NSG لك باسم my-vmNSG.

  2. شغّل الأمر التالي az network nsg rule list لإنشاء قائمة القواعد المقترنة مع NSG باسم my-vmNSG:

    az network nsg rule list \
      --resource-group "<rgn>[sandbox resource group name]</rgn>" \
      --nsg-name my-vmNSG    
    

    تري عنصر حظر المستوى الكبير من النص بتنسيق JSON في الإخراج. في الخطوة التالية، ستقوم بتشغيل أمر مشابه يُسهل قراءة هذا الإخراج.

  3. شغّل az network nsg rule listالأمر مرة ثانية. في هذه المرة، استخدم --query الوسيطة لاسترداد الاسم والأولوية والمنافذ المتأثرة والوصول(السماح أو الرفض)لكل قاعدة فقط. تعمل --outputالوسيطة على تنسيق الإخراج كجدول بحيث يكون من السهل قراءتها.

    az network nsg rule list \
      --resource-group "<rgn>[sandbox resource group name]</rgn>" \
      --nsg-name my-vmNSG \
      --query '[].{Name:name, Priority:priority, Port:destinationPortRange, Access:access}' \
      --output table    
    

    ترى ذلك:

    Name              Priority    Port    Access
    -----------------  ----------  ------  --------
    default-allow-ssh  1000        22      Allow
    
    

    ترى القاعدة الافتراضية، default-allow-ssh. تسمح هذه القاعدة بإجراء الاتصالات الواردة عبر المنفذ 22 (SSH). SSH (Secure Shell) عبارة عن بروتوكول يستخدم على Linux للسماح للمسؤولين بالوصول إلى النظام عن بُعد. الأولوية لهذه القاعدة هي 1000. تُعالج القواعد بترتيب الأولوية، مع معالجة الأرقام الأقل قبل الأرقام الأعلى.

بشكل افتراضي يسمح NSG الخاص بـ Linux VM بالوصول إلى الشبكة فقط على المنفذ 22. يُمكّن ذلك المسؤولين من الوصول إلى النظام. تحتاج أيضًا إلى السماح بالاتصالات الواردة على المنفذ 80، الذي يسمح بالوصول عبر HTTP.

المهمة 3: إنشاء قاعدة أمان الشبكة

يمكنك هنا إنشاء قاعدة أمان شبكة تسمح بالوصول الوارد على المنفذ 80 (HTTP).

  1. شغّل الأمر التالي az network nsg rule create لإنشاء قاعدة باسم allow-http والتي تسمح بالوصول الوارد على المنفذ 80:

    az network nsg rule create \
      --resource-group "<rgn>[sandbox resource group name]</rgn>" \
      --nsg-name my-vmNSG \
      --name allow-http \
      --protocol tcp \
      --priority 100 \
      --destination-port-range 80 \
      --access Allow    
    

    من أجل أغراض التعلّم، يمكنك هنا تعيين الأولوية إلى 100. في هذه الحالة، تُعد الأولوية غير مهمة. ستحتاج إلى مراعاة الأولوية إذا كانت لديك نطاقات منافذ متداخلة.

  2. للتحقق من التكوين، شغّل az network nsg rule list لمشاهدة قائمة محدّثة من القواعد:

    az network nsg rule list \
      --resource-group "<rgn>[sandbox resource group name]</rgn>" \
      --nsg-name my-vmNSG \
      --query '[].{Name:name, Priority:priority, Port:destinationPortRange, Access:access}' \
      --output table    
    

    ترى ذلك على حد سواء قاعدة default-allow-ssh الخاصة بك الجديدة وقاعدة allow-http:

    Name              Priority    Port    Access
    -----------------  ----------  ------  --------
    default-allow-ssh  1000        22      Allow
    allow-http          100        80      Allow    
    

المهمة 4: الوصول إلى خادم الويب الخاص بك مرة أخرى

الآن بعد أن قمت بتكوين الوصول إلى شبكة الاتصال بالمنفذ 80، لنحاول الوصول إلى خادم الويب مرة أخرى.

إشعار

بعد تحديث NSG، قد يستغرق الأمر بضع لحظات قبل نشر القواعد المحدثة. أعد محاولة الخطوة التالية، مع التوقف المؤقت بين المحاولات، حتى تحصل على النتائج المطلوبة.

  1. شغّل curl الأمر ذاته الذي قمت بتشغيله سابقًا:

    curl --connect-timeout 5 http://$IPADDRESS
    

    ترى ذلك:

    <html><body><h2>Welcome to Azure! My name is my-vm.</h2></body></html>
    
  2. كخطوة اختيارية، حدّث علامة تبويب المتصفح التي تشير إلى خادم الويب الخاص بك. ترى ذلك:

    A screenshot of a web browser showing the home page from the web server. The home page displays a welcome message.

عمل رائع. في الممارسة العملية، يمكنك إنشاء مجموعة أمان شبكة مستقلة تتضمن قواعد الوصول إلى شبكة الاتصال الواردة والصادرة التي تحتاج إليها. إذا كان لديك العديد من الأجهزة الظاهرية التي تخدم الغرض ذاته، يمكنك تعيين مجموعة أمان الشبكة إلى كل جهاز ظاهري في الوقت الذي تقوم بإنشائه. تمكنك هذه التقنية من التحكم في الوصول إلى شبكة الاتصال إلى أجهزة ظاهرية متعددة ضمن مجموعة واحدة مركزية من القواعد.

تنظيف

تُنظف بيئة الاختبار المعزولة مواردك تلقائيًا ما إن تنتهي من هذه الوحدة النمطية.

عندما تعمل على اشتراكك الخاص، من الأفضل أن تُحدد في نهاية المشروع ما إذا كنت لا تزال بحاجة إلى الموارد التي أنشأتها أو لا. يمكن أن تكلفك الموارد التي لا تزال قيد التشغيل الأموال. يمكنك حذف الموارد بشكل فردي أو حذف مجموعة الموارد لحذف تشكيلة الموارد بأكملها.