במדריך הזה מוסבר איך להגדיר מדיניות חומת אש גלובלית לרשת, כדי לאפשר תנועה פנימית בין רשתות משנה של מכונות וירטואליות ברשת VPC בהתאמה אישית.
מטרות
במדריך הזה מוסבר איך לבצע את הפעולות הבאות:- ליצור רשת VPC בהתאמה אישית עם שתי רשתות משנה.
- יוצרים שתי מכונות וירטואליות של Linux (מכונה וירטואלית של לקוח ומכונה וירטואלית של שרת) בלי כתובות IP חיצוניות, בתת-רשתות נפרדות של רשת ה-VPC.
- כדי להוריד חבילות תוכנה, מומלץ ליצור Cloud Router ושער Cloud NAT.
- מתקינים את שרת Apache ב-VM של השרת.
- יוצרים מדיניות חומת אש בין רשתות גלובליות עם הכללים הבאים:
- לאפשר תנועה יוצאת לכל יעד.
- מפעילים את הרישום ביומן של חומת האש.
- משתמשים בשרת proxy לאימות זהויות (IAP) כדי לאפשר קישוריות SSH למכונות הווירטואליות.
- מאפשרים למכונה הווירטואלית של הלקוח להתחבר למכונה הווירטואלית של השרת שמריצה את שרת Apache.
- בודקים את החיבור.
בתרשים הבא מוצגת זרימת התנועה בין רשתות משנה של רשת VPC בהתאמה אישית, אחרי שמדיניות גלובלית של חומת אש ברשת מאפשרת תנועה פנימית נכנסת.
לפני שמתחילים
- נכנסים לחשבון Google Cloud . אנחנו ממליצים למשתמשים חדשים ב- Google Cloud ליצור חשבון כדי שיוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- מפעילים את Compute Engine API בפרויקט.
- מוודאים שיש לכם את התפקיד אדמין רשת Compute (
roles/compute.networkAdmin) בממשק לניהול הזהויות והרשאות הגישה (IAM). - אם אתם מעדיפים לעבוד משורת הפקודה, התקינו את Google Cloud CLI. למידע על המושגים וההתקנה של הכלי, קראו את הסקירה הכללית על ה-CLI של gcloud.
הערה: אם לא הפעלתם את Google Cloud CLI בעבר, קודם צריך להריץ את
gcloud initכדי לאתחל את ספריית ה-CLI של gcloud.
יצירת רשת VPC בהתאמה אישית עם רשתות משנה
בקטע הזה, יוצרים רשת VPC במצב מותאם אישית עם שתי רשתות משנה של IPv4.
המסוף
נכנסים לדף VPC networks במסוף Google Cloud .
לוחצים על Create VPC network.
בשדה Name, מזינים
vpc-fw-rules.בשדה Description, מזינים
VPC network for the firewall rules tutorial.בקטע Subnet creation mode, בוחרים באפשרות Custom.
בקטע New subnet, מציינים את הפרמטרים הבאים להגדרת רשת משנה:
- שם:
subnet-fw-rules-server - אזור:
us-central1 (Iowa) - טווח IPv4:
10.0.0.0/24 - גישה פרטית ל-Google: מופעלת
- שם:
לוחצים על סיום.
לוחצים על Add subnet ומציינים את פרמטרי ההגדרה הבאים:
- שם:
subnet-fw-rules-client - אזור:
us-central1 (Iowa) - טווח IPv4:
192.168.10.0/24 - גישה פרטית ל-Google: מופעלת
- שם:
לוחצים על סיום.
לוחצים על יצירה.
gcloud
כדי ליצור רשת VPC, מריצים את הפקודה הבאה:
gcloud compute networks create vpc-fw-rules \ --subnet-mode=custom \ --description="VPC network for the firewall rules tutorial"
אופציונלי: בתיבת הדו-שיח Authorize cloud shell, לוחצים על Authorize.
כדי ליצור רשת משנה, מריצים את הפקודה הבאה:
gcloud compute networks subnets create subnet-fw-rules-server \ --network=vpc-fw-rules \ --region=us-central1 \ --range=10.0.0.0/24 \ --enable-private-ip-google-access
כדי ליצור עוד רשת משנה, מריצים את הפקודה הבאה:
gcloud compute networks subnets create subnet-fw-rules-client \ --network=vpc-fw-rules \ --region=us-central1 \ --range=192.168.10.0/24 \ --enable-private-ip-google-access
כברירת מחדל, לרשת ה-VPC יש שני כללי IPv4 משתמעים:
- כלל תעבורת נתונים יוצאת מסוג
allowעם היעד0.0.0.0/0ובעדיפות הנמוכה ביותר (65535), שמאפשר לכל מכונה לשלוח תעבורת נתונים לכל יעד, חוץ מתעבורת נתונים שנחסמה על ידי Google Cloud. - כלל תעבורת נתונים נכנסת (ingress) מסוג
denyעם המקור0.0.0.0/0והעדיפות הנמוכה ביותר האפשרית (65535), שמגן על כל המכונות על ידי חסימת החיבורים הנכנסים אליהן.
מידע נוסף זמין במאמר כללים משתמעים.
יצירת מכונות וירטואליות של לקוח ושרת
בקטע הזה, יוצרים שתי מכונות וירטואליות של Linux בלי כתובות IP חיצוניות ברשתות המשנה של רשת ה-VPC שיצרתם בקטע הקודם.
יצירת המכונה הווירטואלית של השרת
המסוף
כדי ליצור את ה-VM של השרת:
נכנסים לדף Create an instance במסוף Google Cloud .
בחלונית Machine configuration:
- בשדה Name, מזינים
vm-fw-rules-server. - בשדה Region, בוחרים באפשרות
us-central1 (Iowa).
- בשדה Name, מזינים
בתפריט הניווט, לוחצים על Networking.
- בקטע Network interfaces, לוחצים על
defaultומציינים את הפרמטרים הבאים:- רשת:
vpc-fw-rules - רשת משנה:
subnet-fw-rules-server IPv4 (10.0.0.0/24) - כתובת IPv4 חיצונית: None
- רשת:
- לוחצים על סיום.
- בקטע Network interfaces, לוחצים על
לוחצים על יצירה.
gcloud
כדי ליצור את ה-VM של השרת, מריצים את הפקודה הבאה:
gcloud compute instances create vm-fw-rules-server \
--network=vpc-fw-rules \
--zone=us-central1-a \
--subnet=subnet-fw-rules-server \
--stack-type=IPV4_ONLY \
--no-address
יצירת המכונה הווירטואלית של הלקוח
המסוף
כדי ליצור את המכונה הווירטואלית של הלקוח:
נכנסים לדף Create an instance במסוף Google Cloud .
בחלונית Machine configuration:
- בשדה Name, מזינים
vm-fw-rules-client. - בשדה Region, בוחרים באפשרות
us-central1 (Iowa).
- בשדה Name, מזינים
בתפריט הניווט, לוחצים על Networking.
- בקטע Network interfaces, לוחצים על
defaultומציינים את הפרמטרים הבאים:- רשת:
vpc-fw-rules - רשת משנה:
subnet-fw-rules-client IPv4 (192.168.10.0/24) - כתובת IPv4 חיצונית: None
- רשת:
- לוחצים על סיום.
- בקטע Network interfaces, לוחצים על
לוחצים על יצירה.
gcloud
כדי ליצור את המכונה הווירטואלית של הלקוח, מריצים את הפקודה הבאה:
gcloud compute instances create vm-fw-rules-client \
--network=vpc-fw-rules \
--zone=us-central1-a \
--subnet=subnet-fw-rules-client \
--stack-type=IPV4_ONLY \
--no-address
יצירת Cloud Router ושער Cloud NAT
בקטע הקודם יצרתם שתי מכונות וירטואליות של Linux בלי כתובות IPv4 ציבוריות. כדי לאפשר למכונות הווירטואליות האלה לגשת לאינטרנט הציבורי, יוצרים Cloud Router ושער Cloud NAT.
המסוף
נכנסים לדף Cloud NAT במסוף Google Cloud .
לוחצים על Get started או על Create Cloud NAT gateway.
בשדה שם השער, מזינים
gateway-fw-rules.בשדה NAT type, בוחרים באפשרות Public.
בקטע Select Cloud Router, מציינים את פרמטרי ההגדרה הבאים:
- רשת:
vpc-fw-rules - אזור:
us-central1 - Cloud Router: Create new router.
- בשדה Name, מזינים
router-fw-rules. - לוחצים על יצירה.
- בשדה Name, מזינים
- רשת:
לוחצים על יצירה.
gcloud
כדי ליצור Cloud Router, מריצים את הפקודה הבאה:
gcloud compute routers create router-fw-rules \ --network=vpc-fw-rules \ --region=us-central1
כדי ליצור שער Cloud NAT, מריצים את הפקודה הבאה:
gcloud compute routers nats create gateway-fw-rules \ --router=router-fw-rules \ --region=us-central1 \ --auto-allocate-nat-external-ips \ --nat-all-subnet-ip-ranges
יצירת מדיניות חומת אש בין רשתות גלובליות
בקטע הזה, יוצרים מדיניות חומת אש בין רשתות גלובליות עם:
- כלל תעבורה יוצאת עם
0.0.0.0./0כיעד. הרישום ביומן מופעל. רישום ביומן של כללי חומת האש של VPC מאפשר לכם לבדוק, לאמת ולנתח את ההשפעות של כללי חומת האש.
המסוף
במסוף Google Cloud , עוברים לדף מדיניות חומת אש.
לוחצים על יצירת מדיניות חומת אש.
בשלב Configure policy, בשדה Policy name מזינים
fw-policy.בקטע Deployment scope, בוחרים באפשרות Global ולוחצים על Continue.
בשלב Add rules, לוחצים על Create firewall rule.
- בשדה עדיפות, מזינים
65534. - בקטע Direction of traffic, בוחרים באפשרות Egress.
- בקטע יומנים, בוחרים באפשרות מופעל.
- בקטע Destination, בשדה IP ranges מזינים את הערך
0.0.0.0/0. - לוחצים על יצירה.
- בשדה עדיפות, מזינים
לוחצים על Continue.
בשלב הוספת כללי שיקוף, לוחצים על המשך.
בשלב שיוך המדיניות לרשתות, לוחצים על שיוך.
בחלונית Associate policy with VPC networks, מסמנים את התיבה של
vpc-fw-rulesולוחצים על Associate.לוחצים על Continue.
לוחצים על יצירה.
gcloud
כדי ליצור מדיניות חומת אש, מריצים את הפקודה הבאה:
gcloud compute network-firewall-policies create fw-policy \ --globalכדי ליצור כלל של חומת אש שמאפשר תעבורת נתונים לכל היעדים ומפעיל יומנים, מריצים את הפקודה הבאה:
gcloud compute network-firewall-policies rules create 65534 \ --firewall-policy=fw-policy \ --direction=EGRESS \ --action=ALLOW \ --dest-ip-ranges=0.0.0.0/0 \ --layer4-configs=all \ --global-firewall-policy \ --enable-loggingכדי לשייך את מדיניות חומת האש לרשת ה-VPC, מריצים את הפקודה הבאה:
gcloud compute network-firewall-policies associations create \ --firewall-policy=fw-policy \ --network=vpc-fw-rules \ --name=pol-association-fw-rules \ --global-firewall-policy
הוספת כלל של חומת אש ל-IAP
בקטע הקודם יצרתם מכונות וירטואליות של Linux בלי כתובות IP חיצוניות. בקטע הזה מפעילים את שירות Identity-Aware Proxy (IAP) כדי לאפשר גישה ניהולית למכונות הווירטואליות שאין להן כתובות IP חיצוניות.
כדי לאפשר ל-IAP להתחבר למכונות הווירטואליות, צריך ליצור כלל של חומת אש:
- רלוונטי לכל מכונות ה-VM שאתם רוצים שתהיה אליהן גישה באמצעות IAP.
- מאפשר תעבורת נתונים נכנסת (ingress) מטווח כתובות ה-IP
35.235.240.0/20. הטווח הזה מכיל את כל כתובות ה-IP שמשמשות את IAP להעברת TCP.במכונות וירטואליות עם IPv6, משתמשים בטווח כתובות ה-IP הבא:
2600:2d00:1:7::/64. - מאפשרת חיבורים לכל היציאות שרוצים שתהיה אליהן גישה באמצעות העברת TCP של IAP, למשל יציאה
22ל-SSH ויציאה3389ל-RDP.
המסוף
כדי לאפשר גישה ל-RDP ול-SSH לכל המכונות הווירטואליות ברשת vpc-fw-rules:
במסוף Google Cloud , עוברים לדף מדיניות חומת אש.
בקטע מדיניות חומת אש של הרשת, לוחצים על
fw-policy.לוחצים על Create firewall rule.
בשדה עדיפות, מזינים
500.בקטע יומנים, בוחרים באפשרות מופעל.
בקטע Source, בשדה IP ranges, מזינים את הערך
35.235.240.0/20.בקטע Protocols and ports, בוחרים באפשרות Specified protocols and ports.
מסמנים את התיבה TCP, ובשדה Ports מזינים
22,3389.לוחצים על יצירה.
gcloud
כדי לאפשר גישת RDP ו-SSH לכל המכונות הווירטואליות ברשת vpc-fw-rules, מריצים את הפקודה הבאה:
gcloud compute network-firewall-policies rules create 500 \
--firewall-policy=fw-policy \
--direction=INGRESS \
--action=ALLOW \
--src-ip-ranges=35.235.240.0/20 \
--global-firewall-policy \
--layer4-configs tcp:22,tcp:3389 \
--enable-logging
התקנת שרת Apache
בקטע הזה, מתקינים את שרת Apache ב-VM של השרת.
נכנסים לדף VM instances במסוף Google Cloud .
בעמודה Connect של המכונה הווירטואלית
vm-fw-rules-server, לוחצים על SSH.בתיבת הדו-שיח SSH-in-browser, לוחצים על Authorize וממתינים עד שהחיבור ייווצר.
כדי להתקין את החבילה
apache2, מריצים את הפקודה הבאה בשורת הפקודה:sudo apt update && sudo apt -y install apache2
אחרי שמתקינים את Apache, מערכת ההפעלה מפעילה באופן אוטומטי את שרת Apache.
כדי לוודא ש-Apache פועל, מריצים את הפקודה הבאה:
sudo systemctl status apache2 --no-pager
כדי להחליף את דף האינטרנט שמוגדר כברירת מחדל בשרת האינטרנט של Apache, מריצים את הפקודה הבאה:
echo '<!doctype html><html><body><h1>Hello World!</h1></body></html>' | sudo tee /var/www/html/index.htmlסוגרים את תיבת הדו-שיח SSH-in-browser.
בדיקת החיבור
אחרי שמתקינים את שרת Apache במכונה הווירטואלית של השרת, מתחברים למכונה הווירטואלית של השרת מהמכונה הווירטואלית של הלקוח באמצעות כתובת ה-IP הפנימית של המכונה הווירטואלית של השרת.
נכנסים לדף VM instances במסוף Google Cloud .
בעמודה Internal IP של המכונה הווירטואלית
vm-fw-rules-server, מעתיקים את כתובת ה-IP הפנימית של המכונה הווירטואלית.בעמודה Connect של המכונה הווירטואלית
vm-fw-rules-client, לוחצים על SSH.בתיבת הדו-שיח SSH-in-browser, לוחצים על Authorize וממתינים עד שהחיבור ייווצר.
כדי לאמת את החיבור, מריצים את הפקודה הבאה:
curl INTERNAL_IP -m 2
מחליפים את
INTERNAL_IPבכתובת ה-IP של המכונה הווירטואליתvm-fw-rules-server.ההודעה
Connection timed outצפויה כי כל VM יוצר כלל משתמע של חומת אש לתעבורת נתונים נכנסת שדוחה את כל התנועה. כדי לאפשר תעבורת נתונים, מוסיפים כלל תעבורת נתונים נכנסת למדיניות חומת האש.סוגרים את תיבת הדו-שיח SSH-in-browser.
עדכון מדיניות חומת האש בין רשתות גלובליות כדי לאפשר תנועה פנימית
בקטע הזה, מעדכנים את מדיניות חומת האש של הרשת הגלובלית כדי לאפשר תעבורת נתונים פנימית מתת-הרשת של ה-VM של הלקוח.
המסוף
במסוף Google Cloud , עוברים לדף מדיניות חומת אש.
בקטע מדיניות חומת אש של הרשת, לוחצים על
fw-policy.לוחצים על Create firewall rule.
בשדה עדיפות, מזינים
501.בקטע יומנים, בוחרים באפשרות מופעל.
בקטע Source, בשדה IP ranges, מזינים את הערך
192.168.10.0/24.זכרו שטווח כתובות ה-IP
192.168.10.0/24מוקצה ל-subnet-fw-rules-client.בקטע Destination, בשדה IP ranges מזינים את הערך
10.0.0.0/24.זכרו שטווח כתובות ה-IP
10.0.0.0/24מוקצה ל-subnet-fw-rules-server.לוחצים על יצירה.
gcloud
כדי לעדכן את מדיניות חומת האש, מריצים את הפקודה הבאה:
gcloud compute network-firewall-policies rules create 501 \
--firewall-policy=fw-policy \
--direction=INGRESS \
--action=ALLOW \
--src-ip-ranges=192.168.10.0/24 \
--dest-ip-ranges=10.0.0.0/24 \
--layer4-configs=all \
--global-firewall-policy \
--enable-logging
בדיקת החיבור
אחרי שיוצרים את מדיניות חומת האש, מתחברים למכונה הווירטואלית של השרת מהמכונה הווירטואלית של הלקוח באמצעות כתובת ה-IP הפנימית של המכונה הווירטואלית של השרת.
נכנסים לדף VM instances במסוף Google Cloud .
בעמודה Internal IP של המכונה הווירטואלית
vm-fw-rules-server, מעתיקים את כתובת ה-IP הפנימית של המכונה הווירטואלית.בעמודה Connect של המכונה הווירטואלית
vm-fw-rules-client, לוחצים על SSH.בתיבת הדו-שיח SSH-in-browser, לוחצים על Authorize וממתינים עד שהחיבור ייווצר.
כדי לאמת את החיבור, מריצים את הפקודה הבאה:
curl INTERNAL_IP -m 2
מחליפים את
INTERNAL_IPבכתובת ה-IP של המכונה הווירטואליתvm-fw-rules-server.ההודעה הצפויה היא
<!doctype html><html><body><h1>Hello World!</h1></body></html>.סוגרים את תיבת הדו-שיח SSH-in-browser.
הסרת המשאבים
כדי להימנע מחיובים בחשבון Google Cloud בגלל השימוש במשאבים שנעשה במסגרת המדריך הזה, אפשר למחוק את הפרויקט שמכיל את המשאבים, או להשאיר את הפרויקט ולמחוק את המשאבים הנפרדים.
בקטע הזה תמחקו את המשאבים שיצרתם במדריך.
מחיקת מדיניות חומת האש
המסוף
במסוף Google Cloud , עוברים לדף מדיניות חומת אש.
בקטע מדיניות חומת אש של רשת, לוחצים על השם
fw-policy.לוחצים על הכרטיסייה שיוכים.
מסמנים את התיבה של
vpc-fw-rulesולוחצים על הסרת השיוך.בתיבת הדו-שיח הסרת שיוך מדיניות חומת אש, לוחצים על הסרה.
לצד השם של
fw-policy, לוחצים על מחיקה.בתיבת הדו-שיח Delete a firewall policy, לוחצים על Delete.
אחרי שמוחקים את המדיניות, במסוף Google Cloud מוצג הדף מדיניות חומת אש.
gcloud
מסירים את השיוך בין מדיניות חומת האש לבין רשת ה-VPC.
gcloud compute network-firewall-policies associations delete \ --name=pol-association-fw-rules \ --firewall-policy=fw-policy \ --global-firewall-policy
אם הגדרתם את השיוך בין מדיניות חומת האש לבין רשת ה-VPC באמצעות מסוף Google Cloud , אל תשתמשו בפקודה של ה-CLI של gcloud כדי להסיר את השיוך. אם אתם לא זוכרים איך יצרתם את השיוך או אם קיבלתם את השגיאה
The network firewall policy does not have an association with pol-association-fw-rules.כשהרצתם את הפקודה, אתם יכולים להשתמש במסוף Google Cloud כדי להסיר את השיוך.מוחקים את מדיניות חומת האש.
gcloud compute network-firewall-policies delete fw-policy \ --global
מחיקת המכונות הווירטואליות
המסוף
נכנסים לדף VM instances במסוף Google Cloud .
מסמנים את התיבות של המכונות הווירטואליות
vm-fw-rules-clientו-vm-fw-rules-server.לוחצים על Delete.
בתיבת הדו-שיח Delete 2 instances?, לוחצים על Delete.
gcloud
כדי למחוק את המכונות הווירטואליות vm-fw-rules-client ו-vm-fw-rules-server, מריצים את הפקודה הבאה:
gcloud compute instances delete vm-fw-rules-client vm-fw-rules-server \
--zone=us-central1-a
כשמופיעה הנחיה, מקישים על Y כדי לאשר ואז על Enter.
מחיקת השער של Cloud NAT ו-Cloud Router
המסוף
נכנסים לדף Cloud routers במסוף Google Cloud .
מסמנים את התיבה
router-fw-rules.לוחצים על Delete.
בתיבת הדו-שיח Delete router-fw-rules, לוחצים על Delete.
כשמוחקים Cloud Router, גם שער Cloud NAT שמשויך אליו נמחק.
gcloud
כדי למחוק את Cloud Router בשם router-fw-rules, מריצים את הפקודה הבאה:
gcloud compute routers delete router-fw-rules \
--region=us-central1
כשמופיעה הנחיה, מקישים על Y כדי לאשר ואז על Enter.
כשמוחקים Cloud Router, גם שער Cloud NAT שמשויך אליו נמחק.
מחיקת רשת ה-VPC ורשתות המשנה שלה
המסוף
נכנסים לדף VPC networks במסוף Google Cloud .
בעמודה שם, לוחצים על
vpc-fw-rules.לוחצים על Delete VPC network.
בתיבת הדו-שיח Delete a network, לוחצים על Delete.
כשמוחקים VPC, גם רשתות המשנה שלו נמחקות.
gcloud
כדי למחוק את תת-הרשתות של רשת ה-VPC
vpc-fw-rules, מריצים את הפקודה הבאה:gcloud compute networks subnets delete subnet-fw-rules-client subnet-fw-rules-server \ --region=us-central1כשמופיעה הנחיה, מקישים על Y כדי לאשר ואז על Enter.
כדי למחוק את רשת ה-VPC שנקראת
vpc-fw-rules, מריצים את הפקודה הבאה:gcloud compute networks delete vpc-fw-rules
כשמופיעה הנחיה, מקישים על Y כדי לאשר ואז על Enter.