התרת תעבורה יוצאת באמצעות מדיניות חומת אש בין רשתות גלובלית

כאן מוסבר איך לאבטח את הרשת על ידי הגבלת תעבורת נתונים יוצאת (egress) ממופע של מכונה וירטואלית (VM). במדריך הזה מוסבר איך להגדיר מדיניות חומת אש גלובלית ברשת כדי לאפשר תעבורת נתונים יוצאת ממכונה וירטואלית לכתובת IP ספציפית, תוך חסימת כל תעבורת הנתונים היוצאת האחרת ממכונות וירטואליות באותה רשת של ענן וירטואלי פרטי (VPC).

במדריך למתחילים הזה תבצעו את הפעולות הבאות:

לפני שמתחילים

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. מפעילים את Compute Engine API בפרויקט.

התפקידים הנדרשים

כדי ליצור רשתות VPC במצב מותאם אישית, מכונות וירטואליות ומדיניות גלובלית של חומת אש ברשת, או כדי להציג את היומנים, צריך לבקש מהאדמין להקצות לכם את התפקידים הנדרשים ב-IAM בפרויקט:

מידע נוסף על הקצאת תפקידים מופיע במאמר ניהול הגישה לפרויקטים, לתיקיות ולארגונים.

יכול להיות שתוכלו לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.

יצירת רשת VPC במצב מותאם אישית עם רשת משנה

בקטע הזה, יוצרים רשת VPC במצב מותאם אישית ותת-רשת IPv4 לאירוח המכונות הווירטואליות.

  1. נכנסים לדף VPC networks במסוף Google Cloud .

    מעבר לרשתות VPC

  2. לוחצים על יצירת רשת VPC.

  3. בשדה Name (שם), מזינים vpc-fw-rules.

  4. בשדה תיאור, מזינים VPC network for the firewall rules quickstart.

  5. בקטע Subnet creation mode (מצב יצירת רשת משנה), בוחרים באפשרות Custom (בהתאמה אישית).

  6. בקטע New subnet (רשת משנה חדשה), מציינים את הפרטים הבאים:

    • Name (שם): subnet-fw-rules
    • אזור: us-central1
    • טווח IPv4: 10.0.0.0/24
    • גישה פרטית ל-Google: מופעלת

    ההגדרה גישה פרטית ל-Google במצב מופעלת מאפשרת למכונות הווירטואליות ברשת המשנה הזו לגשת Google Cloud לשירותים בלי להשתמש בכתובת IP חיצונית.

  7. לוחצים על Done (סיום) ואז על Create (יצירה).

כברירת מחדל, רשת ה-VPC כוללת את כללי ה-IPv4 המשתמעים הבאים:

  • כלל יציאה (egress) מסוג allow עם יעד 0.0.0.0/0 והעדיפות הנמוכה ביותר האפשרית (65535), שמאפשר לכל מופע לשלוח תעבורה לכל יעד, למעט תעבורה שנחסמת על ידי Google Cloud.
  • חסימת תנועה נכנסת עם מקור 0.0.0.0/0 והעדיפות הנמוכה ביותר האפשרית (65535) שמגנה על כל המכונות על ידי חסימת חיבורים נכנסים אליהן.

מידע נוסף על הכלל או הפעולה המשתמעים לגבי תנועה נכנסת או יוצאת זמין במאמר תהליך ההערכה של כללי חומת האש.

יצירת מכונות וירטואליות של לקוח ושרת

בקטע הזה, יוצרים שתי מכונות וירטואליות של Linux ללא כתובות IP חיצוניות בתת-הרשת של רשת ה-VPC שיצרתם קודם.

  1. נכנסים לדף Create an instance במסוף Google Cloud .

    כניסה לדף Create an instance

  2. בשדה Name (שם), מזינים vm-fw-rules-server.

  3. בשדה אזור, בוחרים באפשרות us-central1 (Iowa).

  4. בתפריט Networking, בקטע Network interfaces, בוחרים באפשרות:

    • רשת: vpc-fw-rules
    • תת-רשת: subnet-fw-rules IPv4 (10.0.0.0/24)
    • כתובת IPv4 חיצונית: זמנית
  5. לוחצים על Done (סיום) ואז על Create (יצירה).

  6. אחרי שיוצרים את המכונה הווירטואלית, חשוב לשים לב לכתובת ה-IP הפנימית שלה.

  7. חוזרים על השלבים האלה כדי ליצור מכונה וירטואלית שנייה בשם vm-fw-rules-client באמצעות אותן הגדרות רשת, אבל מגדירים את כתובת ה-IPv4 החיצונית לללא.

כדי להתקין ולהפעיל שרת אינטרנט של nginx ב-vm-fw-rules-server, פועלים לפי השלבים הבאים:

  1. נכנסים לדף VM instances במסוף Google Cloud .

    כניסה לדף VM instances

  2. לוחצים על SSH בשורה של vm-fw-rules-server.

  3. בתיבת הדו-שיח SSH-in-browser, לוחצים על Authorize ומחכים עד שהחיבור ייווצר.

  4. כדי להתקין ולהריץ את שרת האינטרנט nginx, מריצים את הפקודה sudo apt update && sudo apt install nginx.

יצירה של מדיניות חומת אש בין רשתות גלובלית

בקטע הזה, יוצרים מדיניות גלובלית של חומת אש ברשת ומקשרים אותה לרשת ה-VPC שיצרתם קודם.

  1. נכנסים לדף Firewall policies במסוף Google Cloud .

    למדיניות חומת האש

  2. לוחצים על יצירת מדיניות חומת אש.

  3. בשדה שם המדיניות, מזינים fw-policy.

  4. בקטע היקף הפריסה, בוחרים באפשרות גלובלי.

  5. לוחצים על המשך כדי לדלג על קטע הכללים. בקטעים הבאים של המדריך למתחילים הזה תוסיפו כללים לחומת האש.

  6. בקטע Associate policy with networks (שיוך מדיניות לרשתות), לוחצים על Associate (שיוך).

  7. מסמנים את התיבה vpc-fw-rules ולוחצים על שיוך כדי לשייך את רשת ה-VPC למדיניות.

  8. לוחצים על המשך ואז על יצירה.

הוספת כללים לחומת האש

בקטע הזה מוסיפים כללים לחומת האש למדיניות חומת האש בין רשתות גלובליות שיצרתם קודם.

  1. נכנסים לדף Firewall policies במסוף Google Cloud .

    למדיניות חומת האש

  2. לוחצים על השם של מדיניות חומת האש. בכרטיסייה כללי חומת אש במדיניות, לוחצים על יצירת כלל חומת אש.

  3. מוסיפים כלל תעבורת נתונים נכנסת (ingress) כדי לאפשר תעבורת TCP ליציאה 22. הכלל הזה מאפשר גישה לשרת Proxy לאימות זהויות (IAP) למכונות וירטואליות ברשת ה-VPC. שירות IAP משתמש בשכבת הרשאה מרכזית כדי לעזור לכם לגשת למכונות הווירטואליות של הלקוח והשרת. מידע נוסף מופיע במאמר סקירה כללית על שרת proxy לאימות זהויות (IAP).

    • בשדה עדיפות מזינים 100.
    • בשדה Target type, בוחרים באפשרות Instances.
    • בקטע Target, בוחרים באפשרות החלה על כל.
    • בשדה כיוון התנועה, בוחרים באפשרות תנועה נכנסת.
    • בקטע פעולה בהתאמה, בוחרים באפשרות אישור.
    • בקטע יומנים, בוחרים באפשרות מופעל.

      הערה: הפעלת היומנים יכולה ליצור מספר גדול של יומנים, מה שיכול להוביל לעלויות גבוהות יותר.

    • בשדה הקשר של רשת המקור, בוחרים באפשרות כל ההקשרים של הרשת.

    • בקטע מקור, בשדה סוג ה-IP, בוחרים באפשרות IPv4. בקטע טווחי כתובות IP, מזינים 35.235.240.0/20.

    • בקטע Protocols and ports (פרוטוקולים ויציאות), בוחרים באפשרות Specified protocols and ports (פרוטוקולים ויציאות שצוינו), ואז בוחרים באפשרות TCP. בשדה Ports (יציאות), מזינים 22.

    • בקטע אכיפה, בוחרים באפשרות מופעל.

  4. לוחצים על יצירה.

  5. מוסיפים כלל תעבורת נתונים נכנסת (ingress) כדי לאפשר תעבורת נתונים נכנסת (ingress) במכונת השרת הווירטואלית ממכונת הלקוח הווירטואלית:

    • בשדה עדיפות מזינים 200.
    • בשדה Target type, בוחרים באפשרות Instances.
    • בקטע Target, בוחרים באפשרות החלה על כל.
    • בשדה כיוון התנועה, בוחרים באפשרות תנועה נכנסת.
    • בקטע פעולה בהתאמה, בוחרים באפשרות אישור.
    • בקטע יומנים, בוחרים באפשרות מופעל.

      הערה: הפעלת היומנים יכולה ליצור מספר גדול של יומנים, מה שיכול להוביל לעלויות גבוהות יותר.

    • בקטע Source network context (הקשר של רשת המקור), בוחרים באפשרות Specific network context (הקשר ספציפי של רשת) ואז באפשרות Intra VPC (תוך VPC).

    • בקטע מקור, בשדה סוג ה-IP, בוחרים באפשרות IPv4. בקטע IP ranges (טווח כתובות IP), מציינים את כתובת ה-IP הפנימית של המכונה הווירטואלית של הלקוח. לדוגמה, 10.0.0.2/32.

    • בקטע Destination, בשדה IP type, בוחרים באפשרות IPv4. בקטע טווחים של כתובות IP, מציינים את כתובת ה-IP הפנימית של המכונה הווירטואלית של השרת. לדוגמה, 10.0.0.1/32.

    • בקטע Protocols and ports (פרוטוקולים ויציאות), בוחרים באפשרות Specified protocols and ports (פרוטוקולים ויציאות שצוינו), ואז בוחרים באפשרות TCP. בשדה Ports (יציאות), מזינים 80.

    • בקטע אכיפה, בוחרים באפשרות מופעל.

  6. לוחצים על יצירה.

  7. כדי לשפר את האבטחה, אפשר להגביל את כל התנועה היוצאת וליצור כלל יציאה מוגדר בצורה מצומצמת כדי לאפשר רק את התנועה שזוהתה.

    1. מוסיפים כלל ליציאה כדי להעביר את תעבורת היציאה מהמכונה הווירטואלית של הלקוח (לכיוון המכונה הווירטואלית של השרת) לכלל הבא בסדר ההערכה של כללי חומת האש, שהוא פעולת IPv4 משתמעת שמאפשרת את כל תעבורת היציאה.
      • בשדה עדיפות מזינים 300.
      • בשדה Target type, בוחרים באפשרות Instances.
      • בקטע Target, בוחרים באפשרות החלה על כל.
      • בשדה כיוון התנועה, בוחרים באפשרות יציאה.
      • בקטע פעולה בהתאמה, בוחרים באפשרות עבור לפריט הבא.
      • בקטע Destination network context (הקשר של רשת היעד), בוחרים באפשרות Specific network context (הקשר ספציפי של רשת) ואז באפשרות Non-internet (לא אינטרנט).
      • בקטע Destination, בשדה IP type, בוחרים באפשרות IPv4. בקטע טווחים של כתובות IP, מציינים את כתובת ה-IP הפנימית של המכונה הווירטואלית של השרת. לדוגמה, 10.0.0.1/32.
      • בקטע מקור, בשדה סוג ה-IP, בוחרים באפשרות IPv4. בקטע IP ranges (טווח כתובות IP), מציינים את כתובת ה-IP הפנימית של המכונה הווירטואלית של הלקוח. לדוגמה, 10.0.0.2/32.
      • בקטע Protocols and ports [פרוטוקולים ויציאות], בוחרים באפשרות Specified protocols and ports [פרוטוקולים ויציאות שצוינו], ואז בוחרים באפשרות TCP. בשדה Ports (יציאות), מזינים 80.
      • בקטע אכיפה, בוחרים באפשרות מופעל.
    2. לוחצים על יצירה.
    3. מוסיפים כלל יציאה (egress) כדי לדחות תעבורת נתונים יוצאת מכל המכונות הווירטואליות:

      • בשדה עדיפות מזינים 400.
      • בשדה Target type, בוחרים באפשרות Instances.
      • בקטע Target, בוחרים באפשרות החלה על כל.
      • בשדה כיוון התנועה, בוחרים באפשרות יציאה.
      • בקטע פעולה במקרה של התאמה, בוחרים באפשרות דחייה.
      • בקטע יומנים, בוחרים באפשרות מופעל.

        הערה: הפעלת היומנים יכולה ליצור מספר גדול של יומנים, מה שיכול להוביל לעלויות גבוהות יותר.

      • בקטע הקשר של רשת היעד, בוחרים באפשרות כל ההקשרים של הרשת.

      • בקטע Destination, בשדה IP type, בוחרים באפשרות IPv4. בקטע טווחי כתובות IP, מזינים 0.0.0.0/0.

      • בקטע פרוטוקולים ויציאות, בוחרים באפשרות אישור הכול.

      • בקטע אכיפה, בוחרים באפשרות מופעל.

    4. לוחצים על יצירה.

בדיקת מדיניות חומת האש

בקטע הזה בודקים את מדיניות חומת האש בין רשתות גלובלית.

כדי לוודא ש-vm-fw-rules-client יכול לשלוח תנועה אל vm-fw-rules-server, פועלים לפי השלבים הבאים:

  1. נכנסים לדף VM instances במסוף Google Cloud .

    כניסה לדף VM instances

  2. לוחצים על SSH בשורה של vm-fw-rules-client.

  3. בתיבת הדו-שיח SSH-in-browser, לוחצים על Authorize ומחכים עד שהחיבור ייווצר.

  4. כדי לוודא שהחיבור הצליח, מריצים את הפקודה הבאה:

    curl <IP_vm-fw-rules-server> -m 2

    מחליפים את IP_vm-fw-rules-server בכתובת ה-IP הפנימית של מכונת vm-fw-rules-server.

כדי לוודא שתעבורת הנתונים היוצאת מכל מכונה וירטואלית ברשת VPC חסומה, פועלים לפי השלבים הבאים:

  1. נכנסים לדף VM instances במסוף Google Cloud .

    כניסה לדף VM instances

  2. לוחצים על SSH בשורה של vm-fw-rules-server.

  3. בתיבת הדו-שיח SSH-in-browser, לוחצים על Authorize ומחכים עד שהחיבור ייווצר.

  4. כדי לוודא שהחיבור נכשל בגלל פסק זמן, מריצים את הפקודה הבאה:

    curl <IP_vm-fw-rules-client> -m 2

    מחליפים את IP_vm-fw-rules-client בכתובת ה-IP הפנימית של מכונת vm-fw-rules-client.

הסרת המשאבים

כדי להימנע מחיובים בחשבון Google Cloud על המשאבים שבהם השתמשתם במדריך למתחילים הזה, אתם יכולים למחוק את הפרויקט שמכיל את המשאבים או להשאיר את הפרויקט ולמחוק את המשאבים בנפרד.

בקטע הזה מוחקים את המשאבים שנוצרו במדריך למתחילים הזה.

מחיקת מדיניות חומת האש

  1. נכנסים לדף Firewall policies במסוף Google Cloud .

    למדיניות חומת האש

  2. בקטע Network firewall policies (מדיניות חומת אש ברשת), בוחרים את השם fw-policy.

  3. לוחצים על הכרטיסייה שיוכים ומסירים את השיוך ל-vpc-fw-rules.

  4. לצד הכותרת fw-policy, לוחצים על מחיקה כדי למחוק את מדיניות חומת האש.

מחיקת המכונות הווירטואליות

  1. נכנסים לדף VM instances במסוף Google Cloud .

    כניסה לדף VM instances

  2. מסמנים את תיבות הסימון של מכונות וירטואליות מסוג vm-fw-rules-client ו-vm-fw-rules-server.

  3. לוחצים על Delete.

מחיקת רשת ה-VPC ותת-הרשתות שלה

  1. נכנסים לדף VPC networks במסוף Google Cloud .

    מעבר לרשתות VPC

  2. בעמודה שם, לוחצים על vpc-fw-rules.

  3. לוחצים על מחיקת רשת VPC. מחיקה של VPC מובילה גם למחיקה של רשתות המשנה שלו.

המאמרים הבאים