إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
يوضح لك هذا البرنامج التعليمي كيفية استخدام مدخل Microsoft Azure لإنشاء بوابة تطبيق بجدار حماية تطبيق ويب (WAF). يستخدم جدار حماية تطبيق الويب قواعد OWASP لحماية تطبيقك. تتضمن هذه القواعد الحماية من هجمات مثل حقن SQL، وهجمات البرمجة النصية عبر الموقع، واختطاف الجلسات. بعد إنشاء بوابة التطبيق، اختبرها للتأكد من أنها تعمل بشكل صحيح. باستخدام بوابة تطبيق Azure، قم بتوجيه حركة مرور تطبيقك على الويب إلى موارد معينة عن طريق تعيين المستمعين إلى المنافذ، وإنشاء القواعد، وإضافة الموارد إلى تجمع في الخلفية. من أجل البساطة، يستخدم هذا البرنامج التعليمي إعدادا بسيطا مع IP أمامي عام، ومستمع أساسي لاستضافة موقع واحد على بوابة التطبيق هذه، جهازين ظاهريين يعملان بنظام Linux يستخدمان لتجمع الواجهة الخلفية، وقاعدة توجيه الطلب الأساسية.
في هذا البرنامج التعليمي، تتعلم كيفية:
- إنشاء بوابة تطبيق مع تمكين جدار حماية تطبيق ويب
- إنشاء الأجهزة الظاهرية المستخدمة بصفتها خوادم خلفية
- إنشاء حساب تخزين وتكوين التشخيص
- اختبار بوابة التطبيق
إشعار
نوصي باستخدام الوحدة النمطية Azure Az PowerShell للتفاعل مع Azure. للبدء، راجع تثبيت Azure PowerShell. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.
المتطلبات الأساسية
في حال لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانيّاً قبل البدء.
تسجيل الدخول إلى Azure
قم بتسجيل الدخول إلى بوابة Azure.
إنشاء بوابة تطبيق
00-حدد "Create a resource" في القائمة اليمنى مدخل Microsoft Azure. تظهر نافذة Create a resource.
حدد Networking ثم حدد Application Gateway في قائمة خدمات Azure الشائعة.
علامة تبويبBasics
في علامة التبويب "Basics"، أدخل هذه القيم لإعدادات بوابة التطبيق التالية:
"Resource group": حدد "myResourceGroupAG" لمجموعة الموارد. إذا لم يكن موجوداً، فحدد "Create new" لإنشائه.
"Application gateway name": أدخل "myAppGateway" لاسم بوابة التطبيق.
Tier: حدد WAF V2.
نهج WAF: حدد Create new، واكتب اسما للنهج الجديد، ثم حدد OK. يؤدي هذا إلى إنشاء نهج WAF أساسي مع مجموعة قواعد أساسية مدارة (CRS).
لكي يتواصل Azure بين الموارد التي تنشئها، فإنه يحتاج إلى شبكة ظاهرية. يمكنك إما إنشاء شبكة ظاهرية جديدة أو استخدام شبكة موجودة. في هذا المثال، يمكنك إنشاء شبكة ظاهرية جديدة في نفس الوقت الذي تقوم فيه بإنشاء بوابة التطبيق. يجري إنشاء مثيلات Application Gateway في شبكات فرعية منفصلة. يمكنك إنشاء شبكتين فرعيتين في هذا المثال: واحدة لبوابة التطبيق، ثم إضافة أخرى لاحقا لخوادم الواجهة الخلفية.
ضمن Configure virtual network، حدد Create new لإنشاء شبكة افتراضية جديدة. في نافذة Create virtual network التي تفتح، أدخل القيم التالية لإنشاء شبكة ظاهرية وشبكة فرعية:
"Name": أدخل "myVNet" لاسم الشبكة الظاهرية.
مساحة العنوان: اقبل نطاق العنوان 10.0.0.0/16 .
اسم الشبكة الفرعية (الشبكة الفرعية لبوابة التطبيق): تعرض منطقة الشبكات الفرعية شبكة فرعية تسمى Default. قم بتغيير اسم هذه الشبكة الفرعية إلى myAGSubnet، واترك نطاق عناوين IPv4 الافتراضي 10.0.0.0/24.
قد لا تحتوي الشبكة الفرعية لبوابة التطبيق إلا على بوابات تطبيق ما. لا يسمح بأي موارد أخرى.حدد "OK" لإغلاق نافذة "Create virtual network" وحفظ إعدادات الشبكة الظاهرية.
في علامة التبويب الأساسيات، وافق على القيم الافتراضية للإعدادات الأخرى ثم حدد "Next: Frontends".
علامة تبويب الواجهات
في علامة التبويب Frontends، تحقق من تعيين Frontend IP address type إلى Public.
يمكنك تكوين عنوان IP للواجهة الأمامية ليكون عام أو كلاهما وفقا لحالة الاستخدام الخاصة بك. في هذا المثال، يمكنك اختيار عنوان IP للواجهة الأمامية العامة.إشعار
بالنسبة إلى Application Gateway v2 SKU، يتم دعم أنواع عناوين IP العامة و كلا الواجهة الأمامية اليوم. تكوين IP للواجهة الأمامية الخاصة فقط غير مدعوم حاليا.
حدد "Add new" لـ عنوان IP العام وأدخل myAGPublicIPAddress لاسم عنوان IP العام، ثم حدد "OK".
حدد Next: Backends.
علامة تبويب "Backends"
يُستخدم التجمع الخلفي لتوجيه الطلبات إلى الخوادم الخلفية التي تخدم الطلب. يمكن أن تتكون تجمعات الواجهة الخلفية من NICs ومجموعات مقياس الجهاز الظاهري وعناوين IP العامة وعناوين IP الداخلية وأسماء المجال المؤهلة بالكامل (FQDN) والنهايات الخلفية متعددة المستأجرين مثل Azure App Service. في هذا المثال، يمكنك إنشاء تجمع خلفية فارغ مع بوابة التطبيق ثم إضافة أهداف الخلفية لاحقا إلى تجمع الخلفية.
في علامة التبويب Backends، حدد Add a backend pool.
في نافذة Add a backend pool التي تفتح، أدخِل القيم التالية لإنشاء تجمع خلفي فارغ:
- "Name": أدخل myBackendPool لاسم تجمع الواجهة الخلفية.
- إضافة تجمع واجهة خلفية بدون أهداف: حدد "Yes" لإنشاء تجمع واجهة خلفية بدون أهداف. تضيف أهداف الواجهة الخلفية بعد إنشاء بوابة التطبيق.
في نافذة Add a backend pool حدد Add لحفظ تكوين التجمع الخلفي والعودة إلى علامة التبويب Backends.
في علامة التبويب Backends حدد Next: Configuration.
علامة التبويب "التكوين"
في علامة التبويب Configuration ، يمكنك توصيل تجمع الواجهة الأمامية والخلفية الذي أنشأته باستخدام قاعدة توجيه.
حدد "Add a routing rule" من عمود "Routing rules".
من نافذة "Add a routing rule" التي تفتح، أدخل myRoutingRule في "Rule name".
بالنسبة لـ Priority، اكتب رقم الأولوية.
تتطلب قاعدة التوجيه وحدة إصغاء. من علامة التبويب "Listener" داخل نافذة "Add a routing rule"، أدخل القيم التالية لوحدة الإصغاء:
"Listener name": أدخل myListener لاسم وحدة الإصغاء.
بروتوكول IP للواجهة الأمامية: حدد IPv4 العام لاختيار IP العام الذي أنشأته للواجهة الأمامية.
وافق على القيم الافتراضية للإعدادات الأخرى في علامة التبويب وحدة الإصغاء، ثم حدد علامة التبويب أهداف الواجهة الخلفية لتكوين بقية قاعدة التوجيه.
في علامة التبويب أهداف الواجهة الخلفية، حدد myBackendPoolلهدف الواجهة الخلفية.
بالنسبة لـ Backend settings، حدد Add new لإنشاء إعداد واجهة خلفية جديد. يحدد هذا الإعداد سلوك قاعدة التحويل. في نافذة Add Backend setting التي تفتح، أدخل myBackendSettingلاسم إعدادات الخلفية. وافق على القيم الافتراضية للإعدادات الأخرى في النافذة، ثم حدد Add للعودة إلى نافذة Add a routing rule.
من نافذة "Add a routing rule"، حدد "Add" لحفظ قاعدة التحويل والعودة إلى علامة التبويب "Configuration".
حدد Next: Tags ثم Next: Review + create.
مراجعة + إنشاء علامة التبويب
راجع الإعدادات في علامة التبويب "Review + create"، ثم حدد "Create" لإنشاء الشبكة الظاهرية وعنوان IP العام وبوابة التطبيق. قد يستغرق Azure عدة دقائق لإنشاء بوابة التطبيق.
انتظر حتى ينتهي التوزيع بنجاح قبل الانتقال إلى القسم التالي.
إضافة الشبكة الفرعية لخادم الواجهة الخلفية
- افتح الشبكة الظاهرية myVNet.
- ضمن Settings، اختر Subnets.
- حدد + الشبكة الفرعية.
- بالنسبة للاسم، اكتب myBackendSubnet.
- بالنسبة إلى عنوان البدء، اكتب 10.0.1.0.
- حدد إضافة لإضافة الشبكة الفرعية.
إضافة أهداف الخلفية
في هذا المثال، ستستخدم الأجهزة الظاهرية كخلفية هدف. يمكنك إمّا استخدام الأجهزة الظاهرية الموجودة وإمّا إنشاء أجهزة جديدة. يمكنك إنشاء جهازين ظاهريين يستخدمهما Azure كخوادم خلفية لبوابة التطبيق.
لفعل ذلك، ستقوم بما يلي:
- إنشاء جهازين ظاهريين جديدين يعملان بنظام Linux، myVM وmyVM2، لاستخدامها كخوادم خلفية.
- قم بتثبيت NGINX على الأجهزة الظاهرية للتحقق من إنشاء بوابة التطبيق بنجاح.
- أضِف خوادم خلفية إلى التجمع الخلفي.
إنشاء جهاز ظاهري
في مدخل Microsoft Azure، حدد "Create a resource". تظهر نافذة Create a resource.
ضمن الجهاز الظاهري، حدد إنشاء.
أدخل هذه القيم في علامة التبويب "Basics" لإعدادات الجهاز الظاهري التالية:
- مجموعة الموارد: حدد "myResourceGroupAG" لاسم مجموعة الموارد.
- "Virtual machine name": أدخل myVM لاسم الجهاز الظاهري.
- الصورة: Ubuntu Server 20.04 LTS - Gen2.
- نوع المصادقة: كلمة المرور
- اسم المستخدم: أدخل اسما لاسم مستخدم المسؤول.
- "Password": عين كلمة مرور المسؤول.
- المنافذ العامة الواردة: حدد بلا.
وافق على الإعدادات الافتراضية الأخرى ثم حدد "Next: Disks".
اقبل الإعدادات الافتراضية لعلامة التبويب "Disks" ثم حدد "Next: Networking".
في علامة التبويب "Networking"، تحقق من تحديد myVNet لـ "Virtual network" وتعيين "Subnet" على myBackendSubnet.
بالنسبة لـPublic IP، اخترNone.
اقبل الإعدادات الافتراضية الأخرى ثم حدد "Next: Management".
حدد Next: Monitoring، وقم بتعيين Boot diagnostics إلى Disable. اقبل الإعدادات الافتراضية، ثم حدد Review + create.
في علامة التبويب Review + create راجع الإعدادات، وصحح أي أخطاء في التحقق من السلامة، ثم حدد Create.
انتظر حتى يتكمل إنشاء الجهاز الظاهري قبل المتابعة.
تثبيت NGINX للاختبار
في هذا المثال، يمكنك تثبيت NGINX على الأجهزة الظاهرية فقط للتحقق من إنشاء Azure لبوابة التطبيق بنجاح.
افتح Bash Cloud Shell. للقيام بذلك، حدد أيقونة Cloud Shell من شريط التنقل العلوي لمدخل Microsoft Azure ثم حدد Bash من القائمة المنسدلة.
تأكد من تعيين جلسة bash لاشتراكك:
az account set --subscription "<your subscription name>"قم بتشغيل الأمر التالي لتثبيت NGINX على الجهاز الظاهري:
az vm extension set \ --publisher Microsoft.Azure.Extensions \ --version 2.0 \ --name CustomScript \ --resource-group myResourceGroupAG \ --vm-name myVM \ --settings '{ "fileUris": ["https://raw.githubusercontent.com/Azure/azure-docs-powershell-samples/master/application-gateway/iis/install_nginx.sh"], "commandToExecute": "./install_nginx.sh" }'إنشاء جهاز ظاهري ثان وتثبيت NGINX باستخدام هذه الخطوات التي أكملتها مسبقا. استخدم myVM2 لاسم الجهاز الظاهري ولإعداد
--vm-namecmdlet.
إضافة خوادم الواجهة الخلفية إلى تجمع الواجهة الخلفية
حدد "All resources"، ثم حدد myAppGateway.
حدد تجمعات الواجهة الخلفية من القائمة اليمنى.
حدد «myBackendPool».
من "Target type"، حدد "Virtual machine" من القائمة المنسدلة.
من "Target"، حدد واجهة الشبكة المرتبطة لـ myVM من القائمة المنسدلة.
كرر الأمر مع myVM2.
حدد حفظ.
انتظر حتى يكتمل التوزيع قبل المتابعة إلى الخطوة التالية.
اختبار بوابة التطبيق
على الرغم من أن NGINX غير مطلوب لإنشاء بوابة التطبيق، إلا أنك قمت بتثبيتها للتحقق مما إذا كان Azure قد أنشأ بوابة التطبيق بنجاح. استخدم خدمة الويب لاختبار بوابة التطبيق:
ابحث عن عنوان IP العام لـ application gateway في صفحته Overview.
أو يمكنك تحديد All resources، وإدخال myAGPublicIPAddress في مربع البحث، ثم تحديد في نتائج البحث. يعرض Azure عنوان IP العام في الصفحة Overview.
نسخ عنوان IP العام، ثم ألصقه في شريط العنوان في متصفحك.
تحقق من الاستجابة. تتحقق الاستجابة الصالحة من إنشاء بوابة التطبيق بنجاح ويمكنها إجراء اتصال ناجح بالواجهة الخلفية.
تنظيف الموارد
عندما لم تعد بحاجة إلى الموارد التي قمت بإنشائها باستخدام بوابة التطبيق، فقم بإزالة مجموعة الموارد. بموجب إزالة مجموعة الموارد، فإنك تقوم أيضاً بإزالة بوابة التطبيق وجميع الموارد ذات الصلة.
لإزالة مجموعة الموارد:
- في القائمة اليمنى مدخل Microsoft Azure، حدد "Resource groups".
- في صفحة مجموعات الموارد، ابحث عن myResourceGroup في القائمة، ثم حددها.
- في صفحة مجموعة الموارد، حدد "Delete resource group".
- أدخل myResourceGroupAG لـ TYPE THE RESOURCE GROUP NAME ثم حدد "Delete".