קבוצות אבטחת רשת Azure או Azure NSGs מאפשרות לך לסנן תעבורת רשת הנכנסת והיוצאת, מאחד או יותר ממשאבי Azure. אם אי פעם תצטרך למנוע גישה אל משאב Azure, עליך להבין איך פועלות ה-NSGs.
במאמר זה, תלמד את מטרת ה-NSG של Azure וכיצד להגדיר אותם באמצעות שפת התסריט PowerShell.
נדרשים מראש
- משאב Azure למטרה. בתרגום זה ישמש מנוי תשלום כגון גם מכונה וירטואלית Azure של Windows Server 2019.
- גרסה 7 של PowerShell ומעלה. גרסאות קודמות של PowerShell עשויות לעבוד, אך בתרגום זה נעשה שימוש בגרסה 7.0.1 של PowerShell להגדרה.
- המודול PowerShell Azure Az
הבנת NSGs של Azure
חשוב להתייחס ל-NSG של Azure כמו לגישה. גישה מכילה כללים שמגדירים פעולות לביצוע על תעבורת נכנסת ויוצאת הנקראים סטי כללים. גישות בדרך כלל מגיעות עם סטי כללים ברירת מחדל המגדירים מה יכול ומה לא יכול לחצות את הגישה; NSGs של Azure יש להם דברים דומים.
כמו שלהגנה מפני הגנה מסורתית, ל- Azure NSGs יש גם מושג בענן שנקרא תגי שירות. תגי שירות הם הדרך של Azure להפשט טווחי כתובות כדי להפוך אותם לנוחים יותר לניהול.
בואו נכסה בקצרה כל אחת מתחומים אלו החשובים.
שימוש בתגי שירות כדי לפשט את ההגדרות של הכלל
בשירותי ענן, כתובות IP וטווחים יכולים להשתנות לעיתים קרובות. זה יכול להקשות על יצירת סטים ידניים של כללי טווחי IP של Azure. למרבה המזל, Azure מגדירה רבות תגי שירות שונים שהכלל שלך ב- NSG יכול להתמקד בו.
תגי שירות הם מושג שיתמיד ישתמשו ברשימת כתובות העדכנית ביותר. תגי השירות הם אמצעי להקצאת מקום לסטים של טווחי כתובות לניהול נוח יותר.

היה יודעים על סטי הכללים הברירת מחדל
כאשר אתה יוצר ומחיל NSG של Azure, עליך לדעת תחילה על הכללים שה- NSGs הם מחילים אוטומטית. סטי הכללים של ברירת המחדל אלו הם לא ניתנים לשינוי ונוצרים לתנועה בכיוונים שונים.
כל כלל בסט כללי של Azure NSG יש לו עדיפות. עדיפות זו תקבע את סדר הפעולה או אילו כללים יחליפו אחרים. לדוגמה, אם ישנה כלל עם עדיפות של 65000 שחוסמת את כל התנועה הנכנסת ואתה יוצר כלל עם עדיפות של 64999 שמאפשר יציאה בפורט 80, ה- NSG של Azure יחסום את כל התנועה פרט ל פורט 80.

אין אפשרות לשנות את סט הכללים המוגדרים כברירת מחדל, אך ניתן לדרוס אותם באמצעות כלל עם עדיפות גבוהה כפי שמוצג לעיל. כל אחד מהכללים הללו יכול להיות חל על כל פרוטוקול כמו TCP, UDP ו-ICMP.
ודא כי הכללים שלך משתמשים במספר הנמוך מ-65500 כדי לדרוס את הכללים המוגדרים כברירת מחדל!
כאשר אתה יוצר NSG ב-Azure, תראה מספר כללים מוגדרים כברירת מחדל:
כללים נכנסים
AllowVNetInBound
– כלל זה מכיל כל טווחי כתובות ה-IP המוגדרים עבור הרשת הווירטואלית וכל האזורים המחוברים במקורות חוץ. בנוסף, כלל זה מכיל גם רשתות וירטואליות שיש להן קישור מארח שיש לו שעתוק וירטואלי של רשת וכל קישוריות רשת וירטואלית שחוברה לשעתוק וירטואלי של רשת. כלל זה מוגדר עם עדיפות65000
.AllowAzureLoadBalancerInBound
– תג השירותAzureLoadBalancer
מתרגם לשעתוק ה-IP הווירטואלי של המארח,168.63.129.16
ממנו מתבצעת הבדיקה של Azure לבדיקת הבריאות. תנועה אמיתית אינה עוברת דרך כאן ואם אינך משתמש באיזור ייבוש של Azure, ניתן לדרוס כלל זה. השעתוק הווירטואלי של המארח קיים בכל האזורים במיוחד כדי לספק שירותי תשתיות יסודיים כמו DHCP, DNS, IMDS ומעקב אחר הבריאות. כלל זה מוגדר עם עדיפות65001
.DenyAllInbound
– מוגדר ככלל האחרון ביותר, בעזרת עדיפות65500
, כלל זה מסרב לכל תנועה נכנסת שאינה מורשית באופן פרטני.
כללים יוצאים
AllowVNetOutBound
– מכיל את כל טווחי כתובות ה-IP המוגדרים עבור הרשת הווירטואלית, כל הרשתות המחוברות באופן מקומי, תחומי כתובות שנשותפו, רשתות וירטואליות המחוברות לשער רשת וירטואלי, כתובת IP וירטואלית של המארח, וכל תחומי הכתובות המשמשים בנתיבי משתמש מוגדרים. חוק זה מוגדר עם עדיפות של65000
.AllowInternetOutBound
– תחום כתובות IP שנמצא מחוץ לרשת הווירטואלית ונגיש על ידי האינטרנט הציבורי. כולל את טווח כתובות ה-IP הציבוריות שבבעלות Azure. חוק זה מוגדר עם עדיפות של65001
.DenyAllOutBound
– דומה לקבוצת החוקים הנכנסים, חוק זה מוגדר כאחרון מאוד, בעזרת עדיפות65500
. חוק היציאה הזה ידחה את כל תעבורת היציאה שלא הותרה באופן ברור.
בניית NSGs של Azure עם PowerShell
די מילה, בואו נתחיל לבנות כמה NSGs של Azure עם PowerShell! בהנחה שאתם בקונסולת הפוורשל שלכם ומאומתים, נמשיך לקרוא.
קשור: Connect-AzAccount: שערכם ל-Azure עם PowerShell
כדי ליצור NSG של Azure עם PowerShell, נדרשת פקודה אחת; New-AzNetworkSecurityGroup
. כדי ליצור NSG עם פקודה זו, יש לספק לה את השם, שם קבוצת המשאבים ליצירת ה-NSG מתחתיו, והמיקום.
הדוגמה לקוד למטה משתמשת ב-cmdlet New-AzNetworkSecurityGroup
כדי ליצור NSG בשם NSG-MyVM
בקבוצת המשאבים Articles הממוקמת ב-datacenter של Azure ב-eastus
.
יצירת כללי NSG של Azure בעזרת PowerShell
פעם שיש לך את ה-NSG, סט הכללים המוגדר כבר כנראה לא מספיק. תצטרך ליצור כללים משלך.
הגדרת כלל נכנס עבור פרוטוקול דסקטופ מרחוק
A common administrative task is the need to create an inbound rule for the Remote Desktop Protocol (RDP). In the tutorial’s example, perhaps it’s going to be applied to a Windows Server Azure VM and you need to access the VM via RDP. In that case, you need to open up port 3389 inbound.
כדי להוסיף כלל נכנס חדש ל-NSG קיים, נדרשות שלושה שלבים:
- הרצת הפקודה
Get-AzNetworkSecurityGroup
כדי לאחזר את ה-NSG הקיים. - הרצת הפקודה
Add-AzNetworkSecurityRuleConfig
כדי ליצור את הכלל. - הרצת הפקודה
Set-AzNetworkSecurityGroup
כדי להחיל את הכלל הזה על ה-NSG.
הדוגמה לקוד למטה משתמשת ב-Get-AzNetworkSecurityGroup
כדי לאחזר NSG קיים. לאחר מכן, הוגדר כלל בעזרת Add-AzNetworkSecurityRuleConfig
שמתווה, ואז ישמר על ה-NSG הקיים באמצעות cmdlet של Set-AzNetworkSecurityGroup
.
הפרמטר העדיפות מקבע מתי הכלל מוערך, הערך
200
נמצא ליד ראשית הרשימה כאשר4096
הוא עדיפות הכלל הנמוכה ביותר.
מניעת תנועה מומלצת של SANS לצאת
לעתים תנועת יציאה אינה חסומה מאחר וזה יכול להיות מאתגר לדעת את כל היציאות האפשריות שאפליקציה עשויה להשתמש בהן. למרבה המזל, ניתן למצוא כמה המלצות מומחים לסינון יציאה ממכון SANS, ארגון מהימן לתקני אבטחת מידע.
על מנת ליישם את ההמלצות של SANS, אנו יכולים להשתמש באותן שלוש שלבים המצויינים למעלה אך הפעם ליצור כלל עם מספר יציאות שונות ועם כיוון
של יוצאת כדי שלא יוצאת.
- MS RPC – יציאות TCP ו־UDP 135
- NetBIOS/IP – יציאות TCP ו־UDP 137-139
- SMB/IP – יציאה TCP 445
- פרוטוקול פילוח קבצים פשוט (TFTP) – יציאה UDP 69
- סיסלוג – יציאה UDP 514
- פרוטוקול ניהול רשת פשוט (SNMP) – יציאות UDP 161-162
הקוד למטה משיג כלל NSG קיים באמצעות הפקודה Get-AzNetworkSecurityGroup
. כלל יוצא הוא מוגדר באמצעות Add-AzNetworkSecurityRuleConfig
ומיושם באמצעות הפקודה Set-AzNetworkSecurityGroup
.
כמובן, חלק מהיציאות הללו הן יקרות ונחוצות, תלוי בשירותים שאתה מספק. כנראה שתצטרך להתאים את הרשימה זו לפי מה שהיישום שלך דורש, שבדרך כלל ניתן על ידי הספק או באמצעות כלי למציאת יציאות פתוחות כמו netstat
.
דומה: מציאת יציאות באמצעות Netstat ו-PowerShell
הגדרת NSG של Azure עבור תת-רשת מסוימת
אולי חלקת את הרשת הווירטואלית שלך דרך תת-רשתות. כדי להיות יותר מדויק, ניתן להחיל NSG רק על תת-רשת מסוימת וכך לשלוט באופן מדויק בתעבורה בתת-רשת זו.
קטע הקוד למטה מוצא פרטי כתובת שלמה ומחיל NSG עליה.
באמצעות רכיבי ממשק רשת ניתן ללמוד כיצד לחלק ולהגביל עוד יותר את ה-NSG למה שייתכן ויהיה נדרש, כמו ממשק רשת.
החלת NSG של Azure לממשק רשת
בדומה לכיצד תת-רשתות פועלות, ניתן להחיל כללי NSG ישירות על ממשק רשת. רמת האבחנה הזו כמעט שאינה נדרשת, אך כאשר יש לך מספר ממשקי רשת מרובים לכל מכונה וירטואלית, זה עשוי להיות טוב להחיל סטים של כללים שונים על ממשקי ה-NIC היחידים בהתאם לצורך.
בדומה לכיצד ההגבלה של תת-רשת מוגדרת, ניתן להחיל כללים ל-NIC יחיד. במקרה זה, אתה משתמש בפקודת Get-AzNetworkInterface
כדי לקבל NIC ספציפי במכונה הווירטואלית הנתונה. זה יכיל את NSG שנוצר מראש של נכס ה-NetworkSecurityGroup
.
מה עם אבחון וניתוח תעבורה דרך NSG? המשך לקרוא כדי ללמוד על יומני זרימה של NSG וכיצד ניתן להשתמש בהם!
איתור באגים ופתרון בעיות עם יומני זרימת NSG
במהלך יצירת NSG ושימוש בה, ייתכן ותגלה כי נדרשת בדיקת שגיאות נוספת כדי לאבחן בעיה פגומה או לנתח תעבורה. יומני הזרימה הם תכונה של אזור התצפית על הרשת ב-Azure שמקליטה מידע על תעבורת ה-IP שמעבורת דרך NSG.
פעם שאזור התצפית על הרשת ב-Azure תופס תעבורת רשת, הוא אוחסן בחשבון אחסון ב-Azure. באמצעות PowerShell, ניתן להגדיר יומני זרימת NSG של Azure לעבור דרך חשבון אחסון ב-Azure ולאבחן בדיקת שגיאות ולפתור בצורה טובה יותר מה קורה.
קשור: כיצד להוריד ולהתקין את כלי ה-AzCopy
הפעלת יומני זרימת NSG מורכבת משלושה שלבים גסים ב-PowerShell:
- רשום את ספק
Microsoft.Insights
. - צור מרחב עבודה של Operational Insights כדי לאחסן את הנתונים.
- הפעל את יומן הזרימה של NSG עם הפקודה
Set-AzNetworkWatcherConfigFlowLog
.
כדי להקל על התקנת יומני זרימה של Azure NSG, הקוד PowerShell שלמטה יפשט את השלבים הנדרשים השונים. חשוב לציין כי הקוד יוצר מרחב עבודה של Operational Insights ומשייך הגדרת יומן זרימה למנוי הנכון, למרחב העבודה ול-NSG.
יומני הזרימה מכילים מאפיינים שונים רבים, כפי שנהוג ביומני חומת אש. כך לדוגמה, מאפיינים אלה כוללים כתובות IP של מקור ויעד, פורטים, פרוטוקולים וחותמות זמן. יומני גרסה 1 ו-2 מכילים הבדל גדול בכך שגרסה 2 מכילה את המושג של מצב זרימה. זה מסמן את ההמשך והסיום של זרימה יחד עם מידע על רוחב הפס של תעבורת הנתונים.
שלבים הבאים
NSGs של Azure הם כלים עוצמתיים להגבלת תעבורת מערכת. בשימוש יעיל, תוכל לאבטח את המשאבים והתשתיות שלך בצורה תקינה. עם יכולות בדיקה באמצעות יומני זרימה של NSG ויכולת להגביל NSG לתתי-רשתות או מתאמי רשת, תהיה לך את הגמישות הנדרשת להגדרת כללים כפי הצורך ולאמת כי כל התעבורה היא כפי הצפייה.