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

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

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

יצירת תיקייה

יוצרים תיקייה בארגון.

  1. במסוף Google Cloud , נכנסים לדף Manage resources.

    כניסה לדף Manage resources

  2. לוחצים על Create folder.

  3. בשדה Folder name (שם התיקייה), מזינים test-folder.

  4. ברשימה Organization, בוחרים את השם של משאב הארגון.

  5. בשדה מיקום, לוחצים על עיון ואז בוחרים את משאב הארגון.

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

יצירת פרויקט

יוצרים פרויקט בתיקייה שיצרתם בקטע הקודם.

  1. במסוף Google Cloud , נכנסים לדף Manage resources.

    כניסה לדף Manage resources

  2. לוחצים על יצירת פרויקט.

  3. בשדה Project name (שם הפרויקט), מזינים test-project.

  4. בוחרים חשבון לחיוב עבור הפרויקט.

  5. ברשימה Organization, בוחרים את השם של משאב הארגון.

  6. בשדה Location (מיקום), לוחצים על Browse (עיון), מרחיבים את שם משאב הארגון ובוחרים באפשרות test-folder (תיקיית בדיקה).

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

יצירת שתי רשתות VPC מותאמות אישית עם תת-רשתות IPv4

יוצרים שני פרויקטים של רשתות VPC במצב מותאם אישית, myvpc עם רשת משנה מסוג IPv4 בלבד וtest-vpc עם שתי רשתות משנה מסוג IPv4 בלבד, בפרויקט שיצרתם בקטע הקודם.

  1. בדף לבחירת הפרויקט במסוף Google Cloud , בוחרים באפשרות test-project.

    כניסה לדף לבחירת הפרויקט

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

    מעבר לרשתות VPC

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

  4. בשדה Name (שם), מזינים myvpc.

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

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

    • שם: מזינים myvpc-subnet-1.
    • אזור: בוחרים באפשרות us-central1.
    • טווח IPv4: מזינים 10.0.0.0/24.
  7. לוחצים על Done ואז על Create.

  8. כדי ליצור עוד רשת VPC, לוחצים על יצירת רשת VPC.

  9. בשדה Name (שם), מזינים test-vpc.

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

  11. בקטע New subnet (רשת משנה חדשה), מציינים את פרמטרי ההגדרה הבאים של רשת המשנה ולוחצים על Done (סיום):

    • שם: מזינים testvpc-subnet-1.
    • אזור: בוחרים באפשרות us-central1.
    • טווח IPv4: מזינים 10.0.0.0/16.
  12. כדי להוסיף עוד רשת משנה לרשת test-vpc, לוחצים על הוספת רשת משנה.

  13. בקטע New subnet (רשת משנה חדשה), מציינים את פרמטרי ההגדרה הבאים של רשת המשנה ולוחצים על Done (סיום):

    • שם: מזינים testvpc-subnet-ext.
    • אזור: בוחרים באפשרות us-central1.
    • טווח IPv4: מזינים 192.168.1.0/24.
  14. לוחצים על יצירה.

יצירת מכונות וירטואליות

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

יצירת מכונה וירטואלית ברשת myvpc

יוצרים מכונה וירטואלית ללא כתובת IP חיצונית ברשת myvpc.

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

    כניסה לדף Create an instance

  2. בחלונית Machine configuration:

    1. בשדה Name (שם), מזינים myvpc-vm.
    2. בשדה אזור, בוחרים באפשרות us-central1 (Iowa).
  3. בתפריט הניווט, לוחצים על Networking (רשת).

    1. בקטע Network interfaces (ממשקי רשת), לוחצים על default ומציינים את פרמטרי ההגדרה הבאים:
      • רשת: myvpc
      • תת-רשת: myvpc-subnet-1 IPv4 (10.0.0.0/24)
      • כתובת IPv4 חיצונית: ללא
    2. לוחצים על סיום.
  4. לוחצים על יצירה.

יצירת שתי מכונות וירטואליות ברשת test-vpc

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

יוצרים מכונה וירטואלית ללא כתובת IP חיצונית:

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

    כניסה לדף Create an instance

  2. בחלונית Machine configuration:

    1. בשדה Name (שם), מזינים testvpc-vm.
    2. בשדה אזור, בוחרים באפשרות us-central1 (Iowa).
  3. בתפריט הניווט, לוחצים על Networking (רשת).

    1. בקטע Network interfaces (ממשקי רשת), לוחצים על default ומציינים את פרמטרי ההגדרה הבאים:
      • רשת: test-vpc
      • תת-רשת: testvpc-subnet-1 IPv4 (10.0.0.0/16)
      • כתובת IPv4 חיצונית: ללא
    2. לוחצים על סיום.
  4. לוחצים על יצירה.

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

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

    כניסה לדף Create an instance

  2. בחלונית Machine configuration:

    1. בשדה Name (שם), מזינים testvpc-apache-vm.
    2. בשדה אזור, בוחרים באפשרות us-central1 (Iowa).
  3. בתפריט הניווט, לוחצים על Networking (רשת).

    1. בקטע Network interfaces (ממשקי רשת), לוחצים על default ומציינים את פרמטרי ההגדרה הבאים:
      • רשת: test-vpc
      • תת-רשת: testvpc-subnet-ext IPv4 (192.168.1.0/24)
      • כתובת IPv4 חיצונית: זמנית
    2. לוחצים על סיום.
  4. בתפריט הניווט, לוחצים על מתקדם ומזינים את הסקריפט הבא בשדה סקריפט לטעינה בזמן ההפעלה:

    #! /bin/bash
    apt-get update
    apt-get install apache2 -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
    

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

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

  6. בדף VM instances, שימו לב לכתובת ה-IP החיצונית הארעית שהוקצתה למכונה הווירטואלית הזו. תצטרכו את כתובת ה-IP החיצונית הזו בהמשך.

יצירת Cloud Router ושער Cloud NAT

בקטע הקודם, ברשת myvpc, יצרתם את המכונה הווירטואלית myvpc-vm ללא כתובת IP חיצונית. כדי לאפשר למכונה הווירטואלית myvpc-vm לגשת לשרת האינטרנט של Apache שפועל ב-testvpc-apache-vm דרך האינטרנט הציבורי, צריך ליצור Cloud Router ושער Cloud NAT באותה רשת משנה שבה יצרתם את המכונה הווירטואלית myvpc-vm.

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

    כניסה ל-Cloud NAT

  2. לוחצים על Get started (תחילת העבודה) או על Create Cloud NAT gateway (יצירת שער Cloud NAT).

    הערה: אם זה שער Cloud NAT הראשון שאתם יוצרים, לוחצים על תחילת העבודה. אם כבר יש לכם שערים קיימים, Google Cloud יוצג לחצן השער Create Cloud NAT. כדי ליצור עוד שער, לוחצים על Create Cloud NAT gateway.

  3. בשדה שם השער, מזינים myvpc-gateway.

  4. בקטע NAT type (סוג NAT), בוחרים באפשרות Public (ציבורי).

  5. בקטע Select Cloud Router (בחירת נתב Cloud), מציינים את פרמטרים ההגדרה הבאים:

    • רשת: בוחרים באפשרות myvpc.
    • אזור: בוחרים באפשרות us-central1 (Iowa).
    • ‫Cloud Router: לוחצים על יצירת נתב חדש.
      1. בשדה Name (שם), מזינים myvpc-router.
      2. לוחצים על יצירה.
  6. לוחצים על יצירה.

יצירה של מדיניות חומת אש היררכית והוספה של כללים לחומת האש

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

  • מפעילים את IAP לכל המכונות הווירטואליות ב-test-folder כדי להפעיל גישת אדמין למכונות הווירטואליות.
  • מתן הרשאה לתעבורת נתונים נכנסת (ingress) לכל מכונות ה-VM ברשת test-vpc.
  • העברת תעבורת הנתונים היוצאת מהרשת myvpc לכלל הבא בהיררכיה, שהוא הכלל VPC firewall implied IPv4 rule egress all.
  • חסימת תעבורת נתונים יוצאת שמקורה בכל שאר רשתות ה-VPC ב-test-folder.

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

  1. במסוף Google Cloud , עוברים לדף לבחירת הפרויקט ובוחרים באפשרות test-folder.

    כניסה לדף לבחירת הפרויקט

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

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

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

  4. בקטע Configure policy (הגדרת המדיניות), בשדה Policy name (שם המדיניות), מזינים את הערך fw-egress-specific-vpc.

  5. בשדה תיאור, מזינים example-firewall-policy.

  6. לוחצים על Continue.

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

  8. בקטע Associate policy with resources (שיוך מדיניות למשאבים), לוחצים על Add (הוספה).

  9. מרחיבים את הארגון, בוחרים באפשרות test-folder ולוחצים על הוספה.

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

מוסיפים כלל חומת אש כדי להפעיל את IAP בכל המכונות הווירטואליות ב-test-folder

כדי לאפשר ל-IAP להתחבר לכל המכונות הווירטואליות ב-test-folder, צריך כלל חומת אש במדיניות חומת האש ההיררכית עם המאפיינים הבאים:

  • רלוונטי לכל המכונות הווירטואליות ב-test-folder שרוצים לגשת אליהן באמצעות העברת TCP של IAP.
  • מאפשר תעבורת נתונים נכנסת מטווח כתובות ה-IP‏ 35.235.240.0/20. הטווח הזה מכיל את כל כתובות ה-IP שמשמשות את IAP להעברת TCP.
  • מאפשרת חיבורים לכל היציאות שרוצים לגשת אליהן באמצעות העברת TCP של IAP, למשל, יציאה 22 ל-SSH.

כדי להוסיף את כלל חומת האש:

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

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

  2. לוחצים על fw-egress-specific-vpc ואז על הוספת כלל.

  3. בשדה עדיפות מזינים 100.

  4. בשדה תיאור, מזינים enable-iap.

  5. בשדה כיוון התנועה, בוחרים באפשרות תנועה נכנסת.

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

  7. בקטע Source, בשדה IP ranges, מזינים 35.235.240.0/20.

  8. בקטע Protocols and ports (פרוטוקולים ויציאות), בוחרים באפשרות Specified protocols and ports (פרוטוקולים ויציאות שצוינו).

  9. מסמנים את התיבה TCP ובשדה Ports (יציאות) מזינים 22.

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

מוסיפים כלל חומת אש שמאפשר תעבורת נתונים נכנסת ברשת test-vpc

מוסיפים כלל חומת אש שמאפשר תעבורת נתונים נכנסת באינטרנט מסוג HTTP ביציאת TCP‏ 80 לכל המכונות הווירטואליות ברשת test-vpc:

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

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

  2. לוחצים על fw-egress-specific-vpc ואז על הוספת כלל.

  3. בשדה עדיפות מזינים 200.

  4. בשדה תיאור, מזינים allow-ingress-testvpc.

  5. בשדה כיוון התנועה, בוחרים באפשרות תנועה נכנסת.

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

  7. בקטע Target (טירגוט), לוחצים על Add network (הוספת רשת).

  8. בוחרים את פרויקט הבדיקה שמכיל את הרשת test-vpc, ואז בוחרים באפשרות test-vpc בתור הרשת.

  9. בקטע Source, בשדה IP ranges, מזינים 0.0.0.0/0.

  10. בקטע Protocols and ports (פרוטוקולים ויציאות), בוחרים באפשרות Specified protocols and ports (פרוטוקולים ויציאות שצוינו).

  11. מסמנים את התיבה TCP ובשדה Ports (יציאות) מזינים 80.

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

מוסיפים כלל חומת אש שמקצה את תעבורת הנתונים היוצאת מהרשת myvpc לכלל הבא בהיררכיה

מוסיפים כלל של חומת אש שמשתמש בפעולה goto_next כדי להעביר את תעבורת היציאה מרשת myvpc לכלל הבא בחומת האש, שהוא כלל חומת האש implied IPv4 allow egress של VPC.

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

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

  2. לוחצים על fw-egress-specific-vpc ואז על הוספת כלל.

  3. בשדה עדיפות מזינים 300.

  4. בשדה תיאור, מזינים delegate-egress-myvpc.

  5. בשדה כיוון התנועה, בוחרים באפשרות יציאה.

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

  7. בקטע Target (טירגוט), לוחצים על Add network (הוספת רשת).

  8. בוחרים את שם פרויקט הבדיקה שמכיל את myvpc, ואז בוחרים באפשרות myvpc בתור הרשת.

  9. בקטע Destination, בשדה IP ranges, מזינים את כתובת ה-IP החיצונית הזמנית של המכונה הווירטואלית שבה פועל שרת האינטרנט של Apache. רשמתם את כתובת ה-IP הזו בקטע יצירת שתי מכונות וירטואליות ברשת test-vpc.

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

הוספת כלל חומת אש שיחסום תעבורת נתונים יוצאת שמקורה מכל שאר רשתות ה-VPC

לבסוף, מוסיפים כלל חומת אש שמונע תעבורת נתונים יוצאת מכל רשתות ה-VPC האחרות ב-test-folder.

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

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

  2. לוחצים על fw-egress-specific-vpc ואז על הוספת כלל.

  3. בשדה עדיפות מזינים 400.

  4. בשדה תיאור, מזינים block-egress-all-traffic.

  5. בשדה כיוון התנועה, בוחרים באפשרות יציאה.

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

  7. בקטע Destination (יעד), בשדה IP ranges (טווח כתובות IP), מזינים 0.0.0.0/0.

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

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

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

  1. נכנסים למסוף Google Cloud .

    כניסה למסוף Google Cloud

  2. בתפריט לבחירת הפרויקט בחלק העליון של הדף, בוחרים באפשרות test-project שבה יצרתם את רשתות ה-VPC.

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

    כניסה לדף VM instances

  4. בעמודה Connect של myvpc-vm, לוחצים על SSH.

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

  6. כדי לוודא שתעבורת הנתונים היוצאת אל testvpc-apache-vm מ-myvpc מותרת, מריצים את הפקודה הבאה:

    curl <external_ephemeral_IP_testvpc_apache_vm> -m 2
    

    הפקודה הקודמת מחזירה את התוכן שצוין לדף index.html של שרת האינטרנט Apache, כלומר, חיבורי יציאה מ-myvpc מותרים.

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

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

      כניסה לדף VM instances

    2. בעמודה Connect של testvpc-vm, לוחצים על SSH.

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

    4. כדי לוודא שתעבורת הנתונים היוצאת מ-testvpc-vm אל testvpc-apache-vm חסומה, מריצים את הפקודה הבאה:

      curl <internal_IP_testvpc_apache_vm> -m 2
      

      הפקודה הקודמת מחזירה הודעה Connection timed out, וזה צפוי כי יצרתם כלל חומת אש שחוסם תעבורת נתונים יוצאת מכל רשתות ה-VPC בארגון, למעט myvpc.

הסרת המשאבים

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

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

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

  1. נכנסים למסוף Google Cloud .

    כניסה למסוף Google Cloud

  2. בכלי לבחירת פרויקטים בחלק העליון של הדף, בוחרים באפשרות test-folder שבה יצרתם את המשאבים במדריך למתחילים הזה.

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

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

  4. בקטע Firewall policies associated with this node or inherited by the node (מדיניות חומת אש שמשויכת לצומת הזה או שעוברת בירושה מהצומת), לוחצים על fw-egress-specific-vpc.

  5. לוחצים על הכרטיסייה שיוכים.

  6. מסמנים את התיבה לצד test-folder ולוחצים על הסרת השיוך.

  7. בתיבת הדו-שיח הסרת השיוך אל test-folder, לוחצים על מחיקה.

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

  9. בתיבת הדו-שיח מחיקה fw-egress-specific-vpc, לוחצים על מחיקה.

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

  1. נכנסים למסוף Google Cloud .

    כניסה למסוף Google Cloud

  2. מכלי לבחירת פרויקטים בחלק העליון של הדף, בוחרים באפשרות test-project.

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

    כניסה לדף VM instances

  4. מסמנים את תיבות הסימון של myvpc-vm,‏ testvpc-vm ו-testvpc-apache-vm.

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

  6. בתיבת הדו-שיח מחיקת 3 מופעים, לוחצים על מחיקה.

מחיקת Cloud Router ושער Cloud NAT

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

    כניסה ל-Cloud Routers

  2. מסמנים את התיבה לצד myvpc-router.

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

  4. בתיבת הדו-שיח מחיקה myvpc-router, לוחצים על מחיקה.

כשמוחקים Cloud Router, נמחק גם שער Cloud NAT שמשויך אליו.

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

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

    מעבר לרשתות VPC

  2. בעמודה Name (שם), לוחצים על myvpc.

  3. לוחצים על מחיקת רשת VPC.

  4. בתיבת הדו-שיח מחיקת רשת, לוחצים על מחיקה.

    באופן דומה, מוחקים את הרשת test-vpc.

כשמוחקים רשת VPC, גם רשתות המשנה שלה נמחקות.

מחיקת הפרויקט

  1. במסוף Google Cloud , נכנסים לדף Manage resources.

    כניסה לדף Manage resources

  2. אם הפרויקט שרוצים למחוק מחובר לארגון, מרחיבים את הרשימה Organization בעמודה Name.
  3. ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
  4. כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.

מחיקת התיקייה

  1. במסוף Google Cloud , נכנסים לדף Manage resources.

    כניסה לדף Manage resources

  2. אם התיקייה שרוצים למחוק מחוברת לארגון, מרחיבים את הרשימה Organization בעמודה Name.

  3. ברשימת התיקיות, בוחרים באפשרות test-folder ולוחצים על Delete (מחיקה).

  4. כדי למחוק את הפרויקט, כותבים את מזהה התיקייה בתיבת הדו-שיח ולוחצים על Delete anyway.

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