قوانین فایروال را در Google Cloud ایجاد کنید

بدون انجام اقدامات احتیاطی مناسب، در معرض خطر قرار گرفتن سیستم های خود در معرض آسیب پذیری های جدید هستید. بنابراین، کنترل ترافیک داخل و خارج از نمونه های خود در Google Cloud با ایجاد قوانین فایروال بسیار مهم است. در این کد لبه، با قوانین فایروال در Google Cloud و نحوه اعمال آنها در نمونه های Compute Engine VM آشنا می شوید.

قوانین فایروال چیست؟

قوانین فایروال در Google Cloud به شما این امکان را می دهد که بر اساس پیکربندی که مشخص می کنید، ترافیک به و از نمونه های VM خود را مجاز یا رد کنید. قوانین فایروال فعال همیشه اجرا می شوند و از نمونه های شما صرف نظر از پیکربندی و سیستم عامل آنها محافظت می کنند، صرف نظر از اینکه آیا شروع شده اند یا خیر.

هر شبکه VPC به عنوان یک فایروال توزیع شده عمل می کند. در حالی که قوانین فایروال در سطح شبکه تعریف می شوند، اتصالات بر اساس هر نمونه مجاز یا رد می شوند. می‌توانید قوانین فایروال را نه تنها بین نمونه‌های شما و شبکه‌های دیگر، بلکه بین نمونه‌های جداگانه در همان شبکه در نظر بگیرید.

چیزی که خواهی ساخت

  • دو نمونه Compute Engine در زیرشبکه های مختلف
  • تست پینگ شبکه
  • قوانین فایروال با استفاده از تگ های نمونه
  • معماری زیر:

چیزی که یاد خواهید گرفت

  • ویژگی های قوانین فایروال
  • نحوه اعمال قوانین فایروال بر روی نمونه ها با استفاده از تگ های نمونه
  • بهترین روش ها برای قوانین فایروال

آنچه شما نیاز دارید

  • یک حساب Google
  • دو نمونه Compute Engine

تنظیم محیط خود به خود

اگر قبلاً یک حساب Google ندارید، باید آن را ایجاد کنید . به Google Cloud Console وارد شوید و یک پروژه جدید ایجاد کنید:

شناسه پروژه را به خاطر بسپارید، یک نام منحصر به فرد در تمام پروژه های Google Cloud. در این کدها به عنوان PROJECT_ID نامیده می شود.

در مرحله بعد، برای استفاده از منابع Google Cloud، باید صورتحساب را در کنسول Cloud فعال کنید.

گذراندن این کدها نباید بیش از چند دلار برای شما هزینه داشته باشد، اما اگر تصمیم به استفاده از منابع بیشتری داشته باشید یا اگر آنها را در حال اجرا رها کنید، ممکن است بیشتر باشد (به بخش پاکسازی در انتهای این آزمایشگاه کد مراجعه کنید). کاربران جدید Google Cloud واجد شرایط استفاده آزمایشی رایگان 300 دلاری هستند.

محیط پروژه خود را راه اندازی کنید

به Compute > Compute Engine > VM Instances بروید .

پس از اتمام فعال کردن Compute Engine API، بیشتر کار را با Cloud Shell انجام خواهید داد، که به شما امکان می دهد زیرساخت و برنامه های خود را از خط فرمان در هر مرورگری مدیریت کنید. VM مبتنی بر دبیان با تمام ابزارهای توسعه ای که شما نیاز دارید بارگذاری شده است (ابزار خط فرمان gcloud ، Git و دیگران) و یک فهرست اصلی 5 گیگابایتی دائمی را ارائه می دهد. Cloud Shell را با کلیک بر روی نماد در قسمت سمت راست بالای صفحه باز کنید.

همچنین می توانید مناطق مختلف را انتخاب و انتخاب کنید. برای اطلاعات بیشتر، به مناطق و مناطق مراجعه کنید.

قوانین فایروال موجود را با رفتن به شبکه > شبکه VPC > قوانین فایروال مشاهده کنید.

توجه داشته باشید که فقط قوانین فایروال برای شبکه پیش فرض ایجاد شده است.

شما باید قوانین فایروال را برای نمونه های موتور محاسباتی موجود خود ایجاد کنید تا با توجه به اینکه هیچ قانون فایروال را هنگام ایجاد custom-network1 تعیین نکرده اید، به آنها ssh شود.

در مرحله بعد، یک قانون فایروال ایجاد کنید که به ssh اجازه دسترسی به نمونه های برچسب گذاری شده را می دهد.

در صفحه قوانین فایروال بمانید. روی ایجاد قانون فایروال کلیک کنید.

مشخصات زیر را اضافه کنید:

  • نام: allow-ssh
  • شبکه: custom-network1
  • جهت تردد: ورودی
  • اقدام در مورد مسابقه: اجازه دهید
  • اهداف: تگ های هدف مشخص شده
  • برچسب های هدف: iperf-access
  • محدوده IP منبع: 0.0.0.0/0
  • پروتکل ها و پورت ها: پروتکل ها و پورت های مشخص شده: tcp: 22

برچسب ها را به دو نمونه موجود خود اعمال کنید.

با رفتن به Compute > Compute Engine > Instances VM به صفحه نمونه Compute Engine بروید.

روی instance-1 کلیک کنید و جزئیات نمونه VM را مشاهده کنید. روی Edit کلیک کنید.

به قسمت تگ های شبکه بروید و یک تگ به نام iperf-access به آن بدهید.

روی ذخیره در پایین کلیک کنید. به صفحه نمونه های VM برگردید و برای مثال-2 با کلیک روی ویرایش و دوباره اضافه کردن iperf-access به عنوان تگ نمونه، این کار را تکرار کنید.

iPerf

iPerf یک ابزار معمولی برای آزمایش شبکه است که می‌تواند جریان‌های داده TCP/UDP ایجاد کند و توان عملیاتی شبکه‌ای را که آنها را حمل می‌کند اندازه‌گیری کند. از آن برای اجرای یک آزمایش سریع بین نمونه های خود در زیرشبکه های مختلف در custom-network1 استفاده خواهید کرد.

iPerf را نصب کنید

به صفحه نمونه Compute Engine بروید.

با کلیک بر روی دکمه ssh در کنار لیست هر نمونه، دو ماشین مجازی را که در آخرین کد لبه ایجاد کردید، وارد کنید.

شما باید دو پنجره ssh را ببینید. با دستور زیر iPerf را در هر دوی آنها نصب کنید:

sudo apt-get install iperf

تست iPerf را اجرا کنید

در instance-2 ، با وارد کردن موارد زیر در ترمینال instance-2 ssh، مشخص کنید که سرور iPerf است:

iperf -s

در پنجره instance-1 ssh، دستور زیر را شامل IP داخلی instance-2 وارد کنید:

iperf -c [INSTANCE-2 INTERNAL IP]

به این دلیل که قانون فایروال دیگری را برای برقراری ارتباط بین instance-1 و instance-2 اجرا نکرده اید، متوقف می شود. با وارد کردن Control+Z (Command+Z در مکینتاش) دستور را خاتمه دهید.

این بار، قانون فایروال را با Cloud Shell ایجاد خواهید کرد.

مطمئن شوید که در Cloud Shell هستید و نه در جلسات ssh نمونه خود. با وارد کردن موارد زیر یک قانون فایروال ایجاد کنید:

gcloud compute firewall-rules create iperf-access --allow tcp:5001 \
      --source-ranges 0.0.0.0/0 \
      --network custom-network1 \
      --target-tags=iperf-access

تأیید کنید که با موارد زیر ایجاد شده است:

gcloud compute firewall-rules list

NAME                         NETWORK          DIRECTION  PRIORITY  ALLOW                         DENY  DISABLED
allow-ssh                    custom-network1  INGRESS    1000      tcp:22                              False
default-allow-icmp           default          INGRESS    65534     icmp                                False
default-allow-internal       default          INGRESS    65534     tcp:0-65535,udp:0-65535,icmp        False
default-allow-rdp            default          INGRESS    65534     tcp:3389                            False
default-allow-ssh            default          INGRESS    65534     tcp:22                              False
iperf-access                 custom-network1  INGRESS    1000      tcp:5001                            False

به instance-2 به پنجره SSH خود برگردید. جلسه iperf شما باید همچنان فعال باشد. اگر اینطور نیست، دستور زیر را دوباره اجرا کنید.

iperf -s

در پنجره instance-1 ssh، دستور زیر را شامل IP داخلی instance-2 وارد کنید:

iperf -c [INSTANCE-2 INTERNAL IP]

باید ببینید iPerf یک اتصال به instance-2 برقرار می کند و یک خروجی از عملکرد شبکه داخلی بین instance-1 و instance-2 برمی گرداند.

اکنون با اصول ایجاد قوانین فایروال در Google Cloud آشنا هستید.

آنچه شما پوشش داده اید

  • چگونه نمونه ها تحت تأثیر قوانین فایروال قرار می گیرند
  • نحوه ایجاد یک قانون فایروال از طریق Cloud Console و Cloud Shell
  • نحوه اعمال تگ ها به قوانین و نمونه های فایروال
  • نحوه اجرای تست iPerf بین نمونه ها

مراحل بعدی

نمونه های Compute Engine را با استفاده از دستورات زیر در Cloud Shell حذف کنید:

gcloud compute instances delete instance-1 --zone us-central1-a

The following instances will be deleted. Any attached disks configured
 to be auto-deleted will be deleted unless they are attached to any
other instances or the `--keep-disks` flag is given and specifies them
 for keeping. Deleting a disk is irreversible and any data on the disk
 will be lost.
 - [instance-1] in [us-central1-a]
Do you want to continue (Y/n)?  y
Deleted [https://www.googleapis.com/compute/v1/projects/ypc-demo/zones/us-central1-a/instances/instance-1].
gcloud compute instances delete instance-2 --zone europe-west1-d

The following instances will be deleted. Any attached disks configured
 to be auto-deleted will be deleted unless they are attached to any
other instances or the `--keep-disks` flag is given and specifies them
 for keeping. Deleting a disk is irreversible and any data on the disk
 will be lost.
 - [instance-2] in [europe-west1-d]
Do you want to continue (Y/n)?  y
Deleted [https://www.googleapis.com/compute/v1/projects/ypc-demo/zones/europe-west1-d/instances/instance-2].

قوانین فایروال را با دستورات زیر حذف کنید:

gcloud compute firewall-rules delete allow-ssh

The following firewalls will be deleted:
 - [allow-ssh]
Do you want to continue (Y/n)?  y
Deleted [https://www.googleapis.com/compute/v1/projects/vpc-demo-241520/global/firewalls/allow-ssh].
gcloud compute firewall-rules delete iperf-access

The following firewalls will be deleted:
 - [iperf-access]
Do you want to continue (Y/n)?  y
Deleted [https://www.googleapis.com/compute/v1/projects/vpc-demo-241520/global/firewalls/iperf-access].

زیرشبکه ها را با دستورات زیر حذف کنید:

gcloud compute networks subnets delete subnet-us-central-192 --region us-central1

The following subnetworks will be deleted:
 - [subnet-us-central-192] in [us-central1]
Do you want to continue (Y/n)?  y
Deleted [https://www.googleapis.com/compute/v1/projects/vpc-demo-241520/regions/us-central1/subnetworks/subnet-us-central-192].
gcloud compute networks subnets delete subnet-europe-west-192 --region europe-west1

The following subnetworks will be deleted:
 - [subnet-europe-west-192] in [europe-west1]
Do you want to continue (Y/n)?  y
Deleted [https://www.googleapis.com/compute/v1/projects/vpc-demo-241520/regions/europe-west1/subnetworks/subnet-europe-west-192].

VPC سفارشی را با دستور زیر حذف کنید:

gcloud compute networks delete custom-network1

The following networks will be deleted:
 - [custom-network1]
Do you want to continue (Y/n)?  y
Deleted [https://www.googleapis.com/compute/v1/projects/vpc-demo-241520/global/networks/custom-network1].