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 权限”链接,单击 添加权限,然后选择 微软图。 加 邮箱地址, 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

    向服务发送 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) 端口。

Wireguard

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

 

允许的IPs = 10.3.2.2/32

  这是设备 B 的 IP 或 IP 范围

持续保持活动 = 25

  如果设备位于 NAT 后面,这可确保设备能够保持隧道活动并继续从 WireGuard 接口接收数据包。 通常值 25 就足够了,但您可能需要根据您的环境减小该值。



B装置

 

允许的IPs = 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。

FALSE

默认['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

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 守护进程模式,以便我们可以监控它。

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 访问日志。

FALSE

默认['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 连接到数据库。

FALSE

默认['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。请参阅 点击此处 更多说明。

FALSE

默认['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 流量

   IIF $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 实例发送到我们的遥测服务器的遥测事件示例:

{

   : “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 以获取更改。

默认['火区']['遥测']['启用'] = false

这将完全禁用所有产品遥测。