Hailbytes VPN 與 Firezone 防火牆文檔

目錄

開始行動

此處提供了使用 Firezone GUI 部署 Hailbytes VPN 的分步說明。 

管理:設置服務器實例與這部分直接相關。

用戶指南:可以教您如何使用 Firezone 並解決典型問題的有用文檔。 服務器部署成功後,請參考本節內容。

常用配置指南

拆分隧道:使用 VPN 僅將流量發送到特定的 IP 範圍。

白名單:設置 VPN 服務器的靜態 IP 地址以使用白名單。

反向隧道:使用反向隧道在多個對等點之間創建隧道。

獲取技術支持

如果您在安裝、定製或使用 Hailbytes VPN 時需要幫助,我們很樂意為您提供幫助。

認證

在用戶可以生成或下載設備配置文件之前,可以將 Firezone 配置為需要身份驗證。 用戶可能還需要定期重新進行身份驗證,以保持其 VPN 連接處於活動狀態。

雖然 Firezone 的默認登錄方法是本地電子郵件和密碼,但它也可以與任何標準化的 OpenID Connect (OIDC) 身份提供者集成。 用戶現在可以使用他們的 Okta、Google、Azure AD 或私有身份提供商憑據登錄 Firezone。

 

集成通用 OIDC 提供程序

下面的示例顯示了 Firezone 允許使用 OIDC 提供程序進行 SSO 所需的配置參數。 在 /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 提供商,請將此禁用

# 刷新訪問令牌有問題,因為它可能會意外中斷

# 用戶的 VPN 會話。

默認['firezone']['身份驗證']['disable_vpn_on_oidc_error'] = false

 

默認['firezone']['authentication']['oidc'] = {

  谷歌: {

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

    client_id:“ ”,

    客戶秘密:“ ”,

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

    響應類型:“代碼”,

    範圍:“openid 電子郵件配置文件”,

    標籤:“谷歌”

  },

  確定:{

    discovery_document_uri: “https:// /.well-known/openid-configuration”,

    client_id:“ ”,

    客戶秘密:“ ”,

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

    響應類型:“代碼”,

    範圍:“openid 電子郵件配置文件 offline_access”,

    標籤: “Okta”

  }

}



集成需要以下配置設置:

  1. discovery_document_uri: OpenID Connect 提供商配置 URI 它返回一個 JSON 文檔,用於構造對該 OIDC 提供商的後續請求。
  2. client_id:應用程序的客戶端 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 登錄屏幕上的按鈕標籤文本。

漂亮的網址

對於每個 OIDC 提供商,都會創建一個相應的漂亮 URL,用於重定向到已配置的提供商的登錄 URL。 對於上面的示例 OIDC 配置,URL 是:

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

使用流行的身份提供者設置 Firezone 的說明

我們有文檔的提供者:

  • 谷歌
  • 高層雲
  • Azure Active Directory
  • 登錄
  • 本地認證

 

如果您的身份提供商具有通用 OIDC 連接器並且未在上面列出,請轉到其文檔以獲取有關如何檢索必要配置設置的信息。

保持定期重新認證

設置/安全下的設置可以更改為需要定期重新驗證。 這可用於強制要求用戶定期進入 Firezone 以繼續其 VPN 會話。

會話長度可以配置為一小時到九十天之間。 通過將此項設置為從不,您可以隨時啟用 VPN 會話。 這是標準。

重新認證

用戶必須終止他們的 VPN 會話並登錄到 Firezone 門戶,以便重新驗證過期的 VPN 會話(在部署期間指定的 URL)。

您可以按照此處找到的精確客戶端說明重新驗證您的會話。

 

VPN 連接狀態

用戶頁面的 VPN 連接表列顯示用戶的連接狀態。 這些是連接狀態:

ENABLED – 連接已啟用。

DISABLED – 連接被管理員禁用或 OIDC 刷新失敗。

EXPIRED – 由於身份驗證過期或用戶未首次登錄,連接被禁用。

谷歌

通過通用 OIDC 連接器,Firezone 支持使用 Google Workspace 和 Cloud Identity 進行單點登錄 (SSO)。 本指南將向您展示如何獲取下面列出的配置參數,這些參數是集成所必需的:

  1. discovery_document_uri: OpenID Connect 提供商配置 URI 它返回一個 JSON 文檔,用於構造對該 OIDC 提供商的後續請求。
  2. client_id:應用程序的客戶端 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 客戶端 ID,系統會要求您配置同意屏幕。

*為用戶類型選擇內部。 這樣可以確保只有屬於您 Google Workspace 單位中的用戶的帳號才能創建設備配置。 不要選擇外部,除非您想讓擁有有效 Google 帳戶的任何人都可以創建設備配置。

 

在應用程序信息屏幕上:

  1. 應用程序名稱:Firezone
  2. 應用標誌: 火區徽標 (保存鏈接為)。
  3. 應用程序主頁:您的 Firezone 實例的 URL。
  4. 授權域:您的 Firezone 實例的頂級域。

 

 

2. 創建 OAuth 客戶端 ID

本節基於谷歌自己的文檔 設置 OAuth 2.0.

訪問谷歌云控制台 憑據頁面 頁面,單擊 + 創建憑據並選擇 OAuth 客戶端 ID。

在 OAuth 客戶端 ID 創建屏幕上:

  1. 將應用程序類型設置為 Web 應用程序
  2. 添加您的 Firezone EXTERNAL_URL + /auth/oidc/google/callback/(例如 https://instance-id.yourfirezone.com/auth/oidc/google/callback/)作為授權重定向 URI 的條目。

 

創建 OAuth 客戶端 ID 後,您將獲得一個客戶端 ID 和客戶端密碼。 這些將在下一步中與重定向 URI 一起使用。

火區整合

編輯 /etc/firezone/firezone.rb 包括以下選項:

 

# 使用 Google 作為 SSO 身份提供者

默認['firezone']['authentication']['oidc'] = {

  谷歌: {

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

    client_id:“ ”,

    客戶秘密:“ ”,

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

    響應類型:“代碼”,

    範圍:“openid 電子郵件配置文件”,

    標籤:“谷歌”

  }

}

 

運行 firezone-ctl reconfigure 和 firezone-ctl restart 來更新應用程序。 您現在應該會在根 Firezone URL 處看到一個“使用 Google 登錄”按鈕。

高層雲

Firezone 使用通用 OIDC 連接器來促進 Okta 的單點登錄 (SSO)。 本教程將向您展示如何獲取下面列出的配置參數,這些參數是集成所必需的:

  1. discovery_document_uri: OpenID Connect 提供商配置 URI 它返回一個 JSON 文檔,用於構造對該 OIDC 提供商的後續請求。
  2. client_id:應用程序的客戶端 ID。
  3. client_secret:應用程序的客戶端密碼。
  4. redirect_uri:指示 OIDC 提供商在身份驗證後重定向到哪裡。 這應該是您的 Firezone EXTERNAL_URL + /auth/oidc/ /回調/(例如 https://instance-id.yourfirezone.com/auth/oidc/okta/callback/)。
  5. response_type:設置為代碼。
  6. 範圍: OIDC 範圍 從您的 OIDC 提供商處獲取。 這應該設置為 openid email profile offline_access,以便在返回的聲明中向 Firezone 提供用戶的電子郵件。
  7. 標籤:顯示在 Firezone 登錄屏幕上的按鈕標籤文本。

 

集成 Okta 應用程序

本指南的這一部分是基於 Okta 的文檔.

在管理控制台中,轉到“應用程序”>“應用程序”,然後單擊“創建應用程序集成”。 將登錄方法設置為 OICD – OpenID Connect 並將應用程序類型設置為 Web 應用程序。

配置這些設置:

  1. 應用程序名稱:Firezone
  2. 應用標誌: 火區徽標 (保存鏈接為)。
  3. 授予類型:選中刷新令牌框。 這確保 Firezone 與身份提供者同步,並且一旦用戶被刪除,VPN 訪問就會終止。
  4. 登錄重定向 URI:將您的 Firezone EXTERNAL_URL + /auth/oidc/okta/callback/(例如 https://instance-id.yourfirezone.com/auth/oidc/okta/callback/)添加為授權重定向 URI 的條目.
  5. 分配:僅限於您希望提供對您的 Firezone 實例的訪問權限的組。

保存設置後,您將獲得一個客戶端 ID、客戶端密碼和 Okta 域。 這 3 個值將在第 2 步中用於配置 Firezone。

集成 Firezone

編輯 /etc/firezone/firezone.rb 包括以下選項。 你的 發現_文檔_url/.well-known/openid-configuration 附加到你的末尾 okta_域.

 

# 使用 Okta 作為 SSO 身份提供者

默認['firezone']['authentication']['oidc'] = {

  確定:{

    discovery_document_uri: “https:// /.well-known/openid-configuration”,

    client_id:“ ”,

    客戶秘密:“ ”,

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

    響應類型:“代碼”,

    範圍:“openid 電子郵件配置文件 offline_access”,

    標籤: “Okta”

  }

}

 

運行 firezone-ctl reconfigure 和 firezone-ctl restart 來更新應用程序。 您現在應該會在根 Firezone URL 處看到一個使用 Okta 登錄按鈕。

 

限制對某些用戶的訪問

Okta 可以限制可以訪問 Firezone 應用程序的用戶。 轉到 Okta 管理控制台的 Firezone 應用程序集成的分配頁面來完成此操作。

Azure Active Directory

通過通用 OIDC 連接器,Firezone 支持使用 Azure Active Directory 進行單點登錄 (SSO)。 本手冊將向您展示如何獲取下面列出的配置參數,這些參數是集成所必需的:

  1. discovery_document_uri: OpenID Connect 提供商配置 URI 它返回一個 JSON 文檔,用於構造對該 OIDC 提供商的後續請求。
  2. client_id:應用程序的客戶端 ID。
  3. client_secret:應用程序的客戶端密碼。
  4. redirect_uri:指示 OIDC 提供商在身份驗證後重定向到哪裡。 這應該是您的 Firezone EXTERNAL_URL + /auth/oidc/ /回調/(例如 https://instance-id.yourfirezone.com/auth/oidc/azure/callback/)。
  5. response_type:設置為代碼。
  6. 範圍: OIDC 範圍 從您的 OIDC 提供商處獲取。 這應該設置為 openid email profile offline_access,以便在返回的聲明中向 Firezone 提供用戶的電子郵件。
  7. 標籤:顯示在 Firezone 登錄屏幕上的按鈕標籤文本。

獲取配置設置

本指南摘自 Azure 活動目錄文檔.

 

轉到 Azure 門戶的 Azure Active Directory 頁面。 選擇“管理”菜單選項,選擇“新註冊”,然後通過提供以下信息進行註冊:

  1. 名稱:火區
  2. 支持的帳戶類型:(僅限默認目錄 - 單租戶)
  3. 重定向 URI:這應該是您的 firezone EXTERNAL_URL + /auth/oidc/azure/callback/(例如 https://instance-id.yourfirezone.com/auth/oidc/azure/callback/)。 確保包括尾部斜杠。 這將是 redirect_uri 值。

 

註冊後,打開應用的詳情視圖,複製 應用程序(客戶端)ID. 這將是 client_id 值。 接下來,打開端點菜單以檢索 OpenID Connect 元數據文檔. 這將是 discovery_document_uri 值。

 

通過單擊“管理”菜單下的“證書和機密”選項來創建新的客戶端機密。 複製客戶端密碼; 客戶秘密值將是這個。

 

最後,選​​擇“管理”菜單下的“API 權限”鏈接,單擊 添加權限,然後選擇 Microsoft Graph, 添加 電子郵件, Openid, 離線訪問輪廓 到所需的權限。

火區整合

編輯 /etc/firezone/firezone.rb 包括以下選項:

 

# 使用 Azure Active Directory 作為 SSO 身份提供者

默認['firezone']['authentication']['oidc'] = {

  天藍色:{

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

    client_id:“ ”,

    客戶秘密:“ ”,

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

    響應類型:“代碼”,

    範圍:“openid 電子郵件配置文件 offline_access”,

    標籤: “蔚藍”

  }

}

 

運行 firezone-ctl reconfigure 和 firezone-ctl restart 來更新應用程序。 您現在應該會在根 Firezone URL 處看到一個“使用 Azure 登錄”按鈕。

如何:限制對某些成員的訪問

Azure AD 使管理員能夠將應用程序訪問權限限制為公司內的特定用戶組。 有關如何執行此操作的更多信息,請參閱 Microsoft 的文檔。

管理

  • 配置
  • 管理安裝
  • 升級
  • 疑難解答
  • 安全注意事項
  • 運行 SQL 查詢

配置

Firezone 使用 Chef Omnibus 來管理任務,包括發布打包、流程監督、日誌管理等。

Ruby 代碼構成了位於 /etc/firezone/firezone.rb 的主要配置文件。 修改此文件後重新啟動 sudo firezone-ctl reconfigure 會使 Chef 識別更改並將它們應用到當前操作系統。

有關配置變量及其描述的完整列表,請參閱配置文件參考。

管理安裝

您的 Firezone 實例可以通過 火區控制 命令,如下圖。 大多數子命令需要前綴 須藤.

 

root@demo:~# firezone-ctl

omn​​ibus-ctl:命令(子命令)

通用命令:

  潔淨

    刪除*所有* firezone 數據,並從頭開始。

  創建或重置管理員

    使用默認指定的電子郵件重置管理員的密碼 ['firezone']['admin_email'] 或者如果該電子郵件不存在則創建一個新的管理員。

  幫助

    打印此幫助消息。

  重新配置

    重新配置應用程序。

  重置網絡

    將 nftables、WireGuard 接口和路由表重置為 Firezone 默認值。

  顯示配置

    顯示將由重新配置生成的配置。

  拆解網絡

    刪除 WireGuard 接口和 firezone nftables 表。

  強制證書更新

    立即強制更新證書,即使它尚未過期。

  停止證書更新

    刪除更新證書的 cronjob。

  卸載

    終止所有進程並卸載進程主管(數據將被保留)。

  版本

    顯示 Firezone 的當前版本

服務管理命令:

  優雅的殺死

    嘗試正常停止,然後 SIGKILL 整個進程組。

  哈普

    向服務發送 HUP。

  INT

    向服務發送 INT。

  殺

    向服務發送 KILL。

  一次

    如果服務已關閉,請啟動服務。 如果它們停止,請勿重新啟動它們。

  重新開始

    如果服務正在運行,請停止它們,然後重新啟動它們。

  服務列表

    列出所有服務(已啟用的服務帶有 *.)

  開始

    如果服務關閉則啟動服務,如果服務停止則重新啟動它們。

  狀態

    顯示所有服務的狀態。

  停止

    停止服務,不要重新啟動它們。

  尾巴

    查看所有已啟用服務的服務日誌。

  術語

    向服務發送 TERM。

  usr1

    向服務發送 USR1。

  usr2

    向服務發送 USR2。

升級

在升級 Firezone 之前必須終止所有 VPN 會話,這也需要關閉 Web UI。 如果升級過程中出現問題,我們建議預留一個小時進行維護。

 

要增強 Firezone,請執行以下操作:

  1. 使用單命令安裝升級 firezone 包:sudo -E bash -c “$(curl -fsSL https://github.com/firezone/firezone/raw/master/scripts/install.sh)”
  2. 運行 firezone-ctl reconfigure 以獲取新更改。
  3. 運行 firezone-ctl restart 重啟服務。

如果出現任何問題,請通過以下方式告知我們 提交支持票。

從 <0.5.0 升級到 >=0.5.0

0.5.0 中有一些必須解決的重大更改和配置修改。 在下面了解更多信息。

刪除了捆綁的 Nginx non_ssl_port (HTTP) 請求

從 0.5.0 版本開始,Nginx 不再支持強制 SSL 和非 SSL 端口參數。 因為 Firezone 需要 SSL 才能工作,我們建議通過設置 default['firezone']['nginx']['enabled'] = false 並將反向代理定向到端口 13000 上的 Phoenix 應用程序(默認情況下)來刪除捆綁 Nginx 服務).

ACME 協議支持

0.5.0 引入了 ACME 協議支持,用於使用捆綁的 Nginx 服務自動更新 SSL 證書。 啟用,

  • 確保 default['firezone']['external_url'] 包含解析為服務器公共 IP 地址的有效 FQDN。
  • 確保端口 80/tcp 可訪問
  • 在配置文件中使用 default['firezone']['ssl']['acme']['enabled'] = true 啟用 ACME 協議支持。

重疊出口規則目的地

添加具有重複目的地的規則的可能性在 Firezone 0.5.0 中消失了。 我們的遷移腳本會在升級到 0.5.0 的過程中自動識別這些情況,並且只保留目的地包含其他規則的規則。 如果沒問題,您無需執行任何操作。

否則,在升級之前,我們建議更改您的規則集以消除這些情況。

預配置 Okta 和 Google SSO

Firezone 0.5.0 移除了對舊式 Okta 和 Google SSO 配置的支持,支持新的、更靈活的基於 OIDC 的配置。 

如果您在 default['firezone']['authentication']['okta'] 或 default['firezone']['authentication']['google'] 鍵下有任何配置,您需要將它們遷移到我們的 OIDC -based 配置使用下面的指南。

現有的 Google OAuth 配置

從位於 /etc/firezone/firezone.rb 的配置文件中刪除這些包含舊 Google OAuth 配置的行

 

默認['firezone']['authentication']['google']['enabled']

默認['firezone']['authentication']['google']['client_id']

默認['firezone']['authentication']['google']['client_secret']

默認['firezone']['authentication']['google']['redirect_uri']

 

然後,按照此處的過程將 Google 配置為 OIDC 提供商。

(提供鏈接說明)<<<<<<<<<<<<<<<<

 

配置現有的 Google OAuth 

從位於的配置文件中刪除包含舊 Okta OAuth 配置的這些行 /etc/firezone/firezone.rb

 

默認['firezone']['authentication']['okta']['enabled']

默認['firezone']['authentication']['okta']['client_id']

默認['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 reconfigure 才能將更改應用到位於 /etc/firezone/firezone.rb 的 Firezone 配置文件。

對於已通過 OIDC 提供商身份驗證的用戶,如果 Firezone 能夠成功檢索刷新令牌,您將在 Web UI 的用戶詳細信息頁面中看到 OIDC 連接標題。

如果這不起作用,您將需要刪除現有的 OAuth 應用程序並重複 OIDC 設置步驟以 創建一個新的應用程序集成 .

我有一個現有的 OAuth 集成

在 0.3.11 之前,Firezone 使用預配置的 OAuth2 提供程序。 

遵循指示 請點擊這裡 遷移到 OIDC。

我沒有集成身份提供者

無需任何操作。 

您可以按照說明進行操作 請點擊這裡 通過 OIDC 提供商啟用 SSO。

從 0.3.1 升級到 >= 0.3.2

取而代之的是 default['firezone']['external url'] 替換了配置選項 default['firezone']['fqdn']。 

將此設置為公眾可以訪問的 Firezone 在線門戶的 URL。 如果未定義,它將默認為 https:// 加上服務器的 FQDN。

配置文件位於 /etc/firezone/firezone.rb。 有關配置變量及其描述的完整列表,請參閱配置文件參考。

從 0.2.x 升級到 0.3.x

從 0.3.0 版開始,Firezone 不再將設備私鑰保存在 Firezone 服務器上。 

Firezone Web UI 不允許您重新下載或查看這些配置,但任何現有設備都應繼續按原樣運行。

從 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 “默認['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 規則衝突。

隧道處於活動狀態時互聯網連接下降

如果您每次激活 WireGuard 隧道時 Internet 連接惡化,請確保 FORWARD 鏈允許數據包從您的 WireGuard 客戶端發送到您希望通過 Firezone 的位置。

 

如果您使用 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)

安全注意事項

我們建議限制對極其敏感和任務關鍵型生產部署的 Web 界面的訪問,如下所述。

服務與港口

 

服務

默認端口

收聽地址

產品描述

Nginx的

80,443

全部

用於管理 Firezone 和促進身份驗證的公共 HTTP(S) 端口。

線衛

51820

全部

用於 VPN 會話的公共 WireGuard 端口。 (UDP)

PostgreSQL

15432

127.0.0.1

用於捆綁的 Postgresql 服務器的僅限本地的端口。

鳳凰

13000

127.0.0.1

上游 elixir 應用服務器使用的僅限本地的端口。

生產部署

我們建議您考慮限制對 Firezone 公開暴露的 Web UI(默認端口 443/tcp 和 80/tcp)的訪問,而是使用 WireGuard 隧道來管理 Firezone 以進行生產和麵向公眾的部署,其中單個管理員將負責創建和分發設備配置給最終用戶。

 

例如,如果管理員創建了一個設備配置並使用本地 WireGuard 地址 10.3.2.2 創建了一個隧道,則以下 ufw 配置將使管理員能夠使用默認的 10.3.2.1 在服務器的 wg-firezone 界面上訪問 Firezone web UI隧道地址:

 

root@demo:~# ufw 狀態詳細

狀態:活躍

記錄:開(低)

默認值:拒絕(傳入)、允許(傳出)、允許(路由)

新配置文件:跳過

 

採取行動從

— — — —

22/tcp 允許在任何地方

51820/udp 允許在任何地方

10.3.2.2 允許的任何地方

22/tcp (v6) 允許在任何地方 (v6)

51820/udp (v6) 允許在任何地方 (v6)

這只會留下 22/TCP 公開用於 SSH 訪問以管理服務器(可選),以及 51820/UDP 暴露以建立 WireGuard 隧道。

運行 SQL 查詢

Firezone 捆綁了一個 Postgresql 服務器和匹配 PSQL 可以從本地 shell 使用的實用程序,如下所示:

 

/opt/firezone/嵌入式/bin/psql \

  -U火區\

  -d火區\

  -h 本地主機\

  -p 15432 \

  -c“SQL_語句”

 

這有助於調試目的。

 

常見任務:

 

  • 列出所有用戶
  • 列出所有設備
  • 更改用戶的角色
  • 備份數據庫



列出所有用戶:

 

/opt/firezone/嵌入式/bin/psql \

  -U火區\

  -d火區\

  -h 本地主機\

  -p 15432 \

  -c“從用戶中選擇*;”



列出所有設備:

 

/opt/firezone/嵌入式/bin/psql \

  -U火區\

  -d火區\

  -h 本地主機\

  -p 15432 \

  -c“從設備中選擇*;”



更改用戶角色:

 

將角色設置為“admin”或“unprivileged”:

 

/opt/firezone/嵌入式/bin/psql \

  -U火區\

  -d火區\

  -h 本地主機\

  -p 15432 \

  -c “更新用戶 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

使用說明書

  • 添加用戶
  • 添加設備
  • 出口規則
  • 客戶須知
  • 拆分隧道 VPN
  • 反向隧道 
  • NAT網關

添加用戶

成功部署 Firezone 後,您必須添加用戶以向他們提供對您網絡的訪問權限。 Web UI 用於執行此操作。

 

Web UI


通過選擇 /users 下的“添加用戶”按鈕,您可以添加用戶。 您將需要向用戶提供電子郵件地址和密碼。 為了允許自動訪問您組織中的用戶,Firezone 還可以與身份提供者進行交互和同步。 更多詳細信息,請訪問 認證. < 添加一個鏈接到 Authenticate

添加設備

我們建議要求用戶創建自己的設備配置,以便私鑰僅對他們可見。 用戶可以按照上面的說明生成自己的設備配置 客戶須知 頁。

 

生成管理設備配置

所有用戶設備配置都可以由 Firezone 管理員創建。 在位於 /users 的用戶配置文件頁面上,選擇“添加設備”選項來完成此操作。

 

[插入屏幕截圖]

 

創建設備配置文件後,您可以通過電子郵件向用戶發送 WireGuard 配置文件。

 

用戶和設備是關聯的。 有關如何添加用戶的更多詳細信息,請參閱 添加用戶.

出口規則

通過使用內核的 netfilter 系統,Firezone 啟用出口過濾功能以指定 DROP 或 ACCEPT 數據包。 通常允許所有流量。

 

分別通過允許列表和拒絕列表支持 IPv4 和 IPv6 CIDR 和 IP 地址。 您可以選擇在添加規則時將規則範圍限定到用戶,這會將規則應用於該用戶的所有設備。

客戶須知

安裝和配置

要使用本機 WireGuard 客戶端建立 VPN 連接,請參閱本指南。

 

1.安裝原生WireGuard客戶端

 

位於此處的官方 WireGuard 客戶端與 Firezone 兼容:

 

MacOS的

 

Windows

 

iOS

 

Android

 

訪問 WireGuard 官方網站 https://www.wireguard.com/install/ 了解上述未提及的操作系統。

 

2.下載設備配置文件

 

您的 Firezone 管理員或您自己都可以使用 Firezone 門戶生成設備配置文件。

 

訪問 Firezone 管理員提供的 URL 以自行生成設備配置文件。 您的公司將為此擁有一個唯一的 URL; 在這種情況下,它是 https://instance-id.yourfirezone.com。

 

登錄到 Firezone Okta SSO

 

[插入截圖]

 

3.添加客戶端的配置

 

通過打開 .conf 文件將其導入 WireGuard 客戶端。 通過翻轉激活開關,您可以啟動 VPN 會話。

 

[插入截圖]

會話重新認證

如果您的網絡管理員已強制執行重複身份驗證以保持您的 VPN 連接處於活動狀態,請按照以下說明進行操作。 



你需要:

 

Firezone 門戶的 URL:請向您的網絡管理員請求連接。

您的網絡管理員應該能夠提供您的登錄名和密碼。 Firezone 站點將提示您使用您的雇主使用的單點登錄服務(例如 Google 或 Okta)登錄。

 

1.關閉VPN連接

 

[插入截圖]

 

2.重新認證 

轉到 Firezone 門戶的 URL 並使用您的網絡管理員提供的憑據登錄。 如果您已經登錄,請在重新登錄前單擊重新驗證按鈕。

 

[插入截圖]

 

第 3 步:啟動 VPN 會話

[插入截圖]

Linux 網絡管理器

要在 Linux 設備上使用 Network Manager CLI 導入 WireGuard 配置文件,請按照這些說明 (nmcli) 進行操作。

注意

如果配置文件啟用了 IPv6 支持,嘗試使用網絡管理器 GUI 導入配置文件可能會失敗並出現以下錯誤:

ipv6.method:WireGuard 不支持方法“auto”

1. 安裝 WireGuard 工具 

有必要安裝 WireGuard 用戶空間實用程序。 對於 Linux 發行版,這將是一個名為 wireguard 或 wireguard-tools 的包。

對於 Ubuntu/Debian:

sudo apt 安裝 wireguard

要使用 Fedora:

sudo dnf 安裝 wireguard-tools

Arch Linux:

sudo pacman -S 線衛工具

訪問官方 WireGuard 網站 https://www.wireguard.com/install/ 獲取上面未提及的發行版。

2.下載配置 

您的 Firezone 管理員或自生成可以使用 Firezone 門戶生成設備配置文件。

訪問 Firezone 管理員提供的 URL 以自行生成設備配置文件。 您的公司將為此擁有一個唯一的 URL; 在這種情況下,它是 https://instance-id.yourfirezone.com。

[插入截圖]

3。 導入設置

使用 nmcli 導入提供的配置文件:

sudo nmcli 連接導入類型 wireguard 文件 /path/to/configuration.conf

注意

配置文件的名稱將對應於 WireGuard 連接/接口。 導入後,如有必要,可以重命名連接:

nmcli 連接修改 [舊名稱] connection.id [新名稱]

4.連接或斷開

通過命令行,連接到 VPN,如下所示:

nmcli 連接 [VPN 名稱]

斷開連接:

nmcli 連接斷開 [vpn 名稱]

如果使用 GUI,適用的網絡管理器小程序也可用於管理連接。

自動連接

通過為自動連接選項選擇“是”,可以將 VPN 連接配置為自動連接:

 

nmcli 連接修改 [vpn 名稱] 連接。 <<<<<<<<<<<<<<<<<<<<<<

 

自動連接是

 

要禁用自動連接,請將其設置回否:

 

nmcli 連接修改 [vpn 名稱] 連接。

 

自動連接號

使多重身份驗證可用

激活 MFA 轉到 Firezone 門戶的 /user account/register mfa 頁面。 生成二維碼後,使用您的驗證器應用程序掃描二維碼,然後輸入六位數代碼。

如果您放錯了身份驗證器應用程序,請聯繫您的管理員以重置您帳戶的訪問信息。

拆分隧道 VPN

本教程將引導您完成使用 Firezone 設置 WireGuard 的拆分隧道功能的過程,以便僅通過 VPN 服務器轉發到特定 IP 範圍的流量。

 

1.配置允許的IP 

客戶端將為其路由網絡流量的 IP 範圍在位於 /settings/default 頁面上的 Allowed IPs 字段中列出。 只有 Firezone 生成的新創建的 WireGuard 隧道配置會受到此字段更改的影響。

 

[插入截圖]



默認值為 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 – 只有在 3.5.140.1 – 3.5.143.254 範圍內的 IP 流量才會被路由到 VPN 服務器。 在此示例中,使用了 ap-northeast-2 AWS 區域的 CIDR 範圍。



注意

Firezone 在確定將數據包路由到何處時,首先選擇與最精確路由關聯的出口接口。

 

2. 重新生成 WireGuard 配置

用戶必須重新生成配置文件並將它們添加到其本機 WireGuard 客戶端,以便使用新的拆分隧道配置更新現有用戶設備。

 

有關說明,請參見 添加設備. <<<<<<<<<<< 添加鏈接

反向隧道

本手冊將演示如何使用 Firezone 作為中繼來鏈接兩個設備。 一個典型的用例是使管理員能夠訪問受 NAT 或防火牆保護的服務器、容器或機器。

 

節點到節點 

此圖顯示了設備 A 和 B 構建隧道的簡單場景。

 

[插入火區建築圖片]

 

首先通過導航到 /users/[user_id]/new_device 創建設備 A 和設備 B。 在每個設備的設置中,確保將以下參數設置為下面列出的值。 您可以在創建設備配置時設置設備設置(請參閱添加設備)。 如果您需要更新現有設備上的設置,您可以通過生成新的設備配置來實現。

 

請注意,所有設備都有一個 /settings/defaults 頁面,可以在其中配置 PersistentKeepalive。

 

設備A

 

允許的 IP = 10.3.2.2/32

  這是設備 B 的 IP 或 IP 範圍

持續保持活動 = 25

  如果設備位於 NAT 後面,這可確保設備能夠保持隧道活動並繼續從 WireGuard 接口接收數據包。 通常值 25 就足夠了,但您可能需要根據您的環境減小該值。



B裝置

 

允許的 IP = 10.3.2.3/32

這是設備 A 的 IP 或 IP 範圍

持續保持活動 = 25

管理案例 - 一對多節點

此示例顯示設備 A 可以通過 D 與設備 B 雙向通信的情況。 此設置可以表示工程師或管理員跨各種網絡訪問大量資源(服務器、容器或機器)。

 

【架構圖】<<<<<<<<<<<<<<<<<<<<<

 

請確保在每個設備的設置中將以下設置設置為相應的值。 創建設備配置時,您可以指定設備設置(請參閱添加設備)。 如果需要更新現有設備上的設置,則可以創建新的設備配置。

 

設備 A(管理員節點)

 

允許的 IP = 10.3.2.3/32、10.3.2.4/32、10.3.2.5/32 

    這是設備 B 到 D 的 IP。設備 B 到 D 的 IP 必須包含在您選擇設置的任何 IP 範圍內。

持續保持活動 = 25 

    這保證了設備可以維護隧道並繼續從 WireGuard 接口接收數據包,即使它受到 NAT 的保護。 在大多數情況下,值 25 就足夠了,但是根據您周圍的環境,您可能需要降低此數字。

 

設備B

 

  • AllowedIPs = 10.3.2.2/32:這是設備A的IP或IP範圍
  • 持續保持活動 = 25

裝置C

 

  • AllowedIPs = 10.3.2.2/32:這是設備A的IP或IP範圍
  • 持續保持活動 = 25

裝置D

 

  • AllowedIPs = 10.3.2.2/32:這是設備A的IP或IP範圍
  • 持續保持活動 = 25

NAT網關

要為您團隊的所有流量提供一個單一的靜態出口 IP,可以將 Firezone 用作 NAT 網關。 這些情況涉及它的頻繁使用:

 

諮詢服務:要求您的客戶將單個靜態 IP 地址列入白名單,而不是將每個員工的唯一設備 IP 地址列入白名單。

出於安全或隱私目的使用代理或屏蔽您的源 IP。

 

本文將演示一個簡單示例,該示例將對自託管 Web 應用程序的訪問限制為運行 Firezone 的單個列入白名單的靜態 IP。 在此圖中,Firezone 和受保護資源位於不同的 VPC 區域中。

 

此解決方案經常用於代替管理眾多最終用戶的 IP 白名單,隨著訪問列表的擴展,這可能會非常耗時。

實例

我們的目標是在 EC2 實例上設置一個 Firezone 服務器,將 VPN 流量重定向到受限資源。 在這種情況下,Firezone 充當網絡代理或 NAT 網關,為每個連接的設備提供唯一的公共出口 IP。

 

1.安裝Firezone服務器

在本例中,一個名為 tc2.micro 的 EC2 實例上安裝了一個 Firezone 實例。 有關部署 Firezone 的信息,請參閱部署指南。 關於 AWS,請確保:

 

Firezone EC2 實例的安全組允許出站流量到受保護資源的 IP 地址。

Firezone 實例帶有彈性 IP。 通過 Firezone 實例轉發到外部目的地的流量將以此作為其源 IP 地址。 有問題的 IP 地址是 52.202.88.54。

 

[插入截圖]<<<<<<<<<<<<<<<<<<<<<<<

 

2. 限制對受保護資源的訪問

在這種情況下,自託管 Web 應用程序充當受保護的資源。 Web 應用只能通過來自 IP 地址 52.202.88.54 的請求訪問。 根據資源的不同,可能需要允許各種端口和流量類型上的入站流量。 這在本手冊中沒有涉及。

 

[插入屏幕截圖]<<<<<<<<<<<<<<<<<<<<<<<

 

請告知負責受保護資源的第三方,必須允許來自步驟 1 中定義的靜態 IP 的流量(在本例中為 52.202.88.54)。

 

3. 使用 VPN 服務器將流量定向到受保護的資源

 

默認情況下,所有用戶流量都將通過 VPN 服務器並來自步驟 1 中配置的靜態 IP(在本例中為 52.202.88.54)。 但是,如果啟用了拆分隧道,則可能需要進行設置以確保受保護資源的目標 IP 列在允許的 IP 中。

在此處添加標題文字

下面顯示的是可用配置選項的完整列表 /etc/firezone/firezone.rb.



選項

描述

默認值

默認[‘firezone’][‘external_url’]

用於訪問此 Firezone 實例的 Web 門戶的 URL。

“https://#{節點['fqdn'] || 節點[‘主機名’]}”

默認['firezone'] ['config_directory']

Firezone 配置的頂級目錄。

/etc/火區'

默認['firezone']['install_directory']

安裝 Firezone 的頂級目錄。

/選擇/火區'

默認[‘firezone’][‘app_directory’]

用於安裝 Firezone Web 應用程序的頂級目錄。

“#{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 的日誌記錄。 設置為 false 以完全禁用日誌記錄。

TRUE

默認['企業']['名稱']

Chef“企業”食譜使用的名稱。

火區'

默認[‘firezone’][‘install_path’]

Chef 'enterprise' cookbook 使用的安裝路徑。 應設置為與上面的 install_directory 相同。

節點['firezone']['install_directory']

默認['firezone']['sysvinit_id']

/etc/inittab 中使用的標識符。 必須是 1-4 個字符的唯一序列。

槳板'

默認['firezone']['authentication']['local']['enabled']

啟用或禁用本地電子郵件/密碼身份驗證。

TRUE

默認['firezone']['身份驗證']['auto_create_oidc_users']

自動創建首次從 OIDC 登錄的用戶。 禁用以僅允許現有用戶通過 OIDC 登錄。

TRUE

默認['firezone']['身份驗證']['disable_vpn_on_oidc_error']

如果在嘗試刷新用戶的 OIDC 令牌時檢測到錯誤,則禁用用戶的 VPN。

默認['firezone']['authentication']['oidc']

OpenID Connect 配置,格式為 {“provider” => [config…]} – 請參閱 OpenIDConnect 文檔 配置示例。

{}

默認['firezone']['nginx']['enabled']

啟用或禁用捆綁的 nginx 服務器。

TRUE

默認['firezone']['nginx']['ssl_port']

HTTPS 偵聽端口。

443

默認['firezone']['nginx']['目錄']

存放 Firezone 相關 nginx 虛擬主機配置的目錄。

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

默認['firezone']['nginx']['log_directory']

存放 Firezone 相關的 nginx 日誌文件的目錄。

“#{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 標頭。

TRUE

默認['firezone']['nginx']['hsts_header']['enabled']

啟用或禁用 HSTS.

TRUE

默認['firezone']['nginx']['hsts_header']['include_subdomains']

為 HSTS 標頭啟用或禁用 includeSubDomains。

TRUE

默認['firezone']['nginx']['hsts_header']['max_age']

HSTS 標頭的最大年齡。

31536000

默認['firezone']['nginx']['redirect_to_canonical']

是否將 URL 重定向到上面指定的規範 FQDN

默認['firezone']['nginx']['緩存']['啟用']

啟用或禁用 Firezone nginx 緩存。

默認['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 守護進程模式,以便我們可以監控它。

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']

根據請求和響應啟用或禁用代理請求響應的 gzip 壓縮。

任何'

默認['firezone']['nginx']['gzip_vary']

啟用或禁用插入“Vary: Accept-Encoding”響應標頭。

離開'

默認['firezone']['nginx']['gzip_buffers']

設置用於壓縮響應的緩衝區的數量和大小。 如果為零,則使用 nginx 默認值。

默認['firezone']['nginx']['gzip_types']

啟用 gzip 壓縮的 MIME 類型。

['text/plain', 'text/css', 'application/x-javascript', 'text/xml', 'application/xml', 'application/rss+xml', 'application/atom+xml', '文本/javascript','應用程序/javascript','應用程序/json']

默認['firezone']['nginx']['gzip_min_length']

啟用文件 gzip 壓縮的最小文件長度。

1000

默認['firezone']['nginx']['gzip_disable']

禁用 gzip 壓縮的用戶代理匹配器。

MSIE [1-6]\.'

默認['firezone']['nginx']['keepalive']

激活緩存以連接到上游服務器。

上'

默認['firezone']['nginx']['keepalive_timeout']

與上游服務器保持連接的超時秒數。

65

默認['firezone']['nginx']['worker_processes']

nginx 工作進程數。

節點['cpu'] && 節點['cpu']['總計'] ? 節點['cpu']['總計']:1

默認['firezone']['nginx']['worker_connections']

工作進程可以同時打開的最大連接數。

1024

默認['firezone']['nginx']['worker_rlimit_nofile']

更改工作進程的最大打開文件數限制。 如果為 nil,則使用 nginx 默認值。

默認['firezone']['nginx']['multi_accept']

worker 應該一次接受一個連接還是多個連接。

TRUE

默認['firezone']['nginx']['event']

指定在 nginx 事件上下文中使用的連接處理方法。

epoll'

默認['firezone']['nginx']['server_tokens']

在錯誤頁面和“服務器”響應標頭字段中啟用或禁用發出 nginx 版本。

默認['firezone']['nginx']['server_names_hash_bucket_size']

設置服務器名稱哈希表的桶大小。

64

默認['firezone']['nginx']['sendfile']

啟用或禁用 nginx 的 sendfile() 的使用。

上'

默認['firezone']['nginx']['access_log_options']

設置 nginx 訪問日誌選項。

默認['firezone']['nginx']['error_log_options']

設置 nginx 錯誤日誌選項。

默認['firezone']['nginx']['disable_access_log']

禁用 nginx 訪問日誌。

默認['firezone']['nginx']['types_hash_max_size']

nginx 類型哈希最大大小。

2048

默認['firezone']['nginx']['types_hash_bucket_size']

nginx 類型哈希桶大小。

64

默認['firezone']['nginx']['proxy_read_timeout']

nginx 代理讀取超時。 設置為 nil 以使用 nginx 默認值。

默認['firezone']['nginx']['client_body_buffer_size']

nginx 客戶端正文緩衝區大小。 設置為 nil 以使用 nginx 默認值。

默認['firezone']['nginx']['client_max_body_size']

nginx 客戶端最大主體大小。

250m'

默認['firezone']['nginx']['默認']['模塊']

指定額外的 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 速率限制。

10轉/秒'

默認['firezone']['nginx']['ipv6']

除了 IPv6 之外,還允許 nginx 偵聽 IPv4 的 HTTP 請求。

TRUE

默認['firezone']['postgresql']['啟用']

啟用或禁用捆綁的 Postgresql。 設置為 false 並填寫下面的數據庫選項以使用您自己的 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']['effective_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']

允許 md5 身份驗證的 Postgresql CIDR。

['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、等n個處理器].max

默認['firezone']['數據庫']['ssl']

是否通過 SSL 連接到數據庫。

默認['firezone']['數據庫']['ssl_opts']

通過 SSL 連接時發送到 :ssl_opts 選項的選項哈希。 看 Ecto.Adapters.Postgres 文檔.

{}

默認['firezone']['數據庫']['參數']

連接到數據庫時發送到 :parameters 選項的參數哈希。 看 Ecto.Adapters.Postgres 文檔.

{}

默認['firezone']['數據庫']['擴展']

要啟用的數據庫擴展。

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

默認['firezone']['phoenix']['enabled']

啟用或禁用 Firezone 網絡應用程序。

TRUE

默認[‘firezone’][‘鳳凰’][‘listen_address’]

Firezone 網絡應用監聽地址。 這將是 nginx 代理的上游監聽地址。

127.0.0.1“

默認['firezone']['phoenix']['port']

Firezone Web 應用程序偵聽端口。 這將是 nginx 代理的上游端口。

13000

默認['firezone']['phoenix']['log_directory']

Firezone Web 應用程序日誌目錄。

“#{node['firezone']['log_directory']}/phoenix”

默認['firezone']['phoenix']['log_rotation']['file_maxbytes']

Firezone Web 應用程序日誌文件大小。

104857600

默認['firezone']['phoenix']['log_rotation']['num_to_keep']

要保留的 Firezone Web 應用程序日誌文件的數量。

10

默認['firezone']['phoenix']['crash_detection']['enabled']

啟用或禁用在檢測到崩潰時關閉 Firezone Web 應用程序。

TRUE

默認['firezone']['phoenix']['external_trusted_proxies']

格式為 IP 和/或 CIDR 數組的受信任反向代理列表。

[]

默認['firezone']['phoenix']['private_clients']

專用網絡 HTTP 客戶端列表,格式化為 IP 和/或 CIDR 數組。

[]

默認['firezone']['wireguard']['enabled']

啟用或禁用捆綁的 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']['port']

WireGuard 偵聽端口。

51820

默認['firezone']['wireguard']['mtu']

此服務器和設備配置的 WireGuard 接口 MTU。

1280

默認['firezone']['wireguard']['endpoint']

用於生成設備配置的 WireGuard 端點。 如果為 nil,則默認為服務器的公共 IP 地址。

默認['firezone']['wireguard']['dns']

WireGuard DNS 用於生成的設備配置。

1.1.1.1、1.0.0.1'

默認['firezone']['wireguard']['allowed_ips']

WireGuard 允許 IP 用於生成的設備配置。

0.0.0.0/0,::/0′

默認['firezone']['wireguard']['persistent_keepalive']

生成的設備配置的默認 PersistentKeepalive 設置。 值為 0 禁用。

0

默認['firezone']['wireguard']['ipv4']['enabled']

為 WireGuard 網絡啟用或禁用 IPv4。

TRUE

默認['firezone']['wireguard']['ipv4']['masquerade']

為離開 IPv4 隧道的數據包啟用或禁用偽裝。

TRUE

默認['firezone']['wireguard']['ipv4']['網絡']

WireGuard 網絡 IPv4 地址池。

10.3.2.0/24'

默認['firezone']['wireguard']['ipv4']['地址']

WireGuard 接口 IPv4 地址。 必須在 WireGuard 地址池中。

10.3.2.1“

默認['firezone']['wireguard']['ipv6']['enabled']

為 WireGuard 網絡啟用或禁用 IPv6。

TRUE

默認['firezone']['wireguard']['ipv6']['masquerade']

為離開 IPv6 隧道的數據包啟用或禁用偽裝。

TRUE

默認['firezone']['wireguard']['ipv6']['網絡']

WireGuard 網絡 IPv6 地址池。

fd00::3:2:0/120′

默認['firezone']['wireguard']['ipv6']['地址']

WireGuard 接口 IPv6 地址。 必須在 IPv6 地址池中。

fd00::3:2:1′

默認['firezone']['runit']['svlogd_bin']

運行 svlogd bin 位置。

“#{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']

為自動 SSL 證書配置啟用 ACME。 禁用此項以防止 Nginx 偵聽端口 80。請參閱 請點擊這裡 更多說明。

默認['firezone']['ssl']['acme']['server']

用於證書頒發/更新的 ACME 服務器。 可以是任何 有效的 acme.sh 服務器

letsencrypt

默認['firezone']['ssl']['acme']['keylength']

指定 SSL 證書的密鑰類型和長度。 看 請點擊這裡

EC-256

默認['firezone']['ssl']['證書']

FQDN 的證書文件的路徑。 如果指定,則覆蓋上面的 ACME 設置。 如果 ACME 和 this 都為 nil,將生成一個自簽名證書。

默認['firezone']['ssl']['certificate_key']

證書文件的路徑。

默認['firezone']['ssl']['ssl_dhparam']

nginx ssl dh_param。

默認['firezone']['ssl']['country_name']

自簽名證書的國家/地區名稱。

我們'

默認['firezone']['ssl']['state_name']

自簽名證書的狀態名稱。

'

默認['firezone']['ssl']['locality_name']

自簽名證書的位置名稱。

舊金山'

默認['firezone']['ssl']['company_name']

公司名稱自簽名證書。

我的公司'

默認['firezone']['ssl']['organizational_unit_name']

自簽名證書的組織單位名稱。

操作'

默認['firezone']['ssl']['密碼']

供 nginx 使用的 SSL 密碼。

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']

FIPs 模式的 SSL 密碼。

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']['from']

來自地址的出站電子郵件。

默認['firezone']['outbound_email']['provider']

出站電子郵件服務提供商。

默認['firezone']['outbound_email']['configs']

出站電子郵件提供商配置。

參見 omnibus/cookbooks/firezone/attributes/default.rb

默認['firezone']['遙測']['啟用']

啟用或禁用匿名產品遙測。

TRUE

默認['firezone']['connectivity_checks']['enabled']

啟用或禁用 Firezone 連接檢查服務。

TRUE

默認['firezone']['connectivity_checks']['interval']

連接檢查之間的間隔(以秒為單位)。

3_600



________________________________________________________________

 

文件和目錄位置

 

在這裡您會找到與典型 Firezone 安裝相關的文件和目錄列表。 這些可能會根據配置文件的更改而更改。



路徑

描述

/var/opt/firezone

包含 Firezone 捆綁服務的數據和生成配置的頂級目錄。

/選擇/火區

包含 Firezone 所需的構建庫、二進製文件和運行時文件的頂級目錄。

/usr/bin/firezone-ctl

用於管理 Firezone 安裝的 firezone-ctl 實用程序。

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

用於啟動 Firezone runsvdir 主管進程的 systemd 單元文件。

/etc/火區

火區配置文件。



__________________________________________________________

 

防火牆模板

 

此頁面在文檔中為空

 

_____________________________________________________________

 

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(ping/ping 響應速率限制為 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 規則,以允許/拒絕到 Web 界面中配置的目的地的流量,並處理客戶端流量的出站 NAT。

在已經運行的服務器上應用以下防火牆模板(不是在啟動時)將導致 Firezone 規則被清除。 這可能具有安全隱患。

要解決此問題,請重新啟動 phoenix 服務:

firezone-ctl 重啟鳳凰

基礎防火牆模板

#!/usr/sbin/nft -f

 

## 清除/刷新所有現有規則

刷新規則集

 

################################變量################# ###############

## 互聯網/廣域網接口名稱

定義 DEV_WAN = eth0

 

## WireGuard 接口名稱

定義 DEV_WIREGUARD = wg-firezone

 

## WireGuard 監聽端口

定義 WIREGUARD_PORT = 51820

############################## 變量結束################## ############

 

# 主 inet 家族過濾表

表 inet 過濾器 {

 

 # 轉發流量的規則

 # 該鏈在 Firezone 前向鏈之前處理

 連鎖前進{

   類型過濾器掛鉤前向優先級過濾器 – 5; 政策接受

 }

 

 # 輸入流量規則

 鏈輸入{

   type filter hook 輸入優先過濾器; 政策下降

 

   ## 允許入站流量到環回接口

   iif lo \

     接受 \

     評論 “允許來自環回接口的所有流量”

 

   ## 允許建立和相關的連接

   ct狀態成立,相關\

     接受 \

     評論 “允許建立/相關連接”

 

   ## 允許入站 WireGuard 流量

   if $DEV_WAN udp傳輸端口 $WIREGUARD_PORT \

     櫃檯 \

     接受 \

     評論 “允許入站 WireGuard 流量”

 

   ## 記錄並丟棄新的 TCP 非 SYN 數據包

   tcp 標誌 != syn ct state new \

     限價 100/分鐘爆發 150 數據包\

     日誌前綴 “在——新的!SYN:” \

     評論 “未設置 SYN TCP 標誌的新連接的速率限制日誌記錄”

   tcp 標誌 != syn ct state new \

     櫃檯 \

     降低 \

     評論 “丟棄沒有設置 SYN TCP 標誌的新連接”

 

   ## 記錄並丟棄設置了無效 fin/syn 標誌的 TCP 數據包

   TCP 標誌 & (fin|syn) == (fin|syn) \

     限價 100/分鐘爆發 150 數據包\

     日誌前綴 “IN – TCP FIN|SIN:” \

     評論 “具有無效 fin/syn 標誌集的 TCP 數據包的速率限制日誌記錄”

   TCP 標誌 & (fin|syn) == (fin|syn) \

     櫃檯 \

     降低 \

     評論 “丟棄設置了無效 fin/syn 標誌的 TCP 數據包”

 

   ## 記錄並丟棄設置了無效 syn/rst 標誌的 TCP 數據包

   TCP 標誌 & (syn|rst) == (syn|rst) \

     限價 100/分鐘爆發 150 數據包\

     日誌前綴 “IN – TCP SYN|RST:” \

     評論 “設置了無效 syn/rst 標誌的 TCP 數據包的速率限制日誌記錄”

   TCP 標誌 & (syn|rst) == (syn|rst) \

     櫃檯 \

     降低 \

     評論 “丟棄設置了無效 syn/rst 標誌的 TCP 數據包”

 

   ## 記錄並刪除無效的 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 數據包\

     日誌前綴 “IN – FIN|PSH|URG:” \

     評論 “無效 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 數據包\

     日誌標記所有前綴 “IN——無效:” \

     評論 “具有無效連接狀態的流量的速率限制日誌記錄”

   ct狀態無效\

     櫃檯 \

     降低 \

     評論 “丟棄連接狀態無效的流量”

 

   ## 允許 IPv4 ping/ping 響應但速率限制為 2000 PPS

   ip 協議 icmp icmp 類型 { echo-r​​eply, echo-r​​equest } \

     限價 2000/第二 \

     櫃檯 \

     接受 \

     評論 “允許入站 IPv4 回顯 (ping) 限制為 2000 PPS”

 

   ## 允許所有其他入站 IPv4 ICMP

   ip 協議 icmp \

     櫃檯 \

     接受 \

     評論 “允許所有其他 IPv4 ICMP”

 

   ## 允許 IPv6 ping/ping 響應但速率限制為 2000 PPS

   icmpv6 類型 { echo-r​​eply, echo-r​​equest } \

     限價 2000/第二 \

     櫃檯 \

     接受 \

     評論 “允許入站 IPv6 回顯 (ping) 限制為 2000 PPS”

 

   ## 允許所有其他入站 IPv6 ICMP

   元 l4proto { icmpv6 } \

     櫃檯 \

     接受 \

     評論 “允許所有其他 IPv6 ICMP”

 

   ## 允許入站 traceroute UDP 端口但限制​​為 500 PPS

   udp傳輸端口 33434-33524\

     限價 500/第二 \

     櫃檯 \

     接受 \

     評論 “允許入站 UDP traceroute 限制為 500 PPS”

 

   ## 允許入站 SSH

   TCP傳輸端口 SSH ct狀態新\

     櫃檯 \

     接受 \

     評論 “允許入站 SSH 連接”

 

   ## 允許入站 HTTP 和 HTTPS

   tcp dport { http, https } ct 狀態新\

     櫃檯 \

     接受 \

     評論 “允許入站 HTTP 和 HTTPS 連接”

 

   ## 記錄任何不匹配的流量,但將記錄速率限制為最多 60 條消息/分鐘

   ## 默認策略將應用於不匹配的流量

   限價 60/分鐘爆發 100 數據包\

     日誌前綴 “IN——掉落:” \

     評論 “記錄任何不匹配的流量”

 

   ## 統計不匹配的流量

   櫃檯 \

     評論 “計算任何不匹配的流量”

 }

 

 # 輸出流量的規則

 鏈輸出{

   type filter hook 輸出優先過濾器; 政策下降

 

   ## 允許出站流量到環回接口

   奧伊夫洛\

     接受 \

     評論 “允許所有流量流出到環回接口”

 

   ## 允許建立和相關的連接

   ct狀態成立,相關\

     櫃檯 \

     接受 \

     評論 “允許建立/相關連接”

 

   ## 在丟棄狀態不佳的連接之前允許出站 WireGuard 流量

   油煙機 $DEV_WAN 體育運動 $WIREGUARD_PORT \

     櫃檯 \

     接受 \

     評論 “允許 WireGuard 出站流量”

 

   ## 丟棄連接狀態無效的流量

   ct狀態無效\

     限價 100/分鐘爆發 150 數據包\

     日誌標記所有前綴 “OUT——無效:” \

     評論 “具有無效連接狀態的流量的速率限制日誌記錄”

   ct狀態無效\

     櫃檯 \

     降低 \

     評論 “丟棄連接狀態無效的流量”

 

   ## 允許所有其他出站 IPv4 ICMP

   ip 協議 icmp \

     櫃檯 \

     接受 \

     評論 “允許所有 IPv4 ICMP 類型”

 

   ## 允許所有其他出站 IPv6 ICMP

   元 l4proto { icmpv6 } \

     櫃檯 \

     接受 \

     評論 “允許所有 IPv6 ICMP 類型”

 

   ## 允許出站 traceroute UDP 端口但限制​​為 500 PPS

   udp傳輸端口 33434-33524\

     限價 500/第二 \

     櫃檯 \

     接受 \

     評論 “允許出站 UDP traceroute 限制為 500 PPS”

 

   ## 允許出站 HTTP 和 HTTPS 連接

   tcp dport { http, https } ct 狀態新\

     櫃檯 \

     接受 \

     評論 “允許出站 HTTP 和 HTTPS 連接”

 

   ## 允許出站 SMTP 提交

   tcp dport 提交 ct 狀態 new \

     櫃檯 \

     接受 \

     評論 “允許出站 SMTP 提交”

 

   ## 允許出站 DNS 請求

   udp傳輸端口 53 \

     櫃檯 \

     接受 \

     評論 “允許出站 UDP DNS 請求”

   TCP傳輸端口 53 \

     櫃檯 \

     接受 \

     評論 “允許出站 TCP DNS 請求”

 

   ## 允許出站 NTP 請求

   udp傳輸端口 123 \

     櫃檯 \

     接受 \

     評論 “允許出站 NTP 請求”

 

   ## 記錄任何不匹配的流量,但將記錄速率限制為最多 60 條消息/分鐘

   ## 默認策略將應用於不匹配的流量

   限價 60/分鐘爆發 100 數據包\

     日誌前綴 “OUT——掉落:” \

     評論 “記錄任何不匹配的流量”

 

   ## 統計不匹配的流量

   櫃檯 \

     評論 “計算任何不匹配的流量”

 }

 

}

 

# 主 NAT 過濾表

表 inet nat {

 

 # NAT 流量預路由規則

 鏈預路由{

   鍵入 nat hook 預路由優先級 dstnat; 政策接受

 }

 

 # NAT 流量後路由規則

 # 這個表在 Firezone 後路由鏈之前被處理

 鏈後路由{

   輸入 nat hook postrouting priority 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 收集遙測數據

火區 依靠 在遙測上優先考慮我們的路線圖並優化我們擁有的工程資源,使 Firezone 對每個人都更好。

我們收集的遙測數據旨在回答以下問題:

  • 有多少人安裝、使用和停止使用 Firezone?
  • 哪些功能最有價值,哪些沒有用?
  • 什麼功能最需要改進?
  • 什麼東西壞了,為什麼壞了,以後怎麼防止它發生?

我們如何收集遙測數據

Firezone 中收集遙測數據的三個主要位置:

  1. 包遙測。 包括安裝、卸載和升級等事件。
  2. 來自 firezone-ctl 命令的 CLI 遙測。
  3. 與 Web 門戶關聯的產品遙測。

在這三種情況中的每一種情況下,我們都會獲取回答上一節中的問題所需的最少數據量。

僅當您明確選擇加入產品更新時才會收集管理員電子郵件。 否則,個人身份信息是 決不 集。

Firezone 將遙測數據存儲在運行在私有 Kubernetes 集群中的自託管 PostHog 實例中,只能由 Firezone 團隊訪問。 以下是從您的 Firezone 實例發送到我們的遙測服務器的遙測事件示例:

{

   “ID”: “0182272d-0b88-0000-d419-7b9a413713f1”,

   “時間戳”: “2022-07-22T18:30:39.748000+00:00”,

   “事件”: “fz_http_started”,

   “不同的_id”: “1ec2e794-1c3e-43fc-a78f-1db6d1a37f54”,

   “特性”:{

       “$geoip_city_name”: “阿什伯恩”,

       “$geoip_大陸_代碼”: “北美”,

       “$geoip_大陸_名稱”: “北美”,

       “$geoip_country_code”: “我們”,

       “$geoip_country_name”: “美國”,

       “$geoip_緯度”: 39.0469,

       “$geoip_經度”: -77.4903,

       “$geoip_postal_code”: “20149”,

       “$geoip_subdivision_1_code”: “弗吉尼亞州”,

       “$geoip_subdivision_1_name”: “弗吉尼亞”,

       “$geoip_time_zone”: “美國/紐約”,

       “$ip”: “52.200.241.107”,

       “$plugins_deferred”:[],

       “$plugins_失敗”:[],

       “$plugins_成功”[

           “地理IP(3)”

       ],

       “不同的_id”: “1zc2e794-1c3e-43fc-a78f-1db6d1a37f54”,

       “域名”: “awsdemo.firezone.dev”,

       “內核版本”: “Linux 5.13.0”,

       “版”: “0.4.6”

   },

   “元素鏈”: “”

}

如何禁用遙測

注意

Firezone 開發團隊 依靠 產品分析,讓 Firezone 對每個人都更好。 啟用遙測是您可以為 Firezone 的開發做出的最有價值的貢獻。 也就是說,我們知道一些用戶有更高的隱私或安全要求,並且更願意完全禁用遙測。 如果是你,請繼續閱讀。

默認情況下啟用遙測。 要完全禁用產品遙測,請在 /etc/firezone/firezone.rb 中將以下配置選項設置為 false 並運行 sudo firezone-ctl reconfigure 以獲取更改。

默認['火區']['遙測']['啟用'] =

這將完全禁用所有產品遙測。