דוגמאות לרישום ביומן של כללי חומת אש ב-VPC

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

דוגמה ל-egress deny

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

בדוגמה הזו, תעבורת הנתונים זורמת בין מכונות וירטואליות בפרויקט example-netברשת ה-VPC example-proj.

  • שתי המכונות הווירטואליות הן:

    • מכונה וירטואלית VM1 באזור us-west1-a עם כתובת IP‏ 10.10.0.99 ב-west-subnet (אזור us-west1).
    • ‫VM2 באזור us-east1-b עם כתובת IP‏ 10.20.0.99 ב-east-subnet (אזור us-east1).
  • כלל א': כלל חומת אש לדחיית תעבורה יוצאת (egress) מוגדר עם יעד של כל המופעים ברשת, יעד של 10.20.0.99 (VM2) והוא חל על יציאת TCP‏ 80. הרישום ביומן מופעל במסגרת הכלל הזה.

  • כלל ב': כלל חומת אש שמאפשר תעבורת נתונים נכנסת (ingress) מכוון לכל המכונות ברשת, המקור הוא 10.10.0.99 (VM1) והוא חל על יציאת TCP‏ 80. הרישום ביומן מופעל גם עבור הכלל הזה.

כדי ליצור את כללי חומת האש של ה-VPC, משתמשים בפקודות הבאות: gcloud

  • כלל א': כלל דחייה של תעבורת נתונים יוצאת (egress) ליציאת TCP‏ 80, חל על כל המופעים, יעד 10.20.0.99:

    gcloud compute firewall-rules create rule-a \
        --network example-net \
        --action deny \
        --direction EGRESS \
        --rules tcp:80 \
        --destination-ranges 10.20.0.99/32 \
        --priority 10 \
        --enable-logging
    
  • כלל ב': כלל שמאפשר תעבורת נתונים נכנסת (ingress) ביציאת TCP‏ 80, חל על כל המכונות, מקור 10.10.0.99:

    gcloud compute firewall-rules create rule-b \
        --network example-net \
        --action allow \
        --direction INGRESS \
        --rules tcp:80 \
        --source-ranges 10.10.0.99/32 \
        --priority 10 \
        --enable-logging
    
כלל חסימת תעבורה יוצאת חוסם את החיבור מ-VM1 ל-VM2.
כלל לדחיית תעבורת נתונים יוצאת (egress) חוסם את החיבור ממכונה וירטואלית 1 למכונה וירטואלית 2 (לחצו כדי להגדיל).

בתרחיש שבו מכונה וירטואלית VM1 מנסה להתחבר למכונה וירטואלית VM2 ביציאת TCP‏ 80, קורה הדבר הבא:

  • כשמכונה וירטואלית VM1 מנסה להתחבר אל 10.20.0.99 (מכונה וירטואלית VM2), נוצרת רשומה ביומן עבור כלל A מנקודת המבט של מכונה וירטואלית VM1.
  • מכיוון שכלל א' חוסם את התעבורה, המערכת לא מתייחסת לכלל ב', ולכן לא נוצרת רשומת יומן לכלל ב' מנקודת המבט של מכונה וירטואלית 2.

המכונה הווירטואלית VM1 מדווחת על הרשומה הבאה ביומן של כלל חומת האש ב-VPC:

שדה ערכים
connection src_ip=10.10.0.99
src_port=[EPHEMERAL_PORT]
dest_ip=10.20.0.99
dest_port=80
protocol=6
disposition לא מאושרת
rule_details reference = "network:example-net/firewall:rule-a"
priority = 10
action = DENY
destination_range = 10.20.0.99/32
ip_port_info = tcp:80
direction = egress
instance project_id="example-proj"
instance_name=VM1
region=us-west1
zone=us-west1-a
vpc project_id="example-proj"
vpc_name=example-net
subnetwork_name=west-subnet
remote_instance project_id="example-proj"
instance_name=VM2
region=us-east1
zone=us-east1-b
remote_vpc project_id="example-proj"
vpc_name=example-net
subnetwork_name=east-subnet
remote_location אין מידע. השדה הזה משמש רק אם היעד הוא מחוץ לרשת ה-VPC.

דוגמה להרשאת יציאה ולהרשאת כניסה

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

בדוגמה הזו, תעבורת הנתונים זורמת בין מכונות וירטואליות ברשת ה-VPC בפרויקט example-proj.example-net

  • שתי המכונות הווירטואליות הן:

    • מכונה וירטואלית VM1 באזור us-west1-a עם כתובת IP‏ 10.10.0.99 ב-west-subnet (אזור us-west1).
    • ‫VM2 באזור us-east1-b עם כתובת IP‏ 10.20.0.99 ב-east-subnet (אזור us-east1).
  • כלל א': כלל חומת אש שמאפשר תעבורת נתונים יוצאת (egress) מוגדר עם יעד של כל המכונות ברשת, יעד של 10.20.0.99 (VM2) והוא חל על יציאת TCP‏ 80. הרישום ביומן מופעל במסגרת הכלל הזה.

  • כלל ב': כלל חומת אש שמאפשר תעבורת נתונים נכנסת (ingress) מכוון לכל המכונות ברשת, המקור הוא 10.10.0.99 (VM1) והוא חל על יציאת TCP‏ 80. הרישום ביומן מופעל גם עבור הכלל הזה.

כדי ליצור את כללי חומת האש של ה-VPC, משתמשים בפקודות הבאות: gcloud

  • כלל א': כלל שמאפשר תעבורת נתונים יוצאת ביציאת TCP מספר 80, חל על כל המכונות, יעד 10.20.0.99 (מכונה וירטואלית 2):

    gcloud compute firewall-rules create rule-a \
        --network example-net \
        --action allow \
        --direction EGRESS \
        --rules tcp:80 \
        --destination-ranges 10.20.0.99/32 \
        --priority 10 \
        --enable-logging
    
  • כלל ב': כלל שמאפשר תעבורת נתונים נכנסת (ingress) ביציאת TCP‏ 80, חל על כל המכונות, מקור 10.10.0.99 (VM1):

    gcloud compute firewall-rules create rule-b \
        --network example-net \
        --action allow \
        --direction INGRESS \
        --rules tcp:80 \
        --source-ranges 10.10.0.99/32 \
        --priority 10 \
        --enable-logging
    
כללי תעבורת נתונים יוצאת (egress) וכללי תעבורת נתונים נכנסת (ingress) מאפשרים חיבור מ-VM1 ל-VM2.
כללי יציאה מותרת וכניסה מותרת מאפשרים חיבור ממכונה וירטואלית 1 למכונה וירטואלית 2 (לחצו כדי להגדיל).

בתרחיש שבו מכונה וירטואלית VM1 מנסה להתחבר למכונה וירטואלית VM2 ביציאת TCP‏ 80, קורה הדבר הבא:

  • רשומה ביומן עבור כלל A מנקודת המבט של מכונה וירטואלית 1 נוצרת בזמן שמכונה וירטואלית 1 מתחברת אל 10.20.0.99 (מכונה וירטואלית 2).
  • רשומת יומן עבור כלל B מנקודת המבט של מכונה וירטואלית 2 נוצרת בזמן שמכונה וירטואלית 2 מאפשרת חיבורים נכנסים מ-10.10.0.99 (מכונה וירטואלית 1).

המכונה הווירטואלית VM1 מדווחת על הרשומה הבאה ביומן של כלל חומת האש ב-VPC:

שדה ערכים
connection src_ip=10.10.0.99
src_port=[EPHEMERAL_PORT]
dest_ip=10.20.0.99
dest_port=80
protocol=6
disposition מאושרת
rule_details reference = "network:example-net/firewall:rule-a"
priority = 10
action = ALLOW
destination_range = 10.20.0.99/32
ip_port_info = tcp:80
direction = egress
instance project_id="example-proj"
instance_name=VM1
region=us-west1
zone=us-west1-a
vpc project_id="example-proj"
vpc_name=example-net
subnetwork_name=west-subnet
remote_instance project_id="example-proj"
instance_name=VM2
region=us-east1
zone=us-east1-b
remote_vpc project_id="example-proj"
vpc_name=example-net
subnetwork_name=east-subnet
remote_location אין מידע. השדה הזה משמש רק אם היעד הוא מחוץ לרשת ה-VPC.

ב-VM2 מדווחת רשומת יומן של כלל חומת האש ב-VPC:

שדה ערכים
connection src_ip=10.10.0.99
src_port=[EPHEMERAL_PORT]
dest_ip=10.20.0.99
dest_port=80
protocol=6
disposition מאושרת
rule_details reference = "network:example-net/firewall:rule-b"
priority = 10
action = ALLOW
source_range = 10.10.0.99/32
ip_port_info = tcp:80
direction = ingress
instance project_id="example-proj"
instance_name=VM2
region=us-east1
zone=us-east1-b
vpc project_id="example-proj"
vpc_name=example-net
subnetwork_name=east-subnet
remote_instance project_id="example-proj"
instance_name=VM1
region=us-west1
zone=us-west1-a
remote_vpc project_id="example-proj"
vpc_name=example-net
subnetwork_name=west-subnet
remote_location אין מידע. השדה הזה משמש רק אם היעד הוא מחוץ לרשת ה-VPC.

דוגמה לתעבורת נתונים נכנסת (ingress) מהאינטרנט

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

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

  • למערכת באינטרנט יש כתובת IP‏ 203.0.113.114.
  • למכונה וירטואלית VM1 באזור us-west1-a יש כתובת IP‏ 10.10.0.99 באזור west-subnet (us-west1).
  • כלל ג': כלל חומת אש שמאפשר תעבורת נתונים נכנסת (ingress) עם יעד של כל המכונות ברשת, מקור של כל כתובת IP‏ (0.0.0.0/0) וחל על יציאת TCP‏ 80. הרישום ביומן מופעל במסגרת הכלל הזה.
  • כלל D: כלל חומת אש לדחיית תעבורת נתונים יוצאת (egress) מוגדר כך שהיעד שלו הוא כל המכונות ברשת, היעד הוא כל כתובת IP‏ (0.0.0.0/0) והוא חל על כל הפרוטוקולים. הרישום ביומן מופעל במסגרת הכלל הזה.

כדי ליצור את כללי חומת האש של ה-VPC, משתמשים בפקודות הבאות: gcloud

  • כלל C: כלל שמאפשר תעבורת נתונים נכנסת (ingress) ביציאת TCP‏ 80, חל על כל המכונות, מכל מקור:

    gcloud compute firewall-rules create rule-c \
        --network example-net \
        --action allow \
        --direction INGRESS \
        --rules tcp:80 \
        --source-ranges 0.0.0.0/0 \
        --priority 10 \
        --enable-logging
    
  • כלל D: כלל שחוסם יציאה לכל הפרוטוקולים, חל על כל המקרים, כל יעד:

    gcloud compute firewall-rules create rule-d \
        --network example-net \
        --action deny \
        --direction EGRESS \
        --rules all \
        --destination-ranges 0.0.0.0/0 \
        --priority 10 \
        --enable-logging
    
כלל ההרשאה לכניסה מאפשר חיבור מהאינטרנט למכונה הווירטואלית VM1.
חיבור מהאינטרנט למכונה וירטואלית (לחצו כדי להגדיל).

בתרחיש שבו מערכת עם כתובת ה-IP‏ 203.0.113.114 מנסה להתחבר ל-VM1 ביציאת TCP‏ 80, קורה הדבר הבא:

  • המכונה הווירטואלית VM1 יוצרת רשומה ביומן עבור כלל C בזמן שהיא מקבלת תנועה מ-203.0.113.114.
  • למרות כלל D, המכונה הווירטואלית VM1 יכולה להשיב לבקשה הנכנסת כי Google Cloud כללי חומת האש הם stateful. אם הבקשה הנכנסת מורשית, אף כלל יציאה לא יכול לחסום תגובות שנוצרו.
  • מכיוון שהכלל D לא חל, המערכת לא מתייחסת אליו, ולכן אין רשומה ביומן לגבי הכלל D.

המכונה הווירטואלית VM1 מדווחת על הרשומה הבאה ביומן של כלל חומת האש ב-VPC:

שדה ערכים
connection src_ip=203.0.113.114
src_port=[EPHEMERAL_PORT]
dest_ip=10.10.0.99
dest_port=80
protocol=6
disposition מאושרת
rule_details reference = "network:my-vpc/firewall:rule-c"
priority = 10
action = ALLOW
source_range = 0.0.0.0/0
ip_port_info = tcp:80
direction = ingress
instance project_id="example-proj"
instance_name=VM1
region=us-west1
zone=us-west1-a
vpc project_id="example-proj"
vpc_name=example-net
subnetwork_name=west-subnet
remote_location continent
country
region
city

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