Hailbytes VPN con Firezone Firewall Documentación

Índice del contenido

Iniciar

Aquí se proporcionan instrucciones paso a paso para implementar Hailbytes VPN con Firezone GUI. 

Administrar: la configuración de la instancia del servidor está directamente relacionada con esta parte.

Guías de usuario: documentos útiles que pueden enseñarle cómo usar Firezone y resolver problemas típicos. Una vez que el servidor se haya implementado correctamente, consulte esta sección.

Guías para configuraciones comunes

Tunelización dividida: use la VPN para enviar tráfico solo a rangos de IP específicos.

Lista blanca: configure la dirección IP estática de un servidor VPN para usar la lista blanca.

Túneles inversos: cree túneles entre varios pares utilizando túneles inversos.

Soporte técnico

Nos complace ayudarlo si necesita asistencia para instalar, personalizar o utilizar Hailbytes VPN.

Autenticación

Antes de que los usuarios puedan producir o descargar archivos de configuración de dispositivos, Firezone puede configurarse para requerir autenticación. Es posible que los usuarios también deban volver a autenticarse periódicamente para mantener activa su conexión VPN.

Aunque el método de inicio de sesión predeterminado de Firezone es el correo electrónico local y la contraseña, también se puede integrar con cualquier proveedor de identidad estandarizado de OpenID Connect (OIDC). Los usuarios ahora pueden iniciar sesión en Firezone con sus credenciales de Okta, Google, Azure AD o proveedor de identidad privado.

 

Integrar un proveedor OIDC genérico

Los parámetros de configuración que necesita Firezone para permitir SSO usando un proveedor OIDC se muestran en el siguiente ejemplo. En /etc/firezone/firezone.rb, puede encontrar el archivo de configuración. Ejecute firezone-ctl reconfigure y firezone-ctl restart para actualizar la aplicación y aplicar los cambios.

 

# Este es un ejemplo que utiliza Google y Okta como proveedor de identidad de SSO.

# Se pueden agregar varias configuraciones de OIDC a la misma instancia de Firezone.

 

# Firezone puede deshabilitar la VPN de un usuario si se detecta algún error al intentar

# para actualizar su access_token. Esto está verificado para trabajar para Google, Okta y

# Azure SSO y se usa para desconectar automáticamente la VPN de un usuario si se elimina

# del proveedor OIDC. Deje esto deshabilitado si su proveedor OIDC

# tiene problemas para actualizar los tokens de acceso, ya que podría interrumpir inesperadamente un

# sesión de VPN del usuario.

predeterminado['firezone']['autenticación']['disable_vpn_on_oidc_error'] = falso

 

predeterminado['zona de fuego']['autenticación']['oidc'] = {

  Google: {

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

    Identificación del cliente: " ”,

    secreto_cliente: “ ”,

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

    tipo_respuesta: “código”,

    ámbito: "perfil de correo electrónico openid",

    etiqueta: "Google"

  },

  octava: {

    descubrimiento_documento_uri: “https:// /.bien conocido/configuración-openid”,

    Identificación del cliente: " ”,

    secreto_cliente: “ ”,

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

    tipo_respuesta: “código”,

    alcance: "perfil de correo electrónico openid offline_access",

    etiqueta: "Octa"

  }

}



Se requieren los siguientes ajustes de configuración para la integración:

  1. descubrimiento_documento_uri: El URI de configuración del proveedor de OpenID Connect que devuelve un documento JSON utilizado para construir solicitudes posteriores a este proveedor OIDC.
  2. client_id: El ID de cliente de la aplicación.
  3. client_secret: El secreto del cliente de la aplicación.
  4. redirect_uri: indica al proveedor de OIDC dónde redirigir después de la autenticación. Esta debería ser su Firezone EXTERNAL_URL + /auth/oidc/ /devolución de llamada/ (por ejemplo, https://id-de-instancia.yourfirezone.com/auth/oidc/google/callback/).
  5. response_type: Establecido en código.
  6. alcance: Ámbitos OIDC obtener de su proveedor de OIDC. Esto debe establecerse en el perfil de correo electrónico openid o en el perfil de correo electrónico openid offline_access según el proveedor.
  7. etiqueta: El texto de la etiqueta del botón que aparece en la pantalla de inicio de sesión de Firezone.

URL bonitas

Para cada proveedor de OIDC, se crea una URL bonita correspondiente para redirigir a la URL de inicio de sesión del proveedor configurado. Para el ejemplo de configuración de OIDC anterior, las URL son:

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

Instrucciones para la configuración de Firezone con proveedores de identidad populares

Proveedores para los que tenemos documentación:

  • Google
  • Okta
  • Directorio activo de Azure
  • Iniciar sesión
  • Autenticación local

 

Si su proveedor de identidad tiene un conector OIDC genérico y no figura en la lista anterior, consulte su documentación para obtener información sobre cómo recuperar los ajustes de configuración necesarios.

Mantener la reautenticación regular

La configuración en configuración/seguridad se puede cambiar para requerir una reautenticación periódica. Esto se puede usar para hacer cumplir el requisito de que los usuarios ingresen a Firezone regularmente para continuar con su sesión de VPN.

La duración de la sesión puede configurarse entre una hora y noventa días. Al establecer esto en Nunca, puede habilitar las sesiones de VPN en cualquier momento. Este es el estándar.

Re-autenticación

Un usuario debe finalizar su sesión de VPN e iniciar sesión en el portal de Firezone para volver a autenticar una sesión de VPN vencida (URL especificada durante la implementación).

Puede volver a autenticar su sesión siguiendo las instrucciones precisas para el cliente que se encuentran aquí.

 

Estado de la conexión VPN

La columna de la tabla Conexión VPN de la página Usuarios muestra el estado de conexión de un usuario. Estos son los estados de conexión:

HABILITADO: la conexión está habilitada.

DESHABILITADO: la conexión está deshabilitada por un administrador o por un error de actualización de OIDC.

CADUCADA: la conexión está deshabilitada debido a la caducidad de la autenticación o porque un usuario no ha iniciado sesión por primera vez.

Google

A través del conector OIDC general, Firezone habilita el inicio de sesión único (SSO) con Google Workspace y Cloud Identity. Esta guía le mostrará cómo obtener los parámetros de configuración que se enumeran a continuación, que son necesarios para la integración:

  1. descubrimiento_documento_uri: El URI de configuración del proveedor de OpenID Connect que devuelve un documento JSON utilizado para construir solicitudes posteriores a este proveedor OIDC.
  2. client_id: El ID de cliente de la aplicación.
  3. client_secret: El secreto del cliente de la aplicación.
  4. redirect_uri: indica al proveedor de OIDC dónde redirigir después de la autenticación. Esta debería ser su Firezone EXTERNAL_URL + /auth/oidc/ /devolución de llamada/ (por ejemplo, https://id-de-instancia.yourfirezone.com/auth/oidc/google/callback/).
  5. response_type: Establecido en código.
  6. alcance: Ámbitos OIDC obtener de su proveedor de OIDC. Esto debe establecerse en el perfil de correo electrónico openid para proporcionar a Firezone el correo electrónico del usuario en los reclamos devueltos.
  7. etiqueta: El texto de la etiqueta del botón que aparece en la pantalla de inicio de sesión de Firezone.

Obtener ajustes de configuración

1. Pantalla de configuración de OAuth

Si es la primera vez que crea una nueva ID de cliente de OAuth, se le pedirá que configure una pantalla de consentimiento.

*Seleccione Interno para el tipo de usuario. Esto garantiza que solo las cuentas que pertenezcan a los usuarios de su organización de Google Workspace puedan crear configuraciones de dispositivos. NO seleccione Externo a menos que desee permitir que cualquier persona con una cuenta de Google válida cree configuraciones de dispositivos.

 

En la pantalla de información de la aplicación:

  1. Nombre de la aplicación: Firezone
  2. Logotipo de la aplicación: logotipo de zona de fuego (guardar enlace como).
  3. Página de inicio de la aplicación: la URL de su instancia de Firezone.
  4. Dominios autorizados: el dominio de nivel superior de su instancia de Firezone.

 

 

2. Crear ID de cliente de OAuth

Esta sección se basa en la propia documentación de Google sobre configurar OAuth 2.0.

Visite Google Cloud Console página de credenciales página, haga clic en + Crear credenciales y seleccione ID de cliente de OAuth.

En la pantalla de creación de ID de cliente de OAuth:

  1. Establecer tipo de aplicación en aplicación web
  2. Agregue su EXTERNAL_URL de Firezone + /auth/oidc/google/callback/ (por ejemplo, https://instance-id.yourfirezone.com/auth/oidc/google/callback/) como una entrada a URI de redireccionamiento autorizado.

 

Después de crear el ID de cliente de OAuth, se le proporcionará un ID de cliente y un Secreto de cliente. Estos se utilizarán junto con el URI de redireccionamiento en el siguiente paso.

Integración de zona de fuego

Editar /etc/firezone/firezone.rb para incluir las siguientes opciones:

 

# Uso de Google como proveedor de identidad de SSO

predeterminado['zona de fuego']['autenticación']['oidc'] = {

  Google: {

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

    Identificación del cliente: " ”,

    secreto_cliente: “ ”,

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

    tipo_respuesta: “código”,

    ámbito: "perfil de correo electrónico openid",

    etiqueta: "Google"

  }

}

 

Ejecute firezone-ctl reconfigure y firezone-ctl restart para actualizar la aplicación. Ahora debería ver un botón Iniciar sesión con Google en la URL raíz de Firezone.

Okta

Firezone usa el conector OIDC genérico para facilitar el inicio de sesión único (SSO) con Okta. Este tutorial le mostrará cómo obtener los parámetros de configuración que se enumeran a continuación, que son necesarios para la integración:

  1. descubrimiento_documento_uri: El URI de configuración del proveedor de OpenID Connect que devuelve un documento JSON utilizado para construir solicitudes posteriores a este proveedor OIDC.
  2. client_id: El ID de cliente de la aplicación.
  3. client_secret: El secreto del cliente de la aplicación.
  4. redirect_uri: indica al proveedor de OIDC dónde redirigir después de la autenticación. Esta debería ser su Firezone EXTERNAL_URL + /auth/oidc/ /devolución de llamada/ (por ejemplo, https://id-de-instancia.yourfirezone.com/auth/oidc/okta/callback/).
  5. response_type: Establecido en código.
  6. alcance: Ámbitos OIDC obtener de su proveedor de OIDC. Esto debe establecerse en el perfil de correo electrónico openid offline_access para proporcionar a Firezone el correo electrónico del usuario en los reclamos devueltos.
  7. etiqueta: El texto de la etiqueta del botón que aparece en la pantalla de inicio de sesión de Firezone.

 

Integrar la aplicación Okta

Esta sección de la guía se basa en documentación de Okta.

En Admin Console, vaya a Aplicaciones > Aplicaciones y haga clic en Crear integración de aplicaciones. Establezca el método de inicio de sesión en OICD: OpenID Connect y el tipo de aplicación en aplicación web.

Configure estos ajustes:

  1. Nombre de la aplicación: Firezone
  2. Logotipo de la aplicación: logotipo de zona de fuego (guardar enlace como).
  3. Tipo de concesión: marque la casilla Actualizar token. Esto garantiza que Firezone se sincronice con el proveedor de identidad y que el acceso a la VPN finalice una vez que se elimine al usuario.
  4. URI de redireccionamiento de inicio de sesión: agregue su Firezone EXTERNAL_URL + /auth/oidc/okta/callback/ (por ejemplo, https://instance-id.yourfirezone.com/auth/oidc/okta/callback/) como una entrada a URI de redireccionamiento autorizado .
  5. Asignaciones: limite a los grupos a los que desea proporcionar acceso a su instancia de Firezone.

Una vez que se guarden las configuraciones, se le otorgará una ID de cliente, un secreto de cliente y un dominio de Okta. Estos 3 valores se usarán en el Paso 2 para configurar Firezone.

Integrar Firezone

Editar /etc/firezone/firezone.rb para incluir las siguientes opciones. Su URL_documento_descubrimiento se mostrarán /.bien conocido/configuración-openid adjunto al final de su dominio_okta.

 

# Uso de Okta como proveedor de identidad de SSO

predeterminado['zona de fuego']['autenticación']['oidc'] = {

  octava: {

    descubrimiento_documento_uri: “https:// /.bien conocido/configuración-openid”,

    Identificación del cliente: " ”,

    secreto_cliente: “ ”,

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

    tipo_respuesta: “código”,

    alcance: "perfil de correo electrónico openid offline_access",

    etiqueta: "Octa"

  }

}

 

Ejecute firezone-ctl reconfigure y firezone-ctl restart para actualizar la aplicación. Ahora debería ver un botón Iniciar sesión con Okta en la URL raíz de Firezone.

 

Restringir el acceso a ciertos usuarios

Okta puede restringir a los usuarios que pueden acceder a la aplicación Firezone. Vaya a la página de asignaciones de la integración de la aplicación Firezone de su Okta Admin Console para lograr esto.

Directorio activo de Azure

A través del conector OIDC genérico, Firezone habilita el inicio de sesión único (SSO) con Azure Active Directory. Este manual le mostrará cómo obtener los parámetros de configuración que se enumeran a continuación, que son necesarios para la integración:

  1. descubrimiento_documento_uri: El URI de configuración del proveedor de OpenID Connect que devuelve un documento JSON utilizado para construir solicitudes posteriores a este proveedor OIDC.
  2. client_id: El ID de cliente de la aplicación.
  3. client_secret: El secreto del cliente de la aplicación.
  4. redirect_uri: indica al proveedor de OIDC dónde redirigir después de la autenticación. Esta debería ser su Firezone EXTERNAL_URL + /auth/oidc/ /devolución de llamada/ (por ejemplo, https://id-de-instancia.yourfirezone.com/auth/oidc/azure/callback/).
  5. response_type: Establecido en código.
  6. alcance: Ámbitos OIDC obtener de su proveedor de OIDC. Esto debe establecerse en el perfil de correo electrónico openid offline_access para proporcionar a Firezone el correo electrónico del usuario en los reclamos devueltos.
  7. etiqueta: El texto de la etiqueta del botón que aparece en la pantalla de inicio de sesión de Firezone.

Obtener ajustes de configuración

Esta guía está extraída de la Documentos de Azure Active Directory.

 

Vaya a la página de Azure Active Directory de Azure Portal. Elija la opción de menú Administrar, seleccione Nuevo registro, luego regístrese proporcionando la siguiente información:

  1. Nombre: Zona de fuego
  2. Tipos de cuenta admitidos: (Directorio predeterminado únicamente: inquilino único)
  3. URI de redirección: debe ser su EXTERNAL_URL de firezone + /auth/oidc/azure/callback/ (por ejemplo, https://instance-id.yourfirezone.com/auth/oidc/azure/callback/). Asegúrese de incluir la barra diagonal final. Este será el valor de redirect_uri.

 

Después de registrarse, abra la vista de detalles de la aplicación y copie el ID de aplicación (cliente). Este será el valor de client_id. A continuación, abra el menú de puntos finales para recuperar el Documento de metadatos de OpenID Connect. Este será el valor discovery_document_uri.

 

Cree un nuevo secreto de cliente haciendo clic en la opción Certificados y secretos en el menú Administrar. Copie el secreto del cliente; el valor del secreto del cliente será este.

 

Por último, seleccione el enlace de permisos de API en el menú Administrar, haga clic en Agregar un permisoy seleccione Microsoft Graph. Añadir email, abierto, acceso_sin_conexión y perfiles a los permisos requeridos.

Integración de zona de fuego

Editar /etc/firezone/firezone.rb para incluir las siguientes opciones:

 

# Uso de Azure Active Directory como proveedor de identidad de SSO

predeterminado['zona de fuego']['autenticación']['oidc'] = {

  azul: {

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

    Identificación del cliente: " ”,

    secreto_cliente: “ ”,

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

    tipo_respuesta: “código”,

    alcance: "perfil de correo electrónico openid offline_access",

    etiqueta: "Azul"

  }

}

 

Ejecute firezone-ctl reconfigure y firezone-ctl restart para actualizar la aplicación. Ahora debería ver un botón Iniciar sesión con Azure en la URL raíz de Firezone.

Cómo: restringir el acceso a ciertos miembros

Azure AD permite a los administradores limitar el acceso a la aplicación a un grupo específico de usuarios dentro de su empresa. Puede encontrar más información sobre cómo hacer esto en la documentación de Microsoft.

Administrar

  • Configurar
  • Administrar instalación
  • Actualizar
  • Solucionar problemas
  • Consideraciones de Seguridad
  • Ejecución de consultas SQL

Configurar

Firezone utiliza Chef Omnibus para administrar tareas que incluyen paquetes de lanzamiento, supervisión de procesos, administración de registros y más.

El código Ruby constituye el archivo de configuración principal, que se encuentra en /etc/firezone/firezone.rb. Reiniciar sudo firezone-ctl reconfigure después de realizar modificaciones en este archivo hace que Chef reconozca los cambios y los aplique al sistema operativo actual.

Consulte la referencia del archivo de configuración para obtener una lista completa de las variables de configuración y sus descripciones.

Administrar instalación

Su instancia de Firezone se puede administrar a través de la zona de fuego-ctl comando, como se muestra a continuación. La mayoría de los subcomandos requieren el prefijo con sudo.

 

root@demostración:~# firezone-ctl

omnibus-ctl: comando (subcomando)

Comandos Generales:

  limpiar

    Elimine *todos* los datos de firezone y comience desde cero.

  crear-o-restablecer-admin

    Restablece la contraseña del administrador con el correo electrónico especificado de forma predeterminada['firezone']['admin_email'] o crea un nuevo administrador si ese correo electrónico no existe.

  ayuda

    Imprime este mensaje de ayuda.

  reconfigurar

    Vuelva a configurar la aplicación.

  restablecer la red

    Restablece nftables, la interfaz WireGuard y la tabla de enrutamiento a los valores predeterminados de Firezone.

  mostrar-config

    Muestra la configuración que generaría reconfigure.

  red de desmontaje

    Elimina la interfaz WireGuard y la tabla nftables de firezone.

  forzar-cert-renovación

    Forzar la renovación del certificado ahora incluso si no ha caducado.

  detener-cert-renovación

    Elimina cronjob que renueva certificados.

  Desinstalar

    Elimine todos los procesos y desinstale el supervisor de procesos (se conservarán los datos).

  versión

    Mostrar la versión actual de Firezone

Comandos de gestión de servicios:

  matar con gracia

    Intente una parada elegante, luego SIGKILL todo el grupo de procesos.

  hup

    Envía a los servicios un HUP.

  int

    Envía a los servicios un INT.

  matar

    Envíe los servicios un KILL.

  una vez

    Inicie los servicios si están caídos. No los reinicie si se detienen.

  reanudar

    Detenga los servicios si se están ejecutando y vuelva a iniciarlos.

  Lista de servicios

    Enumere todos los servicios (los servicios habilitados aparecen con un *.)

  comienzo

    Inicie los servicios si están inactivos y reinícielos si se detienen.

  estado

    Mostrar el estado de todos los servicios.

  detener

    Detenga los servicios y no los reinicie.

  cola

    Mire los registros de servicio de todos los servicios habilitados.

  término

    Enviar los servicios un TÉRMINO.

  usr1

    Envía a los servicios un USR1.

  usr2

    Envía a los servicios un USR2.

Actualizar

Todas las sesiones de VPN deben finalizarse antes de actualizar Firezone, lo que también requiere el cierre de la interfaz de usuario web. En caso de que algo salga mal durante la actualización, le recomendamos reservar una hora para el mantenimiento.

 

Para mejorar Firezone, realice las siguientes acciones:

  1. Actualice el paquete firezone usando la instalación de un solo comando: sudo -E bash -c “$(curl -fsSL https://github.com/firezone/firezone/raw/master/scripts/install.sh)”
  2. Ejecute firezone-ctl reconfigure para recoger los nuevos cambios.
  3. Ejecute firezone-ctl restart para reiniciar los servicios.

Si surge algún problema, háganoslo saber por enviando un ticket de soporte.

Actualizar de <0.5.0 a >=0.5.0

Hay algunos cambios importantes y modificaciones de configuración en 0.5.0 que deben abordarse. Obtenga más información a continuación.

Se eliminaron las solicitudes empaquetadas de Nginx non_ssl_port (HTTP)

Nginx ya no es compatible con forzar los parámetros de puerto SSL y no SSL a partir de la versión 0.5.0. Debido a que Firezone necesita SSL para funcionar, recomendamos eliminar el paquete de servicios Nginx configurando default['firezone']['nginx']['enabled'] = false y dirigiendo su proxy inverso a la aplicación Phoenix en el puerto 13000 en su lugar (de forma predeterminada ).

Compatibilidad con el protocolo ACME

0.5.0 introduce la compatibilidad con el protocolo ACME para renovar automáticamente los certificados SSL con el servicio Nginx incluido. Para permitir,

  • Asegúrese de que default['firezone']['external_url'] contenga un FQDN válido que se resuelva en la dirección IP pública de su servidor.
  • Asegúrese de que el puerto 80/tcp sea accesible
  • Habilite la compatibilidad con el protocolo ACME con default['firezone']['ssl']['acme']['enabled'] = true en su archivo de configuración.

Destinos de reglas de salida superpuestos

La posibilidad de agregar reglas con destinos duplicados desapareció en Firezone 0.5.0. Nuestro script de migración reconocerá automáticamente estas situaciones durante una actualización a 0.5.0 y solo conservará las reglas cuyo destino incluya la otra regla. No hay nada que tengas que hacer si esto está bien.

De lo contrario, antes de actualizar, le recomendamos que cambie su conjunto de reglas para deshacerse de estas situaciones.

Preconfiguración de Okta y Google SSO

Firezone 0.5.0 elimina la compatibilidad con la antigua configuración Okta y Google SSO a favor de la nueva configuración más flexible basada en OIDC. 

Si tiene alguna configuración con las claves predeterminadas['firezone']['authentication']['okta'] o default['firezone']['authentication']['google'], debe migrarlas a nuestro OIDC configuración basada en la siguiente guía.

Configuración existente de Google OAuth

Elimine estas líneas que contienen las configuraciones antiguas de Google OAuth de su archivo de configuración ubicado en /etc/firezone/firezone.rb

 

predeterminado['firezone']['autenticación']['google']['habilitado']

predeterminado['firezone']['autenticación']['google']['client_id']

predeterminado['firezone']['autenticación']['google']['client_secret']

predeterminado['firezone']['autenticación']['google']['redirect_uri']

 

Luego, configure Google como proveedor de OIDC siguiendo los procedimientos aquí.

(Proporcionar instrucciones de enlace)<<<<<<<<<<<<<<<<

 

Configurar Google OAuth existente 

Elimine estas líneas que contienen las configuraciones antiguas de Okta OAuth de su archivo de configuración ubicado en /etc/firezone/firezone.rb

 

predeterminado['firezone']['autenticación']['okta']['habilitado']

predeterminado['firezone']['autenticación']['okta']['client_id']

predeterminado['firezone']['autenticación']['okta']['client_secret']

Predeterminado['firezone']['autenticación']['okta']['sitio']

 

Luego, configure Okta como un proveedor de OIDC siguiendo los procedimientos aquí.

Actualizar de 0.3.x a >= 0.3.16

Dependiendo de su configuración y versión actual, siga las instrucciones a continuación:

Si ya tiene una integración OIDC:

Para algunos proveedores de OIDC, la actualización a >= 0.3.16 requiere la obtención de un token de actualización para el ámbito de acceso sin conexión. Al hacer esto, se asegura de que Firezone se actualice con el proveedor de identidad y que la conexión VPN se cierre después de que se elimine un usuario. Las iteraciones anteriores de Firezone carecían de esta función. En algunos casos, los usuarios que se eliminan de su proveedor de identidad aún pueden estar conectados a una VPN.

Es necesario incluir el acceso sin conexión en el parámetro de alcance de su configuración de OIDC para los proveedores de OIDC que admiten el alcance de acceso sin conexión. Se debe ejecutar Firezone-ctl reconfigure para aplicar los cambios al archivo de configuración de Firezone, que se encuentra en /etc/firezone/firezone.rb.

Para los usuarios que han sido autenticados por su proveedor OIDC, verá el encabezado Conexiones OIDC en la página de detalles del usuario de la interfaz de usuario web si Firezone puede recuperar correctamente el token de actualización.

Si esto no funciona, deberá eliminar su aplicación OAuth existente y repetir los pasos de configuración de OIDC para crear una nueva integración de aplicaciones .

Tengo una integración OAuth existente

Antes de 0.3.11, Firezone usaba proveedores de OAuth2 preconfigurados. 

Siga las instrucciones esta página para migrar a OIDC.

No he integrado un proveedor de identidad

No se necesita acción. 

Puedes seguir las instrucciones esta página para habilitar SSO a través de un proveedor OIDC.

Actualizar de 0.3.1 a >= 0.3.2

En su lugar, default['firezone']['external url'] ha reemplazado a la opción de configuración default['firezone']['fqdn']. 

Establezca esto en la URL de su portal en línea de Firezone que es accesible para el público en general. Por defecto será https:// más el FQDN de su servidor si no se define.

El archivo de configuración se encuentra en /etc/firezone/firezone.rb. Consulte la referencia del archivo de configuración para obtener una lista completa de las variables de configuración y sus descripciones.

Actualizar de 0.2.x a 0.3.x

Firezone ya no guarda las claves privadas del dispositivo en el servidor de Firezone a partir de la versión 0.3.0. 

La interfaz de usuario web de Firezone no le permitirá volver a descargar ni ver estas configuraciones, pero los dispositivos existentes deberían seguir funcionando tal cual.

Actualizar de 0.1.x a 0.2.x

Si está actualizando desde Firezone 0.1.x, hay algunos cambios en el archivo de configuración que deben abordarse manualmente. 

Para realizar las modificaciones necesarias en su archivo /etc/firezone/firezone.rb, ejecute los siguientes comandos como root.

 

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

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

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

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

reconfigurar firezone-ctl

reinicio firezone-ctl

Solucionando Problemas

Verificar los registros de Firezone es un buen primer paso para cualquier problema que pueda ocurrir.

Ejecute sudo firezone-ctl tail para ver los registros de Firezone.

Depuración de problemas de conectividad

La mayoría de los problemas de conectividad con Firezone son provocados por reglas de iptables o nftables incompatibles. Debe asegurarse de que las reglas que tenga vigentes no entren en conflicto con las reglas de Firezone.

La conectividad a Internet cae cuando el túnel está activo

Asegúrese de que la cadena FORWARD permita que los paquetes de sus clientes WireGuard lleguen a las ubicaciones que desea dejar pasar a Firezone si su conectividad a Internet se deteriora cada vez que activa su túnel WireGuard.

 

Esto se puede lograr si está utilizando ufw asegurándose de que la política de enrutamiento predeterminada esté permitida:

 

ubuntu@fz:~$ sudo ufw predeterminado permitir enrutado

La política de enrutamiento predeterminada cambió a 'permitir'

(asegúrese de actualizar sus reglas en consecuencia)

 

A UFW el estado de un servidor típico de Firezone podría verse así:

 

ubuntu@fz:~$ sudo ufw estado detallado

Estado: Activo

Inicio de sesión: encendido (bajo)

Predeterminado: denegar (entrante), permitir (saliente), permitir (enrutado)

Nuevos perfiles: saltar

 

A Acción Desde

— —— —-

22/tcp PERMITIR EN Cualquier lugar

80/tcp PERMITIR EN Cualquier lugar

443/tcp PERMITIR EN Cualquier lugar

51820/udp PERMITIR EN Cualquier lugar

22/tcp (v6) PERMITIR EN Cualquier lugar (v6)

80/tcp (v6) PERMITIR EN Cualquier lugar (v6)

443/tcp (v6) PERMITIR EN Cualquier lugar (v6)

51820/udp (v6) PERMITIR EN Cualquier lugar (v6)

Consideraciones de Seguridad

Recomendamos limitar el acceso a la interfaz web para implementaciones de producción extremadamente sensibles y de misión crítica, como se explica a continuación.

Servicios y Puertos

 

Service

Puerto predeterminado

Escuchar dirección

Descripción

Nginx

80, 443

todos

Puerto público HTTP(S) para administrar Firezone y facilitar la autenticación.

Guardia de alambre

51820

todos

Puerto público de WireGuard utilizado para sesiones de VPN. (UDP)

Postgresql

15432

127.0.0.1

Puerto solo local utilizado para el servidor Postgresql incluido.

Phoenix

13000

127.0.0.1

Puerto solo local utilizado por el servidor de aplicaciones elixir ascendente.

Implementaciones de producción

Le recomendamos que piense en restringir el acceso a la interfaz de usuario web expuesta públicamente de Firezone (por defecto, los puertos 443/tcp y 80/tcp) y, en su lugar, use el túnel WireGuard para administrar Firezone para implementaciones de producción y orientadas al público donde un solo administrador estará a cargo. de crear y distribuir configuraciones de dispositivos a los usuarios finales.

 

Por ejemplo, si un administrador creó una configuración de dispositivo y creó un túnel con la dirección local de WireGuard 10.3.2.2, la siguiente configuración de ufw permitiría al administrador acceder a la interfaz de usuario web de Firezone en la interfaz wg-firezone del servidor usando la configuración predeterminada 10.3.2.1 dirección del túnel:

 

root@demo:~# estado ufw detallado

Estado: Activo

Inicio de sesión: encendido (bajo)

Predeterminado: denegar (entrante), permitir (saliente), permitir (enrutado)

Nuevos perfiles: saltar

 

A Acción Desde

— —— —-

22/tcp PERMITIR EN Cualquier lugar

51820/udp PERMITIR EN Cualquier lugar

En cualquier lugar PERMITIR EN 10.3.2.2

22/tcp (v6) PERMITIR EN Cualquier lugar (v6)

51820/udp (v6) PERMITIR EN Cualquier lugar (v6)

Esto dejaría solo 22 / tcp expuesto para acceso SSH para administrar el servidor (opcional), y 51820 / udp expuestos para establecer túneles WireGuard.

Ejecutar consultas SQL

Firezone agrupa un servidor Postgresql y empareja psql utilidad que se puede usar desde el shell local así:

 

/opt/firezone/incrustado/bin/psql \

  -U zona de fuego \

  -d zona de fuego \

  -h servidor local \

  -p 15432\

  -c “ESTADO_SQL”

 

Esto puede ser útil para fines de depuración.

 

Tareas comunes:

 

  • Listado de todos los usuarios
  • Listado de todos los dispositivos
  • Cambiar el rol de un usuario
  • Hacer una copia de seguridad de la base de datos



Listado de todos los usuarios:

 

/opt/firezone/incrustado/bin/psql \

  -U zona de fuego \

  -d zona de fuego \

  -h servidor local \

  -p 15432\

  -c “SELECCIONAR * DE usuarios;”



Listado de todos los dispositivos:

 

/opt/firezone/incrustado/bin/psql \

  -U zona de fuego \

  -d zona de fuego \

  -h servidor local \

  -p 15432\

  -c “SELECCIONAR * DESDE dispositivos;”



Cambiar un rol de usuario:

 

Establezca el rol en 'administrador' o 'sin privilegios':

 

/opt/firezone/incrustado/bin/psql \

  -U zona de fuego \

  -d zona de fuego \

  -h servidor local \

  -p 15432\

  -c “ACTUALIZAR usuarios SET role = 'admin' WHERE email = 'user@example.com';”



Copia de seguridad de la base de datos:

 

Además, se incluye el programa pg dump, que se puede utilizar para realizar copias de seguridad periódicas de la base de datos. Ejecute el siguiente código para volcar una copia de la base de datos en el formato de consulta SQL común (reemplace /path/to/backup.sql con la ubicación donde se debe crear el archivo SQL):

 

/opt/firezone/incrustado/bin/pg_dump \

  -U zona de fuego \

  -d zona de fuego \

  -h servidor local \

  -p 15432 > /ruta/a/copia de seguridad.sql

Guías para el usuario

  • Agregar usuarios
  • Agregar dispositivos
  • Reglas de salida
  • Instrucciones del cliente
  • VPN de túnel dividido
  • Túnel inverso 
  • Puerta de enlace NAT

Agregar usuarios

Una vez que Firezone se haya implementado correctamente, debe agregar usuarios para brindarles acceso a su red. La interfaz de usuario web se utiliza para hacer esto.

 

UI web


Al seleccionar el botón "Agregar usuario" en /usuarios, puede agregar un usuario. Se le pedirá que proporcione al usuario una dirección de correo electrónico y una contraseña. Para permitir el acceso a los usuarios de su organización automáticamente, Firezone también puede interactuar y sincronizarse con un proveedor de identidad. Más detalles están disponibles en Autenticar. < Agregar un enlace para Autenticar

Agregar dispositivos

Recomendamos solicitar que los usuarios creen sus propias configuraciones de dispositivos para que la clave privada solo sea visible para ellos. Los usuarios pueden generar sus propias configuraciones de dispositivos siguiendo las instrucciones en el Instrucciones del cliente página.

 

Generando la configuración del dispositivo de administración

Todas las configuraciones de dispositivos de usuario pueden ser creadas por los administradores de Firezone. En la página de perfil de usuario ubicada en /usuarios, seleccione la opción "Agregar dispositivo" para lograr esto.

 

[Insertar captura de pantalla]

 

Puede enviar por correo electrónico al usuario el archivo de configuración de WireGuard después de crear el perfil del dispositivo.

 

Los usuarios y los dispositivos están vinculados. Para obtener más detalles sobre cómo agregar un usuario, consulte Agregar usuarios.

Reglas de salida

Mediante el uso del sistema netfilter del kernel, Firezone habilita capacidades de filtrado de salida para especificar paquetes DROP o ACCEPT. Normalmente se permite todo el tráfico.

 

Los CIDR IPv4 e IPv6 y las direcciones IP se admiten a través de la lista de permitidos y la lista de denegados, respectivamente. Puede optar por aplicar una regla a un usuario al agregarlo, lo que aplica la regla a todos los dispositivos de ese usuario.

Instrucciones del cliente

Instalar y configurar

Para establecer una conexión VPN utilizando el cliente WireGuard nativo, consulte esta guía.

 

1. Instale el cliente nativo de WireGuard

 

Los clientes oficiales de WireGuard ubicados aquí son compatibles con Firezone:

 

MacOS

 

Windows

 

iOS

 

Android

 

Visite el sitio web oficial de WireGuard en https://www.wireguard.com/install/ para los sistemas operativos no mencionados anteriormente.

 

2. Descargue el archivo de configuración del dispositivo

 

Tanto su administrador de Firezone como usted mismo pueden generar el archivo de configuración del dispositivo mediante el portal de Firezone.

 

Visite la URL que su administrador de Firezone le proporcionó para autogenerar un archivo de configuración del dispositivo. Su empresa tendrá una URL única para esto; en este caso, es https://instance-id.yourfirezone.com.

 

Iniciar sesión en Firezone Okta SSO

 

[Insertar captura de pantalla]

 

3. Agregar la configuración del cliente

 

Importe el archivo.conf al cliente de WireGuard abriéndolo. Al activar el interruptor Activar, puede iniciar una sesión de VPN.

 

[Insertar captura de pantalla]

Reautenticación de sesión

Siga las instrucciones a continuación si su administrador de red ha ordenado la autenticación recurrente para mantener activa su conexión VPN. 



Es necesario:

 

URL del portal de Firezone: solicite la conexión a su administrador de red.

Su administrador de red debería poder ofrecerle su nombre de usuario y contraseña. El sitio de Firezone le pedirá que inicie sesión utilizando el servicio de inicio de sesión único que utiliza su empleador (como Google u Okta).

 

1. Apague la conexión VPN

 

[Insertar captura de pantalla]

 

2. Autenticarse de nuevo 

Vaya a la URL del portal de Firezone e inicie sesión con las credenciales que le proporcionó su administrador de red. Si ya ha iniciado sesión, haga clic en el botón Volver a autenticar antes de iniciar sesión de nuevo.

 

[Insertar captura de pantalla]

 

Paso 3: Inicie una sesión de VPN

[Insertar captura de pantalla]

Administrador de red para Linux

Para importar el perfil de configuración de WireGuard usando Network Manager CLI en dispositivos Linux, siga estas instrucciones (nmcli).

NOTA

Si el perfil tiene habilitada la compatibilidad con IPv6, es posible que el intento de importar el archivo de configuración mediante la GUI de Network Manager falle con el siguiente error:

ipv6.method: el método "automático" no es compatible con WireGuard

1. Instale las herramientas WireGuard 

Es necesario instalar las utilidades del espacio de usuario de WireGuard. Este será un paquete llamado wireguard o wireguard-tools para distribuciones de Linux.

Para Ubuntu / Debian:

sudo apt instalar protector de alambre

Para usar Fedora:

sudo dnf instalar herramientas de protección de cables

Arch Linux:

sudo pacman -S wireguard-herramientas

Visite el sitio web oficial de WireGuard en https://www.wireguard.com/install/ para distribuciones que no se mencionan anteriormente.

2. Descargar configuración 

El administrador de Firezone o la generación propia pueden generar el archivo de configuración del dispositivo mediante el portal de Firezone.

Visite la URL que su administrador de Firezone le proporcionó para autogenerar un archivo de configuración del dispositivo. Su empresa tendrá una URL única para esto; en este caso, es https://instance-id.yourfirezone.com.

[Insertar captura de pantalla]

3. Importar ajustes

Importe el archivo de configuración provisto usando nmcli:

sudo nmcli tipo de importación de conexión archivo wireguard /ruta/a/configuración.conf

NOTA

El nombre del archivo de configuración corresponderá a la conexión/interfaz de WireGuard. Después de la importación, se puede cambiar el nombre de la conexión si es necesario:

conexión nmcli modificar [nombre antiguo] connection.id [nombre nuevo]

4. Conectar o desconectar

A través de la línea de comando, conéctese a la VPN de la siguiente manera:

conexión nmcli activa [nombre vpn]

Para desconectar:

conexión nmcli inactiva [nombre vpn]

El subprograma Network Manager aplicable también se puede usar para administrar la conexión si se usa una GUI.

Conexión automática

Al seleccionar "sí" para la opción de conexión automática, la conexión VPN se puede configurar para conectarse automáticamente:

 

conexión nmcli modificar conexión [nombre vpn]. <<<<<<<<<<<<<<<<<<<<<<

 

conexión automática sí

 

Para deshabilitar la conexión automática, vuelva a establecerla en no:

 

conexión nmcli modificar conexión [nombre vpn].

 

conexión automática no

Hacer que la autenticación de múltiples factores esté disponible

Para activar MFA Vaya a la página /cuenta de usuario/registrar mfa del portal de Firezone. Use su aplicación de autenticación para escanear el código QR después de que se haya generado, luego ingrese el código de seis dígitos.

Comuníquese con su administrador para restablecer la información de acceso de su cuenta si pierde su aplicación de autenticación.

VPN de túnel dividido

Este tutorial lo guiará a través del proceso de configuración de la función de túnel dividido de WireGuard con Firezone para que solo el tráfico a rangos de IP específicos se reenvíe a través del servidor VPN.

 

1. Configurar las IP permitidas 

Los rangos de IP para los que el cliente enrutará el tráfico de red se establecen en el campo de IP permitidas ubicado en la página /configuración/predeterminada. Solo las configuraciones de túnel WireGuard recién creadas producidas por Firezone se verán afectadas por los cambios en este campo.

 

[Insertar captura de pantalla]



El valor predeterminado es 0.0.0.0/0, ::/0, que enruta todo el tráfico de red del cliente al servidor VPN.

 

Ejemplos de valores en este campo incluyen:

 

0.0.0.0/0, ::/0: todo el tráfico de red se enrutará al servidor VPN.

192.0.2.3/32: solo el tráfico a una sola dirección IP se enrutará al servidor VPN.

3.5.140.0/22: solo el tráfico a IP en el rango 3.5.140.1 - 3.5.143.254 se enrutará al servidor VPN. En este ejemplo, se utilizó el rango de CIDR para la región de AWS ap-northeast-2.



NOTA

Firezone selecciona primero la interfaz de salida asociada con la ruta más precisa al determinar dónde enrutar un paquete.

 

2. Regenerar las configuraciones de WireGuard

Los usuarios deben regenerar los archivos de configuración y agregarlos a su cliente WireGuard nativo para actualizar los dispositivos de usuario existentes con la nueva configuración de túnel dividido.

 

Para instrucciones, vea añadir dispositivo. <<<<<<<<<<< Añadir enlace

Túnel inverso

Este manual demostrará cómo vincular dos dispositivos utilizando Firezone como relé. Un caso de uso típico es permitir que un administrador acceda a un servidor, contenedor o máquina que está protegido por un NAT o un firewall.

 

Nodo a nodo 

Esta ilustración muestra un escenario sencillo en el que los Dispositivos A y B construyen un túnel.

 

[Insertar imagen arquitectónica de firezone]

 

Comience creando el Dispositivo A y el Dispositivo B navegando a /users/[user_id]/new_device. En la configuración de cada dispositivo, asegúrese de que los siguientes parámetros estén configurados en los valores que se enumeran a continuación. Puede establecer la configuración del dispositivo al crear la configuración del dispositivo (consulte Agregar dispositivos). Si necesita actualizar la configuración en un dispositivo existente, puede hacerlo generando una nueva configuración de dispositivo.

 

Tenga en cuenta que todos los dispositivos tienen una página de configuración predeterminada donde se puede configurar PersistentKeepalive.

 

Dispositivo A

 

IP permitidas = 10.3.2.2/32

  Esta es la IP o rango de IPs del Dispositivo B

Persistente Keepalive = 25

  Si el dispositivo está detrás de un NAT, esto garantiza que el dispositivo pueda mantener activo el túnel y continuar recibiendo paquetes desde la interfaz WireGuard. Por lo general, un valor de 25 es suficiente, pero es posible que deba disminuir este valor según su entorno.



dispositivo B

 

IP permitidas = 10.3.2.3/32

Esta es la IP o rango de IPs del Dispositivo A

Persistente Keepalive = 25

Caso de administración: de uno a muchos nodos

Este ejemplo muestra una situación en la que el Dispositivo A puede comunicarse con los Dispositivos B a D en ambas direcciones. Esta configuración puede representar a un ingeniero o administrador que accede a numerosos recursos (servidores, contenedores o máquinas) a través de varias redes.

 

[Diagrama arquitectónico]<<<<<<<<<<<<<<<<<<<<<<<

 

Asegúrese de que las siguientes configuraciones se realicen en la configuración de cada dispositivo con los valores correspondientes. Al crear la configuración del dispositivo, puede especificar la configuración del dispositivo (consulte Agregar dispositivos). Se puede crear una nueva configuración de dispositivo si es necesario actualizar la configuración de un dispositivo existente.

 

Dispositivo A (nodo administrador)

 

IP permitidas = 10.3.2.3/32, 10.3.2.4/32, 10.3.2.5/32 

    Esta es la IP de los dispositivos B a D. Las IP de los dispositivos B a D deben incluirse en cualquier rango de IP que elija configurar.

Persistente Keepalive = 25 

    Esto garantiza que el dispositivo pueda mantener el túnel y continuar recibiendo paquetes de la interfaz WireGuard incluso si está protegido por una NAT. En la mayoría de los casos, un valor de 25 es adecuado; sin embargo, dependiendo de su entorno, es posible que deba reducir esta cifra.

 

Dispositivo B

 

  • AllowedIPs = 10.3.2.2/32: Esta es la IP o rango de IP del Dispositivo A
  • Persistente Keepalive = 25

Dispositivo C

 

  • AllowedIPs = 10.3.2.2/32: Esta es la IP o rango de IP del Dispositivo A
  • Persistente Keepalive = 25

Dispositivo D

 

  • AllowedIPs = 10.3.2.2/32: Esta es la IP o rango de IP del Dispositivo A
  • Persistente Keepalive = 25

Puerta de enlace NAT

Para ofrecer una sola IP de salida estática para que fluya todo el tráfico de su equipo, Firezone se puede utilizar como una puerta de enlace NAT. Estas situaciones implican su uso frecuente:

 

Compromisos de consultoría: solicite que su cliente incluya en la lista blanca una sola dirección IP estática en lugar de la IP de dispositivo única de cada empleado.

Usar un proxy o enmascarar su IP de origen por motivos de seguridad o privacidad.

 

En esta publicación, se demostrará un ejemplo simple de cómo limitar el acceso a una aplicación web autohospedada a una única IP estática incluida en la lista blanca que ejecuta Firezone. En esta ilustración, Firezone y el recurso protegido se encuentran en diferentes áreas de VPC.

 

Esta solución se usa con frecuencia en lugar de administrar una lista blanca de IP para numerosos usuarios finales, lo que puede llevar mucho tiempo a medida que se expande la lista de acceso.

Ejemplo de AWS

Nuestro objetivo es configurar un servidor Firezone en una instancia EC2 para redirigir el tráfico VPN al recurso restringido. En este caso, Firezone funciona como proxy de red o puerta de enlace NAT para otorgar a cada dispositivo conectado una IP de salida pública única.

 

1. Instalar el servidor Firezone

En este caso, una instancia de EC2 denominada tc2.micro tiene una instancia de Firezone instalada. Para obtener información sobre la implementación de Firezone, vaya a la Guía de implementación. En relación con AWS, asegúrese de:

 

El grupo de seguridad de la instancia Firezone EC2 permite el tráfico saliente a la dirección IP del recurso protegido.

La instancia de Firezone viene con una IP elástica. El tráfico que se reenvía a través de la instancia de Firezone a destinos externos tendrá esta dirección IP de origen. La dirección IP en cuestión es 52.202.88.54.

 

[Insertar captura de pantalla]<<<<<<<<<<<<<<<<<<<<<<<

 

2. Restringir el acceso al recurso que se está protegiendo

Una aplicación web autohospedada sirve como recurso protegido en este caso. Solo se puede acceder a la aplicación web mediante solicitudes provenientes de la dirección IP 52.202.88.54. Según el recurso, puede ser necesario permitir el tráfico entrante en varios puertos y tipos de tráfico. Esto no está cubierto en este manual.

 

[Insertar captura de pantalla]<<<<<<<<<<<<<<<<<<<<<<<

 

Indique al tercero a cargo del recurso protegido que se debe permitir el tráfico desde la IP estática definida en el Paso 1 (en este caso, 52.202.88.54).

 

3. Use el servidor VPN para dirigir el tráfico al recurso protegido

 

De manera predeterminada, todo el tráfico de usuarios pasará por el servidor VPN y provendrá de la IP estática que se configuró en el Paso 1 (en este caso, 52.202.88.54). Sin embargo, si se ha habilitado el túnel dividido, es posible que se necesiten configuraciones para asegurarse de que la dirección IP de destino del recurso protegido aparezca entre las direcciones IP permitidas.

Agregue su texto de encabezado aquí

A continuación se muestra una lista completa de las opciones de configuración disponibles en /etc/firezone/firezone.rb.



opción

descripción

valor por defecto

predeterminado['firezone']['external_url']

URL utilizada para acceder al portal web de esta instancia de Firezone.

“https://#{nodo['fqdn'] || nodo['nombre de host']}”

predeterminado['zona de fuego']['directorio_config']

Directorio de nivel superior para la configuración de Firezone.

/etc/zonafuego'

predeterminado['firezone']['install_directory']

Directorio de nivel superior para instalar Firezone.

/opt/firezone'

predeterminado['firezone']['app_directory']

Directorio de nivel superior para instalar la aplicación web Firezone.

“#{nodo['firezone']['install_directory']}/embedded/service/firezone”

predeterminado['firezone']['log_directory']

Directorio de nivel superior para registros de Firezone.

/var/log/zonafuego'

predeterminado['firezone']['var_directory']

Directorio de nivel superior para archivos de tiempo de ejecución de Firezone.

/var/opt/firezone'

predeterminado['zona de fuego']['usuario']

Nombre del usuario de Linux sin privilegios al que pertenecerán la mayoría de los servicios y archivos.

zona de fuego'

predeterminado['zona de fuego']['grupo']

Nombre del grupo de Linux al que pertenecerán la mayoría de los servicios y archivos.

zona de fuego'

predeterminado['zona de fuego']['admin_email']

Dirección de correo electrónico para el usuario inicial de Firezone.

“zonafuego@localhost”

predeterminado['firezone']['max_devices_per_user']

Número máximo de dispositivos que puede tener un usuario.

10

predeterminado['firezone']['allow_unprivileged_device_management']

Permite a los usuarios que no son administradores crear y eliminar dispositivos.

VERDADERO

predeterminado['firezone']['allow_unprivileged_device_configuration']

Permite a los usuarios que no son administradores modificar las configuraciones de los dispositivos. Cuando está deshabilitado, evita que los usuarios sin privilegios cambien todos los campos del dispositivo, excepto el nombre y la descripción.

VERDADERO

predeterminado['firezone']['egress_interface']

Nombre de la interfaz donde saldrá el tráfico tunelizado. Si es nulo, se utilizará la interfaz de ruta predeterminada.

cero

predeterminado['firezone']['fips_enabled']

Habilite o deshabilite el modo OpenSSL FIP.

cero

predeterminado['firezone']['logging']['enabled']

Habilite o deshabilite el registro en Firezone. Establézcalo en falso para deshabilitar el registro por completo.

VERDADERO

predeterminado['empresa']['nombre']

Nombre utilizado por el libro de cocina Chef 'enterprise'.

zona de fuego'

predeterminado['firezone']['install_path']

Instale la ruta utilizada por el libro de cocina "empresarial" de Chef. Debe establecerse igual que el directorio_instalación anterior.

nodo['firezone']['install_directory']

predeterminado['zona de fuego']['sysvinit_id']

Un identificador utilizado en /etc/inittab. Debe ser una secuencia única de 1 a 4 caracteres.

SORBER'

predeterminado['firezone']['autenticación']['local']['habilitado']

Habilite o deshabilite la autenticación de correo electrónico/contraseña local.

VERDADERO

predeterminado['firezone']['autenticación']['auto_create_oidc_users']

Cree automáticamente usuarios que inicien sesión desde OIDC por primera vez. Desactive para permitir que solo los usuarios existentes inicien sesión a través de OIDC.

VERDADERO

predeterminado['firezone']['autenticación']['disable_vpn_on_oidc_error']

Deshabilite la VPN de un usuario si se detecta un error al intentar actualizar su token OIDC.

FALSO

predeterminado['firezone']['autenticación']['oidc']

Configuración de OpenID Connect, en el formato de {“proveedor” => [config…]} – Ver Documentación de OpenIDConnect para ejemplos de configuración.

{}

predeterminado['zona de fuego']['nginx']['habilitado']

Habilite o deshabilite el servidor nginx incluido.

VERDADERO

predeterminado['zona de fuego']['nginx']['ssl_port']

Puerto de escucha HTTPS.

443

predeterminado['zona de fuego']['nginx']['directorio']

Directorio para almacenar la configuración de host virtual nginx relacionada con Firezone.

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

predeterminado['firezone']['nginx']['log_directory']

Directorio para almacenar archivos de registro nginx relacionados con Firezone.

“#{nodo['firezone']['log_directory']}/nginx”

predeterminado['firezone']['nginx']['log_rotation']['file_maxbytes']

Tamaño de archivo en el que rotar los archivos de registro de Nginx.

104857600

predeterminado['firezone']['nginx']['log_rotation']['num_to_keep']

Número de archivos de registro nginx de Firezone que se deben conservar antes de descartarlos.

10

predeterminado['firezone']['nginx']['log_x_forwarded_for']

Ya sea para registrar Firezone nginx x-forwarded-for header.

VERDADERO

predeterminado['firezone']['nginx']['hsts_header']['habilitado']

Habilitar o deshabilitar HSTS.

VERDADERO

predeterminado['firezone']['nginx']['hsts_header']['include_subdomains']

Habilite o deshabilite includeSubDomains para el encabezado HSTS.

VERDADERO

predeterminado['firezone']['nginx']['hsts_header']['max_age']

Edad máxima para el encabezado HSTS.

31536000

predeterminado['firezone']['nginx']['redirect_to_canonical']

Si redirigir las URL al FQDN canónico especificado anteriormente

FALSO

predeterminado['firezone']['nginx']['caché']['habilitado']

Habilite o deshabilite la memoria caché nginx de Firezone.

FALSO

predeterminado['zona de fuego']['nginx']['caché']['directorio']

Directorio para caché nginx de Firezone.

“#{nodo['firezone']['var_directory']}/nginx/cache”

predeterminado['zona de fuego']['nginx']['usuario']

Usuario de Firezone nginx.

nodo['zona de fuego']['usuario']

predeterminado['zona de fuego']['nginx']['grupo']

Grupo nginx de Firezone.

nodo['firezone']['group']

predeterminado['zona de fuego']['nginx']['dir']

Directorio de configuración de nginx de nivel superior.

nodo['firezone']['nginx']['directorio']

predeterminado['zona de fuego']['nginx']['log_dir']

Directorio de registro de nginx de nivel superior.

nodo['firezone']['nginx']['log_directory']

predeterminado['zona de fuego']['nginx']['pid']

Ubicación del archivo pid de nginx.

“#{nodo['firezone']['nginx']['directorio']}/nginx.pid”

predeterminado['zona de fuego']['nginx']['daemon_disable']

Deshabilite el modo daemon nginx para que podamos monitorearlo en su lugar.

VERDADERO

predeterminado['zona de fuego']['nginx']['gzip']

Active o desactive la compresión nginx gzip.

en'

predeterminado['zona de fuego']['nginx']['gzip_static']

Active o desactive la compresión nginx gzip para archivos estáticos.

apagado'

predeterminado['firezone']['nginx']['gzip_http_version']

Versión HTTP que se usará para entregar archivos estáticos.

1.0 '

predeterminado['zona de fuego']['nginx']['gzip_comp_level']

Nivel de compresión nginx gzip.

2 '

predeterminado['zona de fuego']['nginx']['gzip_proxied']

Habilita o deshabilita el uso de gzip de respuestas para solicitudes de proxy según la solicitud y la respuesta.

cualquier'

predeterminado['zona de fuego']['nginx']['gzip_vary']

Habilita o deshabilita la inserción del encabezado de respuesta "Variar: aceptar codificación".

apagado'

predeterminado['zona de fuego']['nginx']['gzip_buffers']

Establece el número y el tamaño de los búferes utilizados para comprimir una respuesta. Si es nulo, se usa el valor predeterminado de nginx.

cero

predeterminado['firezone']['nginx']['gzip_types']

Tipos MIME para habilitar la compresión gzip.

['texto/sin formato', 'texto/css', 'aplicación/x-javascript', 'texto/xml', 'aplicación/xml', 'aplicación/rss+xml', 'aplicación/atom+xml', ' texto/javascript', 'aplicación/javascript', 'aplicación/json']

predeterminado['zona de fuego']['nginx']['gzip_min_length']

Longitud mínima de archivo para habilitar la compresión de archivos gzip.

1000

predeterminado['zona de fuego']['nginx']['gzip_disable']

Comparador de agentes de usuario para deshabilitar la compresión gzip.

MSIE [1-6]\.'

predeterminado['firezone']['nginx']['keepalive']

Activa el caché para la conexión a servidores ascendentes.

en'

predeterminado['firezone']['nginx']['keepalive_timeout']

Tiempo de espera en segundos para la conexión keepalive a los servidores ascendentes.

65

predeterminado['firezone']['nginx']['worker_processes']

Número de procesos de trabajo de nginx.

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

predeterminado['firezone']['nginx']['worker_connections']

Número máximo de conexiones simultáneas que puede abrir un proceso de trabajo.

1024

predeterminado['zona de fuego']['nginx']['worker_rlimit_nofile']

Cambia el límite de la cantidad máxima de archivos abiertos para los procesos de trabajo. Usa el valor predeterminado de nginx si es nulo.

cero

predeterminado['firezone']['nginx']['multi_accept']

Si los trabajadores deben aceptar una conexión a la vez o varias.

VERDADERO

predeterminado['firezone']['nginx']['event']

Especifica el método de procesamiento de conexión para usar dentro del contexto de eventos de nginx.

encuesta

predeterminado['firezone']['nginx']['server_tokens']

Habilita o deshabilita la emisión de la versión nginx en las páginas de error y en el campo de encabezado de respuesta "Servidor".

cero

predeterminado['firezone']['nginx']['server_names_hash_bucket_size']

Establece el tamaño del depósito para las tablas hash de nombres de servidor.

64

predeterminado['firezone']['nginx']['sendfile']

Habilita o deshabilita el uso de sendfile() de nginx.

en'

predeterminado['firezone']['nginx']['access_log_options']

Establece las opciones de registro de acceso de nginx.

cero

predeterminado['zona de fuego']['nginx']['error_log_options']

Establece las opciones de registro de errores de nginx.

cero

predeterminado['zona de fuego']['nginx']['disable_access_log']

Deshabilita el registro de acceso de nginx.

FALSO

predeterminado['firezone']['nginx']['types_hash_max_size']

Tamaño máximo de hash de tipos de nginx.

2048

predeterminado['firezone']['nginx']['types_hash_bucket_size']

nginx escribe el tamaño del depósito de hash.

64

predeterminado['firezone']['nginx']['proxy_read_timeout']

Tiempo de espera de lectura del proxy nginx. Establézcalo en nil para usar el valor predeterminado de nginx.

cero

predeterminado['firezone']['nginx']['client_body_buffer_size']

Tamaño del búfer del cuerpo del cliente nginx. Establézcalo en nil para usar el valor predeterminado de nginx.

cero

predeterminado['firezone']['nginx']['client_max_body_size']

Tamaño máximo del cuerpo del cliente nginx.

250 m

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

Especifique módulos nginx adicionales.

[]

predeterminado['firezone']['nginx']['enable_rate_limiting']

Habilite o deshabilite la limitación de velocidad de nginx.

VERDADERO

predeterminado['firezone']['nginx']['rate_limiting_zone_name']

Nombre de la zona de limitación de velocidad de Nginx.

zona de fuego'

predeterminado['firezone']['nginx']['rate_limiting_backoff']

Retroceso de limitación de velocidad de Nginx.

10 m

predeterminado['firezone']['nginx']['rate_limit']

Límite de velocidad de Nginx.

10r/s'

predeterminado['zona de fuego']['nginx']['ipv6']

Permita que nginx escuche solicitudes HTTP para IPv6 además de IPv4.

VERDADERO

predeterminado['zona de fuego']['postgresql']['habilitado']

Habilite o deshabilite Postgresql incluido. Establézcalo en falso y complete las opciones de la base de datos a continuación para usar su propia instancia de Postgresql.

VERDADERO

predeterminado['zona de fuego']['postgresql']['nombre de usuario']

Nombre de usuario para Postgresql.

nodo['zona de fuego']['usuario']

predeterminado['zona de fuego']['postgresql']['directorio_datos']

Directorio de datos de Postgresql.

“#{nodo['firezone']['var_directory']}/postgresql/13.3/data”

predeterminado['firezone']['postgresql']['log_directory']

Directorio de registro de Postgresql.

“#{nodo['firezone']['log_directory']}/postgresql”

predeterminado['firezone']['postgresql']['log_rotation']['file_maxbytes']

Tamaño máximo del archivo de registro de Postgresql antes de rotarlo.

104857600

predeterminado['firezone']['postgresql']['log_rotation']['num_to_keep']

Número de archivos de registro de Postgresql que se deben conservar.

10

predeterminado['zona de fuego']['postgresql']['checkpoint_completion_target']

Objetivo de finalización del punto de control de Postgresql.

0.5

predeterminado['firezone']['postgresql']['checkpoint_segments']

Número de segmentos de punto de control de Postgresql.

3

predeterminado['zona de fuego']['postgresql']['checkpoint_timeout']

Tiempo de espera del punto de control de Postgresql.

5 minutos'

predeterminado['firezone']['postgresql']['checkpoint_warning']

Tiempo de advertencia del punto de control de Postgresql en segundos.

30 '

predeterminado['firezone']['postgresql']['efective_cache_size']

Tamaño de caché efectivo de Postgresql.

128 MB'

predeterminado['zona de fuego']['postgresql']['dirección de escucha']

Dirección de escucha de Postgresql.

127.0.0.1 '

predeterminado['zona de fuego']['postgresql']['max_connections']

Conexiones máximas de Postgresql.

350

predeterminado['zona de fuego']['postgresql']['md5_auth_cidr_addresses']

CIDR de Postgresql para permitir la autenticación md5.

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

predeterminado['zona de fuego']['postgresql']['puerto']

Puerto de escucha Postgresql.

15432

predeterminado['zona de fuego']['postgresql']['shared_buffers']

Tamaño de los búferes compartidos de Postgresql.

“#{(nodo['memoria']['total'].to_i / 4) / 1024}MB”

predeterminado['zona de fuego']['postgresql']['shmmax']

Postgresql shmmax en bytes.

17179869184

predeterminado['zona de fuego']['postgresql']['shmall']

Shmall Postgresql en bytes.

4194304

predeterminado['zona de fuego']['postgresql']['work_mem']

Tamaño de la memoria de trabajo de Postgresql.

8 MB'

predeterminado['zona de fuego']['base de datos']['usuario']

Especifica el nombre de usuario que usará Firezone para conectarse a la base de datos.

nodo['zona de fuego']['postgresql']['nombre de usuario']

predeterminado['firezone']['base de datos']['contraseña']

Si usa una base de datos externa, especifica la contraseña que usará Firezone para conectarse a la base de datos.

Cambiame'

predeterminado['zona de fuego']['base de datos']['nombre']

Base de datos que usará Firezone. Se creará si no existe.

zona de fuego'

predeterminado['zona de fuego']['base de datos']['host']

Host de base de datos al que se conectará Firezone.

nodo['firezone']['postgresql']['listen_address']

predeterminado['zona de fuego']['base de datos']['puerto']

Puerto de base de datos al que se conectará Firezone.

nodo['zona de fuego']['postgresql']['puerto']

predeterminado['firezone']['database']['pool']

Tamaño del grupo de base de datos que usará Firezone.

[10, Etc.nprocesadores].max

predeterminado['zona de fuego']['base de datos']['ssl']

Ya sea para conectarse a la base de datos a través de SSL.

FALSO

predeterminado['zona de fuego']['base de datos']['ssl_opts']

Hash de opciones para enviar a la opción :ssl_opts cuando se conecta a través de SSL. Ver Documentación de Ecto.Adapters.Postgres.

{}

predeterminado['zona de fuego']['base de datos']['parámetros']

Hash de parámetros para enviar a la opción :parameters al conectarse a la base de datos. Ver Documentación de Ecto.Adapters.Postgres.

{}

predeterminado['zona de fuego']['base de datos']['extensiones']

Extensiones de base de datos para habilitar.

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

predeterminado['firezone']['phoenix']['enabled']

Habilite o deshabilite la aplicación web Firezone.

VERDADERO

predeterminado['firezone']['phoenix']['listen_address']

Dirección de escucha de la aplicación web Firezone. Esta será la dirección de escucha ascendente que nginx proxies.

127.0.0.1 '

predeterminado['firezone']['phoenix']['port']

Puerto de escucha de la aplicación web Firezone. Este será el puerto ascendente que nginx proxies.

13000

predeterminado['firezone']['phoenix']['log_directory']

Directorio de registro de la aplicación web de Firezone.

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

predeterminado['firezone']['phoenix']['log_rotation']['file_maxbytes']

Tamaño del archivo de registro de la aplicación web Firezone.

104857600

predeterminado['firezone']['phoenix']['log_rotation']['num_to_keep']

Número de archivos de registro de la aplicación web de Firezone que se deben conservar.

10

predeterminado['firezone']['phoenix']['crash_detection']['enabled']

Habilite o deshabilite el cierre de la aplicación web Firezone cuando se detecta un bloqueo.

VERDADERO

predeterminado['firezone']['phoenix']['external_trusted_proxies']

Lista de servidores proxy inversos de confianza formateados como una matriz de IP y/o CIDR.

[]

predeterminado['firezone']['phoenix']['private_clients']

Lista de clientes HTTP de red privada, formateada como Array de IPs y/o CIDRs.

[]

predeterminado['firezone']['wireguard']['enabled']

Habilite o deshabilite la administración de WireGuard incluida.

VERDADERO

predeterminado['firezone']['wireguard']['log_directory']

Directorio de registro para la administración de WireGuard en paquete.

“#{nodo['firezone']['log_directory']}/wireguard”

predeterminado['firezone']['wireguard']['log_rotation']['file_maxbytes']

Tamaño máximo del archivo de registro de WireGuard.

104857600

predeterminado['firezone']['wireguard']['log_rotation']['num_to_keep']

Número de archivos de registro de WireGuard que se deben conservar.

10

predeterminado['firezone']['wireguard']['interface_name']

Nombre de la interfaz WireGuard. Cambiar este parámetro puede causar una pérdida temporal en la conectividad VPN.

wg-firezone'

predeterminado['firezone']['wireguard']['port']

Puerto de escucha WireGuard.

51820

predeterminado['firezone']['wireguard']['mtu']

MTU de interfaz WireGuard para este servidor y para configuraciones de dispositivos.

1280

predeterminado['firezone']['wireguard']['endpoint']

WireGuard Endpoint para usar para generar configuraciones de dispositivos. Si es nulo, el valor predeterminado es la dirección IP pública del servidor.

cero

predeterminado['firezone']['wireguard']['dns']

WireGuard DNS para usar en configuraciones de dispositivos generados.

1.1.1.1, 1.0.0.1′

predeterminado['firezone']['wireguard']['allowed_ips']

IP permitidas de WireGuard para usar en configuraciones de dispositivos generados.

0.0.0.0/0, ::/0′

predeterminado['firezone']['wireguard']['persistent_keepalive']

Configuración predeterminada de PersistentKeepalive para configuraciones de dispositivos generados. Un valor de 0 deshabilita.

0

predeterminado['firezone']['wireguard']['ipv4']['enabled']

Habilite o deshabilite IPv4 para la red WireGuard.

VERDADERO

predeterminado['firezone']['wireguard']['ipv4']['masquerade']

Habilite o deshabilite el enmascaramiento para los paquetes que salen del túnel IPv4.

VERDADERO

predeterminado['firezone']['wireguard']['ipv4']['network']

Grupo de direcciones IPv4 de la red WireGuard.

10.3.2.0 / 24 ′

predeterminado['firezone']['wireguard']['ipv4']['address']

Dirección IPv4 de la interfaz WireGuard. Debe estar dentro del grupo de direcciones de WireGuard.

10.3.2.1 '

predeterminado['firezone']['wireguard']['ipv6']['enabled']

Habilite o deshabilite IPv6 para la red WireGuard.

VERDADERO

predeterminado['firezone']['wireguard']['ipv6']['masquerade']

Habilite o deshabilite el enmascaramiento para los paquetes que salen del túnel IPv6.

VERDADERO

predeterminado['firezone']['wireguard']['ipv6']['network']

Grupo de direcciones IPv6 de la red WireGuard.

fd00::3:2:0/120′

predeterminado['firezone']['wireguard']['ipv6']['address']

Dirección IPv6 de la interfaz WireGuard. Debe estar dentro del grupo de direcciones IPv6.

fd00::3:2:1′

predeterminado['firezone']['runit']['svlogd_bin']

Ubicación del contenedor Runit svlogd.

“#{nodo['firezone']['install_directory']}/embedded/bin/svlogd”

predeterminado['zona de fuego']['ssl']['directorio']

Directorio SSL para almacenar certificados generados.

/var/opt/firezone/ssl'

predeterminado['firezone']['ssl']['email_address']

Dirección de correo electrónico que se usará para los certificados autofirmados y los avisos de renovación del protocolo ACME.

tu@ejemplo.com'

predeterminado['firezone']['ssl']['acme']['enabled']

Habilite ACME para el aprovisionamiento automático de certificados SSL. Deshabilite esto para evitar que Nginx escuche en el puerto 80. Consulte esta página para obtener más instrucciones.

FALSO

predeterminado['firezone']['ssl']['acme']['server']

Servidor ACME a utilizar para la emisión/renovación de certificados. puede ser cualquiera servidor acme.sh válido

letsencrypt

predeterminado['firezone']['ssl']['acme']['keylength']

Especifique el tipo de clave y la longitud de los certificados SSL. Ver esta página

Ec-256

predeterminado['firezone']['ssl']['certificado']

Ruta al archivo de certificado para su FQDN. Anula la configuración de ACME anterior si se especifica. Si tanto ACME como esto son nulos, se generará un certificado autofirmado.

cero

predeterminado['firezone']['ssl']['certificate_key']

Ruta al archivo del certificado.

cero

predeterminado['zona de fuego']['ssl']['ssl_dhparam']

nginx ssl dh_param.

cero

predeterminado['firezone']['ssl']['country_name']

Nombre del país para el certificado autofirmado.

A NOSOTROS'

predeterminado['firezone']['ssl']['state_name']

Indique el nombre del certificado autofirmado.

CALIFORNIA'

predeterminado['firezone']['ssl']['locality_name']

Nombre de la localidad para el certificado autofirmado.

San Francisco'

predeterminado['firezone']['ssl']['company_name']

Certificado autofirmado del nombre de la empresa.

Mi empresa'

predeterminado['firezone']['ssl']['organizational_unit_name']

Nombre de la unidad organizativa para el certificado autofirmado.

Operaciones'

predeterminado['firezone']['ssl']['ciphers']

Cifrados SSL para uso de 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’

predeterminado['firezone']['ssl']['fips_ciphers']

Cifrados SSL para el modo FIP.

FIPS@FUERZA:!aNULL:!eNULL'

predeterminado['firezone']['ssl']['protocolos']

Protocolos TLS a utilizar.

TLSv1 TLSv1.1 TLSv1.2′

predeterminado['firezone']['ssl']['session_cache']

Caché de sesión SSL.

compartido:SSL:4m'

predeterminado['firezone']['ssl']['session_timeout']

Tiempo de espera de la sesión SSL.

5 m

predeterminado['zona de fuego']['robots_allow']

Los robots nginx lo permiten.

/ '

predeterminado['zona de fuego']['robots_disallow']

Los robots nginx no permiten.

cero

predeterminado['firezone']['outbound_email']['from']

Correo electrónico saliente desde la dirección.

cero

predeterminado['firezone']['outbound_email']['provider']

Proveedor de servicios de correo electrónico saliente.

cero

predeterminado['firezone']['outbound_email']['configs']

Configuraciones del proveedor de correo electrónico saliente.

ver ómnibus/libros de cocina/firezone/attributes/default.rb

predeterminado['firezone']['telemetría']['habilitado']

Habilite o deshabilite la telemetría de productos anónimos.

VERDADERO

predeterminado['firezone']['connectivity_checks']['enabled']

Habilite o deshabilite el servicio de verificación de conectividad de Firezone.

VERDADERO

predeterminado['firezone']['connectivity_checks']['interval']

Intervalo entre comprobaciones de conectividad en segundos.

3_600



________________________________________________________________

 

Ubicaciones de archivos y directorios

 

Aquí encontrará una lista de archivos y directorios relacionados con una instalación típica de Firezone. Estos podrían cambiar dependiendo de los cambios en su archivo de configuración.



camino

descripción

/var/opt/zonafuego

Directorio de nivel superior que contiene datos y configuración generada para los servicios integrados de Firezone.

/opt/zona de fuego

Directorio de nivel superior que contiene bibliotecas integradas, binarios y archivos de tiempo de ejecución necesarios para Firezone.

/usr/bin/firezone-ctl

Utilidad firezone-ctl para administrar su instalación de Firezone.

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

archivo de unidad systemd para iniciar el proceso de supervisión de Firezone runsvdir.

/etc/zona de fuego

Archivos de configuración de Firezone.



__________________________________________________________

 

Plantillas de cortafuegos

 

Esta página estaba vacía en documentos

 

_____________________________________________________________

 

Plantilla de cortafuegos Nftables

 

La siguiente plantilla de firewall de nftables se puede usar para proteger el servidor que ejecuta Firezone. La plantilla hace algunas suposiciones; es posible que deba ajustar las reglas para que se adapten a su caso de uso:

  • La interfaz de WireGuard se llama wg-firezone. Si esto no es correcto, cambie la variable DEV_WIREGUARD para que coincida con la opción de configuración predeterminada['firezone']['wireguard']['interface_name'].
  • El puerto en el que está escuchando WireGuard es 51820. Si no está utilizando el puerto predeterminado, cambie la variable WIREGUARD_PORT.
  • Solo se permitirá el siguiente tráfico entrante al servidor:
    • SSH (puerto TCP 22)
    • HTTP (puerto TCP 80)
    • HTTPS (puerto TCP 443)
    • WireGuard (puerto UDP WIREGUARD_PORT)
    • UDP traceroute (puerto UDP 33434-33524, velocidad limitada a 500/segundo)
    • ICMP e ICMPv6 (tasa de respuestas de ping/ping limitada a 2000/segundo)
  • Solo se permitirá el siguiente tráfico saliente desde el servidor:
    • DNS (UDP y puerto TCP 53)
    • HTTP (puerto TCP 80)
    • NTP (puerto UDP 123)
    • HTTPS (puerto TCP 443)
    • Envío SMTP (puerto TCP 587)
    • UDP traceroute (puerto UDP 33434-33524, velocidad limitada a 500/segundo)
  • Se registrará el tráfico no coincidente. Las reglas utilizadas para el registro están separadas de las reglas para eliminar el tráfico y tienen un límite de velocidad. La eliminación de las reglas de registro relevantes no afectará el tráfico.

Reglas administradas de Firezone

Firezone configura sus propias reglas de nftables para permitir/rechazar el tráfico a los destinos configurados en la interfaz web y para manejar la NAT saliente para el tráfico del cliente.

La aplicación de la siguiente plantilla de firewall en un servidor que ya se está ejecutando (no en el momento del arranque) dará como resultado que se borren las reglas de Firezone. Esto puede tener implicaciones de seguridad.

Para evitar esto, reinicie el servicio Phoenix:

firezone-ctl reiniciar phoenix

Plantilla básica de cortafuegos

#!/usr/sbin/nft-f

 

## Borrar/vaciar todas las reglas existentes

juego de reglas al ras

 

############################# VARIABLES ################# ###############

## Nombre de la interfaz de Internet/WAN

definir DEV_WAN = eth0

 

## Nombre de la interfaz WireGuard

definir DEV_WIREGUARD = wg-firezone

 

## Puerto de escucha WireGuard

definir WIREGUARD_PORT = 51820

############################ FIN DE LAS VARIABLES ################## ############

 

# Tabla principal de filtrado de la familia inet

filtro de entrada de tabla {

 

 # Reglas para el tráfico reenviado

 # Esta cadena se procesa antes que la cadena de reenvío de Firezone

 cadena adelante {

   filtro de tipo anzuelo filtro de prioridad de reenvío – 5; política aceptar

 }

 

 # Reglas para el tráfico de entrada

 entrada de cadena {

   filtro de tipo gancho filtro de prioridad de entrada; caída de la política

 

   ## Permitir el tráfico entrante a la interfaz de loopback

   si lo \

     aceptar \

     comentario "Permitir todo el tráfico desde la interfaz de loopback"

 

   ## Permitir conexiones establecidas y relacionadas

   ct estado establecido, relacionado \

     aceptar \

     comentario “Permitir conexiones establecidas/relacionadas”

 

   ## Permitir el tráfico entrante de WireGuard

   IIF $DEV_WAN puerto upp $WIREGUARD_PORT \

     encimera \

     aceptar \

     comentario "Permitir el tráfico entrante de WireGuard"

 

   ## Registrar y descartar nuevos paquetes TCP no SYN

   banderas tcp! = estado de sincronización nuevo \

     tasa límite 100/minuto ráfaga 150 paquetes \

     prefijo de registro “IN – Nuevo !SYN: “ \

     comentario "Registro de límite de velocidad para nuevas conexiones que no tienen establecido el indicador SYN TCP"

   banderas tcp! = estado de sincronización nuevo \

     encimera \

     gota \

     comentario "Eliminar nuevas conexiones que no tienen el indicador SYN TCP establecido"

 

   ## Registrar y descartar paquetes TCP con un conjunto de indicadores fin/syn no válidos

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

     tasa límite 100/minuto ráfaga 150 paquetes \

     prefijo de registro “ENTRADA – TCP FIN|SIN: “ \

     comentario "Registro de límite de velocidad para paquetes TCP con un conjunto de indicadores fin/syn no válidos"

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

     encimera \

     gota \

     comentario "Eliminar paquetes TCP con un conjunto de indicadores fin/syn no válidos"

 

   ## Registrar y descartar paquetes TCP con un conjunto de indicadores de sincronización/rst no válidos

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

     tasa límite 100/minuto ráfaga 150 paquetes \

     prefijo de registro “ENTRADA – TCP SYN|RST: “ \

     comentario "Registro de límite de velocidad para paquetes TCP con conjunto de indicadores de sincronización/rst no válidos"

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

     encimera \

     gota \

     comentario "Eliminar paquetes TCP con conjunto de indicadores de sincronización/rst no válidos"

 

   ## Registrar y descartar indicadores de TCP no válidos

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

     tasa límite 100/minuto ráfaga 150 paquetes \

     prefijo de registro “EN – FIN:” \

     comentario “Registro de límite de velocidad para indicadores TCP no válidos (fin|syn|rst|psh|ack|urg) < (fin)”

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

     encimera \

     gota \

     comentario "Soltar paquetes TCP con banderas (fin|syn|rst|psh|ack|urg) < (fin)"

 

   ## Registrar y descartar indicadores de TCP no válidos

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

     tasa límite 100/minuto ráfaga 150 paquetes \

     prefijo de registro “EN – FIN|PSH|URG:” \

     comentario “Registro de límite de velocidad para indicadores TCP no válidos (fin|syn|rst|psh|ack|urg) == (fin|psh|urg)”

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

     encimera \

     gota \

     comentario "Soltar paquetes TCP con banderas (fin|syn|rst|psh|ack|urg) == (fin|psh|urg)"

 

   ## Eliminar el tráfico con un estado de conexión no válido

   ct estado inválido \

     tasa límite 100/minuto ráfaga 150 paquetes \

     registro marca todos los prefijos “EN – Inválido: “ \

     comentario “Registro de límite de velocidad para tráfico con estado de conexión no válido”

   ct estado inválido \

     encimera \

     gota \

     comentario "Eliminar tráfico con estado de conexión no válido"

 

   ## Permitir respuestas de ping/ping de IPv4 pero limitar la tasa a 2000 PPS

   ip protocolo icmp tipo icmp { respuesta de eco, solicitud de eco } \

     tasa límite 2000/segundo \

     encimera \

     aceptar \

     comentario "Permitir eco IPv4 entrante (ping) limitado a 2000 PPS"

 

   ## Permitir todos los demás ICMP IPv4 entrantes

   ip protocolo icmp\

     encimera \

     aceptar \

     comentario "Permitir todos los demás ICMP IPv4"

 

   ## Permitir respuestas de ping/ping de IPv6 pero limitar la tasa a 2000 PPS

   tipo icmpv6 { respuesta de eco, solicitud de eco } \

     tasa límite 2000/segundo \

     encimera \

     aceptar \

     comentario "Permitir eco IPv6 entrante (ping) limitado a 2000 PPS"

 

   ## Permitir todos los demás ICMP IPv6 entrantes

   meta l4proto { icmpv6 } \

     encimera \

     aceptar \

     comentario "Permitir todos los demás ICMP IPv6"

 

   ## Permitir puertos UDP traceroute entrantes pero limitar a 500 PPS

   puerto upp 33434-33524\

     tasa límite 500/segundo \

     encimera \

     aceptar \

     comentario "Permitir trazado de ruta UDP entrante limitado a 500 PPS"

 

   ## Permitir SSH de entrada

   puerto TCP ssh ct estado nuevo \

     encimera \

     aceptar \

     comentario "Permitir conexiones SSH entrantes"

 

   ## Permitir HTTP y HTTPS entrantes

   tcp dport { http, https } ct estado nuevo \

     encimera \

     aceptar \

     comentario “Permitir conexiones HTTP y HTTPS entrantes”

 

   ## Registre cualquier tráfico no coincidente, pero limite la tasa de registro a un máximo de 60 mensajes/minuto

   ## La política predeterminada se aplicará al tráfico no coincidente

   tasa límite 60/minuto ráfaga 100 paquetes \

     prefijo de registro “ENTRADA – Soltar: “ \

     comentario "Registrar cualquier tráfico no coincidente"

 

   ## Cuente el tráfico sin igual

   encimera \

     comentario “Cuenta cualquier tráfico no coincidente”

 }

 

 # Reglas para el tráfico de salida

 salida en cadena {

   filtro de tipo gancho filtro de prioridad de salida; caída de la política

 

   ## Permitir el tráfico saliente a la interfaz de loopback

   o si lo \

     aceptar \

     comentario "Permitir que todo el tráfico salga a la interfaz de loopback"

 

   ## Permitir conexiones establecidas y relacionadas

   ct estado establecido, relacionado \

     encimera \

     aceptar \

     comentario “Permitir conexiones establecidas/relacionadas”

 

   ## Permita el tráfico saliente de WireGuard antes de descartar conexiones con mal estado

   Sí $DEV_WAN deporte upp $WIREGUARD_PORT \

     encimera \

     aceptar \

     comentario “Permitir el tráfico saliente de WireGuard”

 

   ## Eliminar el tráfico con un estado de conexión no válido

   ct estado inválido \

     tasa límite 100/minuto ráfaga 150 paquetes \

     registro marca todos los prefijos “FUERA – Inválido: “ \

     comentario “Registro de límite de velocidad para tráfico con estado de conexión no válido”

   ct estado inválido \

     encimera \

     gota \

     comentario "Eliminar tráfico con estado de conexión no válido"

 

   ## Permitir todos los demás ICMP IPv4 salientes

   ip protocolo icmp\

     encimera \

     aceptar \

     comentario "Permitir todos los tipos de ICMP IPv4"

 

   ## Permitir todos los demás ICMP IPv6 salientes

   meta l4proto { icmpv6 } \

     encimera \

     aceptar \

     comentario "Permitir todos los tipos de ICMP IPv6"

 

   ## Permitir puertos UDP de traceroute salientes pero limitarlos a 500 PPS

   puerto upp 33434-33524\

     tasa límite 500/segundo \

     encimera \

     aceptar \

     comentario "Permitir trazado de ruta UDP saliente limitado a 500 PPS"

 

   ## Permitir conexiones HTTP y HTTPS salientes

   tcp dport { http, https } ct estado nuevo \

     encimera \

     aceptar \

     comentario "Permitir conexiones HTTP y HTTPS salientes"

 

   ## Permitir el envío SMTP saliente

   tcp dport envío ct estado nuevo \

     encimera \

     aceptar \

     comentario "Permitir envío SMTP saliente"

 

   ## Permitir solicitudes de DNS salientes

   puerto upp 53 \

     encimera \

     aceptar \

     comentario "Permitir solicitudes de DNS UDP salientes"

   puerto TCP 53 \

     encimera \

     aceptar \

     comentario "Permitir solicitudes TCP DNS salientes"

 

   ## Permitir solicitudes NTP salientes

   puerto upp 123 \

     encimera \

     aceptar \

     comentario "Permitir solicitudes NTP salientes"

 

   ## Registre cualquier tráfico no coincidente, pero limite la tasa de registro a un máximo de 60 mensajes/minuto

   ## La política predeterminada se aplicará al tráfico no coincidente

   tasa límite 60/minuto ráfaga 100 paquetes \

     prefijo de registro “FUERA – Soltar: “ \

     comentario "Registrar cualquier tráfico no coincidente"

 

   ## Cuente el tráfico sin igual

   encimera \

     comentario “Cuenta cualquier tráfico no coincidente”

 }

 

}

 

# Tabla principal de filtrado de NAT

tabla inet nat {

 

 # Reglas para el enrutamiento previo del tráfico NAT

 enrutamiento previo de la cadena {

   escriba la prioridad de enrutamiento previo del gancho nat dstnat; política aceptar

 }

 

 # Reglas para el enrutamiento posterior del tráfico NAT

 # Esta tabla se procesa antes de la cadena posterior al enrutamiento de Firezone

 cadena posterior al enrutamiento {

   tipo nat hook postrouting prioridad srcnat – 5; política aceptar

 }

 

}

Uso

El firewall debe almacenarse en la ubicación correspondiente para la distribución de Linux que se está ejecutando. Para Debian/Ubuntu es /etc/nftables.conf y para RHEL es /etc/sysconfig/nftables.conf.

nftables.service deberá configurarse para iniciarse en el arranque (si aún no lo está) establecido:

systemctl habilitar nftables.servicio

Si realiza algún cambio en la plantilla de firewall, la sintaxis se puede validar ejecutando el comando de verificación:

nft -f /ruta/a/nftables.conf -c

Asegúrese de validar que el firewall funcione como se espera, ya que es posible que ciertas funciones de nftables no estén disponibles según la versión que se ejecute en el servidor.



_______________________________________________________________



telemetría

 

Este documento presenta una descripción general de la telemetría que Firezone recopila de su instancia autohospedada y cómo deshabilitarla.

Por qué Firezone recopila telemetría

Zona de fuego se basa en telemetría para priorizar nuestra hoja de ruta y optimizar los recursos de ingeniería que tenemos para hacer que Firezone sea mejor para todos.

La telemetría que recopilamos tiene como objetivo responder a las siguientes preguntas:

  • ¿Cuántas personas instalan, usan y dejan de usar Firezone?
  • ¿Qué características son las más valiosas y cuáles no ven ningún uso?
  • ¿Qué funcionalidad necesita más mejoras?
  • Cuando algo se rompe, ¿por qué se rompió y cómo podemos evitar que suceda en el futuro?

Cómo recopilamos la telemetría

Hay tres lugares principales donde se recopila la telemetría en Firezone:

  1. Paquete de telemetría. Incluye eventos como instalación, desinstalación y actualización.
  2. Telemetría CLI de los comandos firezone-ctl.
  3. Producto de telemetría asociado al portal web.

En cada uno de estos tres contextos, capturamos la cantidad mínima de datos necesaria para responder las preguntas de la sección anterior.

Los correos electrónicos de los administradores se recopilan solo si opta explícitamente por recibir actualizaciones de productos. De lo contrario, la información de identificación personal es nunca recogido.

Firezone almacena la telemetría en una instancia autohospedada de PostHog que se ejecuta en un clúster privado de Kubernetes, al que solo puede acceder el equipo de Firezone. Este es un ejemplo de un evento de telemetría que se envía desde su instancia de Firezone a nuestro servidor de telemetría:

{

   "identificación": “0182272d-0b88-0000-d419-7b9a413713f1”,

   "marca de tiempo": “2022-07-22T18:30:39.748000+00:00”,

   "evento": “fz_http_comenzado”,

   “id_distinto”: “1ec2e794-1c3e-43fc-a78f-1db6d1a37f54”,

   "propiedades": {

       “$geoip_nombre_ciudad”: "Ashburn",

       “$geoip_continent_code”: "N / A",

       “$geoip_nombre_continente”: "América del norte",

       “$geoip_código_país”: "NOSOTROS",

       “$geoip_nombre_país”: "Estados Unidos",

       “$geoip_latitud”: 39.0469,

       “$geoip_longitud”: -77.4903,

       “$código_postal_geoip”: "20149",

       “$geoip_subdivisión_1_código”: "VIRGINIA",

       “$geoip_subdivisión_1_nombre”: "Virginia",

       “$geoip_time_zone”: “América/Nueva_York”,

       “$ip”: "52.200.241.107",

       “$complementos_diferidos”: []

       “$complementos_fallidos”: []

       “$plugins_exitoso”: [

           “GeoIP (3)”

       ],

       “id_distinto”: “1zc2e794-1c3e-43fc-a78f-1db6d1a37f54”,

       "fqdn": “awsdemo.firezone.dev”,

       "versión del núcleo": "Linux 5.13.0",

       "versión": "0.4.6"

   },

   “elementos_cadena”: ""

}

Cómo deshabilitar la telemetría

NOTA

El equipo de desarrollo de Firezone se basa en análisis de productos para hacer que Firezone sea mejor para todos. Dejar la telemetría habilitada es la contribución individual más valiosa que puede hacer al desarrollo de Firezone. Dicho esto, entendemos que algunos usuarios tienen mayores requisitos de privacidad o seguridad y preferirían desactivar la telemetría por completo. Si ese eres tú, sigue leyendo.

La telemetría está habilitada de forma predeterminada. Para deshabilitar por completo la telemetría del producto, establezca la siguiente opción de configuración en falso en /etc/firezone/firezone.rb y ejecute sudo firezone-ctl reconfigure para recuperar los cambios.

por defecto['zona de fuego']['telemetría']['activado'] = false

Eso deshabilitará por completo toda la telemetría del producto.