Hailbytes VPN עם תיעוד חומת אש Firezone

תוכן העניינים

בקשו ייעוץ

הוראות שלב אחר שלב לפריסת Hailbytes VPN עם Firezone GUI מסופקות כאן. 

ניהול: הגדרת מופע השרת קשורה ישירות לחלק זה.

מדריכים למשתמש: מסמכים מועילים שיכולים ללמד אותך כיצד להשתמש ב-Firezone ולפתור בעיות טיפוסיות. לאחר פריסת השרת בהצלחה, עיין בסעיף זה.

מדריכים לתצורות נפוצות

מנהור מפוצל: השתמש ב-VPN כדי לשלוח תנועה רק לטווחי IP ספציפיים.

רישום הלבן: הגדר כתובת IP סטטית של שרת VPN כדי להשתמש ברשימת היתרים.

מנהרות הפוכות: צור מנהרות בין מספר עמיתים באמצעות מנהרות הפוכות.

קבל תמיכה

אנו שמחים לסייע לך אם אתה זקוק לסיוע בהתקנה, התאמה אישית או שימוש ב-Hailbytes VPN.

אימות

לפני שמשתמשים יכולים לייצר או להוריד קובצי תצורה של המכשיר, ניתן להגדיר את Firezone כך שידרוש אימות. ייתכן שמשתמשים גם יצטרכו לבצע אימות מחדש מעת לעת כדי לשמור על חיבור ה-VPN שלהם פעיל.

למרות ששיטת ההתחברות המוגדרת כברירת מחדל של Firezone היא דואר אלקטרוני וסיסמה מקומיים, ניתן לשלב אותה גם עם כל ספק זהות סטנדרטי של OpenID Connect (OIDC). משתמשים יכולים כעת להיכנס ל-Firezone באמצעות אישורי Okta, Google, Azure AD או ספק הזהות הפרטית שלהם.

 

שלב ספק OIDC גנרי

פרמטרי התצורה הדרושים ל-Firezone כדי לאפשר SSO באמצעות ספק OIDC מוצגים בדוגמה למטה. ב-/etc/firezone/firezone.rb, אתה עשוי למצוא את קובץ התצורה. הפעל את הגדרות ה-firezone-ctl reconfigure ו-firezone-ctl restart כדי לעדכן את היישום ולהשפיע על השינויים.

 

# זוהי דוגמה לשימוש ב-Google ו-Okta כספק זהות SSO.

# ניתן להוסיף תצורות OIDC מרובות לאותו מופע Firezone.

 

# Firezone יכול להשבית את ה-VPN של משתמש אם זוהתה שגיאה כלשהי בניסיון

# כדי לרענן את ה-access_token שלהם. זה מאומת לעבוד עבור Google, Okta, ו

# Azure SSO ומשמש לניתוק אוטומטי של VPN של משתמש אם הוא יוסר

# מספק OIDC. השאר את זה מושבת אם ספק ה-OIDC שלך

ל-# יש בעיות ברענון אסימוני גישה מכיוון שהוא עלול להפריע באופן בלתי צפוי ל-a

הפעלת VPN של משתמש אחד.

default['firezone']['authentication']['disable_vpn_on_oidc_error'] = false

 

default['firezone']['authentication']['oidc'] = {

  גוגל: {

    discovery_document_uri: "https://accounts.google.com/.well-known/openid-configuration",

    client_id: " ",

    client_secret: " ",

    redirect_uri: "https://instance-id.yourfirezone.com/auth/oidc/google/callback/",

    response_type: "קוד",

    scope: "פרופיל דוא"ל פתוח",

    תווית: "גוגל"

  },

  okta: {

    discovery_document_uri: "https:// /.well-known/openid-configuration",

    client_id: " ",

    client_secret: " ",

    redirect_uri: "https://instance-id.yourfirezone.com/auth/oidc/okta/callback/",

    response_type: "קוד",

    scope: "openid email profile offline_access",

    תווית: "Okta"

  }

}



הגדרות התצורה הבאות נדרשות עבור האינטגרציה:

  1. discovery_document_uri: ה URI של תצורת ספק OpenID Connect אשר מחזיר מסמך JSON המשמש לבניית בקשות עוקבות לספק OIDC זה.
  2. client_id: מזהה הלקוח של האפליקציה.
  3. client_secret: סוד הלקוח של האפליקציה.
  4. redirect_uri: מורה לספק OIDC לאן להפנות לאחר אימות. זה צריך להיות Firezone EXTERNAL_URL + /auth/oidc/ /callback/ (למשל https://instance-id.yourfirezone.com/auth/oidc/google/callback/).
  5. response_type: הגדר לקוד.
  6. תְחוּם: היקפי OIDC להשיג מספק OIDC שלך. זה צריך להיות מוגדר לפרופיל דוא"ל openid או פרופיל דוא"ל openid offline_access בהתאם לספק.
  7. תווית: טקסט תווית הלחצן שמופיע במסך ההתחברות שלך ל-Firezone.

כתובות URL יפות

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

  • https://instance-id.yourfirezone.com/auth/oidc/google
  • https://instance-id.yourfirezone.com/auth/oidc/okta

הוראות להגדרת Firezone עם ספקי זהות פופולריים

לספקים יש לנו תיעוד עבור:

  • Google
  • Okta
  • Azure Active Directory
  • Onelogin
  • אימות מקומי

 

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

שמור על אימות מחדש קבוע

ניתן לשנות את ההגדרה תחת הגדרות/אבטחה כדי לדרוש אימות חוזר תקופתי. זה יכול לשמש כדי לאכוף את הדרישה שמשתמשים יכנסו ל-Firezone על בסיס קבוע כדי להמשיך בהפעלת ה-VPN שלהם.

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

אימות מחדש

משתמש חייב לסיים את הפעלת ה-VPN שלו ולהיכנס לפורטל Firezone כדי לאמת מחדש הפעלת VPN שפג תוקפו (כתובת ה-URL שצוינה במהלך הפריסה).

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

 

מצב חיבור VPN

עמודת טבלת חיבור ה-VPN של דף המשתמשים מציגה את מצב החיבור של המשתמש. אלו הם מצבי החיבור:

ENABLED - החיבור מופעל.

מושבת - החיבור מושבת על ידי מנהל מערכת או כשל רענון OIDC.

פג - החיבור מושבת עקב פקיעת תוקף האימות או שמשתמש לא נכנס בפעם הראשונה.

Google

באמצעות מחבר OIDC הכללי, Firezone מאפשר כניסה יחידה (SSO) עם Google Workspace ו-Cloud Identity. מדריך זה יראה לך כיצד להשיג את פרמטרי התצורה המפורטים להלן, הנחוצים לשילוב:

  1. discovery_document_uri: ה URI של תצורת ספק OpenID Connect אשר מחזיר מסמך JSON המשמש לבניית בקשות עוקבות לספק OIDC זה.
  2. client_id: מזהה הלקוח של האפליקציה.
  3. client_secret: סוד הלקוח של האפליקציה.
  4. redirect_uri: מורה לספק OIDC לאן להפנות לאחר אימות. זה צריך להיות Firezone EXTERNAL_URL + /auth/oidc/ /callback/ (למשל https://instance-id.yourfirezone.com/auth/oidc/google/callback/).
  5. response_type: הגדר לקוד.
  6. תְחוּם: היקפי OIDC להשיג מספק OIDC שלך. זה צריך להיות מוגדר לפרופיל דוא"ל openid כדי לספק ל-Firezone את האימייל של המשתמש בתביעות שהוחזרו.
  7. תווית: טקסט תווית הלחצן שמופיע במסך ההתחברות שלך ל-Firezone.

השג הגדרות תצורה

1. מסך תצורת OAuth

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

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

 

במסך מידע האפליקציה:

  1. שם האפליקציה: Firezone
  2. לוגו האפליקציה: לוגו Firezone (שמור קישור בשם).
  3. דף הבית של היישום: כתובת האתר של מופע Firezone שלך.
  4. דומיינים מורשים: הדומיין ברמה העליונה של מופע Firezone שלך.

 

 

2. צור מזהי לקוח OAuth

סעיף זה מבוסס על התיעוד של גוגל על הגדרת OAuth 2.0.

בקר ב-Google Cloud Console דף אישורים בדף, לחץ על + צור אישורים ובחר מזהה לקוח OAuth.

במסך יצירת מזהה לקוח OAuth:

  1. הגדר את סוג היישום ליישום אינטרנט
  2. הוסף את Firezone EXTERNAL_URL + /auth/oidc/google/callback/ (למשל https://instance-id.yourfirezone.com/auth/oidc/google/callback/) כערך ל-URI מורשים להפניה מחדש.

 

לאחר יצירת מזהה הלקוח של OAuth, יינתן לך מזהה לקוח וסוד לקוח. אלה ישמשו יחד עם URI ההפניה מחדש בשלב הבא.

שילוב Firezone

ערוך /etc/firezone/firezone.rb לכלול את האפשרויות שלהלן:

 

# שימוש ב-Google כספק הזהות SSO

default['firezone']['authentication']['oidc'] = {

  גוגל: {

    discovery_document_uri: "https://accounts.google.com/.well-known/openid-configuration",

    client_id: " ",

    client_secret: " ",

    redirect_uri: "https://instance-id.yourfirezone.com/auth/oidc/google/callback/",

    response_type: "קוד",

    scope: "פרופיל דוא"ל פתוח",

    תווית: "גוגל"

  }

}

 

הפעל את ההגדרה מחדש של firezone-ctl והפעל מחדש את firezone-ctl כדי לעדכן את היישום. כעת אתה אמור לראות כפתור כניסה עם Google בכתובת ה-URL של Firezone.

Okta

Firezone משתמש במחבר OIDC הגנרי כדי לאפשר כניסה יחידה (SSO) עם Okta. מדריך זה יראה לך כיצד להשיג את פרמטרי התצורה המפורטים להלן, הנחוצים לאינטגרציה:

  1. discovery_document_uri: ה URI של תצורת ספק OpenID Connect אשר מחזיר מסמך JSON המשמש לבניית בקשות עוקבות לספק OIDC זה.
  2. client_id: מזהה הלקוח של האפליקציה.
  3. client_secret: סוד הלקוח של האפליקציה.
  4. redirect_uri: מורה לספק OIDC לאן להפנות לאחר אימות. זה צריך להיות Firezone EXTERNAL_URL + /auth/oidc/ /callback/ (למשל https://instance-id.yourfirezone.com/auth/oidc/okta/callback/).
  5. response_type: הגדר לקוד.
  6. תְחוּם: היקפי OIDC להשיג מספק OIDC שלך. זה צריך להיות מוגדר ל-openid email profile offline_access כדי לספק ל-Firezone את האימייל של המשתמש בתביעות שהוחזרו.
  7. תווית: טקסט תווית הלחצן שמופיע במסך ההתחברות שלך ל-Firezone.

 

שלב את אפליקציית Okta

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

במסוף הניהול, עבור אל יישומים > יישומים ולחץ על צור אינטגרציה של אפליקציות. הגדר את שיטת הכניסה ל-OICD - OpenID Connect וסוג היישום ליישום אינטרנט.

הגדר את ההגדרות האלה:

  1. שם האפליקציה: Firezone
  2. לוגו האפליקציה: לוגו Firezone (שמור קישור בשם).
  3. סוג ההענקה: סמן את התיבה Refresh Token. זה מבטיח ש-Firezone מסתנכרן עם ספק הזהות והגישה ל-VPN תופסק לאחר הסרת המשתמש.
  4. כתובות URI להפניה מחדש של כניסה: הוסף את Firezone EXTERNAL_URL + /auth/oidc/okta/callback/ (למשל https://instance-id.yourfirezone.com/auth/oidc/okta/callback/) כערך ל-URI מורשים להפניה מחדש .
  5. מטלות: הגבל לקבוצות שברצונך לספק גישה למופע Firezone שלך.

לאחר שמירת ההגדרות, תקבל זיהוי לקוח, סוד לקוח ותחום Okta. 3 הערכים האלה ישמשו בשלב 2 כדי להגדיר את Firezone.

שלב Firezone

ערוך /etc/firezone/firezone.rb לכלול את האפשרויות למטה. שֶׁלְךָ Discovery_document_url יהיה /.well-known/openid-configuration מצורף לסוף שלך okta_domain.

 

# שימוש ב- Okta כספק הזהות SSO

default['firezone']['authentication']['oidc'] = {

  okta: {

    discovery_document_uri: "https:// /.well-known/openid-configuration",

    client_id: " ",

    client_secret: " ",

    redirect_uri: "https://instance-id.yourfirezone.com/auth/oidc/okta/callback/",

    response_type: "קוד",

    scope: "openid email profile offline_access",

    תווית: "Okta"

  }

}

 

הפעל את ההגדרה מחדש של firezone-ctl והפעל מחדש את firezone-ctl כדי לעדכן את היישום. כעת אתה אמור לראות כפתור כניסה עם Okta בכתובת ה-URL של Firezone.

 

הגבל גישה למשתמשים מסוימים

המשתמשים שיכולים לגשת לאפליקציית Firezone יכולים להיות מוגבלים על ידי Okta. עבור אל דף המשימות של Firezone App Integration של Okta Admin Console כדי לבצע זאת.

Azure Active Directory

באמצעות מחבר ה-OIDC הגנרי, Firezone מאפשר כניסה יחידה (SSO) עם Azure Active Directory. מדריך זה יראה לך כיצד להשיג את פרמטרי התצורה המפורטים להלן, הנחוצים לשילוב:

  1. discovery_document_uri: ה URI של תצורת ספק OpenID Connect אשר מחזיר מסמך JSON המשמש לבניית בקשות עוקבות לספק OIDC זה.
  2. client_id: מזהה הלקוח של האפליקציה.
  3. client_secret: סוד הלקוח של האפליקציה.
  4. redirect_uri: מורה לספק OIDC לאן להפנות לאחר אימות. זה צריך להיות Firezone EXTERNAL_URL + /auth/oidc/ /callback/ (למשל https://instance-id.yourfirezone.com/auth/oidc/azure/callback/).
  5. response_type: הגדר לקוד.
  6. תְחוּם: היקפי OIDC להשיג מספק OIDC שלך. זה צריך להיות מוגדר ל-openid email profile offline_access כדי לספק ל-Firezone את האימייל של המשתמש בתביעות שהוחזרו.
  7. תווית: טקסט תווית הלחצן שמופיע במסך ההתחברות שלך ל-Firezone.

קבל הגדרות תצורה

מדריך זה נלקח מתוך Azure Active Directory Docs.

 

עבור לדף Azure Active Directory של פורטל Azure. בחר באפשרות ניהול תפריט, בחר רישום חדש ולאחר מכן הירשם על ידי אספקת המידע שלהלן:

  1. שם: Firezone
  2. סוגי חשבונות נתמכים: (ספריית ברירת מחדל בלבד - דייר יחיד)
  3. כתובת URL להפניה מחדש: זה צריך להיות EXTERNAL_URL של אזור האש שלך + /auth/oidc/azure/callback/ (למשל https://instance-id.yourfirezone.com/auth/oidc/azure/callback/). ודא שאתה כולל את הלוכסן הנגרר. זה יהיה הערך redirect_uri.

 

לאחר ההרשמה, פתחו את תצוגת הפרטים של האפליקציה והעתיקו את מזהה יישום (לקוח). זה יהיה ערך client_id. לאחר מכן, פתח את תפריט נקודות הקצה כדי לאחזר את מסמך מטא נתונים של OpenID Connect. זה יהיה הערך discovery_document_uri.

 

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

 

לבסוף, בחר בקישור הרשאות API תחת התפריט נהל, לחץ הוסף הרשאה, ובחר גרף של מיקרוסופט. הוסף אמייל, פתוח, גישה לא מקוונת ו פרופיל להרשאות הנדרשות.

שילוב Firezone

ערוך /etc/firezone/firezone.rb לכלול את האפשרויות שלהלן:

 

# שימוש ב-Azure Active Directory כספק הזהות SSO

default['firezone']['authentication']['oidc'] = {

  צבע תכלת: {

    discovery_document_uri: "https://login.microsoftonline.com/ /v2.0/.well-known/openid-configuration",

    client_id: " ",

    client_secret: " ",

    redirect_uri: "https://instance-id.yourfirezone.com/auth/oidc/azure/callback/",

    response_type: "קוד",

    scope: "openid email profile offline_access",

    תווית: "תכלת"

  }

}

 

הפעל את ההגדרה מחדש של firezone-ctl והפעל מחדש את firezone-ctl כדי לעדכן את היישום. כעת אתה אמור לראות כפתור כניסה עם Azure בכתובת ה-URL של Firezone.

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

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

לנהל

  • גדר
  • ניהול התקנה
  • שדרג
  • פתרון
  • שיקולי ביטחון
  • הפעלת שאילתות SQL

גדר

Chef Omnibus משמש את Firezone לניהול משימות כולל אריזת שחרור, פיקוח תהליכים, ניהול יומנים ועוד.

קוד רובי מרכיב את קובץ התצורה הראשי, שנמצא בכתובת /etc/firezone/firezone.rb. הפעלה מחדש של sudo firezone-ctl reconfigure לאחר ביצוע שינויים בקובץ זה גורמת ל- Chef לזהות את השינויים ולהחיל אותם על מערכת ההפעלה הנוכחית.

עיין בהפניה לקובץ התצורה לקבלת רשימה מלאה של משתני תצורה ותיאוריהם.

ניהול התקנה

ניתן לנהל את מופע Firezone שלך ​​באמצעות firezone-ctl פקודה, כפי שמוצג להלן. רוב פקודות המשנה דורשות קידומת עם sudo.

 

root@demo:~# firezone-ctl

omnibus-ctl: פקודה (תת-פקודה)

פקודות כלליות:

  לטהר

    מחק את *כל* נתוני Firezone, והתחל מאפס.

  create-or-reset-admin

    מאפס את הסיסמה של המנהל עם האימייל שצוין כברירת מחדל['firezone']['admin_email'] או יוצר מנהל חדש אם האימייל הזה לא קיים.

  לעזור

    הדפס הודעת עזרה זו.

  הגדר מחדש

    הגדר מחדש את היישום.

  איפוס-רשת

    מאפס את ה-nftables, ממשק WireGuard וטבלת הניתוב בחזרה לברירות המחדל של Firezone.

  show-config

    הצג את התצורה שתיווצר על ידי הגדרה מחדש.

  פירוק-רשת

    מסיר ממשק WireGuard וטבלת nftables של Firezone.

  כוח-אישור-חידוש

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

  עצור-אישור-חידוש

    מסיר cronjob שמחדש תעודות.

  הסרה

    הרוג את כל התהליכים והסר את ההתקנה של מפקח התהליך (הנתונים יישמרו).

  גרסה

    הצג את הגרסה הנוכחית של Firezone

פקודות ניהול שירות:

  חינני-להרוג

    נסה לעצור בצורה חיננית, ואז SIGKILL את כל קבוצת התהליך.

  Hup

    שלח לשירותים HUP.

  int

    שלח לשירותים INT.

  להרוג

    שלח לשירותים KILL.

  פעם

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

  הפעלה מחדש

    הפסק את השירותים אם הם פועלים, ואז הפעל אותם שוב.

  רשימת שירות

    רשום את כל השירותים (שירותים מופעלים מופיעים עם *.)

  התחלה

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

  מצב

    הצג את הסטטוס של כל השירותים.

  להפסיק

    הפסק את השירותים ואל תפעיל אותם מחדש.

  זנב

    צפה ביומני השירות של כל השירותים המופעלים.

  טווח

    שלח לשירותים TERM.

  usr1

    שלח לשירותים USR1.

  usr2

    שלח לשירותים USR2.

שדרג

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

 

כדי לשפר את Firezone, בצע את הפעולות הבאות:

  1. שדרג את חבילת Firezone באמצעות התקנה בפקודה אחת: sudo -E bash -c "$(curl -fsSL https://github.com/firezone/firezone/raw/master/scripts/install.sh)"
  2. הפעל את ההגדרה מחדש של firezone-ctl כדי לאסוף את השינויים החדשים.
  3. הפעל את firezone-ctl restart כדי להפעיל מחדש שירותים.

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

שדרג מ-<0.5.0 ל->=0.5.0

יש כמה שינויים שבירה ושינויי תצורה ב-0.5.0 שיש לטפל בהם. גלה עוד למטה.

בקשות Nginx non_ssl_port (HTTP) מקובצות הוסרו

Nginx כבר לא תומך בפרמטרים של יציאת SSL כוח ובלתי SSL החל מגרסה 0.5.0. מכיוון ש-Firezone זקוק ל-SSL כדי לעבוד, אנו ממליצים להסיר את שירות Nginx של החבילה על ידי הגדרת ברירת המחדל['firezone']['nginx']['enabled'] = false והפניית ה-proxy ההפוכה שלך לאפליקציית Phoenix ביציאה 13000 במקום זאת (כברירת מחדל) ).

תמיכת פרוטוקול ACME

0.5.0 מציג תמיכה בפרוטוקול ACME לחידוש אוטומטי של תעודות SSL עם שירות Nginx המצורף. כדי לאפשר,

  • ודא שברירת המחדל ['firezone']['external_url'] מכילה FQDN חוקי שפותר לכתובת ה-IP הציבורית של השרת שלך.
  • ודא שיציאה 80/tcp נגישה
  • אפשר תמיכה בפרוטוקול ACME עם ברירת המחדל ['firezone']['ssl']['acme']['enabled'] = true בקובץ התצורה שלך.

יעדי כלל יציאה חופפים

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

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

הגדרה מראש של Okta ו-Google SSO

Firezone 0.5.0 מסיר תמיכה בתצורת Okta ו-Google SSO בסגנון הישן לטובת התצורה החדשה והגמישה יותר מבוססת OIDC. 

אם יש לך תצורה כלשהי תחת מפתח ברירת המחדל['firezone']['authentication']['okta'] או ברירת המחדל['firezone']['authentication']['google'], עליך להעביר אותם ל-OIDC שלנו תצורה מבוססת באמצעות המדריך שלהלן.

תצורת Google OAuth קיימת

הסר שורות אלה המכילות את תצורות ה-OAuth הישנות של Google מקובץ התצורה שלך שנמצא בכתובת /etc/firezone/firezone.rb

 

default['firezone']['authentication']['google']['enabled']

default['firezone']['authentication']['google']['client_id']

default['firezone']['authentication']['google']['client_secret']

default['firezone']['authentication']['google']['redirect_uri']

 

לאחר מכן, הגדר את Google כספק OIDC על ידי ביצוע הנהלים כאן.

(ספק הוראות קישור) <<<<<<<<<<<<<<<<<

 

הגדר את Google OAuth הקיים 

הסר שורות אלה המכילות את תצורות Okta OAuth הישנות מקובץ התצורה שלך שנמצא בכתובת /etc/firezone/firezone.rb

 

default['firezone']['authentication']['okta']['enabled']

default['firezone']['authentication']['okta']['client_id']

default['firezone']['authentication']['okta']['client_secret']

ברירת מחדל['firezone']['authentication']['okta']['site']

 

לאחר מכן, הגדר את Okta כספק OIDC על ידי ביצוע הנהלים כאן.

שדרג מ-0.3.x ל->= 0.3.16

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

אם כבר יש לך אינטגרציה של OIDC:

עבור ספקי OIDC מסוימים, שדרוג ל->= 0.3.16 מחייב קבלת אסימון רענון עבור היקף הגישה הלא מקוונת. על ידי כך, הוא מוודא ש-Firezone מתעדכן עם ספק הזהות ושחיבור VPN מנותק לאחר מחיקת משתמש. האיטרציות המוקדמות יותר של Firezone חסרה תכונה זו. במקרים מסוימים, משתמשים שנמחקים מספק הזהות שלך עדיין עשויים להיות מחוברים ל-VPN.

יש צורך לכלול גישה לא מקוונת בפרמטר ההיקף של תצורת ה-OIDC שלך עבור ספקי OIDC שתומכים בהיקף הגישה הלא מקוונת. יש לבצע הגדרה מחדש של Firezone-ctl כדי להחיל שינויים בקובץ התצורה של Firezone, שנמצא בכתובת /etc/firezone/firezone.rb.

עבור משתמשים שאומתו על ידי ספק ה-OIDC שלך, תראה את כותרת ה-OIDC Connections בדף פרטי המשתמש של ממשק המשתמש באינטרנט, אם Firezone מצליח לאחזר את אסימון הרענון.

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

יש לי שילוב OAuth קיים

לפני 0.3.11, Firezone השתמשה בספקי OAuth2 מוגדרים מראש. 

עקוב אחר ההוראות כאן להגר ל- OIDC.

לא שילבתי ספק זהות

אין צורך בפעולה. 

אתה יכול לעקוב אחר ההוראות כאן כדי לאפשר SSO דרך ספק OIDC.

שדרג מ-0.3.1 ל->= 0.3.2

במקומה, ברירת המחדל ['firezone']['external url'] החליפה את ברירת המחדל של אפשרות התצורה['firezone']['fqdn']. 

הגדר זאת לכתובת ה-URL של הפורטל המקוון Firezone שלך, הנגיש לציבור הרחב. ברירת המחדל היא https:// בתוספת ה-FQDN של השרת שלך אם לא מוגדר.

קובץ התצורה נמצא בכתובת /etc/firezone/firezone.rb. עיין בהפניה לקובץ התצורה לקבלת רשימה מלאה של משתני תצורה ותיאוריהם.

שדרג מ-0.2.x ל-0.3.x

Firezone כבר לא שומר מפתחות פרטיים של המכשיר בשרת Firezone החל מגרסה 0.3.0. 

ממשק המשתמש של Firezone Web לא יאפשר לך להוריד מחדש או לראות את התצורות הללו, אך כל המכשירים הקיימים צריכים להמשיך לפעול כפי שהם.

שדרג מ-0.1.x ל-0.2.x

אם אתה משדרג מ-Firezone 0.1.x, יש כמה שינויים בקבצי תצורה שיש לטפל בהם באופן ידני. 

כדי לבצע את השינויים הדרושים בקובץ /etc/firezone/firezone.rb שלך, הפעל את הפקודות למטה בתור root.

 

cp /etc/firezone/firezone.rb /etc/firezone/firezone.rb.bak

sed -i “s/\['enable'\]/\['enabled'\]/” /etc/firezone/firezone.rb

echo “default['firezone']['connectivity_checks']['enabled'] = true” >> /etc/firezone/firezone.rb

echo “default['firezone']['connectivity_checks']['interval'] = 3_600” >> /etc/firezone/firezone.rb

הגדרה מחדש של firezone-ctl

הפעלה מחדש של firezone-ctl

פתרון בעיות

בדיקת יומני Firezone היא צעד ראשון נבון לכל בעיה שיכולה להתרחש.

הפעל את sudo firezone-ctl tail כדי להציג את יומני Firezone.

איתור באגים בעיות קישוריות

רוב בעיות הקישוריות עם Firezone נובעות מכללי iptables או nftables לא תואמים. עליך לוודא שכל כללים שיש לך בתוקף אינם מתנגשים עם חוקי Firezone.

קישוריות האינטרנט יורדת כאשר המנהרה פעילה

ודא ששרשרת FORWARD מאפשרת מנות מלקוחות WireGuard שלך למיקומים שברצונך להעביר דרך Firezone אם קישוריות האינטרנט שלך תתדרדר בכל פעם שאתה מפעיל את מנהרת ה-WireGuard שלך.

 

ניתן להשיג זאת אם אתה משתמש ב-ufw על ידי הבטחה שמדיניות הניתוב המוגדרת כברירת מחדל היא לאפשר:

 

ubuntu@fz:~$ sudo ufw ברירת מחדל לאפשר ניתוב

מדיניות ברירת המחדל לניתוב השתנתה ל'אפשר'

(הקפד לעדכן את הכללים שלך בהתאם)

 

A ufw הסטטוס של שרת Firezone טיפוסי עשוי להיראות כך:

 

ubuntu@fz:~$ sudo ufw סטטוס מילולי

סטטוס: פעיל

כניסה: על (נמוך)

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

פרופילים חדשים: דלג

 

לפעולה מתוך

— —— —-

22/tcp ALLOW IN בכל מקום

80/tcp ALLOW IN בכל מקום

443/tcp ALLOW IN בכל מקום

51820/udp ALLOW IN בכל מקום

22/tcp (v6) ALLOW IN בכל מקום (v6)

80/tcp (v6) ALLOW IN בכל מקום (v6)

443/tcp (v6) ALLOW IN בכל מקום (v6)

51820/udp (v6) ALLOW IN בכל מקום (v6)

שיקולי ביטחון

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

שירותים ונמלים

 

שֵׁרוּת

יציאת ברירת מחדל

האזנה כתובת

תיאור

nginx

80, 443

את כל

יציאת HTTP(S) ציבורית לניהול Firezone והקלת אימות.

מגן

51820

את כל

יציאת WireGuard ציבורית המשמשת להפעלות VPN. (UDP)

פוסטגרסל

15432

127.0.0.1

יציאה מקומית בלבד המשמשת עבור שרת Postgresql מצורפת.

פניקס

13000

127.0.0.1

יציאה מקומית בלבד בשימוש על ידי שרת אפליקציית elixir במעלה הזרם.

פריסות ייצור

אנו ממליצים לך לחשוב על הגבלת גישה לממשק האינטרנט החשוף לציבור של Firezone (כברירת מחדל יציאות 443/tcp ו-80/tcp) ובמקום זאת להשתמש במנהרת WireGuard כדי לנהל את Firezone עבור ייצור ופריסות הפונות לציבור שבהן מנהל יחיד יהיה אחראי של יצירה והפצה של תצורות מכשירים למשתמשי קצה.

 

לדוגמה, אם מנהל מערכת יצר תצורת מכשיר ויצר מנהרה עם כתובת WireGuard המקומית 10.3.2.2, תצורת ה-ufw הבאה תאפשר למנהל המערכת לגשת לממשק האינטרנט של Firezone בממשק wg-firezone של השרת באמצעות ברירת המחדל 10.3.2.1 כתובת המנהרה:

 

root@demo:~# ufw סטטוס מילולי

סטטוס: פעיל

כניסה: על (נמוך)

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

פרופילים חדשים: דלג

 

לפעולה מתוך

— —— —-

22/tcp ALLOW IN בכל מקום

51820/udp ALLOW IN בכל מקום

בכל מקום אפשר ב-10.3.2.2

22/tcp (v6) ALLOW IN בכל מקום (v6)

51820/udp (v6) ALLOW IN בכל מקום (v6)

זה ישאיר רק 22/tcp חשוף לגישת SSH לניהול השרת (אופציונלי), וכן 51820/udp נחשף על מנת להקים מנהרות WireGuard.

הפעל שאילתות SQL

Firezone מאגד שרת Postgresql והתאמה psql כלי עזר שניתן להשתמש בו מהמעטפת המקומית כך:

 

/opt/firezone/embedded/bin/psql \

  -U אזור אש \

  אזור אש \

  -h localhost \

  -p 15432 \

  -c "SQL_STATEMENT"

 

זה יכול להיות מועיל למטרות ניפוי באגים.

 

משימות נפוצות:

 

  • פירוט כל המשתמשים
  • פירוט כל המכשירים
  • שינוי תפקיד של משתמש
  • גיבוי מסד הנתונים



פירוט כל המשתמשים:

 

/opt/firezone/embedded/bin/psql \

  -U אזור אש \

  אזור אש \

  -h localhost \

  -p 15432 \

  -c "SELECT * FROM users;"



פירוט כל המכשירים:

 

/opt/firezone/embedded/bin/psql \

  -U אזור אש \

  אזור אש \

  -h localhost \

  -p 15432 \

  -c "SELECT * FROM devices;"



שנה תפקיד משתמש:

 

הגדר את התפקיד ל'admin' או 'unprivileged':

 

/opt/firezone/embedded/bin/psql \

  -U אזור אש \

  אזור אש \

  -h localhost \

  -p 15432 \

  -c "UPDATE users SET role = 'admin' WHERE email = 'user@example.com';"



גיבוי מסד הנתונים:

 

יתר על כן, כלולה תוכנית pg dump, אשר עשויה לשמש לגיבוי קבוע של מסד הנתונים. בצע את הקוד הבא כדי לזרוק עותק של מסד הנתונים בפורמט השאילתה הנפוץ של SQL (החלף את /path/to/backup.sql במיקום שבו יש ליצור את קובץ SQL):

 

/opt/firezone/embedded/bin/pg_dump \

  -U אזור אש \

  אזור אש \

  -h localhost \

  -p 15432 > /path/to/backup.sql

מדריכי משתמש

  • הוסף משתמשים
  • הוסף מכשירים
  • כללי יציאה
  • הנחיות ללקוח
  • VPN של מנהרה מפוצלת
  • מנהרה הפוכה 
  • שער NAT

הוסף משתמשים

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

 

ממשק משתמש באינטרנט


על ידי בחירה בלחצן "הוסף משתמש" תחת /משתמשים, אתה יכול להוסיף משתמש. תידרש לספק למשתמש כתובת מייל וסיסמה. על מנת לאפשר גישה למשתמשים בארגון שלך באופן אוטומטי, Firezone יכול גם להתממשק ולסנכרן עם ספק זהות. פרטים נוספים זמינים ב אימות. < הוסף קישור לאימות

הוסף מכשירים

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

 

יצירת תצורת מכשיר מנהל

ניתן ליצור את כל תצורות מכשירי המשתמש על ידי מנהלי Firezone. בדף פרופיל המשתמש שנמצא ב-/users, בחר באפשרות "הוסף מכשיר" כדי לבצע זאת.

 

[הוסף צילום מסך]

 

אתה יכול לשלוח למשתמש בדוא"ל את קובץ התצורה של WireGuard לאחר יצירת פרופיל המכשיר.

 

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

כללי יציאה

באמצעות שימוש במערכת ה-netfilter של הקרנל, Firezone מאפשרת יכולות סינון יציאות לציון מנות DROP או ACCEPT. כל התנועה מותרת בדרך כלל.

 

כתובות IPv4 ו-IPv6 CIDR ו-IP נתמכות באמצעות רשימת ההיתרים ו-Denylist, בהתאמה. אתה יכול לבחור להגדיר כלל למשתמש בעת הוספתו, מה שמחיל את הכלל על כל המכשירים של אותו משתמש.

הנחיות ללקוח

התקנה והגדרה

כדי ליצור חיבור VPN באמצעות לקוח WireGuard המקורי, עיין במדריך זה.

 

1. התקן את לקוח WireGuard המקורי

 

הלקוחות הרשמיים של WireGuard הממוקמים כאן תואמים ל-Firezone:

 

MacOS

 

Windows

 

iOS

 

אנדרואיד

 

בקר באתר האינטרנט הרשמי של WireGuard בכתובת https://www.wireguard.com/install/ עבור מערכות מערכת הפעלה שלא הוזכרו לעיל.

 

2. הורד את קובץ התצורה של המכשיר

 

מנהל Firezone שלך ​​או אתה יכול ליצור את קובץ התצורה של המכשיר באמצעות פורטל Firezone.

 

בקר בכתובת ה-URL שמנהל Firezone שלך ​​סיפק כדי ליצור בעצמך קובץ תצורה של מכשיר. לחברה שלך תהיה כתובת URL ייחודית לכך; במקרה זה, זה https://instance-id.yourfirezone.com.

 

התחבר ל-Firezone Okta SSO

 

[הוסף צילום מסך]

 

3. הוסף את תצורת הלקוח

 

ייבא את קובץ.conf ללקוח WireGuard על ידי פתיחתו. על ידי היפוך מתג ההפעלה, אתה יכול להתחיל הפעלת VPN.

 

[הוסף צילום מסך]

אימות מחדש של הפעלה

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



אתה צריך:

 

כתובת האתר של פורטל Firezone: בקש ממנהל הרשת שלך את החיבור.

מנהל הרשת שלך אמור להיות מסוגל להציע את פרטי הכניסה והסיסמה שלך. אתר Firezone ינחה אותך להיכנס באמצעות שירות הכניסה היחידה שבה משתמש המעסיק שלך (כגון Google או Okta).

 

1. כבה את חיבור ה-VPN

 

[הוסף צילום מסך]

 

2. אימות שוב 

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

 

[הוסף צילום מסך]

 

שלב 3: הפעל הפעלת VPN

[הוסף צילום מסך]

מנהל רשת עבור לינוקס

כדי לייבא את פרופיל התצורה של WireGuard באמצעות Network Manager CLI במכשירי Linux, בצע את ההוראות הבאות (nmcli).

הערה

אם הפרופיל תומך ב-IPv6 מופעלת, ניסיון לייבא את קובץ התצורה באמצעות ה-Network Manager GUI עלול להיכשל עם השגיאה הבאה:

ipv6.method: השיטה "auto" אינה נתמכת עבור WireGuard

1. התקן את כלי ה-WireGuard 

יש צורך להתקין את כלי השירות של מרחב המשתמש של WireGuard. זו תהיה חבילה שנקראת wireguard או wireguard-tools עבור הפצות לינוקס.

עבור אובונטו/דביאן:

sudo apt להתקין wireguard

כדי להשתמש בפדורה:

sudo dnf להתקין wireguard-tools

Arch Linux:

sudo pacman -S wireguard-tools

בקר באתר האינטרנט הרשמי של WireGuard בכתובת https://www.wireguard.com/install/ להפצות שאינן מוזכרות לעיל.

2. הורד תצורה 

מנהל Firezone שלך ​​או יצירה עצמית יכולים ליצור את קובץ התצורה של המכשיר באמצעות פורטל Firezone.

בקר בכתובת ה-URL שמנהל Firezone שלך ​​סיפק כדי ליצור בעצמך קובץ תצורה של מכשיר. לחברה שלך תהיה כתובת URL ייחודית לכך; במקרה זה, זה https://instance-id.yourfirezone.com.

[הוסף צילום מסך]

3. ייבוא ​​הגדרות

ייבא את קובץ התצורה שסופק באמצעות nmcli:

סוג ייבוא ​​חיבור sudo nmcli wireguard file /path/to/configuration.conf

הערה

שם קובץ התצורה יתאים לחיבור/ממשק WireGuard. לאחר הייבוא, ניתן לשנות את שם החיבור במידת הצורך:

חיבור nmcli שנה [שם ישן] connection.id [שם חדש]

4. התחבר או נתק

דרך שורת הפקודה, התחבר ל-VPN באופן הבא:

חיבור nmcli למעלה [שם vpn]

להתנתק:

חיבור nmcli למטה [שם vpn]

ניתן להשתמש ביישומון מנהל הרשת הרלוונטי גם לניהול החיבור אם משתמשים ב-GUI.

חיבור אוטומטי

על ידי בחירת "כן" עבור אפשרות החיבור האוטומטי, ניתן להגדיר את חיבור ה-VPN להתחבר אוטומטית:

 

חיבור nmcli שנה חיבור [שם vpn]. <<<<<<<<<<<<<<<<<<<<<<

 

חיבור אוטומטי כן

 

כדי להשבית את החיבור האוטומטי, החזר אותו למצב לא:

 

חיבור nmcli שנה חיבור [שם vpn].

 

חיבור אוטומטי לא

הפוך אימות מרובה גורמים לזמין

כדי להפעיל את MFA עבור אל דף /חשבון משתמש/הרשמה mfa של פורטל Firezone. השתמש באפליקציית המאמת שלך כדי לסרוק את קוד ה-QR לאחר יצירתו, ולאחר מכן הזן את הקוד בן שש הספרות.

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

VPN של מנהרה מפוצלת

מדריך זה ידריך אותך בתהליך של הגדרת תכונת המנהור המפוצלת של WireGuard עם Firezone כך שרק תעבורה לטווחי IP ספציפיים תועבר דרך שרת ה-VPN.

 

1. הגדר כתובות IP מותרות 

טווחי ה-IP שעבורם הלקוח ינתב תעבורת רשת מוגדרים בשדה כתובות IP מותרות הממוקם בדף /settings/default. רק תצורות מנהרת WireGuard החדשות שנוצרו על ידי Firezone יושפעו משינויים בשדה זה.

 

[הוסף צילום מסך]



ערך ברירת המחדל הוא 0.0.0.0/0, ::/0, המנתב את כל תעבורת הרשת מהלקוח לשרת ה-VPN.

 

דוגמאות לערכים בשדה זה כוללות:

 

0.0.0.0/0, ::/0 - כל תעבורת הרשת תנותב לשרת ה-VPN.

192.0.2.3/32 - רק תעבורה לכתובת IP בודדת תנותב לשרת ה-VPN.

3.5.140.0/22 ​​– רק תעבורה לכתובות IP בטווח 3.5.140.1 – 3.5.143.254 תנותב לשרת ה-VPN. בדוגמה זו, נעשה שימוש בטווח CIDR עבור אזור ap-northeast-2 AWS.



הערה

Firezone בוחר תחילה את ממשק היציאה המשויך למסלול המדויק ביותר כאשר הוא קובע לאן לנתב מנה.

 

2. צור מחדש תצורות WireGuard

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

 

להוראות ראה הוסף מכשיר. <<<<<<<<<<< הוסף קישור

מנהרה הפוכה

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

 

צומת לצומת 

איור זה מציג תרחיש פשוט שבו התקנים A ו-B בונים מנהרה.

 

[הכנס תמונה ארכיטקטונית של אזור אש]

 

התחל על ידי יצירת התקן A ומכשיר B על ידי ניווט אל /users/[user_id]/new_device. בהגדרות עבור כל מכשיר, ודא שהפרמטרים הבאים מוגדרים לערכים המפורטים להלן. ניתן להגדיר את הגדרות המכשיר בעת יצירת תצורת המכשיר (ראה הוספת התקנים). אם אתה צריך לעדכן הגדרות במכשיר קיים, תוכל לעשות זאת על ידי יצירת תצורת מכשיר חדשה.

 

שימו לב שלכל המכשירים יש דף /settings/defaults שבו ניתן להגדיר את PersistentKeepalive.

 

מכשיר א

 

כתובות IP מותרות = 10.3.2.2/32

  זהו ה-IP או טווח ה-IP של מכשיר B

PersistentKeepalive = 25

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



מכשיר ב'

 

כתובות IP מותרות = 10.3.2.3/32

זהו ה-IP או טווח ה-IP של התקן A

PersistentKeepalive = 25

מקרה מנהל - צמתים אחד לרבים

דוגמה זו מציגה מצב שבו מכשיר A יכול לתקשר עם מכשירים B עד D בשני הכיוונים. הגדרה זו יכולה לייצג מהנדס או מנהל גישה למשאבים רבים (שרתים, קונטיינרים או מכונות) ברשתות שונות.

 

[תרשים אדריכלי]<<<<<<<<<<<<<<<<<<<<<<<<

 

ודא שההגדרות הבאות מתבצעות בהגדרות של כל מכשיר לערכים המתאימים. בעת יצירת תצורת המכשיר, תוכל לציין הגדרות המכשיר (ראה הוספת התקנים). ניתן ליצור תצורת מכשיר חדשה אם יש צורך לעדכן הגדרות במכשיר קיים.

 

מכשיר A (צומת מנהל)

 

כתובות IP מותרות = 10.3.2.3/32, 10.3.2.4/32, 10.3.2.5/32 

    זהו ה-IP של התקנים B עד D. ה-IP של התקנים B עד D חייבים להיכלל בכל טווח IP שתבחר להגדיר.

PersistentKeepalive = 25 

    זה מבטיח שהמכשיר יכול לתחזק את המנהרה ולהמשיך לקבל מנות מממשק WireGuard גם אם הוא מוגן על ידי NAT. ברוב המקרים, ערך של 25 הוא הולם, אולם בהתאם לסביבה שלך, ייתכן שיהיה עליך להוריד נתון זה.

 

מכשיר ב

 

  • AllowedIPs = 10.3.2.2/32: זהו ה-IP או טווח ה-IP של מכשיר A
  • PersistentKeepalive = 25

מכשיר C

 

  • AllowedIPs = 10.3.2.2/32: זהו ה-IP או טווח ה-IP של מכשיר A
  • PersistentKeepalive = 25

מכשיר D

 

  • AllowedIPs = 10.3.2.2/32: זהו ה-IP או טווח ה-IP של מכשיר A
  • PersistentKeepalive = 25

שער NAT

כדי להציע IP יציאה יחיד וסטטי שכל התעבורה של הצוות שלך תזרום ממנה, ניתן להשתמש ב-Firezone כשער NAT. מצבים אלה כוללים שימוש תכוף בו:

 

התקשרויות ייעוץ: בקש מהלקוח שלך לרשום כתובת IP סטטית בודדת ולא את ה-IP הייחודי של המכשיר של כל עובד.

שימוש בפרוקסי או מיסוך IP המקור שלך למטרות אבטחה או פרטיות.

 

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

 

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

דוגמה ל-AWS

המטרה שלנו היא להגדיר שרת Firezone במופע EC2 כדי להפנות תעבורת VPN למשאב המוגבל. במקרה זה, Firezone משמש כפרוקסי רשת או NAT שער כדי לתת לכל מכשיר מחובר IP יציאה ציבורי ייחודי.

 

1. התקן את שרת Firezone

במקרה זה, למופע EC2 בשם tc2.micro מותקן מופע Firezone. למידע על פריסת Firezone, עבור אל מדריך הפריסה. ביחס ל-AWS, הקפד:

 

קבוצת האבטחה של מופע Firezone EC2 מתירה תעבורה יוצאת לכתובת ה-IP של המשאב המוגן.

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

 

[הוסף צילום מסך]<<<<<<<<<<<<<<<<<<<<<<<<

 

2. הגבל גישה למשאב המוגן

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

 

[הוסף צילום מסך]<<<<<<<<<<<<<<<<<<<<<<<<

 

אנא ספר לצד השלישי שאחראי על המשאב המוגן שיש לאפשר תעבורה מה-IP הסטטי שהוגדר בשלב 1 (במקרה זה 52.202.88.54).

 

3. השתמש בשרת ה-VPN כדי להפנות תעבורה למשאב המוגן

 

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

הוסף כאן את טקסט הכותרת שלך

להלן רשימה מלאה של אפשרויות התצורה הזמינות ב /etc/firezone/firezone.rb.



אוֹפְּצִיָה

תיאור

ערך ברירת מחדל

default['firezone']['external_url']

כתובת האתר המשמשת לגישה לפורטל האינטרנט של מופע Firezone זה.

"https://#{node['fqdn'] || node['hostname']}"

default['firezone']['config_directory']

ספרייה ברמה העליונה עבור תצורת Firezone.

/etc/firezone'

default['firezone']['install_directory']

ספרייה ברמה העליונה להתקנת Firezone בה.

/opt/firezone'

default['firezone']['app_directory']

ספרייה ברמה העליונה להתקנת יישום האינטרנט Firezone.

"#{node['firezone']['install_directory']}/embedded/service/firezone"

default['firezone']['log_directory']

ספרייה ברמה העליונה עבור יומני Firezone.

/var/log/firezone'

ברירת מחדל['firezone']['var_directory']

ספרייה ברמה העליונה עבור קבצי זמן ריצה של Firezone.

/var/opt/firezone'

ברירת מחדל['firezone']['user']

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

אזור אש'

default['firezone']['group']

שם קבוצת Linux רוב השירותים והקבצים יהיו שייכים.

אזור אש'

default['firezone']['admin_email']

כתובת אימייל עבור משתמש Firezone ראשוני.

"firezone@localhost"

ברירת מחדל['firezone']['max_devices_per_user']

המספר המרבי של מכשירים שיכולים להיות למשתמש.

10

default['firezone']['allow_unprivileged_device_management']

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

נכון

default['firezone']['allow_unprivileged_device_configuration']

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

נכון

default['firezone']['egress_interface']

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

אפס

default['firezone']['fips_enabled']

הפעל או השבת את מצב OpenSSL FIPs.

אפס

default['firezone']['logging']['enabled']

הפעל או השבת רישום ברחבי Firezone. הגדר ל-false כדי להשבית לחלוטין את הרישום.

נכון

default['enterprise']['name']

שם המשמש את ספר הבישול של השף 'מיזם'.

אזור אש'

default['firezone']['install_path']

נתיב התקנה המשמש את ספר הבישול של השף 'ארגוני'. צריך להיות מוגדר לאותו ספריית install_directory לעיל.

node['firezone']['install_directory']

default['firezone']['sysvinit_id']

מזהה בשימוש ב-/etc/inittab. חייב להיות רצף ייחודי של 1-4 תווים.

מה ניש'

default['firezone']['authentication']['local']['enabled']

הפעל או השבת אימות דואר אלקטרוני/סיסמה מקומי.

נכון

default['firezone']['authentication']['auto_create_oidc_users']

צור אוטומטית משתמשים הנכנסים מ-OIDC בפעם הראשונה. השבת כדי לאפשר רק למשתמשים קיימים להיכנס דרך OIDC.

נכון

default['firezone']['authentication']['disable_vpn_on_oidc_error']

השבת את ה-VPN של משתמש אם זוהתה שגיאה בניסיון לרענן את אסימון ה-OIDC שלו.

שֶׁקֶר

default['firezone']['authentication']['oidc']

OpenID Connect config, בפורמט של {“provider” => [config…]} – ראה תיעוד OpenIDConnect לדוגמאות תצורה.

{}

default['firezone']['nginx']['enabled']

הפעל או השבת את שרת nginx המצורף.

נכון

default['firezone']['nginx']['ssl_port']

יציאת האזנה של HTTPS.

443

default['firezone']['nginx']['directory']

ספרייה לאחסון תצורת מארח וירטואלי של nginx הקשורה ל-Firezone.

"#{node['firezone']['var_directory']}/nginx/etc"

default['firezone']['nginx']['log_directory']

ספרייה לאחסון קובצי nginx הקשורים ל-Firezone.

"#{node['firezone']['log_directory']}/nginx"

default['firezone']['nginx']['log_rotation']['file_maxbytes']

גודל הקובץ שבו יש לסובב קובצי יומן Nginx.

104857600

default['firezone']['nginx']['log_rotation']['num_to_keep']

מספר קובצי היומן של Firezone nginx שיש לשמור לפני השלכה.

10

default['firezone']['nginx']['log_x_forwarded_for']

האם לרשום את Firezone nginx x-forwarded-for header.

נכון

default['firezone']['nginx']['hsts_header']['enabled']

הפעל או השבת HSTS.

נכון

default['firezone']['nginx']['hsts_header']['include_subdomains']

הפעל או השבת את includeSubDomains עבור כותרת HSTS.

נכון

default['firezone']['nginx']['hsts_header']['max_age']

גיל מקסימלי עבור כותרת ה-HSTS.

31536000

default['firezone']['nginx']['redirect_to_canonical']

האם להפנות כתובות אתרים ל-FQDN הקנוני שצוין לעיל

שֶׁקֶר

default['firezone']['nginx']['cache']['enabled']

הפעל או השבת את המטמון Firezone nginx.

שֶׁקֶר

default['firezone']['nginx']['cache']['directory']

ספרייה עבור Firezone nginx cache.

"#{node['firezone']['var_directory']}/nginx/cache"

default['firezone']['nginx']['user']

משתמש Firezone nginx.

node['firezone']['user']

default['firezone']['nginx']['group']

קבוצת Firezone nginx.

node['firezone']['group']

default['firezone']['nginx']['dir']

ספריית התצורה של nginx ברמה העליונה.

node['firezone']['nginx']['directory']

default['firezone']['nginx']['log_dir']

ספריית יומן nginx ברמה העליונה.

node['firezone']['nginx']['log_directory']

default['firezone']['nginx']['pid']

מיקום עבור קובץ pid nginx.

"#{node['firezone']['nginx']['directory']}/nginx.pid"

default['firezone']['nginx']['daemon_disable']

השבת את מצב nginx daemon כדי שנוכל לנטר אותו במקום זאת.

נכון

default['firezone']['nginx']['gzip']

הפעל או כבה את דחיסת nginx gzip.

עַל'

default['firezone']['nginx']['gzip_static']

הפעל או כבה את דחיסת nginx gzip עבור קבצים סטטיים.

כבוי'

default['firezone']['nginx']['gzip_http_version']

גרסת HTTP לשימוש להגשת קבצים סטטיים.

1.0 '

default['firezone']['nginx']['gzip_comp_level']

רמת הדחיסה של nginx gzip.

2 '

default['firezone']['nginx']['gzip_proxied']

מפעיל או משבית את ה-gzipping של תגובות עבור בקשות פרוקסי בהתאם לבקשה והתגובה.

כל'

default['firezone']['nginx']['gzip_vary']

מפעיל או משבית את הוספת כותרת התגובה "Vary: Accept-Encoding".

כבוי'

default['firezone']['nginx']['gzip_buffers']

מגדיר את המספר והגודל של מאגרים המשמשים לדחיסת תגובה. אם אפס, נעשה שימוש ברירת המחדל של nginx.

אפס

default['firezone']['nginx']['gzip_types']

סוגי MIME לאפשר דחיסת gzip עבור.

['text/plain', 'text/css','application/x-javascript', 'text/xml', 'application/xml', 'application/rss+xml', 'application/atom+xml', ' text/javascript', 'application/javascript', 'application/json']

default['firezone']['nginx']['gzip_min_length']

אורך קובץ מינימלי לאפשר דחיסת קובץ gzip עבור.

1000

default['firezone']['nginx']['gzip_disable']

תואם משתמש-סוכן להשבתת דחיסת gzip עבור.

MSIE [1-6]\.'

default['firezone']['nginx']['keepalive']

מפעיל מטמון לחיבור לשרתים במעלה הזרם.

עַל'

default['firezone']['nginx']['keepalive_timeout']

פסק זמן בשניות לחיבור Keepalive לשרתים במעלה הזרם.

65

default['firezone']['nginx']['worker_processes']

מספר תהליכי העבודה של nginx.

node['cpu'] && node['cpu']['total'] ? node['cpu']['total'] : 1

default['firezone']['nginx']['worker_connections']

מספר מקסימלי של חיבורים בו-זמניים שניתן לפתוח על ידי תהליך עובד.

1024

default['firezone']['nginx']['worker_rlimit_nofile']

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

אפס

default['firezone']['nginx']['multi_accept']

האם עובדים צריכים לקבל חיבור אחד בכל פעם או מספר חיבורים.

נכון

default['firezone']['nginx']['event']

מציין את שיטת עיבוד החיבור לשימוש בתוך הקשר אירועי nginx.

epoll'

default['firezone']['nginx']['server_tokens']

מפעיל או משבית פליטת גרסת nginx בדפי שגיאה ובשדה כותרת התגובה "שרת".

אפס

default['firezone']['nginx']['server_names_hash_bucket_size']

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

64

default['firezone']['nginx']['sendfile']

מאפשר או משבית את השימוש ב- sendfile() של nginx.

עַל'

default['firezone']['nginx']['access_log_options']

מגדיר אפשרויות יומן גישה של nginx.

אפס

default['firezone']['nginx']['error_log_options']

מגדיר אפשרויות יומן שגיאות של nginx.

אפס

default['firezone']['nginx']['disable_access_log']

משבית את יומן הגישה של nginx.

שֶׁקֶר

default['firezone']['nginx']['types_hash_max_size']

nginx סוגים hash max size.

2048

default['firezone']['nginx']['types_hash_bucket_size']

סוג nginx גודל דלי hash.

64

default['firezone']['nginx']['proxy_read_timeout']

פסק זמן לקריאה של nginx proxy. הגדר לאפס כדי להשתמש ברירת המחדל של nginx.

אפס

default['firezone']['nginx']['client_body_buffer_size']

גודל חיץ גוף לקוח nginx. הגדר לאפס כדי להשתמש ברירת המחדל של nginx.

אפס

default['firezone']['nginx']['client_max_body_size']

גודל גוף מקסימלי של לקוח nginx.

250 מ'

default['firezone']['nginx']['default']['modules']

ציין מודולי nginx נוספים.

[]

default['firezone']['nginx']['enable_rate_limiting']

הפעל או השבת הגבלת קצב nginx.

נכון

default['firezone']['nginx']['rate_limiting_zone_name']

שם אזור מגביל קצב Nginx.

אזור אש'

default['firezone']['nginx']['rate_limiting_backoff']

הגבלת קצב הגבלת Nginx.

10 מ'

default['firezone']['nginx']['rate_limit']

מגבלת שיעור Nginx.

10r/s'

default['firezone']['nginx']['ipv6']

אפשר ל-nginx להאזין לבקשות HTTP עבור IPv6 בנוסף ל-IPv4.

נכון

default['firezone']['postgresql']['enabled']

הפעלה או השבתה של Postgresql. הגדר ל-false ומלא את אפשרויות מסד הנתונים למטה כדי להשתמש במופע Postgresql משלך.

נכון

default['firezone']['postgresql']['username']

שם משתמש עבור Postgresql.

node['firezone']['user']

default['firezone']['postgresql']['data_directory']

ספריית נתונים Postgresql.

"#{node['firezone']['var_directory']}/postgresql/13.3/data"

default['firezone']['postgresql']['log_directory']

ספריית יומן Postgresql.

"#{node['firezone']['log_directory']}/postgresql"

default['firezone']['postgresql']['log_rotation']['file_maxbytes']

גודל מקסימלי של קובץ יומן Postgresql לפני סיבובו.

104857600

default['firezone']['postgresql']['log_rotation']['num_to_keep']

מספר קובצי יומן Postgresql שיש לשמור.

10

default['firezone']['postgresql']['checkpoint_completion_target']

יעד השלמת נקודת ביקורת Postgresql.

0.5

default['firezone']['postgresql']['checkpoint_segments']

מספר מקטעי נקודת ביקורת Postgresql.

3

default['firezone']['postgresql']['checkpoint_timeout']

פסק זמן של נקודת הביקורת Postgresql.

5 דקות'

default['firezone']['postgresql']['checkpoint_warning']

זמן אזהרת נקודת ביקורת Postgresql בשניות.

שנות ה-30

default['firezone']['postgresql']['effective_cache_size']

גודל מטמון יעיל של Postgresql.

128MB'

default['firezone']['postgresql']['listen_address']

כתובת האזנה של Postgresql.

127.0.0.1 '

default['firezone']['postgresql']['max_connections']

חיבורי Postgresql max.

350

default['firezone']['postgresql']['md5_auth_cidr_addresses']

Postgresql CIDRs כדי לאפשר אישור md5.

['127.0.0.1/32', '::1/128']

default['firezone']['postgresql']['port']

יציאת האזנה Postgresql.

15432

default['firezone']['postgresql']['shared_buffers']

גודל מאגרים משותפים Postgresql.

"#{(node['memory']['total'].to_i / 4) / 1024}MB"

default['firezone']['postgresql']['shmmax']

Postgresql shmmax בבתים.

17179869184

default['firezone']['postgresql']['shmal']

Postgresql shmal בבתים.

4194304

default['firezone']['postgresql']['work_mem']

גודל זיכרון עבודה Postgresql.

8MB'

default['firezone']['database']['user']

מציין את שם המשתמש שבו ישתמש Firezone כדי להתחבר ל-DB.

node['firezone']['postgresql']['username']

default['firezone']['database']['password']

אם אתה משתמש ב-DB חיצוני, מציין את הסיסמה שבה Firezone תשתמש כדי להתחבר ל-DB.

שנה אותי'

default['firezone']['database']['name']

מסד נתונים שבו Firezone ישתמש. יווצר אם הוא לא קיים.

אזור אש'

default['firezone']['database']['host']

מארח מסד נתונים שאליו יתחבר Firezone.

node['firezone']['postgresql']['listen_address']

default['firezone']['database']['port']

יציאת מסד נתונים שאליה יתחבר Firezone.

node['firezone']['postgresql']['port']

default['firezone']['database']['pool']

גודל מאגר מסד הנתונים Firezone ישתמש.

[10, וכו' מעבדים].מקס

default['firezone']['database']['ssl']

האם להתחבר למסד הנתונים באמצעות SSL.

שֶׁקֶר

default['firezone']['database']['ssl_opts']

גיבוב של אפשרויות לשלוח לאפשרות :ssl_opts בעת חיבור דרך SSL. לִרְאוֹת תיעוד Ecto.Adapters.Postgres.

{}

default['firezone']['database']['parameters']

Hash של פרמטרים לשלוח לאפשרות :parameters בעת חיבור למסד הנתונים. לִרְאוֹת תיעוד Ecto.Adapters.Postgres.

{}

default['firezone']['database']['extensions']

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

{ 'plpgsql' => true, 'pg_trgm' => true }

default['firezone']['phoenix']['enabled']

הפעל או השבת את אפליקציית האינטרנט Firezone.

נכון

default['firezone']['phoenix']['listen_address']

כתובת האזנה ליישום האינטרנט של Firezone. זו תהיה כתובת ההאזנה במעלה הזרם ש-nginx מייצרת.

127.0.0.1 '

default['firezone']['phoenix']['port']

יציאת האזנה ליישום האינטרנט של Firezone. זו תהיה היציאה במעלה הזרם ש-nginx מייצרת.

13000

default['firezone']['phoenix']['log_directory']

ספריית יומן יישומי האינטרנט של Firezone.

"#{node['firezone']['log_directory']}/פניקס"

default['firezone']['phoenix']['log_rotation']['file_maxbytes']

גודל קובץ יומן יישום האינטרנט של Firezone.

104857600

default['firezone']['phoenix']['log_rotation']['num_to_keep']

מספר קובצי יומן יישום האינטרנט של Firezone שיש לשמור.

10

default['firezone']['phoenix']['crash_detection']['enabled']

הפעל או השבת את ביטול אפליקציית האינטרנט של Firezone כאשר מזוהה קריסה.

נכון

default['firezone']['phoenix']['external_trusted_proxies']

רשימת פרוקסי הפוך מהימנים המעוצבים כמערך של כתובות IP ו/או CIDR.

[]

default['firezone']['phoenix']['private_clients']

רשימת לקוחות HTTP של רשת פרטית, מעוצבת מערך של כתובות IP ו/או CIDR.

[]

default['firezone']['wireguard']['enabled']

הפעל או השבת את ניהול WireGuard מצורף.

נכון

default['firezone']['wireguard']['log_directory']

ספריית יומן לניהול WireGuard מצורף.

"#{node['firezone']['log_directory']}/wireguard"

default['firezone']['wireguard']['log_rotation']['file_maxbytes']

גודל מקסימלי של קובץ יומן WireGuard.

104857600

default['firezone']['wireguard']['log_rotation']['num_to_keep']

מספר קובצי יומן WireGuard שיש לשמור.

10

default['firezone']['wireguard']['interface_name']

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

wg-firezone'

default['firezone']['wireguard']['port']

יציאת האזנה WireGuard.

51820

default['firezone']['wireguard']['mtu']

ממשק WireGuard MTU עבור שרת זה ועבור תצורות מכשירים.

1280

default['firezone']['wireguard']['endpoint']

נקודת קצה WireGuard לשימוש ליצירת תצורות מכשירים. אם אפס, ברירת המחדל היא כתובת ה-IP הציבורית של השרת.

אפס

default['firezone']['wireguard']['dns']

WireGuard DNS לשימוש עבור תצורות מכשירים שנוצרו.

1.1.1.1, 1.0.0.1′

default['firezone']['wireguard']['allowed_ips']

WireGuard אפשר להשתמש ב-IP עבור תצורות מכשירים שנוצרו.

0.0.0.0/0, ::/0′

default['firezone']['wireguard']['persistent_keepalive']

הגדרת ברירת מחדל PersistentKeepalive עבור תצורות מכשיר שנוצרו. ערך של 0 משבית.

0

default['firezone']['wireguard']['ipv4']['enabled']

הפעל או השבת את IPv4 עבור רשת WireGuard.

נכון

default['firezone']['wireguard']['ipv4']['masquerade']

הפעל או השבת את מסכת חבילות היוצאות ממנהרת IPv4.

נכון

default['firezone']['wireguard']['ipv4']['network']

מאגר כתובות IPv4 של רשת WireGuard.

10.3.2.0 / 24 ′

default['firezone']['wireguard']['ipv4']['address']

כתובת IPv4 של ממשק WireGuard. חייב להיות בתוך מאגר הכתובות של WireGuard.

10.3.2.1 '

default['firezone']['wireguard']['ipv6']['enabled']

הפעל או השבת את IPv6 עבור רשת WireGuard.

נכון

default['firezone']['wireguard']['ipv6']['masquerade']

הפעל או השבת את מסכת חבילות היוצאות ממנהרת IPv6.

נכון

default['firezone']['wireguard']['ipv6']['network']

מאגר כתובות IPv6 של רשת WireGuard.

fd00::3:2:0/120′

default['firezone']['wireguard']['ipv6']['address']

כתובת IPv6 של ממשק WireGuard. חייב להיות בתוך מאגר כתובות IPv6.

fd00::3:2:1′

default['firezone']['runit']['svlogd_bin']

Runit svlogd bin מיקום.

"#{node['firezone']['install_directory']}/embedded/bin/svlogd"

default['firezone']['ssl']['directory']

ספריית SSL לאחסון אישורים שנוצרו.

/var/opt/firezone/ssl'

default['firezone']['ssl']['email_address']

כתובת דוא"ל לשימוש עבור אישורים בחתימה עצמית והודעות חידוש פרוטוקול ACME.

you@example.com'

default['firezone']['ssl']['acme']['enabled']

אפשר ACME להקצאה אוטומטית של אישורי SSL. השבת זאת כדי למנוע מ-Nginx להאזין ביציאה 80. ראה כאן להנחיות נוספות.

שֶׁקֶר

default['firezone']['ssl']['acme']['server']

שרת ACME לשימוש להנפקת/חידוש אישורים. יכול להיות כל שרת acme.sh חוקי

letsencrypt

default['firezone']['ssl']['acme']['keylength']

ציין את סוג המפתח והאורך עבור תעודות SSL. לִרְאוֹת כאן

ec-256

default['firezone']['ssl']['certificate']

נתיב לקובץ האישור עבור ה-FQDN שלך. עוקף את הגדרת ACME לעיל אם צוין. אם גם ACME וגם זה הם אפסיים, תיווצר אישור בחתימה עצמית.

אפס

default['firezone']['ssl']['certificate_key']

נתיב לקובץ האישור.

אפס

default['firezone']['ssl']['ssl_dhparam']

nginx ssl dh_param.

אפס

default['firezone']['ssl']['country_name']

שם מדינה עבור תעודה בחתימה עצמית.

לָנוּ'

default['firezone']['ssl']['state_name']

שם מדינה עבור אישור בחתימה עצמית.

CA '

default['firezone']['ssl']['locality_name']

שם יישוב לאישור בחתימה עצמית.

סן פרנסיסקו'

default['firezone']['ssl']['company_name']

שם חברה אישור בחתימה עצמית.

החברה שלי'

default['firezone']['ssl']['organizational_unit_name']

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

מבצעים'

default['firezone']['ssl']['ciphers']

צפני SSL לשימוש ב-nginx.

ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA’

default['firezone']['ssl']['fips_ciphers']

צפני SSL עבור מצב FIPs.

FIPS@STRENGTH:!aNULL:!eNULL'

default['firezone']['ssl']['protocols']

פרוטוקולי TLS לשימוש.

TLSv1 TLSv1.1 TLSv1.2′

default['firezone']['ssl']['session_cache']

מטמון הפעלה SSL.

shared:SSL:4m'

default['firezone']['ssl']['session_timeout']

פסק זמן של הפעלת SSL.

5 מ'

default['firezone']['robots_allow']

רובוטי nginx מאפשרים.

/'

default['firezone']['robots_disallow']

רובוטי nginx לא מאפשרים.

אפס

default['firezone']['outbound_email']['from']

דוא"ל יוצא מהכתובת.

אפס

default['firezone']['outbound_email']['provider']

ספק שירותי דוא"ל יוצא.

אפס

default['firezone']['outbound_email']['configs']

תצורות ספק דוא"ל יוצא.

ראה omnibus/cookbooks/firezone/attributes/default.rb

default['firezone']['telemetry']['enabled']

הפעל או השבת טלמטריית מוצר אנונימית.

נכון

default['firezone']['connectivity_checks']['enabled']

הפעל או השבת את שירות בדיקות הקישוריות של Firezone.

נכון

default['firezone']['connectivity_checks']['interval']

מרווח בין בדיקות קישוריות בשניות.

3_600



________________________________________________________________

 

מיקומי קבצים וספריות

 

כאן תמצא רשימה של קבצים וספריות הקשורות להתקנה טיפוסית של Firezone. אלה עשויים להשתנות בהתאם לשינויים בקובץ התצורה שלך.



נתיב

תיאור

/var/opt/firezone

ספרייה ברמה העליונה המכילה נתונים ותצורה שנוצרה עבור שירותים מצורפים של Firezone.

/opt/firezone

ספרייה ברמה העליונה המכילה ספריות מובנות, קבצים בינאריים וקבצי זמן ריצה הדרושים ל-Firezone.

/usr/bin/firezone-ctl

כלי עזר firezone-ctl לניהול התקנת Firezone שלך.

/etc/systemd/system/firezone-runsvdir-start.service

קובץ systemd להפעלת תהליך המפקח של Firezone runsvdir.

/etc/firezone

קבצי תצורה של Firezone.



__________________________________________________________

 

תבניות חומת אש

 

דף זה היה ריק במסמכים

 

_____________________________________________________________

 

תבנית חומת אש של Nftables

 

ניתן להשתמש בתבנית חומת האש של nftables הבאה כדי לאבטח את השרת המריץ את Firezone. התבנית אכן מניחה כמה הנחות; ייתכן שתצטרך להתאים את הכללים כך שיתאימו למקרה השימוש שלך:

  • ממשק WireGuard נקרא wg-firezone. אם זה לא נכון, שנה את המשתנה DEV_WIREGUARD כך שיתאים לאפשרות ברירת המחדל של ['firezone']['wireguard']['interface_name'].
  • היציאה ש-WireGuard מאזינה בה היא 51820. אם אינך משתמש ביציאת ברירת המחדל שנה את המשתנה WIREGUARD_PORT.
  • רק התעבורה הנכנסת הבאה תתאפשר לשרת:
    • SSH (יציאת TCP 22)
    • HTTP (יציאת TCP 80)
    • HTTPS (יציאת TCP 443)
    • WireGuard (יציאת UDP WIREGUARD_PORT)
    • UDP traceroute (יציאת UDP 33434-33524, קצב מוגבל ל-500/שנייה)
    • ICMP ו-ICMPv6 (שיעור תגובות פינג/פינג מוגבל ל-2000/שנייה)
  • רק התעבורה היוצאת הבאה תתאפשר מהשרת:
    • DNS (יציאת UDP ו-TCP 53)
    • HTTP (יציאת TCP 80)
    • NTP (יציאת UDP 123)
    • HTTPS (יציאת TCP 443)
    • הגשת SMTP (יציאת TCP 587)
    • UDP traceroute (יציאת UDP 33434-33524, קצב מוגבל ל-500/שנייה)
  • תנועה ללא התאמה תירשם. הכללים המשמשים לרישום מופרדים מהכללים להורדת תנועה ומוגבלים בקצב. הסרת כללי הרישום הרלוונטיים לא תשפיע על התנועה.

כללים מנוהלים Firezone

Firezone מגדיר חוקי nftables משלה כדי להתיר/לדחות תעבורה ליעדים המוגדרים בממשק האינטרנט וכדי לטפל ב-NAT יוצאת עבור תעבורת לקוח.

החלת תבנית חומת האש שלהלן על שרת שכבר פועל (לא בזמן האתחול) תגרום לניקוי כללי Firezone. עשויות להיות לכך השלכות אבטחה.

כדי לעקוף את זה, הפעל מחדש את שירות הפניקס:

firezone-ctl הפעל מחדש את פניקס

תבנית חומת אש בסיסית

#!/usr/sbin/nft -f

 

## נקה/סרוק את כל הכללים הקיימים

סט חוקים לשטוף

 

################################ משתנים ################# ###############

## שם ממשק אינטרנט/WAN

הגדר DEV_WAN = eth0

 

## שם ממשק WireGuard

הגדר DEV_WIREGUARD = wg-firezone

 

## יציאת האזנה WireGuard

הגדר WIREGUARD_PORT = 51820

############################# משתנים מסתיימים ################## ############

 

# טבלת סינון משפחת inet ראשית

מסנן טבלה inet {

 

 # כללים לתנועה מועברת

 # שרשרת זו מעובדת לפני שרשרת קדימה של Firezone

 שרשרת קדימה {

   סוג מסנן הוק קדימה מסנן עדיפות - 5; קבלת המדיניות

 }

 

 # כללים לתעבורת קלט

 קלט שרשרת {

   סוג מסנן קלט קלט וו מסנן; ירידה במדיניות

 

   ## אפשר תנועה נכנסת לממשק loopback

   אם כן \

     לקבל \

     הערה "אפשר את כל התעבורה להיכנס מממשק loopback"

 

   ## אפשר חיבורים שנוצרו וקשורים

   מדינת ct הוקמה, קשורה \

     לקבל \

     הערה "אפשר חיבורים שנוצרו/קשורים"

 

   ## אפשר תעבורת WireGuard נכנסת

   iif $DEV_WAN udp dport $WIREGUARD_PORT \

     מונה \

     לקבל \

     הערה "אפשר תנועת WireGuard נכנסת"

 

   ## התחבר ושחרר מנות TCP חדשות שאינן SYN

   tcp flags != syn ct state new \

     שיעור הגבלה 100פרץ /דקה 150 מנות \

     קידומת יומן "IN - חדש !SYN: " \

     הערה "רישום מגבלת קצב עבור חיבורים חדשים שאין להם את דגל SYN TCP מוגדר"

   tcp flags != syn ct state new \

     מונה \

     שחרר \

     הערה "שחרר חיבורים חדשים שאין להם את דגל SYN TCP מוגדר"

 

   ## רישום ושחרר מנות TCP עם הגדרת דגל סנפיר/syn לא חוקי

   tcp flags & (fin|syn) == (fin|syn) \

     שיעור הגבלה 100פרץ /דקה 150 מנות \

     קידומת יומן "IN – TCP FIN|SIN: " \

     הערה "רישום מגבלת קצב עבור מנות TCP עם סט דגל סנפיר/syn לא חוקי"

   tcp flags & (fin|syn) == (fin|syn) \

     מונה \

     שחרר \

     הערה "שחרר מנות TCP עם סט דגל סנפיר/syn לא חוקי"

 

   ## רישום ושחרר מנות TCP עם סט דגל syn/rst לא חוקי

   tcp flags & (syn|rst) == (syn|rst) \

     שיעור הגבלה 100פרץ /דקה 150 מנות \

     קידומת יומן "IN – TCP SYN|RST: " \

     הערה "רישום מגבלת קצב עבור מנות TCP עם הגדרת דגל syn/rst לא חוקי"

   tcp flags & (syn|rst) == (syn|rst) \

     מונה \

     שחרר \

     הערה "שחרר מנות TCP עם סט דגל syn/rst לא חוקי"

 

   ## רישום ושחרר דגלי TCP לא חוקיים

   tcp flags & (fin|syn|rst|psh|ack|urg) < (fin) \

     שיעור הגבלה 100פרץ /דקה 150 מנות \

     קידומת יומן "IN - FIN:" \

     הערה "רישום מגבלת שיעור עבור דגלי TCP לא חוקיים (fin|syn|rst|psh|ack|urg) < (fin)"

   tcp flags & (fin|syn|rst|psh|ack|urg) < (fin) \

     מונה \

     שחרר \

     הערה "שחרר מנות TCP עם דגלים (fin|syn|rst|psh|ack|urg) < (fin)"

 

   ## רישום ושחרר דגלי TCP לא חוקיים

   tcp flags & (fin|syn|rst|psh|ack|urg) == (fin|psh|urg) \

     שיעור הגבלה 100פרץ /דקה 150 מנות \

     קידומת יומן "IN – FIN|PSH|URG:" \

     הערה "רישום מגבלת שיעור עבור דגלי TCP לא חוקיים (fin|syn|rst|psh|ack|urg) == (fin|psh|urg)"

   tcp flags & (fin|syn|rst|psh|ack|urg) == (fin|psh|urg) \

     מונה \

     שחרר \

     הערה "שחרר מנות TCP עם דגלים (fin|syn|rst|psh|ack|urg) == (fin|psh|urg)"

 

   ## הורד תעבורה עם מצב חיבור לא חוקי

   מצב ct אינו חוקי \

     שיעור הגבלה 100פרץ /דקה 150 מנות \

     יומן מסמן את כל הקידומת "IN - לא חוקי: " \

     הערה "רישום מגבלת קצב עבור תעבורה עם מצב חיבור לא חוקי"

   מצב ct אינו חוקי \

     מונה \

     שחרר \

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

 

   ## אפשר תגובות פינג/פינג IPv4 אך הגבלת קצב ל-2000 PPS

   ip פרוטוקול icmp סוג icmp { echo-reply, echo-request } \

     שיעור הגבלה 2000/שניה \

     מונה \

     לקבל \

     הערה "אפשר הד IPv4 נכנס (פינג) מוגבל ל-2000 PPS"

 

   ## אפשר את כל שאר ה-IPv4 ICMP הנכנסים

   ip פרוטוקול icmp \

     מונה \

     לקבל \

     הערה "התר את כל שאר ה-IPv4 ICMP"

 

   ## אפשר תגובות פינג/פינג IPv6 אך הגבלת קצב ל-2000 PPS

   icmpv6 סוג { echo-reply, echo-request } \

     שיעור הגבלה 2000/שניה \

     מונה \

     לקבל \

     הערה "אפשר הד IPv6 נכנס (פינג) מוגבל ל-2000 PPS"

 

   ## אפשר את כל שאר ה-IPv6 ICMP הנכנסים

   meta l4proto { icmpv6 } \

     מונה \

     לקבל \

     הערה "התר את כל שאר ה-IPv6 ICMP"

 

   ## אפשר יציאות UDP של traceroute נכנסות אך הגבל ל-500 PPS

   udp dport 33434-33524 \

     שיעור הגבלה 500/שניה \

     מונה \

     לקבל \

     הערה "התר נתיב UDP נכנס מוגבל ל-500 PPS"

 

   ## אפשר SSH נכנס

   tcp dport ssh ct מצב חדש \

     מונה \

     לקבל \

     הערה "אפשר חיבורי SSH נכנסים"

 

   ## אפשר HTTP ו-HTTPS נכנסים

   tcp dport { http, https } ct state new \

     מונה \

     לקבל \

     הערה "התר חיבורי HTTP ו-HTTPS נכנסים"

 

   ## רשום כל תעבורה שאין לה התאמה, אך הגביל את הרישום למקסימום של 60 הודעות לדקה

   ## מדיניות ברירת המחדל תחול על תנועה ללא תחרות

   שיעור הגבלה 60פרץ /דקה 100 מנות \

     קידומת יומן "IN - Drop: " \

     הערה "רשום כל תנועה שאין דומה לה"

 

   ## ספור את התעבורה שאין כמותה

   מונה \

     הערה "ספור כל תנועה ללא תחרות"

 }

 

 # כללים לתעבורת פלט

 פלט שרשרת {

   סוג מסנן פלט וו מסנן עדיפות; ירידה במדיניות

 

   ## אפשר תנועה יוצאת לממשק לולאה חוזר

   אוי לו \

     לקבל \

     הערה "אפשר את כל התעבורה לצאת לממשק לולאה חוזר"

 

   ## אפשר חיבורים שנוצרו וקשורים

   מדינת ct הוקמה, קשורה \

     מונה \

     לקבל \

     הערה "אפשר חיבורים שנוצרו/קשורים"

 

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

   אוף $DEV_WAN udp ספורט $WIREGUARD_PORT \

     מונה \

     לקבל \

     הערה "אפשר תנועה יוצאת של WireGuard"

 

   ## הורד תעבורה עם מצב חיבור לא חוקי

   מצב ct אינו חוקי \

     שיעור הגבלה 100פרץ /דקה 150 מנות \

     יומן מסמן את כל הקידומת "OUT - לא חוקי: " \

     הערה "רישום מגבלת קצב עבור תעבורה עם מצב חיבור לא חוקי"

   מצב ct אינו חוקי \

     מונה \

     שחרר \

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

 

   ## אפשר את כל שאר ה-IPv4 ICMP יוצאות

   ip פרוטוקול icmp \

     מונה \

     לקבל \

     הערה "התר את כל סוגי IPv4 ICMP"

 

   ## אפשר את כל שאר ה-IPv6 ICMP יוצאות

   meta l4proto { icmpv6 } \

     מונה \

     לקבל \

     הערה "התר את כל סוגי IPv6 ICMP"

 

   ## אפשר יציאות UDP של traceroute יוצאות אך הגבל ל-500 PPS

   udp dport 33434-33524 \

     שיעור הגבלה 500/שניה \

     מונה \

     לקבל \

     הערה "התיר נתיב UDP יוצא מוגבל ל-500 PPS"

 

   ## אפשר חיבורי HTTP ו-HTTPS יוצאים

   tcp dport { http, https } ct state new \

     מונה \

     לקבל \

     הערה "אפשר חיבורי HTTP ו-HTTPS יוצאים"

 

   ## אפשר הגשת SMTP יוצאת

   tcp dport submission ct state new \

     מונה \

     לקבל \

     הערה "התר הגשת SMTP יוצאת"

 

   ## אפשר בקשות DNS יוצאות

   udp dport 53 \

     מונה \

     לקבל \

     הערה "התר בקשות DNS יוצאות של UDP"

   tcp dport 53 \

     מונה \

     לקבל \

     הערה "התר בקשות TCP DNS יוצאות"

 

   ## אפשר בקשות NTP יוצאות

   udp dport 123 \

     מונה \

     לקבל \

     הערה "התר בקשות NTP יוצאות"

 

   ## רשום כל תעבורה שאין לה התאמה, אך הגביל את הרישום למקסימום של 60 הודעות לדקה

   ## מדיניות ברירת המחדל תחול על תנועה ללא תחרות

   שיעור הגבלה 60פרץ /דקה 100 מנות \

     קידומת יומן "OUT - זרוק: " \

     הערה "רשום כל תנועה שאין דומה לה"

 

   ## ספור את התעבורה שאין כמותה

   מונה \

     הערה "ספור כל תנועה ללא תחרות"

 }

 

}

 

# טבלת סינון NAT ראשית

table inet nat {

 

 # כללים לניתוב מראש של תעבורת NAT

 ניתוב מראש של שרשרת {

   הקלד nat hook prerouting priority dstnat; קבלת המדיניות

 }

 

 # כללים לתעבורת NAT לאחר ניתוב

 # טבלה זו מעובדת לפני שרשרת שלאחר הניתוב של Firezone

 שרשרת postrouting {

   הקלד nat hook postrouting priority srcnat - 5; קבלת המדיניות

 }

 

}

נוֹהָג

יש לאחסן את חומת האש במיקום הרלוונטי להפצת לינוקס שפועלת. עבור Debian/Ubuntu זה /etc/nftables.conf ועבור RHEL זה /etc/sysconfig/nftables.conf.

תצטרך להגדיר את nftables.service כדי להתחיל באתחול (אם עדיין לא) מוגדר:

systemctl אפשר את nftables.service

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

nft -f /path/to/nftables.conf -c

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



_______________________________________________________________



טלמטריה

 

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

מדוע Firezone אוסף טלמטריה

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

הטלמטריה שאנו אוספים נועדה לענות על השאלות הבאות:

  • כמה אנשים מתקינים, משתמשים ומפסיקים להשתמש ב-Firezone?
  • אילו תכונות הן הכי חשובות, ובאילו אין שום תועלת?
  • איזו פונקציונליות דורשת הכי הרבה שיפור?
  • כשמשהו נשבר, מדוע הוא נשבר, וכיצד נוכל למנוע את זה לקרות בעתיד?

איך אנחנו אוספים טלמטריה

ישנם שלושה מקומות עיקריים שבהם נאספת טלמטריה ב-Firezone:

  1. טלמטריית חבילה. כולל אירועים כגון התקנה, הסרה ושדרוג.
  2. טלמטריית CLI מפקודות firezone-ctl.
  3. טלמטריית מוצר הקשורה לפורטל האינטרנט.

בכל אחד משלושת ההקשרים הללו, אנו לוכדים את כמות הנתונים המינימלית הדרושה כדי לענות על השאלות בסעיף לעיל.

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

Firezone מאחסן טלמטריה במופע מארח עצמי של PostHog הפועל באשכול Kubernetes פרטי, נגיש רק על ידי צוות Firezone. הנה דוגמה לאירוע טלמטריה שנשלח מהמופע שלך של Firezone לשרת הטלמטריה שלנו:

{

   ללכת: “0182272d-0b88-0000-d419-7b9a413713f1”,

   "חותמת זמן": “2022-07-22T18:30:39.748000+00:00”,

   "מִקרֶה": "fz_http_started",

   "מזהה_מבודל": “1ec2e794-1c3e-43fc-a78f-1db6d1a37f54”,

   "נכסים": {

       "$geoip_city_name": "אשבורן",

       "$geoip_continent_code": "NA",

       "$geoip_continent_name": "צפון אמריקה",

       "$geoip_country_code": "לָנוּ",

       "$geoip_country_name": "ארצות הברית",

       "$geoip_latitude": 39.0469,

       "$geoip_longitude": -77.4903,

       "$geoip_postal_code": "20149",

       "$geoip_subdivision_1_code": "VA",

       "$geoip_subdivision_1_name": "וירג'יניה",

       "$geoip_time_zone": "אמריקה/ניו_יורק",

       "$ip": "52.200.241.107",

       "$plugins_deferred":[],

       "$plugins_failed":[],

       "$plugins_succeded": [

           "GeoIP (3)"

       ],

       "מזהה_מבודל": “1zc2e794-1c3e-43fc-a78f-1db6d1a37f54”,

       "fqdn": "awsdemo.firezone.dev",

       "גרסת_kernel": "לינוקס 5.13.0",

       "גִרְסָה": "0.4.6"

   },

   "אלמנטים_שרשרת": ""

}

כיצד להשבית טלמטריה

הערה

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

טלמטריה מופעלת כברירת מחדל. כדי להשבית לחלוטין את הטלמטריה של המוצר, הגדר את אפשרות התצורה הבאה ל-false ב-/etc/firezone/firezone.rb והפעל את sudo firezone-ctl reconfigure כדי לאסוף את השינויים.

בְּרִירַת מֶחדָל['אזור אש']['טלמטריה']['מופעל'] = שקר

זה ישבית לחלוטין את כל הטלמטריה של המוצר.