פרופילי אבטחה של סינון כתובות URL הם מבני מדיניות בשכבה 7 שמשתמשים במסנני כתובות URL כדי להגדיר מדיניות אבטחה לנקודות קצה של חומת אש. הפרופילים האלה בודקים שמות דומיין בתנועת הרשת כדי לאכוף פעולות של אישור או דחייה על סמך מחרוזות התאמה ועדיפויות ספציפיות.
בדף הזה מוסבר איך ליצור ולנהל פרופילים של אבטחה לסינון כתובות URL.
לפני שמתחילים
- צריך להפעיל את Network Security API בפרויקט.
- אם רוצים להריץ את הדוגמאות של שורת הפקודה במדריך הזה, צריך להתקין את Google Cloud CLI.
gcloud
תפקידים
כדי לקבל את ההרשאות שדרושות ליצירה, לצפייה, לעדכון או למחיקה של פרופילי אבטחה, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הנדרשים בארגון. מידע נוסף על מתן תפקידים מופיע במאמר ניהול הגישה.
יצירת פרופיל אבטחה לסינון כתובות URL
כדי ליצור url-filtering פרופיל אבטחה, מציינים שם כמחרוזת או כמזהה ייחודי של כתובת URL.
המסוף
נכנסים לדף Security profiles במסוף Google Cloud .
בתפריט לבחירת פרויקטים, בוחרים את הארגון או הפרויקט שבהם רוצים ליצור את פרופיל האבטחה.
לוחצים על הכרטיסייה פרופילי אבטחה.
לוחצים על יצירת פרופיל.
מזינים שם בשדה Name.
אם רוצים, מוסיפים תיאור בשדה Description.
כדי ליצור פרופיל אבטחה של Cloud Next Generation Firewall Enterprise, בקטע Purpose (מטרה), בוחרים באפשרות Cloud NGFW Enterprise.
כדי ליצור פרופיל אבטחה לסינון כתובות URL, בקטע Type (סוג), בוחרים באפשרות URL Filtering (סינון כתובות URL).
בקטע URL filters (מסנני כתובות URL), לוחצים על הלחצן Create URL filter (יצירת מסנן כתובות URL).
בחלונית Create a URL filter, מציינים את הפרטים הבאים:
- עדיפות: מציינים את העדיפות של מסנן כתובות ה-URL.
- פעולה: מציינים את הפעולה ש-Cloud NGFW מבצע בתנועה.
- Allow: מאפשרת את החיבורים שתואמים לכתובת URL.
- Deny: דחיית החיבורים שתואמים לכתובת URL.
- רשימת כתובות URL: מציינים רשימה של כתובות URL או מחרוזות התאמה. כל כתובת URL או מחרוזת התאמה צריכות להופיע בשורה נפרדת, בלי רווחים או תווי הפרדה. כל רשומה יכולה לכלול רק דומיין. מידע נוסף על מחרוזות התאמה זמין במאמר בנושא מחרוזות התאמה לכתובות URL.
לוחצים על יצירה.
gcloud
יוצרים קובץ YAML עם התוכן הבא:
name: NAME type: url-filtering urlFilteringProfile: urlFilters: - filteringAction: ACTION priority: PRIORITY urls: [URL,URL,...]מחליפים את מה שכתוב בשדות הבאים:
NAME: השם של פרופיל האבטחה של סינון כתובות URL. אפשר לציין את השם כמחרוזת או כמזהה ייחודי של כתובת URL.
ACTION: מציינים אחת מהפעולות הבאות:-
ALLOW: מאפשרת חיבורים שתואמים לכתובת URL -
DENY: דחיית חיבורים שתואמים לכתובת URL
-
PRIORITY: העדיפות של מסנן כתובות URL, בטווח שבין 0 ל-2147483647.
URLs: רשימה מופרדת בפסיקים של מחרוזות התאמה. לדוגמה,www.example.comו-www.examplepetstore.com.
כדי ליצור את פרופיל האבטחה של סינון כתובות URL, מריצים את הפקודה
gcloud network-security security-profiles import:gcloud network-security security-profiles import NAME \ --source FILE_NAME \ [ --organization ORGANIZATION_ID | --project PROJECT_ID ] \ --location global
לחלופין, אפשר ליצור פרופיל אבטחה לסינון כתובות URL בלי קובץ YAML באמצעות הפקודה
gcloud network-security security-profiles url-filtering create:gcloud network-security security-profiles url-filtering create NAME \ [ --organization ORGANIZATION_ID | --project PROJECT_ID ] \ --description DESCRIPTION \ --location globalמחליפים את מה שכתוב בשדות הבאים:
NAME: השם של פרופיל האבטחה לסינון כתובות URL.אם לא משתמשים בפורמט הייחודי של מזהה כתובת ה-URL בשביל השם, צריך לציין את שם הארגון או הפרויקט ואת המיקום.
FILE_NAME: השם של קובץ ה-YAML. לדוגמה,url-filtering-sp.yaml.
ORGANIZATION_ID: מזהה הארגון. משתמשים בדגל הזה כדי ליצור פרופיל אבטחה ברמת הארגון.
PROJECT_ID: מזהה הפרויקט. משתמשים בדגל הזה כדי ליצור פרופיל אבטחה ברמת הפרויקט.
DESCRIPTION: תיאור אופציונלי של פרופיל האבטחה של סינון כתובות URL.
לדוגמה, בקטע הקוד הבא מוצגת דוגמה לפרופיל אבטחה של סינון כתובות URL שמאפשר בקשות אל
www.example.comו-www.examplepetstore.com, אבל דוחה בקשות לכל הדומיינים האחרים:urlFilteringProfile: urlFilters: - filteringAction: ALLOW priority: 1000 urls: ['www.example.com', 'www.examplepetstore.com'] # the following URL filter is implicit and will be processed last - filteringAction: DENY priority: 2147483647 urls: ['*']
מסנן כתובות URL עם דחייה משתמעת
פרופיל האבטחה של סינון כתובות URL תמיד כולל מסנן כתובות URL שמוגדר כברירת מחדל עם העדיפות הכי נמוכה (2147483647), שדוחה את כל החיבורים שלא תואמים למסנני כתובות URL עם עדיפות גבוהה יותר. בקטע הקוד הבא מוצגת דוגמה למסנן כתובות URL עם דחייה מרומזת:
urlFilteringProfile:
urlFilters:
# user-specified URL filters
- filteringAction: DENY
priority: 1000
urls: ['www.example.com','www.examplepetstore.com']
- filteringAction: ALLOW
priority: 2000
urls: ['www.example.org','www.example.net']
# implicit deny URL filter that will be processed last
- filteringAction: DENY
priority: 2147483647
urls: ['*']
אפשר לראות את מסנן כתובות ה-URL של דחייה מרומזת כשמציגים או מייצאים פרופיל אבטחה של סינון כתובות URL. אי אפשר לשנות או להסיר את המסנן המרומז.
לדוגמה, אם רוצים לשנות את פעולת ברירת המחדל של פרופיל מ-DENY
(enforced by implicit filter) ל-ALLOW, צריך להוסיף מסנן מפורש ש-Cloud NGFW מעבד לפני המסנן המרומז.
urlFilteringProfile:
urlFilters:
# user-specified filters
- filteringAction: DENY
priority: 1000
urls: ['www.example.com','www.examplepetstore.com']
# explicit allow URL filter that you can add
- filteringAction: ALLOW
priority: 2000
urls: ['*']
# implicit deny URL filter that will be processed last
- filteringAction: DENY
priority: 2147483647
urls: ['*']
מחרוזות התאמה לכתובות URL
מחרוזות התאמה הן הערכים שמציינים בשדה urls של מסנן כתובות URL. אפשר לציין מחרוזת התאמה אחת או יותר בתוך מסנן כתובות URL.
תווים כלליים לחיפוש
כל מחרוזת התאמה ברשימת כתובות URL יכולה לכלול תו כללי לחיפוש (*), אבל באופן מוגבל.
- כל מחרוזת התאמה יכולה לתמוך רק בכוכבית אחת (*), כך שהכוכבית היא התו הראשון או התו היחיד.
הכוכבית (*) יכולה לקבל את הפירושים הבאים:
כוכבית (*) לפני נקודה (.) מציינת את כל תתי-הדומיין של הדומיין.
לדוגמה, מחרוזת ההתאמה
*.example.comתואמת ל-a.example.comול-a.b.c.example.com, אבל לא ל-example.com.urlFilteringProfile: urlFilters: # user-specified filters - filteringAction: ALLOW priority: 1000 urls: ['*.example.com'] # implicit deny URL filter that will be processed last - filteringAction: DENY priority: 2147483647 urls: ['*']בדוגמה הקודמת, Cloud NGFW מאפשר תעבורה לכיוון תחומי המשנה של
example.com, אבל חוסם את שאר התעבורה היוצאת.כוכבית (*) לפני תווית מציינת את הדומיין ואת כל תתי-הדומיין.
לדוגמה, מחרוזת ההתאמה
*example.comתתאים ל-a.example.com, ל-a.b.c.example.comוגם ל-example.com.urlFilteringProfile: urlFilters: # user-specified filters - filteringAction: ALLOW priority: 1000 urls: ['*example.com'] # implicit deny URL filter that will be processed last - filteringAction: DENY priority: 2147483647 urls: ['*']בדוגמה הקודמת, Cloud NGFW מאפשר תעבורה לכיוון
example.comוגם לכיוון תת-הדומיינים שלexample.com, אבל חוסם את שאר התעבורה היוצאת.כוכבית (*) לפני סיומת דומיין (כמו
.com) מציינת את כל הדומיינים (ותתי-הדומיין שלהם) שמשתמשים בסיומת הדומיין.לדוגמה, מחרוזת ההתאמה
*.comתואמת ל-example.comול-examplepetstore.comולכל הדומיינים המשניים שלהם.בקטע הקוד הבא אפשר לראות איך מאפשרים את כל הדומיינים (והדומיינים שלהם) שמסתיימים ב-
.com, אבל חוסמים את שאר התנועה.urlFilteringProfile: urlFilters: # Allow all domains (and their subdomains) that end in '.com' - filteringAction: ALLOW priority: 2000 urls: ['*.com'] # implicit deny URL filter that will be processed last - filteringAction: DENY priority: 2147483647 urls: ['*']בקטע הקוד הבא אפשר לראות איך חוסמים את כל תתי-הדומיין של
example.comושלexamplepetstore.com, אבל מתירים את הדומיינים האלה ואת כל הדומיינים האחרים (ותתי-הדומיין שלהם) שמסתיימים ב-.com.urlFilteringProfile: urlFilters: # Deny all subdomains of example.com - filteringAction: DENY priority: 1000 urls: ['*.example.com'] # Deny all subdomains of examplepetstore.com - filteringAction: DENY priority: 1500 urls: ['*.examplepetstore.com'] # Allow all domains (and their subdomains) that end in '.com' - filteringAction: ALLOW priority: 2000 urls: ['*.com'] # implicit deny URL filter that will be processed last - filteringAction: DENY priority: 2147483647 urls: ['*']Cloud NGFW לא מפרש את הכוכבית (*) כתו כללי לחיפוש בביטוי רגולרי.
לדוגמה,
*example.testלא תואם ל-newexample.testאו ל-a.newexample.test. ההתאמה תהיה רק ל-example.testולתתי הדומיינים שלexample.test.כוכבית בודדת (*) ללא תווים אחרים מציינת התאמה לכל הבקשות.
לדוגמה, מחרוזת ההתאמה במסנן כתובות ה-URL להיתר מפורש עם העדיפות הכי נמוכה מכילה רק כוכבית (*) ויש לה פעולה
ALLOWשמבטלת את פעולת ברירת המחדלDENY. זה קורה כי מסנן כתובות ה-URL של הדחייה המרומזת מחיל את ברירת המחדלDENYעל כל הבקשות שלא תואמות למסנני כתובות URL בעדיפות גבוהה יותר.מסנן כתובות ה-URL בעדיפות הכי גבוהה – שהוא או
ALLOWמפורש אוDENYמשתמע – קובע אם Cloud NGFW מאפשר או דוחה חיבורים כשחסר מידע על SNI או על דומיין. זה יכול לקרות בתעבורת HTTP לא מוצפנת, או כשבדיקת TLS מושבתת בכותרות של הודעות מוצפנות.urlFilteringProfile: urlFilters: # user-specified filters - filteringAction: DENY priority: 1000 urls: ['www.example.com','www.examplepetstore.com'] # explicit allow URL filter that you can add - filteringAction: ALLOW priority: 2000 urls: ['*'] # implicit deny URL filter that will be processed last - filteringAction: DENY priority: 2147483647 urls: ['*']
מגבלות
- מחרוזות של התאמה מייצגות דומיינים או תת-דומיינים.
- מחרוזות של התאמה לא תומכות בתו הלוכסן (/). לדוגמה:
www.example.com/images. - מחרוזות של התאמה לא תומכות בסכימות או בשמות פרוטוקולים. לדוגמה:
http://www.example.com. - מחרוזות של התאמה לא תומכות במספרי יציאות. לדוגמה:
www.example.com:80. - מחרוזות של התאמה תומכות רק באותיות, במספרים ובתווים מיוחדים של ASCII: מקף (-), נקודה (.) וכוכבית (*).
חובה להשתמש ב-Punycode כדי להמיר שמות דומיין שמכילים תווים שאינם אותיות ASCII, מספרים, מקפים (-), נקודות (.) או כוכביות (*). Punycode הוא תקן קידוד שממיר שמות דומיין ב-Unicode לפורמט שתואם ל-ASCII.
אם יש לכם שתי תוויות או יותר, צריך להשתמש בנקודות (.) כדי להפריד ביניהן. תווית יכולה להכיל מקף אחד או יותר (-), אבל היא לא יכולה להתחיל או להסתיים במקף. כל תווית יכולה לכלול עד 63 תווים.
מסנן כתובות URL לא תומך בשימוש בנקודה בתחילת שם דומיין או בנקודות עוקבות במחרוזת התאמה. מסנן כתובות URL מאפשר נקודות בסוף, אבל Cloud NGFW מסיר אותן לפני שמירת מסנן כתובות URL.
Cloud NGFW ממיר את המחרוזות של ההתאמה לאותיות קטנות לפני שהוא שומר את מסנן כתובות ה-URL. Cloud NGFW לא מבצע נורמליזציה אחרת.
כל שם דומיין יכול לכלול עד 255 תווים.
מסנני כתובות URL לתת-דומיינים ברמות מרובות
אתם יכולים להשתמש במסנני כתובות URL עם עדיפויות ופעולות שונות כדי לשלוט בתעבורת הרשת לתת-דומיינים מרובי רמות. אפשר גם להשתמש בתו הכללי לחיפוש (*) במחרוזות של כלי ההתאמה כדי לציין דומיינים ותת-דומיינים.
לדוגמה, נניח שאתם מטמיעים את ההתנהגות הבאה:
- הרשאה להפעיל את
a.b.c.example.com - דחיית הבקשה של
*.b.c.example.com(דחיית הבקשות של כל שאר תת-הדומיינים שלb.c.example.com) - מתן הרשאה ל-
*.c.example.com(מתן הרשאה לכל שאר תתי-הדומיין שלc.example.com) - דחיית הבקשה של
*.example.com(דחיית הבקשות של כל שאר תת-הדומיינים שלexample.com) - הרשאה להפעיל את
example.com - אישור של כל השאר
קטע הקוד הבא מטמיע את התרחיש הזה:
urlFilteringProfile:
urlFilters:
# Allow 'a.b.c.example.com'
- filteringAction: ALLOW
priority: 1000
urls: ['a.b.c.example.com']
# Deny all subdomains of 'b.c.example.com'
- filteringAction: DENY
priority: 2000
urls: ['*.b.c.example.com']
# Allow all subdomains of 'c.example.com'
- filteringAction: ALLOW
priority: 3000
urls: ['*.c.example.com']
# Deny all subdomains of 'example.com'
- filteringAction: DENY
priority: 4000
urls: ['*.example.com']
# explicit allow URL filter
- filteringAction: ALLOW
priority: 5000
urls: ['*']
# implicit deny URL filter that will be processed last
- filteringAction: DENY
priority: 2147483647
urls: ['*']
רשימה והצגת פרטים של פרופיל אבטחה לסינון כתובות URL
אתם יכולים להציג רשימה של פרופילי האבטחה של סינון כתובות URL שנוצרו בארגון או בפרויקט. אפשר גם לראות את פרטי הפרופיל, כמו הסוג, המטרה והתיאור.
המסוף
נכנסים לדף Security profiles במסוף Google Cloud .
לוחצים על הכרטיסייה פרופילי אבטחה כדי לראות רשימה של פרופילי אבטחה שהוגדרו.
כדי לסנן לפי פרופילים של אבטחה לסינון כתובות URL, בשדה Filter (סינון) מציינים Profile type (סוג פרופיל) כ-URL filtering (סינון כתובות URL).
בכרטיסייה מוצגת רשימה של פרופילי אבטחה לסינון כתובות URL.
כדי להציג את פרטי הפרופיל, לוחצים על פרופיל אבטחה של סינון כתובות URL.
gcloud
כדי לראות את כל פרופילי האבטחה של סינון כתובות URL, משתמשים בפקודה gcloud network-security security-profiles url-filtering list:
gcloud network-security security-profiles url-filtering list \
[ --organization ORGANIZATION_ID | --project PROJECT_ID ] \
[--billing-project QUOTA_PROJECT_ID]
--location global
כדי לראות את הפרטים של פרופיל אבטחה לסינון כתובות URL, מריצים את הפקודה gcloud network-security security-profiles url-filtering describe:
gcloud network-security security-profiles url-filtering describe NAME \
[ --organization ORGANIZATION_ID | --project PROJECT_ID ] \
[--billing-project QUOTA_PROJECT_ID]
--location global
מחליפים את מה שכתוב בשדות הבאים:
NAME: השם של פרופיל האבטחה.אם לא משתמשים בפורמט הייחודי של מזהה כתובת ה-URL בשביל השם, צריך לציין את שם הארגון או הפרויקט ואת המיקום.
ORGANIZATION_ID: מזהה הארגון שבו קיים פרופיל האבטחה.
PROJECT_ID: מזהה הפרויקט שבו קיים פרופיל האבטחה.
QUOTA_PROJECT_ID: מזהה הפרויקט של המכסה. אפשר להשתמש בדגל הזה רק בפרופילי אבטחה ברמת הארגון.
מחיקת פרופיל אבטחה לסינון כתובות URL
כדי למחוק פרופיל אבטחה לסינון כתובות URL, צריך לציין את השם, המיקום והארגון או הפרויקט שלו. אם פרופיל אבטחה מפנה לקבוצת פרופילי אבטחה, אי אפשר למחוק אותו.
כדי למחוק פרופיל אבטחה לסינון כתובות URL, משתמשים במסוף Google Cloud או ב-CLI של gcloud. עם זאת, אם פרופיל אבטחה מפנה לקבוצת פרופילי אבטחה, אי אפשר למחוק את פרופיל האבטחה הזה.
המסוף
נכנסים לדף Security profiles במסוף Google Cloud .
לוחצים על הכרטיסייה פרופילי אבטחה. בכרטיסייה מוצגת רשימה של פרופילי אבטחה שהוגדרו.
בוחרים את פרופיל האבטחה שרוצים למחוק ולוחצים על מחיקה.
כדי לאשר, לוחצים שוב על מחיקה.
gcloud
כדי למחוק פרופיל אבטחה של סינון כתובות URL, משתמשים בפקודה gcloud network-security security-profiles url-filtering delete:
gcloud network-security security-profiles url-filtering delete NAME \
[ --organization ORGANIZATION_ID | --project PROJECT_ID ] \
--location global
מחליפים את מה שכתוב בשדות הבאים:
NAME: השם של פרופיל האבטחה.אם לא מציינים את השם בפורמט של מזהה כתובת URL ייחודי, צריך לציין את שם הארגון או הפרויקט ואת המיקום.
ORGANIZATION_ID: מזהה הארגון. משתמשים בדגל הזה לפרופיל אבטחה ברמת הארגון.PROJECT_ID: מזהה הפרויקט. משתמשים בדגל הזה לפרופיל אבטחה ברמת הפרויקט.
QUOTA_PROJECT_ID: מזהה הפרויקט של המכסה. אפשר להשתמש בדגל הזה רק בפרופילי אבטחה ברמת הארגון.
ייבוא פרופיל אבטחה לסינון כתובות URL
אתם יכולים לייבא פרופיל אבטחה לסינון כתובות URL (שנוצר בהתאמה אישית או יוצא בעבר) מקובץ YAML. כשמייבאים פרופיל אבטחה לסינון כתובות URL, אם כבר קיים פרופיל עם אותו שם, Cloud NGFW מעדכן את הפרופיל הקיים.
כדי לייבא פרופיל אבטחה של סינון כתובות URL מקובץ YAML, משתמשים ב-CLI של gcloud. אם כבר קיים פרופיל עם אותו שם כשמייבאים אותו, Cloud NGFW מעדכן את הפרופיל הזה.
gcloud
כדי לייבא פרופיל אבטחה של סינון כתובות URL מקובץ YAML, משתמשים בפקודה gcloud network-security security-profiles import:
gcloud network-security security-profiles import NAME \
[ --organization ORGANIZATION_ID | --project PROJECT_ID ] \
--location global \
--source FILE_NAME
מחליפים את מה שכתוב בשדות הבאים:
NAME: השם של פרופיל האבטחה מהסוגurl-filteringשרוצים לייבא. אפשר לציין את השם כמחרוזת או כמזהה ייחודי של כתובת URL.
ORGANIZATION_ID: מזהה הארגון. משתמשים בדגל הזה לפרופיל אבטחה ברמת הארגון.
PROJECT_ID: מזהה הפרויקט. משתמשים בדגל הזה לפרופיל אבטחה ברמת הפרויקט.
FILE_NAME: הנתיב לקובץ ה-YAML שמכיל את נתוני ייצוא ההגדרות.
ייצוא פרופיל אבטחה של סינון כתובות URL
אפשר לייצא פרופיל אבטחה של סינון כתובות URL לקובץ YAML. לדוגמה, במקום להשתמש בממשק המשתמש כדי לשנות פרופיל אבטחה גדול, אפשר להשתמש בפונקציונליות הזו כדי לייצא את פרופיל האבטחה, לשנות אותו במהירות ולייבא אותו בחזרה.
כדי לייצא פרופיל אבטחה של סינון כתובות URL לקובץ YAML, משתמשים ב-CLI של gcloud.
gcloud
כדי לייצא פרופיל אבטחה של סינון כתובות URL לקובץ YAML, משתמשים בפקודה gcloud network-security security-profiles export:
gcloud network-security security-profiles export NAME \
[ --organization ORGANIZATION_ID | --project PROJECT_ID ] \
--location global \
--destination FILE_NAME
מחליפים את מה שכתוב בשדות הבאים:
NAME: השם של פרופיל האבטחה מהסוגurl-filteringשרוצים לייצא. אפשר לציין את השם כמחרוזת או כמזהה ייחודי של כתובת URL.
ORGANIZATION_ID: מזהה הארגון. משתמשים בדגל הזה לפרופיל אבטחה ברמת הארגון.
PROJECT_ID: מזהה הפרויקט. משתמשים בדגל הזה לפרופיל אבטחה ברמת הפרויקט.
FILE_NAME: הנתיב לקובץ ה-YAML שאליו Cloud NGFW ייצא את התצורה.