มีคำแนะนำทีละขั้นตอนสำหรับการปรับใช้ Hailbytes VPN กับ Firezone GUI ที่นี่
ผู้ดูแลระบบ: การตั้งค่าอินสแตนซ์ของเซิร์ฟเวอร์เกี่ยวข้องโดยตรงกับส่วนนี้
คู่มือผู้ใช้: เอกสารที่เป็นประโยชน์ที่สามารถสอนวิธีใช้ Firezone และแก้ปัญหาทั่วไป หลังจากปรับใช้เซิร์ฟเวอร์สำเร็จแล้ว ให้อ้างอิงส่วนนี้
Split Tunneling: ใช้ 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 และรีสตาร์ท firezone-ctl เพื่ออัปเดตแอปพลิเคชันและรับผลกระทบจากการเปลี่ยนแปลง
# นี่คือตัวอย่างการใช้ Google และ Okta เป็นผู้ให้บริการข้อมูลประจำตัว SSO
# สามารถเพิ่มการกำหนดค่า OIDC หลายรายการในอินสแตนซ์ Firezone เดียวกัน
# Firezone สามารถปิดการใช้งาน VPN ของผู้ใช้หากตรวจพบข้อผิดพลาดในการพยายาม
# เพื่อรีเฟรช access_token ของพวกเขา สิ่งนี้ได้รับการยืนยันว่าใช้งานได้กับ Google, Okta และ
# Azure SSO และใช้เพื่อยกเลิกการเชื่อมต่อ VPN ของผู้ใช้โดยอัตโนมัติหากถูกลบ
#จากผู้ให้บริการ OIDC ปล่อยให้สิ่งนี้ปิดการใช้งานหากผู้ให้บริการ OIDC ของคุณ
# มีปัญหาในการรีเฟรชโทเค็นการเข้าถึงเนื่องจากอาจขัดจังหวะโดยไม่คาดคิด
# เซสชัน VPN ของผู้ใช้
ค่าเริ่มต้น ['firezone'] ['การรับรองความถูกต้อง'] ['disable_vpn_on_oidc_error'] = เท็จ
ค่าเริ่มต้น ['firezone'] ['การรับรองความถูกต้อง'] ['oidc'] = {
Google: {
Discovery_document_uri: “https://accounts.google.com/.well-known/openid-configuration”,
client_id: “ ”,
ลูกค้า_ความลับ: “ ”,
เปลี่ยนเส้นทาง_uri: “https://instance-id.yourfirezone.com/auth/oidc/google/callback/”,
response_type: “รหัส”,
ขอบเขต: “โปรไฟล์อีเมล openid”,
ป้ายกำกับ: “กูเกิล”
},
ตกลง: {
Discovery_document_uri: “https:// /.well-known/openid-configuration”,
client_id: “ ”,
ลูกค้า_ความลับ: “ ”,
เปลี่ยนเส้นทาง_uri: “https://instance-id.yourfirezone.com/auth/oidc/okta/callback/”,
response_type: “รหัส”,
ขอบเขต: “โปรไฟล์อีเมล openid offline_access”,
ป้ายกำกับ: “อ็อกตา”
}
}
จำเป็นต้องมีการตั้งค่าคอนฟิกต่อไปนี้สำหรับการผสานรวม:
สำหรับผู้ให้บริการ OIDC แต่ละราย จะมีการสร้าง URL สวยๆ ที่สอดคล้องกันเพื่อเปลี่ยนเส้นทางไปยัง URL ลงชื่อเข้าใช้ของผู้ให้บริการที่กำหนดค่าไว้ สำหรับตัวอย่างการกำหนดค่า OIDC ด้านบน URL คือ:
ผู้ให้บริการที่เรามีเอกสารสำหรับ:
หากผู้ให้บริการระบุตัวตนของคุณมีตัวเชื่อมต่อ OIDC ทั่วไปและไม่ได้อยู่ในรายการด้านบน โปรดไปที่เอกสารประกอบสำหรับข้อมูลเกี่ยวกับวิธีดึงการตั้งค่าการกำหนดค่าที่จำเป็น
การตั้งค่าภายใต้การตั้งค่า/ความปลอดภัยสามารถเปลี่ยนแปลงได้เพื่อให้ต้องมีการตรวจสอบสิทธิ์ซ้ำเป็นระยะ สิ่งนี้สามารถใช้เพื่อบังคับใช้ข้อกำหนดที่ผู้ใช้เข้าสู่ Firezone เป็นประจำเพื่อดำเนินการเซสชัน VPN ต่อไป
สามารถกำหนดค่าระยะเวลาเซสชั่นให้อยู่ระหว่างหนึ่งชั่วโมงถึงเก้าสิบวัน เมื่อตั้งค่าเป็น Never คุณจะเปิดใช้เซสชัน VPN ได้ทุกเมื่อ นี่คือมาตรฐาน
ผู้ใช้ต้องยุติเซสชัน VPN และเข้าสู่ระบบพอร์ทัล Firezone เพื่อตรวจสอบสิทธิ์เซสชัน VPN ที่หมดอายุอีกครั้ง (URL ที่ระบุในระหว่างการปรับใช้)
คุณสามารถตรวจสอบสิทธิ์เซสชันของคุณใหม่ได้โดยทำตามคำแนะนำที่ถูกต้องของลูกค้าซึ่งพบที่นี่
สถานะของการเชื่อมต่อ VPN
คอลัมน์ตารางการเชื่อมต่อ VPN ของหน้าผู้ใช้จะแสดงสถานะการเชื่อมต่อของผู้ใช้ นี่คือสถานะการเชื่อมต่อ:
เปิดใช้งาน – การเชื่อมต่อถูกเปิดใช้งาน
ปิดใช้งาน – การเชื่อมต่อถูกปิดใช้งานโดยผู้ดูแลระบบหรือการรีเฟรช OIDC ล้มเหลว
หมดอายุ – การเชื่อมต่อถูกปิดใช้งานเนื่องจากการหมดอายุของการรับรองความถูกต้อง หรือผู้ใช้ไม่ได้ลงชื่อเข้าใช้เป็นครั้งแรก
ผ่านตัวเชื่อมต่อ OIDC ทั่วไป Firezone เปิดใช้งานการลงชื่อเพียงครั้งเดียว (SSO) ด้วย Google Workspace และ Cloud Identity คู่มือนี้จะแสดงวิธีรับพารามิเตอร์การกำหนดค่าตามรายการด้านล่าง ซึ่งจำเป็นสำหรับการผสานรวม:
1. หน้าจอกำหนดค่า OAuth†<
หากนี่เป็นครั้งแรกที่คุณสร้างรหัสไคลเอ็นต์ OAuth ใหม่ ระบบจะขอให้คุณกำหนดค่าหน้าจอยินยอม
*เลือกภายในสำหรับประเภทผู้ใช้ การดำเนินการนี้ทำให้เฉพาะบัญชีที่เป็นของผู้ใช้ในองค์กร Google Workspace ของคุณเท่านั้นที่สามารถสร้างการกำหนดค่าอุปกรณ์ได้ อย่าเลือกภายนอก เว้นแต่คุณต้องการเปิดใช้งานทุกคนที่มีบัญชี Google ที่ถูกต้องเพื่อสร้างการกำหนดค่าอุปกรณ์
บนหน้าจอข้อมูลแอพ:
2. สร้างรหัสลูกค้า OAuth†<
ส่วนนี้อ้างอิงจากเอกสารประกอบของ Google เอง ตั้งค่า OAuth 2.0.
ไปที่ Google Cloud Console หน้าข้อมูลประจำตัว คลิก + สร้างข้อมูลรับรอง และเลือกรหัสไคลเอ็นต์ OAuth
บนหน้าจอการสร้างรหัสลูกค้า OAuth:
หลังจากสร้างรหัสไคลเอ็นต์ OAuth แล้ว คุณจะได้รับรหัสไคลเอ็นต์และรหัสลับไคลเอ็นต์ ซึ่งจะใช้ร่วมกับ URI การเปลี่ยนเส้นทางในขั้นตอนถัดไป
Edit /etc/firezone/firezone.rb เพื่อรวมตัวเลือกด้านล่าง:
# การใช้ Google เป็นผู้ให้บริการข้อมูลประจำตัว SSO
ค่าเริ่มต้น ['firezone'] ['การรับรองความถูกต้อง'] ['oidc'] = {
Google: {
Discovery_document_uri: “https://accounts.google.com/.well-known/openid-configuration”,
client_id: “ ”,
ลูกค้า_ความลับ: “ ”,
เปลี่ยนเส้นทาง_uri: “https://instance-id.yourfirezone.com/auth/oidc/google/callback/”,
response_type: “รหัส”,
ขอบเขต: “โปรไฟล์อีเมล openid”,
ป้ายกำกับ: “กูเกิล”
}
}
เรียกใช้การกำหนดค่าใหม่ firezone-ctl และรีสตาร์ท firezone-ctl เพื่ออัปเดตแอปพลิเคชัน ตอนนี้คุณควรเห็นปุ่มลงชื่อเข้าใช้ด้วย Google ที่ URL รูทของ Firezone
Firezone ใช้ตัวเชื่อมต่อ OIDC ทั่วไปเพื่ออำนวยความสะดวกในการลงชื่อเพียงครั้งเดียว (SSO) ด้วย Okta บทช่วยสอนนี้จะแสดงวิธีรับพารามิเตอร์การกำหนดค่าตามรายการด้านล่าง ซึ่งจำเป็นสำหรับการผสานรวม:
ส่วนนี้ของคู่มืออ้างอิงจาก เอกสารของ Okta.
ในคอนโซลการดูแลระบบ ให้ไปที่ Applications > Applications และคลิก Create App Integration กำหนดวิธีการลงชื่อเข้าใช้เป็น OICD – OpenID Connect และ Application type เป็น Web application
กำหนดการตั้งค่าเหล่านี้:
เมื่อบันทึกการตั้งค่าแล้ว คุณจะได้รับ Client ID, Client Secret และ Okta Domain ค่า 3 ค่านี้จะใช้ในขั้นตอนที่ 2 เพื่อกำหนดค่า Firezone
Edit /etc/firezone/firezone.rb เพื่อรวมตัวเลือกด้านล่าง ของคุณ Discovery_document_url จะ /.well-known/openid-configuration ต่อท้ายของคุณ okta_domain.
# การใช้ Okta เป็นผู้ให้บริการข้อมูลประจำตัว SSO
ค่าเริ่มต้น ['firezone'] ['การรับรองความถูกต้อง'] ['oidc'] = {
ตกลง: {
Discovery_document_uri: “https:// /.well-known/openid-configuration”,
client_id: “ ”,
ลูกค้า_ความลับ: “ ”,
เปลี่ยนเส้นทาง_uri: “https://instance-id.yourfirezone.com/auth/oidc/okta/callback/”,
response_type: “รหัส”,
ขอบเขต: “โปรไฟล์อีเมล openid offline_access”,
ป้ายกำกับ: “อ็อกตา”
}
}
เรียกใช้การกำหนดค่าใหม่ firezone-ctl และรีสตาร์ท firezone-ctl เพื่ออัปเดตแอปพลิเคชัน ตอนนี้คุณควรเห็นปุ่มลงชื่อเข้าใช้ด้วย Okta ที่ URL รูทของ Firezone
ผู้ใช้ที่สามารถเข้าถึงแอป Firezone นั้นสามารถถูกจำกัดโดย Okta ไปที่หน้าการมอบหมายการรวมแอป Firezone ของคอนโซลผู้ดูแลระบบ Okta เพื่อดำเนินการนี้
Firezone เปิดใช้งาน Single Sign-On (SSO) ด้วย Azure Active Directory ผ่านตัวเชื่อมต่อ OIDC ทั่วไป คู่มือนี้จะแสดงวิธีรับพารามิเตอร์การกำหนดค่าตามรายการด้านล่าง ซึ่งจำเป็นสำหรับการผสานรวม:
คู่มือนี้ดึงมาจาก เอกสาร Azure Active Directory.
ไปที่หน้า Azure Active Directory ของพอร์ทัล Azure เลือกตัวเลือกเมนูจัดการ เลือกการลงทะเบียนใหม่ จากนั้นลงทะเบียนโดยระบุข้อมูลด้านล่าง:
หลังจากลงทะเบียนแล้ว ให้เปิดมุมมองรายละเอียดของแอปพลิเคชันและคัดลอก รหัสแอปพลิเคชัน (ไคลเอนต์). นี่จะเป็นค่า client_id ถัดไป เปิดเมนูปลายทางเพื่อเรียกข้อมูล เอกสารข้อมูลเมตาของ OpenID Connect. นี่จะเป็นค่า Discovery_document_uri
สร้างความลับไคลเอ็นต์ใหม่โดยคลิกตัวเลือกใบรับรอง & ความลับใต้เมนูจัดการ คัดลอกความลับของลูกค้า ค่าความลับของลูกค้าจะเป็นค่านี้
สุดท้าย เลือกลิงก์สิทธิ์ API ใต้เมนูจัดการ คลิก เพิ่มสิทธิ์และเลือก กราฟ Microsoft, เพิ่ม อีเมล, OpenID, ออฟไลน์_เข้าถึง และ โปรไฟล์ ตามสิทธิ์ที่จำเป็น
Edit /etc/firezone/firezone.rb เพื่อรวมตัวเลือกด้านล่าง:
# การใช้ Azure Active Directory เป็นผู้ให้บริการข้อมูลประจำตัว SSO
ค่าเริ่มต้น ['firezone'] ['การรับรองความถูกต้อง'] ['oidc'] = {
สีฟ้า: {
Discovery_document_uri: “https://login.microsoftonline.com/ /v2.0/.well-known/openid-configuration”,
client_id: “ ”,
ลูกค้า_ความลับ: “ ”,
เปลี่ยนเส้นทาง_uri: “https://instance-id.yourfirezone.com/auth/oidc/azure/callback/”,
response_type: “รหัส”,
ขอบเขต: “โปรไฟล์อีเมล openid offline_access”,
ป้ายกำกับ: “สีฟ้า”
}
}
เรียกใช้การกำหนดค่าใหม่ firezone-ctl และรีสตาร์ท firezone-ctl เพื่ออัปเดตแอปพลิเคชัน ตอนนี้คุณควรเห็นปุ่มลงชื่อเข้าใช้ด้วย Azure ที่ URL รูทของ Firezone
Azure AD ช่วยให้ผู้ดูแลระบบสามารถจำกัดการเข้าถึงแอปเฉพาะกลุ่มผู้ใช้ภายในบริษัทของคุณ ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีการดำเนินการได้ในเอกสารประกอบของ Microsoft
Chef Omnibus ใช้งานโดย Firezone เพื่อจัดการงานต่าง ๆ รวมถึงปล่อยบรรจุภัณฑ์ การควบคุมดูแลกระบวนการ การจัดการบันทึก และอื่น ๆ
รหัส Ruby สร้างไฟล์การกำหนดค่าหลักซึ่งอยู่ที่ /etc/firezone/firezone.rb การรีสตาร์ท sudo firezone-ctl กำหนดค่าใหม่หลังจากทำการแก้ไขไฟล์นี้ทำให้ Chef รับรู้การเปลี่ยนแปลงและนำไปใช้กับระบบปฏิบัติการปัจจุบัน
ดูการอ้างอิงไฟล์คอนฟิกูเรชันสำหรับรายการตัวแปรคอนฟิกูเรชันทั้งหมดและคำอธิบาย
อินสแตนซ์ Firezone ของคุณสามารถจัดการได้ผ่านทาง firezone-ctl คำสั่ง ดังรูปด้านล่าง คำสั่งย่อยส่วนใหญ่ต้องการคำนำหน้าด้วย sudo.
root@demo:~# firezone-ctl
omnibus-ctl: คำสั่ง (คำสั่งย่อย)
คำสั่งทั่วไป:
ชำระล้าง
ลบข้อมูล firezone *ทั้งหมด* และเริ่มต้นใหม่ทั้งหมด
สร้างหรือรีเซ็ตผู้ดูแลระบบ
รีเซ็ตรหัสผ่านสำหรับผู้ดูแลระบบด้วยอีเมลที่ระบุโดยค่าเริ่มต้น ['firezone']['admin_email'] หรือสร้างผู้ดูแลระบบใหม่หากไม่มีอีเมลนั้น
ช่วย
พิมพ์ข้อความช่วยเหลือนี้
กำหนดค่าใหม่
กำหนดค่าแอปพลิเคชันใหม่
รีเซ็ตเครือข่าย
รีเซ็ต nftables, อินเทอร์เฟซ WireGuard และตารางเส้นทางกลับเป็นค่าเริ่มต้นของ Firezone
แสดงการกำหนดค่า
แสดงการกำหนดค่าที่จะสร้างขึ้นโดยกำหนดค่าใหม่
เครือข่ายน้ำตา
ลบอินเทอร์เฟซ WireGuard และตาราง nftables ของ firezone
บังคับให้ต่ออายุใบรับรอง
บังคับให้ต่ออายุใบรับรองทันทีแม้ว่าจะยังไม่หมดอายุก็ตาม
หยุดต่ออายุใบรับรอง
ลบ cronjob ที่ต่ออายุใบรับรอง
ถอนการติดตั้ง
ฆ่ากระบวนการทั้งหมดและถอนการติดตั้งผู้ดูแลกระบวนการ (ข้อมูลจะถูกเก็บไว้)
รุ่น
แสดงเวอร์ชันปัจจุบันของ Firezone
คำสั่งการจัดการบริการ:
สง่างามฆ่า
พยายามหยุดอย่างสง่างาม จากนั้น SIGKILL กลุ่มกระบวนการทั้งหมด
หุบ
ส่งบริการ HUP
int
ส่งบริการ INT
ฆ่า
ส่งบริการ KILL
ครั้งเดียว
เริ่มบริการหากหยุดทำงาน อย่ารีสตาร์ทหากหยุดทำงาน
การเริ่มต้นใหม่
หยุดบริการหากกำลังทำงานอยู่ จากนั้นเริ่มใหม่อีกครั้ง
รายการบริการ
แสดงรายการบริการทั้งหมด (บริการที่เปิดใช้งานจะแสดงด้วยเครื่องหมาย *)
เริ่มต้น
เริ่มบริการหากหยุดทำงาน และเริ่มต้นใหม่หากหยุดทำงาน
สถานะ
แสดงสถานะของบริการทั้งหมด
หยุด
หยุดบริการและไม่ต้องรีสตาร์ท
หาง
ดูบันทึกการบริการของบริการที่เปิดใช้งานทั้งหมด
ระยะ
ส่งบริการ TERM
usr1
ส่งบริการ USR1
usr2
ส่งบริการ USR2
ต้องยุติเซสชัน VPN ทั้งหมดก่อนที่จะอัปเกรด Firezone ซึ่งเรียกร้องให้ปิดเว็บ UI ในกรณีที่เกิดข้อผิดพลาดระหว่างการอัปเกรด เราแนะนำให้เผื่อเวลาหนึ่งชั่วโมงไว้สำหรับการบำรุงรักษา
ในการปรับปรุง Firezone ให้ดำเนินการต่อไปนี้:
หากมีปัญหาใดๆ เกิดขึ้น โปรดแจ้งให้เราทราบโดย ส่งตั๋วสนับสนุน
มีการเปลี่ยนแปลงเล็กน้อยและการแก้ไขการกำหนดค่าใน 0.5.0 ที่ต้องแก้ไข ค้นหาข้อมูลเพิ่มเติมด้านล่าง
Nginx ไม่รองรับพารามิเตอร์พอร์ตบังคับ SSL และไม่ใช่ SSL อีกต่อไปตั้งแต่เวอร์ชัน 0.5.0 เนื่องจาก Firezone ต้องการ SSL ในการทำงาน เราแนะนำให้ลบบริการ Nginx ของบันเดิลโดยตั้งค่า default['firezone']['nginx']['enabled'] = false และส่งพร็อกซีย้อนกลับของคุณไปยังแอพ Phoenix บนพอร์ต 13000 แทน (โดยค่าเริ่มต้น ).
0.5.0 แนะนำการสนับสนุนโปรโตคอล ACME สำหรับการต่ออายุใบรับรอง SSL โดยอัตโนมัติด้วยบริการ Nginx ที่ให้มา การเปิดใช้งาน,
ความเป็นไปได้ในการเพิ่มกฎที่มีปลายทางที่ซ้ำกันหายไปใน Firezone 0.5.0 สคริปต์การย้ายข้อมูลของเราจะจดจำสถานการณ์เหล่านี้โดยอัตโนมัติระหว่างการอัปเกรดเป็น 0.5.0 และจะเก็บเฉพาะกฎที่ปลายทางรวมกฎอื่นไว้ด้วย คุณไม่จำเป็นต้องทำอะไรหากไม่เป็นไร
มิฉะนั้น ก่อนอัปเกรด เราแนะนำให้เปลี่ยนชุดกฎของคุณเพื่อกำจัดสถานการณ์เหล่านี้
Firezone 0.5.0 ลบการรองรับการกำหนดค่า Okta และ Google SSO แบบเก่า เพื่อรองรับการกำหนดค่าตาม OIDC แบบใหม่ที่ยืดหยุ่นกว่า
หากคุณมีการกำหนดค่าใดๆ ภายใต้คีย์เริ่มต้น ['firezone']['authentication']['okta'] หรือค่าเริ่มต้น['firezone']['authentication']['google'] คุณต้องย้ายข้อมูลเหล่านี้ไปยัง OIDC ของเรา - การกำหนดค่าตามคำแนะนำด้านล่าง
การกำหนดค่า Google OAuth ที่มีอยู่
ลบบรรทัดเหล่านี้ที่มีการกำหนดค่า Google OAuth เก่าออกจากไฟล์กำหนดค่าของคุณซึ่งอยู่ที่ /etc/firezone/firezone.rb
ค่าเริ่มต้น ['firezone']['การรับรองความถูกต้อง']['google']['เปิดใช้งาน']
ค่าเริ่มต้น['firezone']['การรับรองความถูกต้อง']['google']['client_id']
ค่าเริ่มต้น['firezone']['การรับรองความถูกต้อง']['google']['client_secret']
ค่าเริ่มต้น['firezone']['การรับรองความถูกต้อง']['google']['redirect_uri']
จากนั้น กำหนดค่า Google เป็นผู้ให้บริการ OIDC โดยทำตามขั้นตอนที่นี่
(ให้ลิงค์คำแนะนำ)<<<<<<<<<<<<<<<<
กำหนดค่า Google OAuth ที่มีอยู่
ลบบรรทัดเหล่านี้ที่มีการกำหนดค่า Okta OAuth เก่าออกจากไฟล์การกำหนดค่าของคุณที่ /etc/firezone/firezone.rb
ค่าเริ่มต้น ['firezone'] ['การรับรองความถูกต้อง'] ['okta'] ['เปิดใช้งาน']
ค่าเริ่มต้น ['firezone']['การรับรองความถูกต้อง']['okta']['client_id']
ค่าเริ่มต้น ['firezone']['การรับรองความถูกต้อง']['okta']['client_secret']
ค่าเริ่มต้น ['firezone']['การรับรองความถูกต้อง']['okta']['ไซต์']
จากนั้น กำหนดค่า Okta เป็นผู้ให้บริการ OIDC โดยทำตามขั้นตอนที่นี่
ขึ้นอยู่กับการตั้งค่าและเวอร์ชันปัจจุบันของคุณ ปฏิบัติตามคำแนะนำด้านล่าง:
หากคุณมีการรวม OIDC อยู่แล้ว:
สำหรับผู้ให้บริการ OIDC บางราย การอัปเกรดเป็น >= 0.3.16 จำเป็นต้องได้รับโทเค็นการรีเฟรชสำหรับขอบเขตการเข้าถึงแบบออฟไลน์ การทำเช่นนี้จะช่วยให้แน่ใจว่า Firezone อัปเดตด้วยผู้ให้บริการข้อมูลประจำตัวและการเชื่อมต่อ VPN นั้นถูกปิดหลังจากที่ผู้ใช้ถูกลบ การทำซ้ำก่อนหน้านี้ของ Firezone ขาดคุณสมบัตินี้ ในบางกรณี ผู้ใช้ที่ถูกลบออกจากผู้ให้บริการข้อมูลประจำตัวของคุณอาจยังคงเชื่อมต่อกับ VPN
จำเป็นต้องรวมการเข้าถึงแบบออฟไลน์ในพารามิเตอร์ขอบเขตของการกำหนดค่า OIDC ของคุณสำหรับผู้ให้บริการ OIDC ที่สนับสนุนขอบเขตการเข้าถึงแบบออฟไลน์ ต้องดำเนินการกำหนดค่า Firezone-ctl ใหม่เพื่อใช้การเปลี่ยนแปลงกับไฟล์การกำหนดค่า Firezone ซึ่งอยู่ที่ /etc/firezone/firezone.rb
สำหรับผู้ใช้ที่ได้รับการรับรองความถูกต้องโดยผู้ให้บริการ OIDC ของคุณ คุณจะเห็นส่วนหัวของการเชื่อมต่อ OIDC ในหน้ารายละเอียดผู้ใช้ของ UI ทางเว็บ หาก Firezone สามารถดึงข้อมูลโทเค็นการรีเฟรชได้สำเร็จ
หากไม่ได้ผล คุณจะต้องลบแอป OAuth ที่มีอยู่และทำตามขั้นตอนการตั้งค่า OIDC ซ้ำเพื่อ สร้างการรวมแอพใหม่ .
ฉันมีการรวม OAuth ที่มีอยู่
ก่อน 0.3.11 Firezone ใช้ผู้ให้บริการ OAuth2 ที่กำหนดค่าไว้ล่วงหน้า
ทำตามคำแนะนำ โปรดคลิกที่นี่เพื่ออ่านรายละเอียดเพิ่มเติม เพื่อย้ายไปที่ OIDC
ฉันยังไม่ได้รวมผู้ให้บริการข้อมูลประจำตัว
ไม่จำเป็นต้องดำเนินการใดๆ
คุณสามารถปฏิบัติตามคำแนะนำ โปรดคลิกที่นี่เพื่ออ่านรายละเอียดเพิ่มเติม เพื่อเปิดใช้งาน SSO ผ่านผู้ให้บริการ OIDC
แทนที่ default['firezone']['external url'] ได้แทนที่ตัวเลือกการกำหนดค่า default['firezone']['fqdn']
ตั้งค่านี้เป็น URL ของพอร์ทัลออนไลน์ Firezone ที่บุคคลทั่วไปสามารถเข้าถึงได้ โดยจะมีค่าเริ่มต้นเป็น https:// บวกกับ FQDN ของเซิร์ฟเวอร์ของคุณหากไม่ได้กำหนด
ไฟล์การกำหนดค่าอยู่ที่ /etc/firezone/firezone.rb ดูการอ้างอิงไฟล์คอนฟิกูเรชันสำหรับรายการตัวแปรคอนฟิกูเรชันทั้งหมดและคำอธิบาย
Firezone ไม่เก็บคีย์ส่วนตัวของอุปกรณ์บนเซิร์ฟเวอร์ Firezone เป็นเวอร์ชัน 0.3.0 อีกต่อไป
Firezone Web UI จะไม่อนุญาตให้คุณดาวน์โหลดซ้ำหรือดูการกำหนดค่าเหล่านี้ แต่อุปกรณ์ที่มีอยู่ควรทำงานต่อไปตามที่เป็นอยู่
หากคุณกำลังอัปเกรดจาก Firezone 0.1.x มีการเปลี่ยนแปลงไฟล์การกำหนดค่าบางอย่างที่ต้องแก้ไขด้วยตนเอง
หากต้องการแก้ไขไฟล์ /etc/firezone/firezone.rb ที่จำเป็น ให้รันคำสั่งด้านล่างในฐานะรูท
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 อนุญาตในทุกที่
80/tcp อนุญาตในทุกที่
443/tcp อนุญาตในทุกที่
51820/udp อนุญาตในทุกที่
22/tcp (v6) อนุญาตในทุกที่ (v6)
80/tcp (v6) อนุญาตในทุกที่ (v6)
443/tcp (v6) อนุญาตในทุกที่ (v6)
51820/udp (v6) อนุญาตในทุกที่ (v6)
เราแนะนำให้จำกัดการเข้าถึงเว็บอินเทอร์เฟซสำหรับการปรับใช้การผลิตที่ละเอียดอ่อนและมีความสำคัญต่อภารกิจมาก ดังที่อธิบายไว้ด้านล่าง
Service | พอร์ตเริ่มต้น | ฟังที่อยู่ | รายละเอียด |
Nginx | 80, 443 | ทั้งหมด | พอร์ต HTTP(S) สาธารณะสำหรับการจัดการ Firezone และอำนวยความสะดวกในการตรวจสอบสิทธิ์ |
Wireguard | 51820 | ทั้งหมด | พอร์ต WireGuard สาธารณะใช้สำหรับเซสชัน VPN (ปชป.) |
postgresql | 15432 | 127.0.0.1 | พอร์ตเฉพาะที่ใช้สำหรับเซิร์ฟเวอร์ Postgresql ที่รวมไว้ |
ต้นอินทผลัม | 13000 | 127.0.0.1 | พอร์ตในเครื่องเท่านั้นที่ใช้โดยเซิร์ฟเวอร์แอป upstream Elixir |
เราแนะนำให้คุณนึกถึงการจำกัดการเข้าถึง UI ทางเว็บที่เปิดเผยต่อสาธารณะของ Firezone (โดยค่าเริ่มต้นพอร์ต 443/tcp และ 80/tcp) และใช้อุโมงค์ WireGuard แทนเพื่อจัดการ Firezone สำหรับการผลิตและการปรับใช้ที่เปิดเผยต่อสาธารณะโดยผู้ดูแลระบบคนเดียวจะรับผิดชอบ ของการสร้างและแจกจ่ายการกำหนดค่าอุปกรณ์ให้กับผู้ใช้ปลายทาง
ตัวอย่างเช่น หากผู้ดูแลระบบสร้างการกำหนดค่าอุปกรณ์และสร้างอุโมงค์ที่มีที่อยู่ WireGuard ในเครื่อง 10.3.2.2 การกำหนดค่า ufw ต่อไปนี้จะทำให้ผู้ดูแลระบบสามารถเข้าถึง UI เว็บ Firezone บนอินเทอร์เฟซ wg-firezone ของเซิร์ฟเวอร์โดยใช้ค่าเริ่มต้น 10.3.2.1 ที่อยู่อุโมงค์:
root@demo:~# รายละเอียดสถานะ ufw
สถานะ: ใช้งานอยู่
การบันทึก: เปิด (ต่ำ)
เริ่มต้น: ปฏิเสธ (ขาเข้า), อนุญาต (ขาออก), อนุญาต (กำหนดเส้นทาง)
โปรไฟล์ใหม่: ข้าม
ถึงการดำเนินการจาก
— —— —-
22/tcp อนุญาตในทุกที่
51820/udp อนุญาตในทุกที่
ทุกที่ที่อนุญาตใน 10.3.2.2
22/tcp (v6) อนุญาตในทุกที่ (v6)
51820/udp (v6) อนุญาตในทุกที่ (v6)
คงจะเหลือแต่เพียงนี้ 22/ตัน เปิดให้เข้าถึง SSH เพื่อจัดการเซิร์ฟเวอร์ (ไม่บังคับ) และ 51820/ดป เปิดเผยเพื่อสร้างอุโมงค์ WireGuard
Firezone รวมเซิร์ฟเวอร์ Postgresql และการจับคู่ psql ยูทิลิตี้ที่สามารถใช้ได้จากเชลล์ในเครื่องดังนี้:
/opt/firezone/embedded/bin/psql \
-U ไฟร์โซน \
-d ไฟร์โซน \
-h โลคัลโฮสต์ \
-p 15432 \
-c “SQL_STATEMENT”
ซึ่งจะเป็นประโยชน์สำหรับการดีบัก
งานทั่วไป:
รายชื่อผู้ใช้ทั้งหมด:
/opt/firezone/embedded/bin/psql \
-U ไฟร์โซน \
-d ไฟร์โซน \
-h โลคัลโฮสต์ \
-p 15432 \
-c “เลือก * จากผู้ใช้”
รายการอุปกรณ์ทั้งหมด:
/opt/firezone/embedded/bin/psql \
-U ไฟร์โซน \
-d ไฟร์โซน \
-h โลคัลโฮสต์ \
-p 15432 \
-c “เลือก * จากอุปกรณ์”
เปลี่ยนบทบาทของผู้ใช้:
กำหนดบทบาทเป็น 'admin' หรือ 'unprivileged':
/opt/firezone/embedded/bin/psql \
-U ไฟร์โซน \
-d ไฟร์โซน \
-h โลคัลโฮสต์ \
-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 ไฟร์โซน \
-d ไฟร์โซน \
-h โลคัลโฮสต์ \
-p 15432 > /path/to/backup.sql
หลังจากปรับใช้ Firezone สำเร็จ คุณต้องเพิ่มผู้ใช้เพื่อให้พวกเขาเข้าถึงเครือข่ายของคุณ Web UI ใช้สำหรับทำสิ่งนี้
เมื่อเลือกปุ่ม "เพิ่มผู้ใช้" ใต้ /users คุณจะสามารถเพิ่มผู้ใช้ได้ คุณจะต้องให้ที่อยู่อีเมลและรหัสผ่านแก่ผู้ใช้ เพื่อให้ผู้ใช้ในองค์กรของคุณเข้าถึงได้โดยอัตโนมัติ Firezone ยังสามารถเชื่อมต่อและซิงค์กับผู้ให้บริการข้อมูลประจำตัว รายละเอียดเพิ่มเติมดูได้ใน รับรองความถูกต้อง. < เพิ่มลิงก์เพื่อรับรองความถูกต้อง
เราขอแนะนำให้ร้องขอให้ผู้ใช้สร้างการกำหนดค่าอุปกรณ์ของตนเองเพื่อให้มองเห็นเฉพาะคีย์ส่วนตัวเท่านั้น ผู้ใช้สามารถสร้างการกำหนดค่าอุปกรณ์ของตนเองได้โดยทำตามคำแนะนำบน คำแนะนำของลูกค้า หน้าหนังสือ.
ผู้ดูแลระบบ Firezone สามารถสร้างการกำหนดค่าอุปกรณ์ของผู้ใช้ทั้งหมดได้ ในหน้าโปรไฟล์ผู้ใช้ที่ /users ให้เลือกตัวเลือก "เพิ่มอุปกรณ์" เพื่อทำสิ่งนี้ให้สำเร็จ
[แทรกภาพหน้าจอ]
คุณสามารถส่งอีเมลถึงผู้ใช้ไฟล์การกำหนดค่า WireGuard หลังจากสร้างโปรไฟล์อุปกรณ์
มีการเชื่อมโยงผู้ใช้และอุปกรณ์ สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับวิธีเพิ่มผู้ใช้ โปรดดูที่ เพิ่มผู้ใช้.
ผ่านการใช้ระบบ netfilter ของเคอร์เนล Firezone เปิดใช้งานความสามารถในการกรองข้อมูลออกเพื่อระบุแพ็กเก็ต DROP หรือ ACCEPT อนุญาตให้สัญจรได้ตามปกติ
IPv4 และ IPv6 CIDR และที่อยู่ IP ได้รับการสนับสนุนผ่านรายการที่อนุญาตและรายการที่ปฏิเสธตามลำดับ คุณสามารถเลือกที่จะกำหนดขอบเขตกฎให้กับผู้ใช้เมื่อทำการเพิ่ม ซึ่งจะใช้กฎกับอุปกรณ์ทั้งหมดของผู้ใช้รายนั้น
ติดตั้งและกำหนดค่า
หากต้องการสร้างการเชื่อมต่อ VPN โดยใช้ไคลเอนต์ WireGuard ดั้งเดิม โปรดดูคู่มือนี้
ลูกค้า WireGuard อย่างเป็นทางการที่อยู่ที่นี่เข้ากันได้กับ Firezone:
เยี่ยมชมเว็บไซต์อย่างเป็นทางการของ WireGuard ที่ https://www.wireguard.com/install/ สำหรับระบบปฏิบัติการที่ไม่ได้กล่าวถึงข้างต้น
ผู้ดูแลระบบ Firezone ของคุณหรือตัวคุณเองสามารถสร้างไฟล์การกำหนดค่าอุปกรณ์โดยใช้พอร์ทัล Firezone
ไปที่ URL ที่ผู้ดูแลระบบ Firezone ของคุณให้ไว้เพื่อสร้างไฟล์การกำหนดค่าอุปกรณ์ด้วยตนเอง บริษัทของคุณจะมี URL เฉพาะสำหรับสิ่งนี้ ในกรณีนี้คือ https://instance-id.yourfirezone.com
เข้าสู่ระบบ Firezone Okta SSO
[แทรกภาพหน้าจอ]
นำเข้าไฟล์ the.conf ไปยังไคลเอนต์ WireGuard โดยการเปิด ด้วยการพลิกสวิตช์เปิดใช้งาน คุณสามารถเริ่มเซสชัน VPN ได้
[แทรกภาพหน้าจอ]
ทำตามคำแนะนำด้านล่างหากผู้ดูแลระบบเครือข่ายของคุณได้รับคำสั่งให้ตรวจสอบสิทธิ์ซ้ำเพื่อให้การเชื่อมต่อ VPN ของคุณใช้งานได้
คุณจำเป็นต้องมี:
URL ของพอร์ทัล Firezone: สอบถามการเชื่อมต่อจากผู้ดูแลระบบเครือข่ายของคุณ
ผู้ดูแลระบบเครือข่ายของคุณควรสามารถเสนอการเข้าสู่ระบบและรหัสผ่านของคุณได้ ไซต์ Firezone จะแจ้งให้คุณเข้าสู่ระบบโดยใช้บริการลงชื่อเพียงครั้งเดียวที่นายจ้างของคุณใช้ (เช่น Google หรือ Okta)
[แทรกภาพหน้าจอ]
ไปที่ URL ของพอร์ทัล Firezone และเข้าสู่ระบบโดยใช้ข้อมูลประจำตัวที่ผู้ดูแลระบบเครือข่ายของคุณให้ไว้ หากคุณลงชื่อเข้าใช้แล้ว ให้คลิกปุ่มตรวจสอบสิทธิ์อีกครั้งก่อนลงชื่อเข้าใช้อีกครั้ง
[แทรกภาพหน้าจอ]
[แทรกภาพหน้าจอ]
หากต้องการนำเข้าโปรไฟล์การกำหนดค่า WireGuard โดยใช้ Network Manager CLI บนอุปกรณ์ Linux ให้ทำตามคำแนะนำเหล่านี้ (nmcli)
หากโปรไฟล์เปิดใช้งานการสนับสนุน IPv6 การพยายามนำเข้าไฟล์การกำหนดค่าโดยใช้ Network Manager GUI อาจล้มเหลวโดยมีข้อผิดพลาดต่อไปนี้:
ipv6.method: ไม่รองรับเมธอด “อัตโนมัติ” สำหรับ WireGuard
จำเป็นต้องติดตั้งยูทิลิตี้ WireGuard userspace นี่จะเป็นแพ็คเกจที่เรียกว่า wireguard หรือ wireguard-tools สำหรับการแจกจ่าย Linux
สำหรับอูบุนตู/เดเบียน:
sudo apt ติดตั้ง wireguard
วิธีใช้ Fedora:
sudo dnf ติดตั้งเครื่องมือ wireguard
Arch Linux:
sudo pacman -S wireguard-เครื่องมือ
เยี่ยมชมเว็บไซต์อย่างเป็นทางการของ WireGuard ที่ https://www.wireguard.com/install/ สำหรับการแจกจ่ายที่ไม่ได้กล่าวถึงข้างต้น
ผู้ดูแลระบบ Firezone ของคุณหรือผู้สร้างเองสามารถสร้างไฟล์การกำหนดค่าอุปกรณ์โดยใช้พอร์ทัล Firezone
ไปที่ URL ที่ผู้ดูแลระบบ Firezone ของคุณให้ไว้เพื่อสร้างไฟล์การกำหนดค่าอุปกรณ์ด้วยตนเอง บริษัทของคุณจะมี URL เฉพาะสำหรับสิ่งนี้ ในกรณีนี้คือ https://instance-id.yourfirezone.com
[แทรกภาพหน้าจอ]
นำเข้าไฟล์การกำหนดค่าที่ให้มาโดยใช้ nmcli:
sudo การเชื่อมต่อ nmcli ประเภทการนำเข้าไฟล์ wireguard /path/to/configuration.conf
ชื่อของไฟล์การกำหนดค่าจะสอดคล้องกับการเชื่อมต่อ/อินเทอร์เฟซ WireGuard หลังจากนำเข้าแล้ว สามารถเปลี่ยนชื่อการเชื่อมต่อได้หากจำเป็น:
การเชื่อมต่อ nmcli แก้ไข [ชื่อเก่า] connection.id [ชื่อใหม่]
ผ่านบรรทัดคำสั่ง เชื่อมต่อกับ VPN ดังนี้:
การเชื่อมต่อ nmcli ขึ้น [ชื่อ VPN]
ในการยกเลิกการเชื่อมต่อ:
การเชื่อมต่อ nmcli ล่ม [ชื่อ VPN]
นอกจากนี้ยังสามารถใช้แอปเพล็ต Network Manager เพื่อจัดการการเชื่อมต่อหากใช้ GUI
เมื่อเลือก “ใช่” สำหรับตัวเลือกการเชื่อมต่ออัตโนมัติ การเชื่อมต่อ VPN สามารถกำหนดค่าให้เชื่อมต่อโดยอัตโนมัติได้:
การเชื่อมต่อ nmcli แก้ไขการเชื่อมต่อ [ชื่อ VPN] <<<<<<<<<<<<<<<<<<<<<<
เชื่อมต่ออัตโนมัติ ใช่
หากต้องการปิดใช้งานการเชื่อมต่ออัตโนมัติให้ตั้งค่ากลับเป็นไม่:
การเชื่อมต่อ nmcli แก้ไขการเชื่อมต่อ [ชื่อ VPN]
หมายเลขการเชื่อมต่ออัตโนมัติ
หากต้องการเปิดใช้งาน MFA ไปที่หน้า /บัญชีผู้ใช้/ลงทะเบียน mfa ของพอร์ทัล Firezone ใช้แอปยืนยันตัวตนของคุณเพื่อสแกนคิวอาร์โค้ดหลังจากสร้างขึ้น จากนั้นป้อนรหัสหกหลัก
ติดต่อผู้ดูแลระบบของคุณเพื่อรีเซ็ตข้อมูลการเข้าถึงบัญชีของคุณ หากคุณวางแอปยืนยันตัวตนผิดที่
บทช่วยสอนนี้จะแนะนำคุณตลอดขั้นตอนการตั้งค่าคุณลักษณะการแยกช่องสัญญาณของ WireGuard ด้วย Firezone เพื่อให้มีการส่งต่อทราฟฟิกไปยังช่วง IP ที่ระบุผ่านเซิร์ฟเวอร์ VPN เท่านั้น
ช่วง 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 สำหรับภูมิภาค AWS ap-northeast-2
Firezone จะเลือกส่วนต่อประสานขาออกที่เกี่ยวข้องกับเส้นทางที่แม่นยำที่สุดก่อน เมื่อกำหนดตำแหน่งที่จะกำหนดเส้นทางแพ็กเก็ต
ผู้ใช้ต้องสร้างไฟล์การกำหนดค่าใหม่และเพิ่มไปยังไคลเอนต์ WireGuard ดั้งเดิมเพื่ออัปเดตอุปกรณ์ผู้ใช้ที่มีอยู่ด้วยการกำหนดค่าอุโมงค์แยกใหม่
สำหรับคำแนะนำโปรดดู เพิ่มอุปกรณ์. <<<<<<<<<<< เพิ่มลิงค์ครับ
คู่มือนี้จะสาธิตวิธีเชื่อมโยงอุปกรณ์สองเครื่องโดยใช้ Firezone เป็นรีเลย์ กรณีการใช้งานทั่วไปอย่างหนึ่งคือการทำให้ผู้ดูแลระบบสามารถเข้าถึงเซิร์ฟเวอร์ คอนเทนเนอร์ หรือเครื่องที่ได้รับการป้องกันโดย NAT หรือไฟร์วอลล์
ภาพประกอบนี้แสดงสถานการณ์ที่ตรงไปตรงมาซึ่งอุปกรณ์ A และ B สร้างอุโมงค์
[แทรกภาพสถาปัตยกรรม firezone]
เริ่มต้นด้วยการสร้างอุปกรณ์ A และอุปกรณ์ B โดยไปที่ /users/[user_id]/new_device ในการตั้งค่าสำหรับอุปกรณ์แต่ละเครื่อง ตรวจสอบให้แน่ใจว่าได้ตั้งค่าพารามิเตอร์ต่อไปนี้เป็นค่าที่แสดงด้านล่าง คุณสามารถตั้งค่าอุปกรณ์ได้เมื่อสร้างการกำหนดค่าอุปกรณ์ (ดูเพิ่มอุปกรณ์) หากคุณต้องการอัปเดตการตั้งค่าบนอุปกรณ์ที่มีอยู่ คุณสามารถทำได้โดยสร้างการกำหนดค่าอุปกรณ์ใหม่
โปรดทราบว่าอุปกรณ์ทั้งหมดมีหน้า /settings/defaults ซึ่งสามารถกำหนดค่า PersistentKeepalive ได้
อนุญาต IPs = 10.3.2.2/32
นี่คือ IP หรือช่วงของ IP ของอุปกรณ์ B
ถาวร Keepalive = 25
หากอุปกรณ์อยู่เบื้องหลัง NAT สิ่งนี้จะทำให้มั่นใจได้ว่าอุปกรณ์สามารถรักษาช่องสัญญาณให้คงอยู่และรับแพ็กเก็ตจากอินเทอร์เฟซ WireGuard ต่อไป โดยปกติค่า 25 ก็เพียงพอแล้ว แต่คุณอาจต้องลดค่านี้ขึ้นอยู่กับสภาพแวดล้อมของคุณ
อนุญาต IPs = 10.3.2.3/32
นี่คือ IP หรือช่วงของ IP ของอุปกรณ์ A
ถาวร Keepalive = 25
ตัวอย่างนี้แสดงสถานการณ์ที่อุปกรณ์ A สามารถสื่อสารกับอุปกรณ์ B ถึง D ได้ทั้งสองทิศทาง การตั้งค่านี้สามารถแสดงถึงวิศวกรหรือผู้ดูแลระบบที่เข้าถึงทรัพยากรจำนวนมาก (เซิร์ฟเวอร์ คอนเทนเนอร์ หรือเครื่องจักร) ผ่านเครือข่ายต่างๆ
[แผนภาพสถาปัตยกรรม]<<<<<<<<<<<<<<<<<<<<<<<
ตรวจสอบให้แน่ใจว่าได้ตั้งค่าต่อไปนี้ในการตั้งค่าของอุปกรณ์แต่ละเครื่องเป็นค่าที่สอดคล้องกัน เมื่อสร้างการกำหนดค่าอุปกรณ์ คุณสามารถระบุการตั้งค่าอุปกรณ์ได้ (ดูเพิ่มอุปกรณ์) สามารถสร้างการกำหนดค่าอุปกรณ์ใหม่ได้หากจำเป็นต้องอัปเดตการตั้งค่าในอุปกรณ์ที่มีอยู่
IP ที่อนุญาต = 10.3.2.3/32, 10.3.2.4/32, 10.3.2.5/32
นี่คือ IP ของอุปกรณ์ B ถึง D ต้องรวม IP ของอุปกรณ์ B ถึง D ในช่วง IP ที่คุณเลือกตั้งค่า
ถาวร Keepalive = 25
สิ่งนี้รับประกันว่าอุปกรณ์สามารถรักษาทันเนลและรับแพ็กเก็ตจากอินเทอร์เฟซ WireGuard ต่อไปแม้ว่าจะได้รับการป้องกันโดย NAT ก็ตาม ในกรณีส่วนใหญ่ ค่า 25 ก็เพียงพอแล้ว อย่างไรก็ตาม คุณอาจต้องลดค่านี้ลง ทั้งนี้ขึ้นอยู่กับสภาพแวดล้อมของคุณ
หากต้องการนำเสนอ IP ขาออกแบบคงที่เดียวเพื่อให้การรับส่งข้อมูลทั้งหมดของทีมของคุณไหลออกไป Firezone สามารถใช้เป็นเกตเวย์ NAT ได้ สถานการณ์เหล่านี้เกี่ยวข้องกับการใช้งานบ่อยครั้ง:
งานให้คำปรึกษา: ขอให้ลูกค้าของคุณอนุญาตที่อยู่ IP แบบคงที่เดียวแทนที่จะเป็น IP ของอุปกรณ์ที่ไม่ซ้ำกันของพนักงานแต่ละคน
การใช้พร็อกซีหรือปิดบัง IP ต้นทางเพื่อความปลอดภัยหรือความเป็นส่วนตัว
ตัวอย่างง่ายๆ ของการจำกัดการเข้าถึงเว็บแอปพลิเคชันที่โฮสต์เองไว้ที่ IP แบบคงที่ที่อนุญาตพิเศษเพียงรายการเดียวที่เรียกใช้ Firezone จะแสดงให้เห็นในโพสต์นี้ ในภาพประกอบนี้ Firezone และทรัพยากรที่ได้รับการป้องกันอยู่ในพื้นที่ VPC ที่แตกต่างกัน
โซลูชันนี้มักจะใช้แทนการจัดการรายการ IP ที่อนุญาตพิเศษสำหรับผู้ใช้ปลายทางจำนวนมาก ซึ่งอาจใช้เวลานานเมื่อรายการเข้าถึงขยาย
วัตถุประสงค์ของเราคือการตั้งค่าเซิร์ฟเวอร์ Firezone บนอินสแตนซ์ EC2 เพื่อเปลี่ยนเส้นทางการรับส่งข้อมูล VPN ไปยังทรัพยากรที่ถูกจำกัด ในกรณีนี้ Firezone ทำหน้าที่เป็นพร็อกซีเครือข่ายหรือเกตเวย์ NAT เพื่อให้อุปกรณ์ที่เชื่อมต่อแต่ละเครื่องมี IP ขาออกสาธารณะที่ไม่ซ้ำกัน
ในกรณีนี้ อินสแตนซ์ EC2 ชื่อ tc2.micro มีอินสแตนซ์ Firezone ติดตั้งอยู่ สำหรับข้อมูลเกี่ยวกับการปรับใช้ Firezone ให้ไปที่คู่มือการปรับใช้ เกี่ยวกับ AWS ตรวจสอบให้แน่ใจว่า:
กลุ่มความปลอดภัยของอินสแตนซ์ Firezone EC2 อนุญาตให้รับส่งข้อมูลขาออกไปยังที่อยู่ IP ของทรัพยากรที่ได้รับการป้องกัน
อินสแตนซ์ Firezone มาพร้อมกับ IP ที่ยืดหยุ่น การรับส่งข้อมูลที่ส่งต่อผ่านอินสแตนซ์ Firezone ไปยังปลายทางภายนอกจะมีสิ่งนี้เป็นที่อยู่ IP ต้นทาง ที่อยู่ IP ที่เป็นปัญหาคือ 52.202.88.54
[แทรกภาพหน้าจอ]<<<<<<<<<<<<<<<<<<<<<<<<
เว็บแอปพลิเคชันที่โฮสต์เองทำหน้าที่เป็นทรัพยากรที่ได้รับการป้องกันในกรณีนี้ แอปพลิเคชันเว็บสามารถเข้าถึงได้โดยคำขอที่มาจากที่อยู่ IP 52.202.88.54 เท่านั้น ขึ้นอยู่กับทรัพยากร อาจจำเป็นต้องอนุญาตทราฟฟิกขาเข้าบนพอร์ตและประเภททราฟฟิกต่างๆ สิ่งนี้ไม่ครอบคลุมในคู่มือนี้
[แทรกภาพหน้าจอ]<<<<<<<<<<<<<<<<<<<<<<<<
โปรดแจ้งบุคคลที่สามที่รับผิดชอบทรัพยากรที่ได้รับการป้องกันว่าต้องอนุญาตการรับส่งข้อมูลจาก IP แบบคงที่ที่กำหนดไว้ในขั้นตอนที่ 1 (ในกรณีนี้คือ 52.202.88.54)
ตามค่าเริ่มต้น การรับส่งข้อมูลของผู้ใช้ทั้งหมดจะผ่านเซิร์ฟเวอร์ VPN และมาจาก IP แบบคงที่ซึ่งได้รับการกำหนดค่าในขั้นตอนที่ 1 (ในกรณีนี้คือ 52.202.88.54) อย่างไรก็ตาม หากเปิดใช้การแยกช่องสัญญาณ การตั้งค่าอาจจำเป็นเพื่อให้แน่ใจว่า IP ปลายทางของทรัพยากรที่ได้รับการป้องกันแสดงอยู่ในรายการ IP ที่อนุญาต
ด้านล่างนี้คือรายการตัวเลือกการกำหนดค่าทั้งหมดที่มีอยู่ใน /etc/firezone/firezone.rb.
ตัวเลือก | ลักษณะ | ค่าเริ่มต้น |
ค่าเริ่มต้น ['firezone']['external_url'] | URL ที่ใช้เข้าถึงเว็บพอร์ทัลของอินสแตนซ์ Firezone นี้ | “https://#{โหนด['fqdn'] || โหนด ['ชื่อโฮสต์']}” |
ค่าเริ่มต้น ['firezone'] ['config_directory'] | ไดเร็กทอรีระดับบนสุดสำหรับการกำหนดค่า Firezone | /etc/firezone' |
ค่าเริ่มต้น ['firezone'] ['install_directory'] | ไดเร็กทอรีระดับบนสุดสำหรับติดตั้ง Firezone | /opt/ไฟร์โซน' |
ค่าเริ่มต้น ['firezone']['app_directory'] | ไดเร็กทอรีระดับบนสุดสำหรับติดตั้งเว็บแอปพลิเคชัน Firezone | “#{node['firezone']['install_directory']}/embedded/service/firezone" |
ค่าเริ่มต้น ['firezone']['log_directory'] | ไดเร็กทอรีระดับบนสุดสำหรับบันทึก Firezone | /var/log/firezone' |
ค่าเริ่มต้น ['firezone']['var_directory'] | ไดเร็กทอรีระดับบนสุดสำหรับไฟล์รันไทม์ Firezone | /var/opt/firezone' |
ค่าเริ่มต้น ['firezone'] ['ผู้ใช้'] | ชื่อของผู้ใช้ Linux ที่ไม่มีสิทธิพิเศษ บริการและไฟล์ส่วนใหญ่จะเป็นของ | ไฟร์โซน' |
ค่าเริ่มต้น ['firezone'] ['กลุ่ม'] | ชื่อของกลุ่ม Linux บริการและไฟล์ส่วนใหญ่จะเป็นของ | ไฟร์โซน' |
ค่าเริ่มต้น ['firezone']['admin_email'] | ที่อยู่อีเมลสำหรับผู้ใช้ Firezone เริ่มต้น | “firezone@localhost” |
ค่าเริ่มต้น ['firezone']['max_devices_per_user'] | จำนวนอุปกรณ์สูงสุดที่ผู้ใช้สามารถมีได้ | 10 |
ค่าเริ่มต้น ['firezone']['allow_unprivileged_device_management'] | อนุญาตให้ผู้ใช้ที่ไม่ใช่ผู้ดูแลระบบสร้างและลบอุปกรณ์ | TRUE |
ค่าเริ่มต้น ['firezone'] ['allow_unprivileged_device_configuration'] | อนุญาตให้ผู้ใช้ที่ไม่ใช่ผู้ดูแลระบบแก้ไขการกำหนดค่าอุปกรณ์ เมื่อปิดใช้งาน จะป้องกันไม่ให้ผู้ใช้ที่ไม่มีสิทธิ์เปลี่ยนฟิลด์อุปกรณ์ทั้งหมด ยกเว้นชื่อและคำอธิบาย | TRUE |
ค่าเริ่มต้น ['firezone']['egress_interface'] | ชื่ออินเทอร์เฟซที่ทราฟฟิกอุโมงค์จะออก ถ้าไม่มี ระบบจะใช้อินเทอร์เฟซเส้นทางเริ่มต้น | ศูนย์ |
ค่าเริ่มต้น ['firezone']['fips_enabled'] | เปิดหรือปิดโหมด OpenSSL FIPs | ศูนย์ |
ค่าเริ่มต้น ['firezone'] ['การบันทึก'] ['เปิดใช้งาน'] | เปิดหรือปิดการบันทึกทั่วทั้ง Firezone ตั้งค่าเป็นเท็จเพื่อปิดใช้งานการบันทึกทั้งหมด | TRUE |
ค่าเริ่มต้น ['องค์กร'] ['ชื่อ'] | ชื่อที่ใช้โดยตำราอาหาร 'องค์กร' ของเชฟ | ไฟร์โซน' |
ค่าเริ่มต้น ['firezone'] ['install_path'] | ติดตั้งเส้นทางที่ใช้โดยตำราอาหาร 'องค์กร' ของเชฟ ควรตั้งค่าเหมือนกับ install_directory ด้านบน | โหนด ['firezone'] ['install_directory'] |
ค่าเริ่มต้น ['firezone']['sysvinit_id'] | ตัวระบุที่ใช้ใน /etc/inittab. ต้องเป็นลำดับที่ไม่ซ้ำกัน 1-4 อักขระ | จีบ' |
ค่าเริ่มต้น ['firezone'] ['การรับรองความถูกต้อง'] ['ท้องถิ่น'] ['เปิดใช้งาน'] | เปิดหรือปิดใช้งานการตรวจสอบสิทธิ์อีเมล/รหัสผ่านในเครื่อง | TRUE |
ค่าเริ่มต้น ['firezone'] ['การรับรองความถูกต้อง'] ['auto_create_oidc_users'] | สร้างผู้ใช้ที่ลงชื่อเข้าใช้จาก OIDC โดยอัตโนมัติเป็นครั้งแรก ปิดใช้งานเพื่ออนุญาตให้เฉพาะผู้ใช้ปัจจุบันลงชื่อเข้าใช้ผ่าน OIDC | TRUE |
ค่าเริ่มต้น ['firezone'] ['การรับรองความถูกต้อง'] ['disable_vpn_on_oidc_error'] | ปิดใช้งาน VPN ของผู้ใช้หากตรวจพบข้อผิดพลาดขณะพยายามรีเฟรชโทเค็น OIDC | FALSE |
ค่าเริ่มต้น ['firezone'] ['การรับรองความถูกต้อง'] ['oidc'] | การกำหนดค่า OpenID Connect ในรูปแบบ {“provider” => [config…]} – ดู เอกสาร OpenIDConnect สำหรับตัวอย่างการกำหนดค่า | {} |
ค่าเริ่มต้น ['firezone'] ['nginx'] ['เปิดใช้งาน'] | เปิดหรือปิดใช้งานเซิร์ฟเวอร์ nginx ที่ให้มา | TRUE |
ค่าเริ่มต้น ['firezone']['nginx']['ssl_port'] | HTTPS ฟังพอร์ต | 443 |
ค่าเริ่มต้น ['firezone']['nginx']['ไดเรกทอรี'] | ไดเร็กทอรีเพื่อจัดเก็บการกำหนดค่าโฮสต์เสมือน nginx ที่เกี่ยวข้องกับ Firezone | “#{node['firezone']['var_directory']}/nginx/etc” |
ค่าเริ่มต้น ['firezone']['nginx']['log_directory'] | ไดเร็กทอรีสำหรับจัดเก็บไฟล์บันทึก nginx ที่เกี่ยวข้องกับ Firezone | “#{node['firezone']['log_directory']}/nginx” |
ค่าเริ่มต้น ['firezone']['nginx']['log_rotation']['file_maxbytes'] | ขนาดไฟล์ที่จะหมุนไฟล์บันทึก Nginx | 104857600 |
ค่าเริ่มต้น ['firezone']['nginx']['log_rotation']['num_to_keep'] | จำนวนไฟล์บันทึก Firezone nginx ที่จะเก็บไว้ก่อนที่จะละทิ้ง | 10 |
ค่าเริ่มต้น ['firezone']['nginx']['log_x_forwarded_for'] | ว่าจะบันทึก Firezone nginx x-forwarded-for header หรือไม่ | TRUE |
ค่าเริ่มต้น ['firezone']['nginx']['hsts_header']['enabled'] | TRUE | |
ค่าเริ่มต้น ['firezone']['nginx']['hsts_header']['include_subdomains'] | เปิดหรือปิดใช้งาน includeSubDomains สำหรับส่วนหัว HSTS | TRUE |
ค่าเริ่มต้น ['firezone']['nginx']['hsts_header']['max_age'] | อายุสูงสุดสำหรับส่วนหัว HSTS | 31536000 |
ค่าเริ่มต้น ['firezone']['nginx']['redirect_to_canonical'] | จะเปลี่ยนเส้นทาง URL ไปยัง Canonical FQDN ที่ระบุข้างต้นหรือไม่ | FALSE |
ค่าเริ่มต้น ['firezone'] ['nginx'] ['แคช'] ['เปิดใช้งาน'] | เปิดหรือปิดแคช Firezone nginx | FALSE |
ค่าเริ่มต้น ['firezone']['nginx']['แคช']['ไดเรกทอรี'] | ไดเร็กทอรีสำหรับแคช Firezone nginx | “#{node['firezone']['var_directory']}/nginx/cache” |
ค่าเริ่มต้น ['firezone'] ['nginx'] ['ผู้ใช้'] | ผู้ใช้ Firezone nginx | โหนด ['firezone'] ['ผู้ใช้'] |
ค่าเริ่มต้น ['firezone']['nginx']['group'] | กลุ่ม Firezone nginx | โหนด ['firezone'] ['กลุ่ม'] |
ค่าเริ่มต้น ['firezone']['nginx']['dir'] | ไดเร็กทอรีการกำหนดค่า nginx ระดับบนสุด | โหนด ['firezone'] ['nginx'] ['ไดเรกทอรี'] |
ค่าเริ่มต้น ['firezone']['nginx']['log_dir'] | ไดเรกทอรีบันทึก nginx ระดับบนสุด | โหนด ['firezone'] ['nginx'] ['log_directory'] |
ค่าเริ่มต้น ['firezone']['nginx']['pid'] | ตำแหน่งสำหรับไฟล์ nginx pid | “#{node['firezone']['nginx']['directory']}/nginx.pid” |
ค่าเริ่มต้น ['firezone']['nginx']['daemon_disable'] | ปิดใช้งานโหมด nginx daemon เพื่อให้เราตรวจสอบแทนได้ | TRUE |
ค่าเริ่มต้น ['firezone']['nginx']['gzip'] | เปิดหรือปิดการบีบอัด nginx gzip | บน' |
ค่าเริ่มต้น ['firezone']['nginx']['gzip_static'] | เปิดหรือปิดการบีบอัด nginx gzip สำหรับไฟล์สแตติก | ปิด' |
ค่าเริ่มต้น ['firezone']['nginx']['gzip_http_version'] | เวอร์ชัน HTTP เพื่อใช้สำหรับให้บริการไฟล์แบบสแตติก | 1.0 ' |
ค่าเริ่มต้น ['firezone']['nginx']['gzip_comp_level'] | ระดับการบีบอัด nginx gzip | 2 ' |
ค่าเริ่มต้น ['firezone']['nginx']['gzip_proxied'] | เปิดหรือปิดใช้งาน gzipping การตอบกลับสำหรับคำขอพร็อกซี ขึ้นอยู่กับคำขอและการตอบกลับ | ใดๆ' |
ค่าเริ่มต้น ['firezone']['nginx']['gzip_vary'] | เปิดหรือปิดใช้งานการแทรกส่วนหัวการตอบสนอง "Vary: Accept-Encoding" | ปิด' |
ค่าเริ่มต้น ['firezone']['nginx']['gzip_buffers'] | ตั้งค่าจำนวนและขนาดของบัฟเฟอร์ที่ใช้ในการบีบอัดการตอบสนอง ถ้าไม่มี จะใช้ค่าเริ่มต้นของ nginx | ศูนย์ |
ค่าเริ่มต้น ['firezone']['nginx']['gzip_types'] | ประเภท MIME เพื่อเปิดใช้งานการบีบอัด gzip สำหรับ | ['ข้อความ/ธรรมดา', 'ข้อความ/css','แอปพลิเคชัน/x-javascript', 'ข้อความ/xml', 'แอปพลิเคชัน/xml', 'แอปพลิเคชัน/rss+xml', 'แอปพลิเคชัน/atom+xml', ' ข้อความ/จาวาสคริปต์', 'แอปพลิเคชัน/จาวาสคริปต์', 'แอปพลิเคชัน/json'] |
ค่าเริ่มต้น ['firezone']['nginx']['gzip_min_length'] | ความยาวไฟล์ขั้นต่ำเพื่อเปิดใช้งานการบีบอัดไฟล์ gzip สำหรับ | 1000 |
ค่าเริ่มต้น ['firezone']['nginx']['gzip_disable'] | ตัวจับคู่ตัวแทนผู้ใช้เพื่อปิดใช้งานการบีบอัด gzip สำหรับ | MSIE [1-6]\.' |
ค่าเริ่มต้น ['firezone'] ['nginx'] ['keepalive'] | เปิดใช้งานแคชสำหรับการเชื่อมต่อกับเซิร์ฟเวอร์อัปสตรีม | บน' |
ค่าเริ่มต้น ['firezone']['nginx']['keepalive_timeout'] | หมดเวลาเป็นวินาทีสำหรับการเชื่อมต่อแบบ Keepalive กับเซิร์ฟเวอร์อัพสตรีม | 65 |
ค่าเริ่มต้น ['firezone']['nginx']['worker_processes'] | จำนวนกระบวนการของผู้ปฏิบัติงาน nginx | โหนด['cpu'] && โหนด['cpu']['total'] ? โหนด['cpu']['total'] : 1 |
ค่าเริ่มต้น ['firezone']['nginx']['worker_connections'] | จำนวนสูงสุดของการเชื่อมต่อพร้อมกันที่สามารถเปิดได้โดยกระบวนการของผู้ปฏิบัติงาน | 1024 |
ค่าเริ่มต้น ['firezone']['nginx']['worker_rlimit_nofile'] | เปลี่ยนขีดจำกัดของจำนวนไฟล์ที่เปิดสูงสุดสำหรับกระบวนการของผู้ปฏิบัติงาน ใช้ค่าเริ่มต้น nginx ถ้าไม่มี | ศูนย์ |
ค่าเริ่มต้น ['firezone']['nginx']['multi_accept'] | ผู้ปฏิบัติงานควรยอมรับการเชื่อมต่อหนึ่งครั้งหรือหลายครั้ง | TRUE |
ค่าเริ่มต้น ['firezone'] ['nginx'] ['เหตุการณ์'] | ระบุวิธีการประมวลผลการเชื่อมต่อเพื่อใช้ในบริบทเหตุการณ์ nginx | epol' |
ค่าเริ่มต้น ['firezone']['nginx']['server_tokens'] | เปิดใช้งานหรือปิดใช้งานการปล่อยเวอร์ชัน nginx ในหน้าข้อผิดพลาดและในฟิลด์ส่วนหัวการตอบสนอง "เซิร์ฟเวอร์" | ศูนย์ |
ค่าเริ่มต้น ['firezone']['nginx']['server_names_hash_bucket_size'] | ตั้งค่าขนาดบัคเก็ตสำหรับตารางแฮชชื่อเซิร์ฟเวอร์ | 64 |
ค่าเริ่มต้น ['firezone']['nginx']['sendfile'] | เปิดหรือปิดการใช้งาน sendfile() ของ nginx | บน' |
ค่าเริ่มต้น ['firezone']['nginx']['access_log_options'] | ตั้งค่าตัวเลือกบันทึกการเข้าถึง nginx | ศูนย์ |
ค่าเริ่มต้น ['firezone']['nginx']['error_log_options'] | ตั้งค่าตัวเลือกบันทึกข้อผิดพลาด nginx | ศูนย์ |
ค่าเริ่มต้น ['firezone']['nginx']['disable_access_log'] | ปิดใช้งานบันทึกการเข้าถึง nginx | FALSE |
ค่าเริ่มต้น ['firezone']['nginx']['types_hash_max_size'] | nginx ประเภทแฮชขนาดสูงสุด | 2048 |
ค่าเริ่มต้น ['firezone']['nginx']['types_hash_bucket_size'] | ขนาดถังแฮชประเภท nginx | 64 |
ค่าเริ่มต้น ['firezone']['nginx']['proxy_read_timeout'] | พร็อกซี nginx อ่านหมดเวลา ตั้งค่าเป็นศูนย์เพื่อใช้ค่าเริ่มต้น nginx | ศูนย์ |
ค่าเริ่มต้น ['firezone']['nginx']['client_body_buffer_size'] | ขนาดบัฟเฟอร์ของไคลเอนต์ nginx ตั้งค่าเป็นศูนย์เพื่อใช้ค่าเริ่มต้น nginx | ศูนย์ |
ค่าเริ่มต้น ['firezone']['nginx']['client_max_body_size'] | ขนาดสูงสุดของไคลเอนต์ nginx | 250m' |
ค่าเริ่มต้น ['firezone']['nginx']['default']['โมดูล'] | ระบุโมดูล nginx เพิ่มเติม | [] |
ค่าเริ่มต้น ['firezone']['nginx']['enable_rate_limiting'] | เปิดหรือปิดการจำกัดอัตรา nginx | TRUE |
ค่าเริ่มต้น ['firezone']['nginx']['rate_limiting_zone_name'] | ชื่อโซนจำกัดอัตรา Nginx | ไฟร์โซน' |
ค่าเริ่มต้น ['firezone']['nginx']['rate_limiting_backoff'] | อัตรา Nginx จำกัด การย้อนกลับ | 10m' |
ค่าเริ่มต้น ['firezone']['nginx']['rate_limit'] | ขีด จำกัด อัตรา Nginx | 10r/s' |
ค่าเริ่มต้น ['firezone']['nginx']['ipv6'] | อนุญาตให้ nginx รับฟังคำขอ HTTP สำหรับ IPv6 นอกเหนือจาก IPv4 | TRUE |
ค่าเริ่มต้น ['firezone'] ['postgresql'] ['เปิดใช้งาน'] | เปิดหรือปิดใช้งาน Postgresql ที่รวมไว้ ตั้งค่าเป็นเท็จและกรอกตัวเลือกฐานข้อมูลด้านล่างเพื่อใช้อินสแตนซ์ Postgresql ของคุณเอง | TRUE |
ค่าเริ่มต้น ['firezone']['postgresql']['ชื่อผู้ใช้'] | ชื่อผู้ใช้สำหรับ Postgresql | โหนด ['firezone'] ['ผู้ใช้'] |
ค่าเริ่มต้น ['firezone']['postgresql']['data_directory'] | ไดเรกทอรีข้อมูล Postgresql | “#{node['firezone']['var_directory']}/postgresql/13.3/data” |
ค่าเริ่มต้น ['firezone']['postgresql']['log_directory'] | ไดเรกทอรีบันทึก Postgresql | “#{node['firezone']['log_directory']}/postgresql” |
ค่าเริ่มต้น ['firezone']['postgresql']['log_rotation']['file_maxbytes'] | ขนาดไฟล์บันทึก Postgresql สูงสุดก่อนที่จะหมุน | 104857600 |
ค่าเริ่มต้น ['firezone']['postgresql']['log_rotation']['num_to_keep'] | จำนวนไฟล์บันทึก Postgresql ที่จะเก็บไว้ | 10 |
ค่าเริ่มต้น ['firezone']['postgresql']['checkpoint_completion_target'] | เป้าหมายการเสร็จสิ้นด่าน Postgresql | 0.5 |
ค่าเริ่มต้น ['firezone']['postgresql']['checkpoint_segments'] | จำนวนส่วนจุดตรวจสอบ Postgresql | 3 |
ค่าเริ่มต้น ['firezone']['postgresql']['checkpoint_timeout'] | การหมดเวลาของจุดตรวจสอบ Postgresql | 5 นาที |
ค่าเริ่มต้น ['firezone']['postgresql']['checkpoint_warning'] | เวลาเตือนจุดตรวจสอบ Postgresql เป็นวินาที | ทศวรรษ 30 |
ค่าเริ่มต้น ['firezone'] ['postgresql'] ['effect_cache_size'] | ขนาดแคชที่มีประสิทธิภาพของ Postgresql | 128MB' |
ค่าเริ่มต้น ['firezone']['postgresql']['listen_address'] | ที่อยู่ฟัง Postgresql | 127.0.0.1 ' |
ค่าเริ่มต้น ['firezone']['postgresql']['max_connections'] | Postgresql การเชื่อมต่อสูงสุด | 350 |
ค่าเริ่มต้น ['firezone']['postgresql']['md5_auth_cidr_addresses'] | Postgresql CIDR เพื่ออนุญาต md5 auth | ['127.0.0.1/32', '::1/128'] |
ค่าเริ่มต้น ['firezone']['postgresql']['พอร์ต'] | Postgresql ฟังพอร์ต | 15432 |
ค่าเริ่มต้น ['firezone']['postgresql']['shared_buffers'] | ขนาดบัฟเฟอร์ที่ใช้ร่วมกันของ Postgresql | “#{(node['memory']['total'].to_i / 4) / 1024}MB” |
ค่าเริ่มต้น ['firezone'] ['postgresql'] ['shmmax'] | Postgresql shmmax หน่วยเป็นไบต์ | 17179869184 |
ค่าเริ่มต้น ['firezone'] ['postgresql'] ['shmall'] | Postgresql shmall หน่วยเป็นไบต์ | 4194304 |
ค่าเริ่มต้น ['firezone']['postgresql']['work_mem'] | ขนาดหน่วยความจำทำงาน Postgresql | 8MB' |
ค่าเริ่มต้น ['firezone'] ['ฐานข้อมูล'] ['ผู้ใช้'] | ระบุชื่อผู้ใช้ที่ Firezone จะใช้เชื่อมต่อกับฐานข้อมูล | โหนด ['firezone'] ['postgresql'] ['ชื่อผู้ใช้'] |
ค่าเริ่มต้น ['firezone'] ['ฐานข้อมูล'] ['รหัสผ่าน'] | หากใช้ฐานข้อมูลภายนอก ให้ระบุรหัสผ่านที่ Firezone จะใช้เชื่อมต่อกับฐานข้อมูล | เปลี่ยนฉัน' |
ค่าเริ่มต้น ['firezone']['ฐานข้อมูล']['ชื่อ'] | ฐานข้อมูลที่ Firezone จะใช้ จะถูกสร้างขึ้นหากไม่มีอยู่ | ไฟร์โซน' |
ค่าเริ่มต้น ['firezone'] ['ฐานข้อมูล'] ['โฮสต์'] | โฮสต์ฐานข้อมูลที่ Firezone จะเชื่อมต่อด้วย | โหนด ['firezone'] ['postgresql'] ['listen_address'] |
ค่าเริ่มต้น ['firezone']['ฐานข้อมูล']['พอร์ต'] | พอร์ตฐานข้อมูลที่ Firezone จะเชื่อมต่อ | โหนด ['firezone'] ['postgresql'] ['พอร์ต'] |
ค่าเริ่มต้น ['firezone']['ฐานข้อมูล']['พูล'] | ขนาดพูลฐานข้อมูลที่ Firezone จะใช้ | [10, Etc.nโปรเซสเซอร์].สูงสุด |
ค่าเริ่มต้น ['firezone']['ฐานข้อมูล']['ssl'] | ไม่ว่าจะเชื่อมต่อกับฐานข้อมูลผ่าน SSL | FALSE |
ค่าเริ่มต้น ['firezone']['ฐานข้อมูล']['ssl_opts'] | {} | |
ค่าเริ่มต้น ['firezone'] ['ฐานข้อมูล'] ['พารามิเตอร์'] | {} | |
ค่าเริ่มต้น ['firezone']['ฐานข้อมูล']['ส่วนขยาย'] | ส่วนขยายฐานข้อมูลเพื่อเปิดใช้งาน | { 'plpgsql' => จริง, 'pg_trgm' => จริง } |
ค่าเริ่มต้น ['firezone'] ['ฟีนิกซ์'] ['เปิดใช้งาน'] | เปิดหรือปิดใช้งานเว็บแอปพลิเคชัน Firezone | TRUE |
ค่าเริ่มต้น ['firezone']['ฟีนิกซ์']['listen_address'] | แอปพลิเคชันเว็บ Firezone ฟังที่อยู่ นี่จะเป็นที่อยู่การฟังอัปสตรีมที่ผู้รับมอบฉันทะ nginx | 127.0.0.1 ' |
ค่าเริ่มต้น ['firezone'] ['ฟีนิกซ์'] ['พอร์ต'] | พอร์ตฟังแอปพลิเคชันเว็บ Firezone นี่จะเป็นพอร์ตอัพสตรีมที่พร็อกซี nginx | 13000 |
ค่าเริ่มต้น ['firezone']['ฟีนิกซ์']['log_directory'] | ไดเร็กทอรีบันทึกเว็บแอปพลิเคชัน Firezone | “#{node['firezone']['log_directory']}/ฟีนิกซ์” |
ค่าเริ่มต้น ['firezone']['ฟีนิกซ์']['log_rotation']['file_maxbytes'] | ขนาดไฟล์บันทึกของเว็บแอปพลิเคชัน Firezone | 104857600 |
ค่าเริ่มต้น ['firezone']['ฟีนิกซ์']['log_rotation']['num_to_keep'] | จำนวนไฟล์บันทึกของแอปพลิเคชันเว็บ Firezone ที่จะเก็บไว้ | 10 |
ค่าเริ่มต้น ['firezone']['ฟีนิกซ์']['crash_detection']['เปิดใช้งาน'] | เปิดหรือปิดใช้งานเว็บแอปพลิเคชัน Firezone เมื่อตรวจพบข้อขัดข้อง | TRUE |
ค่าเริ่มต้น ['firezone']['ฟีนิกซ์']['external_trusted_proxys'] | รายการพร็อกซีย้อนกลับที่เชื่อถือได้ซึ่งจัดรูปแบบเป็นอาร์เรย์ของ IP และ/หรือ CIDR | [] |
ค่าเริ่มต้น ['firezone']['ฟีนิกซ์']['private_clients'] | รายชื่อไคลเอนต์ HTTP ของเครือข่ายส่วนตัว จัดรูปแบบอาร์เรย์ของ IP และ/หรือ CIDR | [] |
ค่าเริ่มต้น ['firezone'] ['wireguard'] ['เปิดใช้งาน'] | เปิดหรือปิดการจัดการ WireGuard แบบรวม | TRUE |
ค่าเริ่มต้น ['firezone']['wireguard']['log_directory'] | ไดเร็กทอรีบันทึกสำหรับการจัดการ WireGuard แบบรวม | “#{node['firezone']['log_directory']}/wireguard” |
ค่าเริ่มต้น ['firezone']['wireguard']['log_rotation']['file_maxbytes'] | ขนาดสูงสุดของไฟล์บันทึก WireGuard | 104857600 |
ค่าเริ่มต้น ['firezone']['wireguard']['log_rotation']['num_to_keep'] | จำนวนไฟล์บันทึกของ WireGuard ที่จะเก็บไว้ | 10 |
ค่าเริ่มต้น ['firezone']['wireguard']['interface_name'] | ชื่ออินเตอร์เฟส WireGuard การเปลี่ยนพารามิเตอร์นี้อาจทำให้การเชื่อมต่อ VPN ขาดหายไปชั่วคราว | wg-firezone' |
ค่าเริ่มต้น ['firezone']['wireguard']['พอร์ต'] | พอร์ตฟัง WireGuard | 51820 |
ค่าเริ่มต้น ['firezone']['wireguard']['mtu'] | อินเทอร์เฟซ WireGuard MTU สำหรับเซิร์ฟเวอร์นี้และสำหรับการกำหนดค่าอุปกรณ์ | 1280 |
ค่าเริ่มต้น ['firezone']['wireguard']['endpoint'] | WireGuard Endpoint เพื่อใช้สำหรับสร้างการกำหนดค่าอุปกรณ์ หากเป็นศูนย์ จะใช้ค่าเริ่มต้นเป็นที่อยู่ IP สาธารณะของเซิร์ฟเวอร์ | ศูนย์ |
ค่าเริ่มต้น ['firezone'] ['wireguard'] ['dns'] | WireGuard DNS เพื่อใช้สำหรับการกำหนดค่าอุปกรณ์ที่สร้างขึ้น | 1.1.1.1, 1.0.0.1' |
ค่าเริ่มต้น ['firezone']['wireguard']['allowed_ips'] | WireGuard อนุญาตให้ IPs ใช้สำหรับการกำหนดค่าอุปกรณ์ที่สร้างขึ้น | 0.0.0.0/0, ::/0′ |
ค่าเริ่มต้น ['firezone']['wireguard']['persistent_keepalive'] | การตั้งค่า PersistentKeepalive เริ่มต้นสำหรับการกำหนดค่าอุปกรณ์ที่สร้างขึ้น ค่า 0 ปิดใช้งาน | 0 |
ค่าเริ่มต้น ['firezone'] ['wireguard'] ['ipv4'] ['เปิดใช้งาน'] | เปิดหรือปิดใช้งาน IPv4 สำหรับเครือข่าย WireGuard | TRUE |
ค่าเริ่มต้น ['firezone']['wireguard']['ipv4']['masquerade'] | เปิดหรือปิดใช้งานการปลอมตัวสำหรับแพ็กเก็ตที่ออกจากอุโมงค์ IPv4 | TRUE |
ค่าเริ่มต้น ['firezone']['wireguard']['ipv4']['เครือข่าย'] | กลุ่มที่อยู่ IPv4 ของเครือข่าย WireGuard | 10.3.2.0/24 ′ |
ค่าเริ่มต้น ['firezone']['wireguard']['ipv4']['ที่อยู่'] | ที่อยู่ IPv4 ของอินเตอร์เฟส WireGuard ต้องอยู่ภายในกลุ่มที่อยู่ WireGuard | 10.3.2.1 ' |
ค่าเริ่มต้น ['firezone'] ['wireguard'] ['ipv6'] ['เปิดใช้งาน'] | เปิดหรือปิดใช้งาน IPv6 สำหรับเครือข่าย WireGuard | TRUE |
ค่าเริ่มต้น ['firezone']['wireguard']['ipv6']['masquerade'] | เปิดหรือปิดใช้งานการปลอมตัวสำหรับแพ็กเก็ตที่ออกจากอุโมงค์ IPv6 | TRUE |
ค่าเริ่มต้น ['firezone']['wireguard']['ipv6']['เครือข่าย'] | กลุ่มที่อยู่ IPv6 ของเครือข่าย WireGuard | fd00::3:2:0/120′ |
ค่าเริ่มต้น ['firezone']['wireguard']['ipv6']['ที่อยู่'] | ที่อยู่ IPv6 ของอินเตอร์เฟส WireGuard ต้องอยู่ภายในกลุ่มที่อยู่ IPv6 | fd00::3:2:1' |
ค่าเริ่มต้น ['firezone']['runit']['svlogd_bin'] | ตำแหน่งถัง runit svlogd | “#{node['firezone']['install_directory']}/embedded/bin/svlogd” |
ค่าเริ่มต้น ['firezone']['ssl']['ไดเรกทอรี'] | ไดเร็กทอรี SSL สำหรับจัดเก็บใบรับรองที่สร้างขึ้น | /var/opt/firezone/ssl' |
ค่าเริ่มต้น ['firezone']['ssl']['email_address'] | ที่อยู่อีเมลเพื่อใช้สำหรับใบรับรองที่ลงนามด้วยตนเองและการแจ้งเตือนการต่ออายุโปรโตคอล ACME | คุณ@example.com' |
ค่าเริ่มต้น ['firezone']['ssl']['acme']['enabled'] | เปิดใช้งาน ACME สำหรับการจัดเตรียมใบรับรอง SSL อัตโนมัติ ปิดใช้งานสิ่งนี้เพื่อป้องกันไม่ให้ Nginx ฟังพอร์ต 80 ดู โปรดคลิกที่นี่เพื่ออ่านรายละเอียดเพิ่มเติม สำหรับคำแนะนำเพิ่มเติม | FALSE |
ค่าเริ่มต้น ['firezone']['ssl']['acme']['เซิร์ฟเวอร์'] | letsencrypt | |
ค่าเริ่มต้น ['firezone']['ssl']['acme']['keylength'] | ระบุประเภทคีย์และความยาวของใบรับรอง SSL ดู โปรดคลิกที่นี่เพื่ออ่านรายละเอียดเพิ่มเติม | อีซี-256 |
ค่าเริ่มต้น ['firezone']['ssl']['ใบรับรอง'] | เส้นทางไปยังไฟล์ใบรับรองสำหรับ FQDN ของคุณ ลบล้างการตั้งค่า ACME ด้านบน หากระบุไว้ หากทั้ง ACME และสิ่งนี้ไม่มี ใบรับรองที่ลงนามด้วยตนเองจะถูกสร้างขึ้น | ศูนย์ |
ค่าเริ่มต้น ['firezone']['ssl']['certificate_key'] | เส้นทางไปยังไฟล์ใบรับรอง | ศูนย์ |
ค่าเริ่มต้น ['firezone']['ssl']['ssl_dhparam'] | nginx ssl dh_param | ศูนย์ |
ค่าเริ่มต้น ['firezone']['ssl']['country_name'] | ชื่อประเทศสำหรับใบรับรองที่ลงนามด้วยตนเอง | เรา' |
ค่าเริ่มต้น ['firezone']['ssl']['state_name'] | ชื่อของรัฐสำหรับใบรับรองที่ลงนามด้วยตนเอง | CA ' |
ค่าเริ่มต้น ['firezone']['ssl']['locality_name'] | ชื่อท้องที่สำหรับใบรับรองที่ลงนามด้วยตนเอง | ซานฟรานซิสโก' |
ค่าเริ่มต้น ['firezone']['ssl']['company_name'] | ใบรับรองที่ลงนามด้วยตนเองชื่อบริษัท | บริษัท ของฉัน' |
ค่าเริ่มต้น ['firezone']['ssl']['organizational_unit_name'] | ชื่อหน่วยขององค์กรสำหรับใบรับรองที่ลงนามเอง | การดำเนินงาน' |
ค่าเริ่มต้น ['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’ |
ค่าเริ่มต้น ['firezone']['ssl']['fips_ciphers'] | รหัส SSL สำหรับโหมด FIP | FIPS@STRENGTH:!aNULL:!eNULL' |
ค่าเริ่มต้น ['firezone']['ssl']['โปรโตคอล'] | โปรโตคอล TLS ที่จะใช้ | TLSv1 TLSv1.1 TLSv1.2′ |
ค่าเริ่มต้น ['firezone']['ssl']['session_cache'] | แคชเซสชัน SSL | แชร์:SSL:4m' |
ค่าเริ่มต้น ['firezone']['ssl']['session_timeout'] | หมดเวลาเซสชัน SSL | 5m' |
ค่าเริ่มต้น ['firezone'] ['robots_allow'] | หุ่นยนต์ nginx อนุญาต | /' |
ค่าเริ่มต้น ['firezone']['robots_disallow'] | หุ่นยนต์ nginx ไม่อนุญาต | ศูนย์ |
ค่าเริ่มต้น ['firezone']['outbound_email']['จาก'] | อีเมลขาออกจากที่อยู่ | ศูนย์ |
ค่าเริ่มต้น ['firezone']['outbound_email']['ผู้ให้บริการ'] | ผู้ให้บริการอีเมลขาออก | ศูนย์ |
ค่าเริ่มต้น ['firezone']['outbound_email']['configs'] | การกำหนดค่าผู้ให้บริการอีเมลขาออก | ดูรถโดยสาร/ตำราอาหาร/firezone/attributes/default.rb |
ค่าเริ่มต้น ['firezone'] ['telemetry'] ['เปิดใช้งาน'] | เปิดหรือปิดใช้งาน telemetry ผลิตภัณฑ์ที่ไม่ระบุตัวตน | TRUE |
ค่าเริ่มต้น ['firezone']['connectivity_checks']['enabled'] | เปิดหรือปิดบริการตรวจสอบการเชื่อมต่อ Firezone | TRUE |
ค่าเริ่มต้น ['firezone']['connectivity_checks']['interval'] | ช่วงเวลาระหว่างการตรวจสอบการเชื่อมต่อเป็นวินาที | 3_600 |
________________________________________________________________
ที่นี่ คุณจะพบรายการไฟล์และไดเร็กทอรีที่เกี่ยวข้องกับการติดตั้ง Firezone ทั่วไป สิ่งเหล่านี้อาจเปลี่ยนแปลงได้ขึ้นอยู่กับการเปลี่ยนแปลงไฟล์กำหนดค่าของคุณ
เส้นทาง | ลักษณะ |
/var/opt/firezone | ไดเร็กทอรีระดับบนสุดที่มีข้อมูลและการกำหนดค่าที่สร้างขึ้นสำหรับบริการรวม Firezone |
/opt/ไฟร์โซน | ไดเร็กทอรีระดับบนสุดประกอบด้วยไลบรารี ไบนารี และไฟล์รันไทม์ที่จำเป็นสำหรับ Firezone |
/usr/bin/firezone-ctl | ยูทิลิตี้ firezone-ctl สำหรับจัดการการติดตั้ง Firezone ของคุณ |
/etc/systemd/system/firezone-runsvdir-start.service | ไฟล์ systemd unit สำหรับเริ่มกระบวนการ Firezone runvdir Supervisor |
/etc/firezone | ไฟล์การกำหนดค่า Firezone |
__________________________________________________________
หน้านี้ว่างเปล่าในเอกสาร
_____________________________________________________________
สามารถใช้เทมเพลตไฟร์วอลล์ nftables ต่อไปนี้เพื่อรักษาความปลอดภัยเซิร์ฟเวอร์ที่เรียกใช้ 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
ห่วงโซ่ไปข้างหน้า {
ประเภทตัวกรอง hook ตัวกรองลำดับความสำคัญไปข้างหน้า – 5; ยอมรับนโยบาย
}
# กฎสำหรับการเข้าชมอินพุต
อินพุตลูกโซ่ {
ประเภท ตัวกรอง เบ็ด ตัวกรองลำดับความสำคัญอินพุต; นโยบายลดลง
## อนุญาตการรับส่งข้อมูลขาเข้าไปยังอินเทอร์เฟซย้อนกลับ
ไอฟ โล \
ยอมรับ \
ความเห็น “อนุญาตการรับส่งข้อมูลทั้งหมดจากอินเทอร์เฟซย้อนกลับ”
## อนุญาตการเชื่อมต่อที่จัดตั้งขึ้นและที่เกี่ยวข้อง
สถานะ ct ก่อตั้งขึ้นที่เกี่ยวข้อง \
ยอมรับ \
ความเห็น “อนุญาตการเชื่อมต่อที่จัดตั้งขึ้น/ที่เกี่ยวข้อง”
## อนุญาตการรับส่งข้อมูล WireGuard ขาเข้า
ไอฟ $DEV_WAN UDP พอร์ต $WIREGUARD_PORT \
เคาน์เตอร์ \
ยอมรับ \
ความเห็น “อนุญาตการรับส่งข้อมูล WireGuard ขาเข้า”
## บันทึกและวางแพ็กเก็ต TCP non-SYN ใหม่
ธง tcp != syn ct สถานะใหม่ \
อัตราจำกัด 100/ระเบิดนาที 150 แพ็กเก็ต \
บันทึกคำนำหน้า “ใน – ใหม่ !SYN: “ \
ความเห็น “การบันทึกขีดจำกัดอัตราสำหรับการเชื่อมต่อใหม่ที่ไม่มีการตั้งค่าสถานะ SYN TCP”
ธง tcp != syn ct สถานะใหม่ \
เคาน์เตอร์ \
หยด \
ความเห็น “วางการเชื่อมต่อใหม่ที่ไม่มีการตั้งค่าสถานะ SYN TCP”
## บันทึกและปล่อยแพ็กเก็ต TCP ด้วยการตั้งค่าแฟล็ก Fin/syn ที่ไม่ถูกต้อง
ธง tcp & (fin|syn) == (fin|syn) \
อัตราจำกัด 100/ระเบิดนาที 150 แพ็กเก็ต \
บันทึกคำนำหน้า “ใน – TCP FIN | บาป: “ \
ความเห็น “การบันทึกขีดจำกัดอัตราสำหรับแพ็กเก็ต TCP ที่มีชุดแฟล็ก Fin/Syn ไม่ถูกต้อง”
ธง tcp & (fin|syn) == (fin|syn) \
เคาน์เตอร์ \
หยด \
ความเห็น “ปล่อยแพ็กเก็ต TCP ที่มีชุดแฟล็ก Fin/Syn ที่ไม่ถูกต้อง”
## บันทึกและปล่อยแพ็กเก็ต TCP ที่มีการตั้งค่าแฟล็ก Syn/rst ที่ไม่ถูกต้อง
ธง tcp & (syn|rst) == (syn|rst) \
อัตราจำกัด 100/ระเบิดนาที 150 แพ็กเก็ต \
บันทึกคำนำหน้า “ใน – TCP SYN | RST: “ \
ความเห็น “การบันทึกขีดจำกัดอัตราสำหรับแพ็กเก็ต TCP ที่มีการตั้งค่าแฟล็ก Syn/rst ที่ไม่ถูกต้อง”
ธง tcp & (syn|rst) == (syn|rst) \
เคาน์เตอร์ \
หยด \
ความเห็น “ปล่อยแพ็กเก็ต TCP ที่มีชุดธง syn/rst ที่ไม่ถูกต้อง”
## บันทึกและวางแฟล็ก TCP ที่ไม่ถูกต้อง
ธง tcp & (fin|syn|rst|psh|ack|urg) < (fin) \
อัตราจำกัด 100/ระเบิดนาที 150 แพ็กเก็ต \
บันทึกคำนำหน้า “อิน – ฟิน:” \
ความเห็น “การบันทึกขีดจำกัดอัตราสำหรับแฟล็ก TCP ที่ไม่ถูกต้อง (fin|syn|rst|psh|ack|urg) < (fin)"
ธง tcp & (fin|syn|rst|psh|ack|urg) < (fin) \
เคาน์เตอร์ \
หยด \
ความเห็น “วางแพ็กเก็ต TCP ด้วยแฟล็ก (fin|syn|rst|psh|ack|urg) < (fin)"
## บันทึกและวางแฟล็ก TCP ที่ไม่ถูกต้อง
ธง tcp & (fin|syn|rst|psh|ack|urg) == (fin|psh|urg) \
อัตราจำกัด 100/ระเบิดนาที 150 แพ็กเก็ต \
บันทึกคำนำหน้า “ใน – FIN | PSH | URL:” \
ความเห็น “การบันทึกขีดจำกัดอัตราสำหรับแฟล็ก TCP ที่ไม่ถูกต้อง (fin|syn|rst|psh|ack|urg) == (fin|psh|urg)"
ธง tcp & (fin|syn|rst|psh|ack|urg) == (fin|psh|urg) \
เคาน์เตอร์ \
หยด \
ความเห็น “วางแพ็กเก็ต TCP ด้วยแฟล็ก (fin|syn|rst|psh|ack|urg) == (fin|psh|urg)"
## ลดการรับส่งข้อมูลด้วยสถานะการเชื่อมต่อที่ไม่ถูกต้อง
ct สถานะไม่ถูกต้อง \
อัตราจำกัด 100/ระเบิดนาที 150 แพ็กเก็ต \
บันทึกแฟล็กคำนำหน้าทั้งหมด “ใน – ไม่ถูกต้อง: “ \
ความเห็น “การบันทึกขีดจำกัดอัตราสำหรับการรับส่งข้อมูลที่มีสถานะการเชื่อมต่อไม่ถูกต้อง”
ct สถานะไม่ถูกต้อง \
เคาน์เตอร์ \
หยด \
ความเห็น “ยกเลิกการรับส่งข้อมูลด้วยสถานะการเชื่อมต่อที่ไม่ถูกต้อง”
## อนุญาตการตอบสนอง ping/ping ของ IPv4 แต่จำกัดอัตราไว้ที่ 2000 PPS
ip โปรโตคอล icmp ประเภท icmp { echo-reply, echo-request } \
อัตราจำกัด 2000/ที่สอง \
เคาน์เตอร์ \
ยอมรับ \
ความเห็น “อนุญาต IPv4 ขาเข้า echo (ping) จำกัดที่ 2000 PPS”
## อนุญาต IPv4 ICMP ขาเข้าอื่นๆ ทั้งหมด
ip โปรโตคอล icmp \
เคาน์เตอร์ \
ยอมรับ \
ความเห็น “อนุญาต IPv4 ICMP อื่น ๆ ทั้งหมด”
## อนุญาตการตอบสนอง ping/ping ของ IPv6 แต่จำกัดอัตราไว้ที่ 2000 PPS
icmpv6 พิมพ์ { echo-reply, echo-request } \
อัตราจำกัด 2000/ที่สอง \
เคาน์เตอร์ \
ยอมรับ \
ความเห็น “อนุญาต IPv6 ขาเข้า echo (ping) จำกัดที่ 2000 PPS”
## อนุญาต IPv6 ICMP ขาเข้าอื่นๆ ทั้งหมด
เมตา l4proto { icmpv6 } \
เคาน์เตอร์ \
ยอมรับ \
ความเห็น “อนุญาต IPv6 ICMP อื่น ๆ ทั้งหมด”
## อนุญาตพอร์ต UDP traceroute ขาเข้า แต่จำกัดที่ 500 PPS
UDP พอร์ต 33434-33524 \
อัตราจำกัด 500/ที่สอง \
เคาน์เตอร์ \
ยอมรับ \
ความเห็น “อนุญาต UDP traceroute ขาเข้าจำกัดที่ 500 PPS”
## อนุญาต SSH ขาเข้า
ทีซีพี ดีพอร์ต SSH ct สถานะใหม่ \
เคาน์เตอร์ \
ยอมรับ \
ความเห็น “อนุญาตการเชื่อมต่อ SSH ขาเข้า”
## อนุญาต HTTP และ HTTPS ขาเข้า
tcp dport { http, https } ct สถานะใหม่ \
เคาน์เตอร์ \
ยอมรับ \
ความเห็น “อนุญาตการเชื่อมต่อ HTTP และ HTTPS ขาเข้า”
## บันทึกการรับส่งข้อมูลที่ไม่ตรงกัน แต่บันทึกอัตราสูงสุดที่ 60 ข้อความ/นาที
## นโยบายเริ่มต้นจะถูกนำไปใช้กับการเข้าชมที่ไม่ตรงกัน
อัตราจำกัด 60/ระเบิดนาที 100 แพ็กเก็ต \
บันทึกคำนำหน้า “ใน – วาง: “ \
ความเห็น “บันทึกการรับส่งข้อมูลที่ไม่ตรงกัน”
## นับการเข้าชมที่ไม่ตรงกัน
เคาน์เตอร์ \
ความเห็น “นับการเข้าชมที่ไม่ตรงกัน”
}
#กฎจราจรขาออก
เอาต์พุตลูกโซ่ {
ประเภทตัวกรองลำดับความสำคัญของเอาต์พุตของตะขอตัวกรอง; นโยบายลดลง
## อนุญาตทราฟฟิกขาออกไปยังอินเทอร์เฟซย้อนกลับ
อ๊อฟ โล \
ยอมรับ \
ความเห็น “อนุญาตทราฟฟิกทั้งหมดออกไปยังอินเทอร์เฟซย้อนกลับ”
## อนุญาตการเชื่อมต่อที่จัดตั้งขึ้นและที่เกี่ยวข้อง
สถานะ ct ก่อตั้งขึ้นที่เกี่ยวข้อง \
เคาน์เตอร์ \
ยอมรับ \
ความเห็น “อนุญาตการเชื่อมต่อที่จัดตั้งขึ้น/ที่เกี่ยวข้อง”
## อนุญาตทราฟฟิก WireGuard ขาออกก่อนที่จะทิ้งการเชื่อมต่อที่มีสถานะไม่ดี
อ๊อฟ $DEV_WAN ยูพีดี สปอร์ต $WIREGUARD_PORT \
เคาน์เตอร์ \
ยอมรับ \
ความเห็น “อนุญาตการรับส่งข้อมูลขาออกของ WireGuard”
## ลดการรับส่งข้อมูลด้วยสถานะการเชื่อมต่อที่ไม่ถูกต้อง
ct สถานะไม่ถูกต้อง \
อัตราจำกัด 100/ระเบิดนาที 150 แพ็กเก็ต \
บันทึกแฟล็กคำนำหน้าทั้งหมด “ออก – ไม่ถูกต้อง: “ \
ความเห็น “การบันทึกขีดจำกัดอัตราสำหรับการรับส่งข้อมูลที่มีสถานะการเชื่อมต่อไม่ถูกต้อง”
ct สถานะไม่ถูกต้อง \
เคาน์เตอร์ \
หยด \
ความเห็น “ยกเลิกการรับส่งข้อมูลด้วยสถานะการเชื่อมต่อที่ไม่ถูกต้อง”
## อนุญาต IPv4 ICMP ขาออกอื่นๆ ทั้งหมด
ip โปรโตคอล icmp \
เคาน์เตอร์ \
ยอมรับ \
ความเห็น “อนุญาต IPv4 ICMP ทุกประเภท”
## อนุญาต IPv6 ICMP ขาออกอื่นๆ ทั้งหมด
เมตา l4proto { icmpv6 } \
เคาน์เตอร์ \
ยอมรับ \
ความเห็น “อนุญาต IPv6 ICMP ทุกประเภท”
## อนุญาตพอร์ต UDP ของ traceroute ขาออก แต่จำกัดที่ 500 PPS
UDP พอร์ต 33434-33524 \
อัตราจำกัด 500/ที่สอง \
เคาน์เตอร์ \
ยอมรับ \
ความเห็น “อนุญาตการติดตาม UDP ขาออกจำกัดที่ 500 PPS”
## อนุญาตการเชื่อมต่อ HTTP และ HTTPS ขาออก
tcp dport { http, https } ct สถานะใหม่ \
เคาน์เตอร์ \
ยอมรับ \
ความเห็น “อนุญาตการเชื่อมต่อ HTTP และ HTTPS ขาออก”
## อนุญาตการส่ง SMTP ขาออก
tcp dport ส่ง ct สถานะใหม่ \
เคาน์เตอร์ \
ยอมรับ \
ความเห็น “อนุญาตการส่ง SMTP ขาออก”
## อนุญาตคำขอ DNS ขาออก
UDP พอร์ต 53 \
เคาน์เตอร์ \
ยอมรับ \
ความเห็น “อนุญาตคำขอ UDP DNS ขาออก”
ทีซีพี ดีพอร์ต 53 \
เคาน์เตอร์ \
ยอมรับ \
ความเห็น “อนุญาตคำขอ TCP DNS ขาออก”
## อนุญาตคำขอ NTP ขาออก
UDP พอร์ต 123 \
เคาน์เตอร์ \
ยอมรับ \
ความเห็น “อนุญาตคำขอ NTP ขาออก”
## บันทึกการรับส่งข้อมูลที่ไม่ตรงกัน แต่บันทึกอัตราสูงสุดที่ 60 ข้อความ/นาที
## นโยบายเริ่มต้นจะถูกนำไปใช้กับการเข้าชมที่ไม่ตรงกัน
อัตราจำกัด 60/ระเบิดนาที 100 แพ็กเก็ต \
บันทึกคำนำหน้า “ออก – วาง: “ \
ความเห็น “บันทึกการรับส่งข้อมูลที่ไม่ตรงกัน”
## นับการเข้าชมที่ไม่ตรงกัน
เคาน์เตอร์ \
ความเห็น “นับการเข้าชมที่ไม่ตรงกัน”
}
}
# ตารางการกรอง NAT หลัก
ตาราง inet แนท {
# กฎสำหรับการกำหนดเส้นทางการรับส่งข้อมูลล่วงหน้าของ NAT
การกำหนดเส้นทางลูกโซ่ {
พิมพ์ nat hook กำหนดลำดับความสำคัญก่อนกำหนด dstnat; ยอมรับนโยบาย
}
# กฎสำหรับการกำหนดเส้นทางการรับส่งข้อมูล NAT
# ตารางนี้ได้รับการประมวลผลก่อนห่วงโซ่เส้นทางหลัง Firezone
โซ่ postrouting {
พิมพ์ nat hook postrouting ลำดับความสำคัญ srcnat – 5; ยอมรับนโยบาย
}
}
ไฟร์วอลล์ควรเก็บไว้ในตำแหน่งที่เกี่ยวข้องสำหรับการแจกจ่าย Linux ที่กำลังทำงานอยู่ สำหรับ Debian/Ubuntu นี่คือ /etc/nftables.conf และสำหรับ RHEL นี่คือ /etc/sysconfig/nftables.conf
nftables.service จะต้องได้รับการกำหนดค่าให้เริ่มต้นเมื่อบูต (หากยังไม่ได้ตั้งค่า):
systemctl เปิดใช้งาน nftables.service
หากทำการเปลี่ยนแปลงใด ๆ กับเทมเพลตไฟร์วอลล์ ไวยากรณ์สามารถตรวจสอบได้โดยการรันคำสั่งตรวจสอบ:
nft -f /path/to/nftables.conf -c
ตรวจสอบให้แน่ใจว่าได้ตรวจสอบไฟร์วอลล์ทำงานตามที่คาดไว้ เนื่องจากคุณสมบัติบางอย่างของ nftables อาจไม่พร้อมใช้งาน ขึ้นอยู่กับรุ่นที่ทำงานบนเซิร์ฟเวอร์
_______________________________________________________________
เอกสารนี้แสดงภาพรวมของการวัดระยะไกลที่ Firezone รวบรวมจากอินสแตนซ์ที่โฮสต์เองและวิธีปิดใช้งาน
โซนไฟ อาศัย ในการวัดและส่งข้อมูลทางไกลเพื่อจัดลำดับความสำคัญของแผนงานของเราและเพิ่มประสิทธิภาพทรัพยากรด้านวิศวกรรมที่เรามีเพื่อทำให้ Firezone ดีขึ้นสำหรับทุกคน
การวัดและส่งข้อมูลทางไกลที่เรารวบรวมมีวัตถุประสงค์เพื่อตอบคำถามต่อไปนี้:
มีสถานที่หลักสามแห่งที่มีการรวบรวม telemetry ใน Firezone:
ในแต่ละบริบททั้งสามนี้ เรารวบรวมจำนวนข้อมูลขั้นต่ำที่จำเป็นในการตอบคำถามในส่วนด้านบน
ระบบจะรวบรวมอีเมลของผู้ดูแลระบบก็ต่อเมื่อคุณเลือกรับการอัปเดตผลิตภัณฑ์อย่างชัดแจ้งเท่านั้น มิฉะนั้น ข้อมูลส่วนบุคคลคือ ไม่เคย รวบรวม
Firezone จัดเก็บ telemetry ในอินสแตนซ์ที่โฮสต์เองของ PostHog ซึ่งทำงานในคลัสเตอร์ Kubernetes ส่วนตัว ซึ่งเข้าถึงได้โดยทีม Firezone เท่านั้น นี่คือตัวอย่างเหตุการณ์การวัดและส่งข้อมูลทางไกลที่ส่งจากอินสแตนซ์ Firezone ของคุณไปยังเซิร์ฟเวอร์การวัดและส่งข้อมูลทางไกลของเรา:
{
"Id": “0182272d-0b88-0000-d419-7b9a413713f1”,
“ประทับเวลา”: “2022-07-22T18:30:39.748000+00:00”,
"เหตุการณ์": “fz_http_started”,
“distinct_id”: “1ec2e794-1c3e-43fc-a78f-1db6d1a37f54”,
"คุณสมบัติ"{
“$geoip_city_name”: “แอชเบิร์น”,
“$geoip_continent_code”: “นา”,
“$geoip_continent_name”: "อเมริกาเหนือ",
“$geoip_country_code”: "เรา",
“$geoip_country_name”: "สหรัฐ",
“$geoip_latitude”: 39.0469,
“$geoip_ลองจิจูด”: -77.4903,
“$geoip_postal_code”: "20149",
“$geoip_subdivision_1_code”: “เวอร์จิเนีย”,
“$geoip_subdivision_1_name”: “เวอร์จิเนีย”,
“$geoip_time_zone”: “อเมริกา/นิวยอร์ก”,
“$ไอพี”: "52.200.241.107",
“$plugins_deferred”: []
“$plugins_failed”: []
“$plugins_succeeded”: [
“จีโอไอพี (3)”
],
“distinct_id”: “1zc2e794-1c3e-43fc-a78f-1db6d1a37f54”,
“fqdn”: “awsdemo.firezone.dev”,
“เคอร์เนล_เวอร์ชัน”: “ลินุกซ์ 5.13.0”,
“เวอร์ชั่น”: "0.4.6"
},
“องค์ประกอบ_chain”: ""
}
หมายเหตุ
ทีมพัฒนา Firezone อาศัย ในการวิเคราะห์ผลิตภัณฑ์เพื่อทำให้ Firezone ดีขึ้นสำหรับทุกคน การเปิดใช้งานการวัดและส่งข้อมูลทางไกลเป็นสิ่งเดียวที่มีค่าที่สุดที่คุณสามารถทำได้เพื่อพัฒนา Firezone อย่างไรก็ตาม เราเข้าใจว่าผู้ใช้บางรายมีข้อกำหนดด้านความเป็นส่วนตัวหรือความปลอดภัยที่สูงกว่า และต้องการปิดใช้งานการวัดและส่งข้อมูลทางไกลทั้งหมด หากเป็นคุณ อ่านต่อไป
Telemetry เปิดใช้งานโดยค่าเริ่มต้น หากต้องการปิดใช้งานการวัดและส่งข้อมูลทางไกลของผลิตภัณฑ์โดยสมบูรณ์ ให้ตั้งค่าตัวเลือกการกำหนดค่าต่อไปนี้เป็นเท็จใน /etc/firezone/firezone.rb และเรียกใช้ sudo firezone-ctl reconfigure เพื่อรับการเปลี่ยนแปลง
ค่าเริ่มต้น['โซนไฟ']['มาตร']['เปิดใช้งาน'] = เท็จ
ซึ่งจะปิดใช้งานการวัดและส่งข้อมูลทางไกลของผลิตภัณฑ์ทั้งหมดโดยสมบูรณ์
เฮลไบต์
9511 ควีนส์การ์ด Ct.
ลอเรล MD 20723
โทรศัพท์: (732) 771-9995
อีเมล: info@hailbytes.com