Hailbytes VPN con documentación de Firezone Firewall

Índice analítico

Comezar

Aquí ofrécense instrucións paso a paso para implementar Hailbytes VPN con Firezone GUI. 

Administrar: a configuración da instancia do servidor está directamente relacionada con esta parte.

Guías de usuario: documentos útiles que poden ensinarche a usar Firezone e resolver problemas típicos. Despois de que o servidor se implantou correctamente, consulte esta sección.

Guías para configuracións comúns

Split Tunneling: use a VPN para enviar tráfico só a intervalos de IP específicos.

Lista branca: establece o enderezo IP estático dun servidor VPN para usar a lista branca.

Túneles inversos: crea túneles entre varios pares usando túneles inversos.

obter Soporte

Temos o pracer de axudarche se necesitas axuda para instalar, personalizar ou utilizar Hailbytes VPN.

Identificación

Antes de que os usuarios poidan producir ou descargar ficheiros de configuración do dispositivo, Firezone pódese configurar para requirir autenticación. É posible que os usuarios tamén teñan que volver a autenticarse periodicamente para manter activa a súa conexión VPN.

Aínda que o método de inicio de sesión predeterminado de Firezone é o correo electrónico local e o contrasinal, tamén se pode integrar con calquera fornecedor de identidade OpenID Connect (OIDC) estandarizado. Agora os usuarios poden iniciar sesión en Firezone usando as súas credenciais de Okta, Google, Azure AD ou do provedor de identidade privado.

 

Integrar un provedor OIDC xenérico

Os parámetros de configuración que necesita Firezone para permitir o SSO mediante un provedor OIDC móstranse no seguinte exemplo. En /etc/firezone/firezone.rb, pode atopar o ficheiro de configuración. Execute firezone-ctl reconfigure e firezone-ctl reinicie para actualizar a aplicación e facer efectivos os cambios.

 

# Este é un exemplo de uso de Google e Okta como provedor de identidade SSO.

# Pódense engadir varias configuracións OIDC á mesma instancia de Firezone.

 

# Firezone pode desactivar a VPN dun usuario se se detecta algún erro ao tentalo

# para actualizar o seu token de acceso. Verificouse que funciona para Google, Okta e

# Azure SSO e úsase para desconectar automaticamente a VPN dun usuario se se elimina

# do provedor de OIDC. Deixa esta opción desactivada se o teu provedor de OIDC

# ten problemas ao actualizar os tokens de acceso xa que podería interromper inesperadamente a

Sesión VPN de # usuario.

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

 

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

  google: {

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

    client_id: " ",

    client_secret: " ",

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

    response_type: "código",

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

    etiqueta: "Google"

  },

  okta: {

    discovery_document_uri: "https:// /.well-known/configuración-openid”,

    client_id: " ",

    client_secret: " ",

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

    response_type: "código",

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

    Etiqueta: "Okta"

  }

}



Os seguintes axustes de configuración son necesarios para a integración:

  1. discovery_document_uri: O URI de configuración do provedor de OpenID Connect que devolve un documento JSON usado para construír solicitudes posteriores a este provedor OIDC.
  2. client_id: ID de cliente da aplicación.
  3. client_secret: o segredo do cliente da aplicación.
  4. redirect_uri: indica ao provedor OIDC onde redirixir despois da autenticación. Este debería ser o teu Firezone EXTERNAL_URL + /auth/oidc/ /callback/ (por exemplo, https://instance-id.yourfirezone.com/auth/oidc/google/callback/).
  5. response_type: Establécese como código.
  6. alcance: Ámbitos OIDC para obter do seu provedor OIDC. Debe configurarse como perfil de correo electrónico openid ou perfil de correo electrónico openid offline_access dependendo do provedor.
  7. etiqueta: o texto da etiqueta do botón que aparece na pantalla de inicio de sesión de Firezone.

URL bonitos

Para cada provedor OIDC créase un URL bonito correspondente para redireccionar ao URL de inicio de sesión do provedor configurado. Para o exemplo de configuración OIDC anterior, os URL son:

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

Instrucións para a configuración de Firezone con provedores de identidade populares

Provedores temos documentación para:

  • Google
  • okta
  • Directory Active Azure
  • Onelogin
  • Autenticación local

 

Se o teu provedor de identidade ten un conector OIDC xenérico e non aparece na lista anterior, consulta a súa documentación para obter información sobre como recuperar as opcións de configuración necesarias.

Manter unha re-autenticación regular

Pódese cambiar a configuración en configuración/seguridade para requirir unha re-autenticación periódica. Isto pódese usar para facer cumprir o requisito de que os usuarios entren en Firezone de forma regular para continuar coa súa sesión VPN.

A duración da sesión pódese configurar entre unha hora e noventa días. Ao configurar esta opción en Nunca, podes activar as sesións VPN en calquera momento. Este é o estándar.

Re-autenticación

Un usuario debe finalizar a súa sesión VPN e iniciar sesión no portal Firezone para volver autenticar unha sesión VPN caducada (URL especificado durante a implantación).

Podes volver a autenticar a túa sesión seguindo as instrucións precisas do cliente que se atopan aquí.

 

Estado da conexión VPN

A columna da táboa de conexión VPN da páxina Usuarios mostra o estado de conexión dun usuario. Estes son os estados de conexión:

ACTIVADO: a conexión está habilitada.

DESACTIVADO: a conexión foi desactivada por un administrador ou un fallo de actualización de OIDC.

CADUCADO: a conexión está desactivada debido á caducidade da autenticación ou un usuario non iniciou sesión por primeira vez.

Google

A través do conector xeral OIDC, Firezone permite o inicio de sesión único (SSO) con Google Workspace e Cloud Identity. Esta guía mostrarache como obter os parámetros de configuración que se indican a continuación, que son necesarios para a integración:

  1. discovery_document_uri: O URI de configuración do provedor de OpenID Connect que devolve un documento JSON usado para construír solicitudes posteriores a este provedor OIDC.
  2. client_id: ID de cliente da aplicación.
  3. client_secret: o segredo do cliente da aplicación.
  4. redirect_uri: indica ao provedor OIDC onde redirixir despois da autenticación. Este debería ser o teu Firezone EXTERNAL_URL + /auth/oidc/ /callback/ (por exemplo, https://instance-id.yourfirezone.com/auth/oidc/google/callback/).
  5. response_type: Establécese como código.
  6. alcance: Ámbitos OIDC para obter do seu provedor OIDC. Debe configurarse como perfil de correo electrónico openid para proporcionar a Firezone o correo electrónico do usuario nas reclamacións devoltas.
  7. etiqueta: o texto da etiqueta do botón que aparece na pantalla de inicio de sesión de Firezone.

Obter a configuración de configuración

1. Pantalla de configuración de OAuth

Se é a primeira vez que creas un novo ID de cliente OAuth, pediráselle que configures unha pantalla de consentimento.

*Seleccione Interno para o tipo de usuario. Isto garante que só as contas que pertencen aos usuarios da túa organización de Google Workspace poden crear configuracións de dispositivos. NON seleccione Externo a menos que queira habilitar calquera persoa cunha conta de Google válida para crear configuracións do dispositivo.

 

Na pantalla de información da aplicación:

  1. Nome da aplicación: Firezone
  2. Logo da aplicación: Logotipo de Firezone (gardar ligazón como).
  3. Páxina de inicio da aplicación: o URL da túa instancia de Firezone.
  4. Dominios autorizados: o dominio de nivel superior da túa instancia de Firezone.

 

 

2. Cree ID de cliente de OAuth

Esta sección baséase na propia documentación de Google sobre configurar OAuth 2.0.

Visita Google Cloud Console Páxina de credenciais páxina, faga clic en + Crear credenciais e seleccione ID de cliente OAuth.

Na pantalla de creación de ID de cliente de OAuth:

  1. Establece o tipo de aplicación en Aplicación web
  2. Engade o teu Firezone EXTERNAL_URL + /auth/oidc/google/callback/ (por exemplo, https://instance-id.yourfirezone.com/auth/oidc/google/callback/) como entrada aos URI de redirección autorizados.

 

Despois de crear o ID de cliente de OAuth, recibirás un ID de cliente e un segredo de cliente. Estes utilizaranse xunto co URI de redirección no seguinte paso.

Integración Firezone

Editar /etc/firezone/firezone.rb para incluír as seguintes opcións:

 

# Usando Google como provedor de identidade SSO

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

  google: {

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

    client_id: " ",

    client_secret: " ",

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

    response_type: "código",

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

    etiqueta: "Google"

  }

}

 

Execute firezone-ctl reconfigure e firezone-ctl reinicie para actualizar a aplicación. Agora deberías ver un botón Iniciar sesión con Google no URL raíz de Firezone.

okta

Firezone usa o conector OIDC xenérico para facilitar o inicio de sesión único (SSO) con Okta. Este tutorial mostrarache como obter os parámetros de configuración que se indican a continuación, que son necesarios para a integración:

  1. discovery_document_uri: O URI de configuración do provedor de OpenID Connect que devolve un documento JSON usado para construír solicitudes posteriores a este provedor OIDC.
  2. client_id: ID de cliente da aplicación.
  3. client_secret: o segredo do cliente da aplicación.
  4. redirect_uri: indica ao provedor OIDC onde redirixir despois da autenticación. Este debería ser o teu Firezone EXTERNAL_URL + /auth/oidc/ /callback/ (por exemplo, https://instance-id.yourfirezone.com/auth/oidc/okta/callback/).
  5. response_type: Establécese como código.
  6. alcance: Ámbitos OIDC para obter do seu provedor OIDC. Debe configurarse como perfil de correo electrónico openid offline_access para proporcionar a Firezone o correo electrónico do usuario nas reclamacións devoltas.
  7. etiqueta: o texto da etiqueta do botón que aparece na pantalla de inicio de sesión de Firezone.

 

Integrar a aplicación Okta

Esta sección da guía baséase en Documentación de Okta.

Na Consola de administración, vai a Aplicacións > Aplicacións e fai clic en Crear integración de aplicacións. Estableza o método de inicio de sesión en OICD – OpenID Connect e o tipo de aplicación en Aplicación web.

Configure estes axustes:

  1. Nome da aplicación: Firezone
  2. Logo da aplicación: Logotipo de Firezone (gardar ligazón como).
  3. Tipo de subvención: marque a caixa Refresh Token. Isto garante que Firezone se sincronice co fornecedor de identidade e que o acceso VPN finalice unha vez que se elimine o usuario.
  4. URI de redirección de inicio de sesión: engade o teu URL_EXTERNO de Firezone + /auth/oidc/okta/callback/ (por exemplo, https://instance-id.yourfirezone.com/auth/oidc/okta/callback/) como entrada aos URI de redirección autorizados .
  5. Tarefas: limita aos grupos aos que desexas proporcionar acceso á túa instancia de Firezone.

Unha vez gardada a configuración, recibirás un ID de cliente, un segredo do cliente e un dominio Okta. Estes 3 valores utilizaranse no paso 2 para configurar Firezone.

Integrar Firezone

Editar /etc/firezone/firezone.rb para incluír as opcións a continuación. O teu discovery_document_url será /.coñecida/configuración-openid anexo ao final do seu dominio_okta.

 

# Usando Okta como provedor de identidade SSO

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

  okta: {

    discovery_document_uri: "https:// /.well-known/configuración-openid”,

    client_id: " ",

    client_secret: " ",

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

    response_type: "código",

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

    Etiqueta: "Okta"

  }

}

 

Execute firezone-ctl reconfigure e firezone-ctl reinicie para actualizar a aplicación. Agora deberías ver un botón Iniciar sesión con Okta no URL raíz de Firezone.

 

Restrinxir o acceso a certos usuarios

Os usuarios que poden acceder á aplicación Firezone poden ser restrinxidos por Okta. Vaia á páxina de Asignacións da Firezone App Integration da Consola de administración de Okta para facelo.

Directory Active Azure

A través do conector OIDC xenérico, Firezone habilita o inicio de sesión único (SSO) con Azure Active Directory. Este manual mostrarache como obter os parámetros de configuración que se indican a continuación, que son necesarios para a integración:

  1. discovery_document_uri: O URI de configuración do provedor de OpenID Connect que devolve un documento JSON usado para construír solicitudes posteriores a este provedor OIDC.
  2. client_id: ID de cliente da aplicación.
  3. client_secret: o segredo do cliente da aplicación.
  4. redirect_uri: indica ao provedor OIDC onde redirixir despois da autenticación. Este debería ser o teu Firezone EXTERNAL_URL + /auth/oidc/ /callback/ (por exemplo, https://instance-id.yourfirezone.com/auth/oidc/azure/callback/).
  5. response_type: Establécese como código.
  6. alcance: Ámbitos OIDC para obter do seu provedor OIDC. Debe configurarse como perfil de correo electrónico openid offline_access para proporcionar a Firezone o correo electrónico do usuario nas reclamacións devoltas.
  7. etiqueta: o texto da etiqueta do botón que aparece na pantalla de inicio de sesión de Firezone.

Obter a configuración de configuración

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

 

Vaia á páxina Azure Active Directory do portal de Azure. Escolla a opción de menú Xestionar, seleccione Novo rexistro e, a continuación, rexístrese proporcionando a información a continuación:

  1. Nome: Firezone
  2. Tipos de conta admitidos: (só directorio predeterminado: inquilino único)
  3. URI de redirección: este debería ser o teu firezone EXTERNAL_URL + /auth/oidc/azure/callback/ (por exemplo, https://instance-id.yourfirezone.com/auth/oidc/azure/callback/). Asegúrate de incluír a barra inclinada ao final. Este será o valor redirect_uri.

 

Despois de rexistrarse, abra a vista de detalles da aplicación e copie ID de aplicación (cliente). Este será o valor client_id. A continuación, abra o menú de puntos finais para recuperar Documento de metadatos de OpenID Connect. Este será o valor discovery_document_uri.

 

Crea un novo segredo de cliente facendo clic na opción Certificados e segredos no menú Xestionar. Copia o segredo do cliente; o valor secreto do cliente será este.

 

Por último, selecciona a ligazón de permisos da API no menú Xestionar e fai clic Engade un permisoe seleccione Microsoft Graph, Agregar correo electrónico, aberto, acceso_sen conexión perfil cos permisos necesarios.

Integración Firezone

Editar /etc/firezone/firezone.rb para incluír as seguintes opcións:

 

# Usando Azure Active Directory como provedor de identidade SSO

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

  azur: {

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

    client_id: " ",

    client_secret: " ",

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

    response_type: "código",

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

    Etiqueta: "Azure"

  }

}

 

Execute firezone-ctl reconfigure e firezone-ctl reinicie para actualizar a aplicación. Agora deberías ver un botón Iniciar sesión con Azure na URL raíz de Firezone.

Como: restrinxir o acceso a certos membros

Azure AD permite aos administradores limitar o acceso ás aplicacións a un grupo específico de usuarios dentro da súa empresa. Podes atopar máis información sobre como facelo na documentación de Microsoft.

Administrar

  • Configurar
  • Xestionar a instalación
  • Mellorar
  • Resolución de problemas
  • Consideracións de seguridade
  • Execución de consultas SQL

Configurar

Firezone usa Chef Omnibus para xestionar tarefas, incluíndo embalaxe de versións, supervisión de procesos, xestión de rexistros e moito máis.

O código Ruby constitúe o ficheiro de configuración principal, que se atopa en /etc/firezone/firezone.rb. Reiniciar sudo firezone-ctl reconfigure despois de facer modificacións neste ficheiro fai que Chef recoñeza os cambios e aplícaos ao sistema operativo actual.

Consulte a referencia do ficheiro de configuración para obter unha lista completa de variables de configuración e as súas descricións.

Xestionar a instalación

A túa instancia de Firezone pódese xestionar a través de firezone-ctl comando, como se mostra a continuación. A maioría dos subcomandos requiren prefixos con sudo.

 

root@demo:~# firezone-ctl

omnibus-ctl: comando (subcomando)

Comandos xerais:

  limpar

    Elimina *todos* os datos da zona de incendios e comeza desde cero.

  crear-o-reiniciar-administrador

    Restablece o contrasinal do administrador co correo electrónico especificado por defecto ['firezone']['admin_email'] ou crea un novo administrador se ese correo electrónico non existe.

  axudar

    Imprime esta mensaxe de axuda.

  reconfigurar

    Volve configurar a aplicación.

  restablecer-rede

    Restablece nftables, a interface WireGuard e a táboa de enrutamento aos valores predeterminados de Firezone.

  mostrar-config

    Mostra a configuración que se xeraría ao reconfigure.

  derrubamento da rede

    Elimina a interface WireGuard e a táboa Firezone nftables.

  forza-cert-renovación

    Forzar a renovación do certificado agora aínda que non caducou.

  stop-cert-renovación

    Elimina o cronjob que renova os certificados.

  desinstalar

    Elimina todos os procesos e desinstala o supervisor de procesos (conservaranse os datos).

  versión

    Mostra a versión actual de Firezone

Comandos de xestión de servizos:

  gracioso-matar

    Intente unha parada elegante e, a continuación, SIGKILL a todo o grupo de procesos.

  hup

    Envía os servizos un HUP.

  int

    Enviar os servizos un INT.

  matar

    Envía os servizos un KILL.

  unha vez

    Inicia os servizos se están caídos. Non os reinicie se paran.

  reiniciar

    Detén os servizos se se están a executar e, a continuación, iníciaos de novo.

  lista de servizos

    Lista todos os servizos (os servizos habilitados aparecen cun *.)

  Comezar

    Inicia os servizos se están caídos e reiniciaos se se deteñen.

  Estado

    Mostra o estado de todos os servizos.

  deixar

    Detén os servizos e non os reinicies.

  cola

    Consulta os rexistros de servizos de todos os servizos activados.

  prazo

    Envía os servizos un TERMO.

  usr1

    Enviar os servizos a USR1.

  usr2

    Enviar os servizos a USR2.

Mellorar

Todas as sesións VPN deben finalizar antes de actualizar Firezone, que tamén require pechar a IU web. No caso de que algo saia mal durante a actualización, recomendamos reservar unha hora para o mantemento.

 

Para mellorar Firezone, realiza as seguintes accións:

  1. Actualiza o paquete firezone usando a instalación dun comando: sudo -E bash -c "$(curl -fsSL https://github.com/firezone/firezone/raw/master/scripts/install.sh)"
  2. Executa firezone-ctl reconfigure para recoller os novos cambios.
  3. Execute firezone-ctl restart para reiniciar os servizos.

Se xurde algún problema, avísanos por enviando un ticket de asistencia.

Actualizar de <0.5.0 a >=0.5.0

Hai algúns cambios e modificacións de configuración en 0.5.0 que deben ser abordados. Descubra máis a continuación.

Elimináronse as solicitudes agrupadas de Nginx non_ssl_port (HTTP).

A partir da versión 0.5.0, Nginx xa non admite os parámetros de porto SSL forzado e non SSL. Dado que Firezone necesita SSL para funcionar, recomendamos que elimine o paquete de servizo Nginx configurando o valor predeterminado ['firezone']['nginx']['enabled'] = false e dirixindo o seu proxy inverso á aplicación Phoenix no porto 13000 (por defecto). ).

Soporte de protocolo ACME

0.5.0 introduce compatibilidade co protocolo ACME para renovar automaticamente os certificados SSL co servizo Nginx incluído. Para habilitar,

  • Asegúrate de que o predeterminado ['firezone']['external_url'] conteña un FQDN válido que se resolve co enderezo IP público do teu servidor.
  • Asegúrate de poder acceder ao porto 80/tcp
  • Activa o soporte do protocolo ACME co predeterminado ['firezone']['ssl']['acme']['enabled'] = true no teu ficheiro de configuración.

Destinos de regra de saída superpostos

A posibilidade de engadir regras con destinos duplicados desapareceu en Firezone 0.5.0. O noso script de migración recoñecerá automaticamente estas situacións durante unha actualización a 0.5.0 e só manterá as regras cuxo destino inclúa a outra regra. Non hai nada que facer se isto está ben.

En caso contrario, antes de actualizar, recomendámosche que cambies o teu conxunto de regras para desfacerse destas situacións.

Preconfigurando Okta e Google SSO

Firezone 0.5.0 elimina a compatibilidade coa configuración antiga de Okta e Google SSO en favor da nova configuración máis flexible baseada en OIDC. 

Se tes algunha configuración nas chaves predeterminadas ['firezone']['authentication']['okta'] ou predeterminadas ['firezone']['authentication']['google'], debes migralas ao noso OIDC configuración baseada na guía a continuación.

Configuración existente de Google OAuth

Elimina estas liñas que conteñen as antigas configuracións de Google OAuth do teu ficheiro de configuración situado en /etc/firezone/firezone.rb

 

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

predeterminado['firezone']['authentication']['google']['client_id']

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

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

 

A continuación, configure Google como provedor de OIDC seguindo os procedementos aquí.

(Proporcione instrucións de ligazón) <<<<<<<<<<<<<<<<<

 

Configurar Google OAuth existente 

Elimina estas liñas que conteñen as antigas configuracións de Okta OAuth do teu ficheiro de configuración situado en /etc/firezone/firezone.rb

 

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

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

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

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

 

A continuación, configure Okta como provedor de OIDC seguindo os procedementos aquí.

Actualiza de 0.3.x a >= 0.3.16

Dependendo da súa configuración e versión actual, siga as instrucións a continuación:

Se xa tes unha integración OIDC:

Para algúns provedores de OIDC, a actualización a >= 0.3.16 require obter un token de actualización para o ámbito de acceso sen conexión. Ao facelo, asegúrese de que Firezone se actualice co fornecedor de identidade e que a conexión VPN se desconecte despois de que se elimine un usuario. As iteracións anteriores de Firezone carecían desta función. Nalgúns casos, os usuarios que se eliminan do teu fornecedor de identidades aínda poden estar conectados a unha VPN.

É necesario incluír o acceso sen conexión no parámetro de ámbito da súa configuración OIDC para provedores de OIDC que admitan o ámbito de acceso sen conexión. Debe executarse a reconfiguración de Firezone-ctl para aplicar cambios ao ficheiro de configuración de Firezone, que se atopa en /etc/firezone/firezone.rb.

Para os usuarios que foron autenticados polo seu provedor de OIDC, verá o título Conexións OIDC na páxina de detalles do usuario da IU web se Firezone pode recuperar correctamente o token de actualización.

Se isto non funciona, terás que eliminar a túa aplicación OAuth existente e repetir os pasos de configuración de OIDC para crear unha nova integración de aplicacións .

Teño unha integración de OAuth existente

Antes do 0.3.11, Firezone utilizaba provedores de OAuth2 preconfigurados. 

Siga as instrucións aquí para migrar a OIDC.

Non integrei un provedor de identidade

Non fai falta ningunha acción. 

Podes seguir as instrucións aquí para habilitar SSO a través dun provedor OIDC.

Actualiza de 0.3.1 a >= 0.3.2

No seu lugar, default['firezone']['external url'] substituíu a opción de configuración default['firezone']['fqdn']. 

Establece isto no URL do teu portal en liña Firezone ao que pode acceder o público en xeral. Se o deixa sen definir, será https:// máis o FQDN do teu servidor.

O ficheiro de configuración atópase en /etc/firezone/firezone.rb. Consulte a referencia do ficheiro de configuración para obter unha lista completa de variables de configuración e as súas descricións.

Actualiza de 0.2.x a 0.3.x

Firezone xa non mantén as claves privadas do dispositivo no servidor Firezone a partir da versión 0.3.0. 

A IU web de Firezone non che permitirá volver descargar nin ver estas configuracións, pero os dispositivos existentes deberían seguir funcionando tal e como están.

Actualiza de 0.1.x a 0.2.x

Se está a actualizar desde Firezone 0.1.x, hai algúns cambios no ficheiro de configuración que deben abordarse manualmente. 

Para facer as modificacións necesarias no ficheiro /etc/firezone/firezone.rb, execute os seguintes comandos como root.

 

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

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

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

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

Firezone-ctl reconfigurar

reiniciar firezone-ctl

Solución de problemas

Comprobar os rexistros de Firezone é un primeiro paso prudente para calquera problema que poida ocorrer.

Execute sudo firezone-ctl tail para ver os rexistros de Firezone.

Problemas de conectividade de depuración

A maioría dos problemas de conectividade con Firezone son provocados por regras de iptables ou nftables incompatibles. Debes asegurarte de que as regras que teñas en vigor non choquen coas regras de Firezone.

A conectividade a Internet cae cando o túnel está activo

Asegúrate de que a cadea FORWARD permite paquetes dos teus clientes WireGuard ata os lugares que queres deixar pasar Firezone se a túa conectividade a Internet se deteriora cada vez que activas o teu túnel WireGuard.

 

Isto pódese conseguir se estás a usar ufw asegurándote de que a política de enrutamento predeterminada permite:

 

ubuntu@fz:~$ sudo ufw default allow routed

A política de enrutamento predeterminada cambiou a "permitir"

(asegúrese de actualizar as súas regras en consecuencia)

 

A vaia O estado dun servidor Firezone típico pode verse así:

 

ubuntu@fz:~$ sudo ufw status verbose

Estado: activo

Rexistro: activado (baixo)

Predeterminado: denegar (entrante), permitir (saínte), permitir (enrutar)

Novos perfís: saltar

 

Para Acción De

— —— —-

22/tcp PERMITIR ENTRAR en calquera lugar

80/tcp PERMITIR ENTRAR en calquera lugar

443/tcp PERMITIR ENTRAR en calquera lugar

51820/udp PERMITIR ENTRAR en calquera lugar

22/tcp (v6) PERMITIR ENTRAR en calquera lugar (v6)

80/tcp (v6) PERMITIR ENTRAR en calquera lugar (v6)

443/tcp (v6) PERMITIR ENTRAR en calquera lugar (v6)

51820/udp (v6) PERMITIR ENTRAR en calquera lugar (v6)

Consideracións de seguridade

Aconsellamos limitar o acceso á interface web para despregamentos de produción extremadamente sensibles e de misión crítica, como se explica a continuación.

Servizos e Portos

 

servizo

Porto predeterminado

Enderezo de escoita

descrición

Nginx

80, 443

todo

Porto HTTP(S) público para administrar Firezone e facilitar a autenticación.

Parabrisas

51820

todo

Porto WireGuard público usado para sesións VPN. (UDP)

postgresql

15432

127.0.0.1

Porto só local usado para o servidor Postgresql integrado.

Phoenix

13000

127.0.0.1

Porto só local usado polo servidor de aplicacións Elixir ascendente.

Desplegamentos de produción

Recomendámosche que penses en restrinxir o acceso á IU web exposta publicamente de Firezone (por defecto, os portos 443/tcp e 80/tcp) e, no seu lugar, uses o túnel WireGuard para xestionar Firezone para implantacións de produción e públicas nas que un único administrador estará a cargo. de crear e distribuír configuracións de dispositivos aos usuarios finais.

 

Por exemplo, se un administrador creou unha configuración de dispositivo e creou un túnel co enderezo WireGuard local 10.3.2.2, a seguinte configuración ufw permitiralle ao administrador acceder á IU web de Firezone na interface wg-firezone do servidor usando a 10.3.2.1 predeterminada. enderezo do túnel:

 

root@demo:~# estado ufw detallado

Estado: activo

Rexistro: activado (baixo)

Predeterminado: denegar (entrante), permitir (saínte), permitir (enrutar)

Novos perfís: saltar

 

Para Acción De

— —— —-

22/tcp PERMITIR ENTRAR en calquera lugar

51820/udp PERMITIR ENTRAR en calquera lugar

En calquera lugar PERMITIR EN 10.3.2.2

22/tcp (v6) PERMITIR ENTRAR en calquera lugar (v6)

51820/udp (v6) PERMITIR ENTRAR en calquera lugar (v6)

Isto deixaría só 22/tcp exposto para o acceso SSH para xestionar o servidor (opcional) e 51820/udp expostos para establecer túneles WireGuard.

Executar consultas SQL

Firezone agrupa un servidor Postgresql e a correspondencia psql utilidade que se pode usar desde o shell local como segue:

 

/opt/firezone/embedded/bin/psql \

  -U firezone \

  -d firezone \

  -h host local \

  -páx 15432 \

  -c "SQL_STATEMENT"

 

Isto pode ser útil para fins de depuración.

 

Tarefas comúns:

 

  • Lista de todos os usuarios
  • Lista de todos os dispositivos
  • Cambiando o rol dun usuario
  • Facendo unha copia de seguranza da base de datos



Lista de todos os usuarios:

 

/opt/firezone/embedded/bin/psql \

  -U firezone \

  -d firezone \

  -h host local \

  -páx 15432 \

  -c "SELECT * FROM usuarios;"



Lista de todos os dispositivos:

 

/opt/firezone/embedded/bin/psql \

  -U firezone \

  -d firezone \

  -h host local \

  -páx 15432 \

  -c "SELECT * FROM dispositivos;"



Cambiar un rol de usuario:

 

Establece o rol como "administrador" ou "sen privilexios":

 

/opt/firezone/embedded/bin/psql \

  -U firezone \

  -d firezone \

  -h host local \

  -páx 15432 \

  -c "ACTUALIZAR usuarios SET role = 'admin' WHERE correo electrónico = 'usuario@example.com';"



Facendo unha copia de seguranza da base de datos:

 

Ademais, inclúese o programa pg dump, que se pode usar para facer copias de seguridade regulares da base de datos. Execute o seguinte código para volcar unha copia da base de datos no formato de consulta SQL común (substitúe /path/to/backup.sql coa localización onde se debe crear o ficheiro SQL):

 

/opt/firezone/embedded/bin/pg_dump \

  -U firezone \

  -d firezone \

  -h host local \

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

Guías do usuario

  • Engadir usuarios
  • Engadir dispositivos
  • Regras de saída
  • Instrucións para o cliente
  • VPN de túnel dividido
  • Túnel inverso 
  • Pasarela NAT

Engadir usuarios

Despois de que Firezone se implantou correctamente, debes engadir usuarios para proporcionarlles acceso á túa rede. Para iso úsase a IU web.

 

IU web


Ao seleccionar o botón "Engadir usuario" en /users, pode engadir un usuario. Será necesario que proporcione ao usuario un enderezo de correo electrónico e un contrasinal. Para permitir o acceso aos usuarios da túa organización automaticamente, Firezone tamén pode interactuar e sincronizar cun provedor de identidade. Máis detalles están dispoñibles en Autenticar. < Engadir unha ligazón a Authenticate

Engadir dispositivos

Recomendamos solicitar que os usuarios creen as súas propias configuracións de dispositivos para que a chave privada só sexa visible para eles. Os usuarios poden xerar as súas propias configuracións de dispositivos seguindo as instrucións da páxina Instrucións para o cliente páxina.

 

Xerando a configuración do dispositivo de administración

Todas as configuracións do dispositivo do usuario poden ser creadas polos administradores de Firezone. Na páxina do perfil de usuario situada en /users, seleccione a opción "Engadir dispositivo" para facelo.

 

[Inserir captura de pantalla]

 

Podes enviar por correo electrónico ao usuario o ficheiro de configuración de WireGuard despois de crear o perfil do dispositivo.

 

Os usuarios e os dispositivos están ligados. Para obter máis detalles sobre como engadir un usuario, consulte Engadir usuarios.

Regras de saída

Mediante o uso do sistema netfilter do núcleo, Firezone permite as capacidades de filtrado de saída para especificar paquetes DROP ou ACCEPT. Normalmente está permitido todo o tráfico.

 

Os CIDR e os enderezos IP IPv4 e IPv6 son compatibles mediante a Lista de permitidos e a Lista de denegación, respectivamente. Podes optar por definir o ámbito dunha regra a un usuario ao engadila, o que aplica a regra a todos os dispositivos deste usuario.

Instrucións para o cliente

Instala e configura

Para establecer unha conexión VPN usando o cliente WireGuard nativo, consulte esta guía.

 

1. Instale o cliente WireGuard nativo

 

Os clientes oficiais de WireGuard situados aquí son compatibles con Firezone:

 

MacOS

 

Windows

 

IOS

 

androide

 

Visite o sitio web oficial de WireGuard en https://www.wireguard.com/install/ para os sistemas SO non mencionados anteriormente.

 

2. Descarga o ficheiro de configuración do dispositivo

 

O teu administrador de Firezone ou ti mesmo podes xerar o ficheiro de configuración do dispositivo usando o portal Firezone.

 

Visita o URL que proporcionou o teu administrador de Firezone para xerar automaticamente un ficheiro de configuración do dispositivo. A súa empresa terá un URL único para isto; neste caso, é https://instance-id.yourfirezone.com.

 

Inicia sesión en Firezone Okta SSO

 

[Inserir captura de pantalla]

 

3. Engade a configuración do cliente

 

Importe o ficheiro.conf ao cliente WireGuard abrindoo. Ao xirar o interruptor Activar, pode iniciar unha sesión VPN.

 

[Inserir captura de pantalla]

Reautenticación da sesión

Siga as instrucións que aparecen a continuación se o administrador de rede esixiu unha autenticación periódica para manter activa a súa conexión VPN. 



Precisas:

 

URL do portal Firezone: solicite a conexión ao seu administrador de rede.

O teu administrador de rede debería poder ofrecer o teu usuario e contrasinal. O sitio de Firezone pedirache que inicies sesión usando o servizo de inicio de sesión único que utiliza o teu empregador (como Google ou Okta).

 

1. Desactive a conexión VPN

 

[Inserir captura de pantalla]

 

2. Autentíquese de novo 

Vaia ao URL do portal Firezone e inicie sesión usando as credenciais que proporcionou o seu administrador de rede. Se xa iniciaches sesión, fai clic no botón Reautenticar antes de iniciar sesión de novo.

 

[Inserir captura de pantalla]

 

Paso 3: inicie unha sesión VPN

[Inserir captura de pantalla]

Xestor de rede para Linux

Para importar o perfil de configuración de WireGuard mediante Network Manager CLI en dispositivos Linux, siga estas instrucións (nmcli).

NOTA

Se o perfil ten compatibilidade con IPv6 activada, o intento de importar o ficheiro de configuración mediante a GUI do xestor de rede pode fallar co seguinte erro:

ipv6.method: o método "auto" non é compatible con WireGuard

1. Instale as ferramentas WireGuard 

É necesario instalar as utilidades do espazo de usuario WireGuard. Este será un paquete chamado wireguard ou wireguard-tools para distribucións de Linux.

Para Ubuntu/Debian:

sudo apt instalar wireguard

Para usar Fedora:

sudo dnf instalar wireguard-tools

ArchLinux:

sudo pacman -S wireguard-tools

Visite o sitio web oficial de WireGuard en https://www.wireguard.com/install/ para ver as distribucións que non se mencionan anteriormente.

2. Descarga a configuración 

O teu administrador de Firezone ou a autoxeración pode xerar o ficheiro de configuración do dispositivo usando o portal Firezone.

Visita o URL que proporcionou o teu administrador de Firezone para xerar automaticamente un ficheiro de configuración do dispositivo. A súa empresa terá un URL único para isto; neste caso, é https://instance-id.yourfirezone.com.

[Inserir captura de pantalla]

3. Importar configuración

Importe o ficheiro de configuración proporcionado mediante nmcli:

tipo de importación de conexión sudo nmcli ficheiro wireguard /path/to/configuration.conf

NOTA

O nome do ficheiro de configuración corresponderá á conexión/interface WireGuard. Despois da importación, a conexión pódese renomear se é necesario:

conexión nmcli modificar [nome antigo] connection.id [nome novo]

4. Conectar ou desconectar

A través da liña de comandos, conéctate á VPN do seguinte xeito:

conexión nmcli arriba [nome VPN]

Para desconectar:

conexión nmcli abaixo [nome VPN]

A miniaplicación do xestor de rede aplicable tamén se pode usar para xestionar a conexión se se utiliza unha GUI.

Conexión automática

Ao seleccionar "si" para a opción de conexión automática, pódese configurar a conexión VPN para conectarse automaticamente:

 

conexión nmcli modifica a conexión [nome VPN]. <<<<<<<<<<<<<<<<<<<<<<<

 

conexión automática si

 

Para desactivar a conexión automática, volve a configurar non:

 

conexión nmcli modifica a conexión [nome VPN].

 

autoconexión núm

Facer dispoñible a autenticación multifactor

Para activar MFA Vaia á páxina /conta de usuario/rexistrar mfa do portal Firezone. Usa a túa aplicación de autenticación para escanear o código QR despois de xeralo e, a continuación, introduce o código de seis díxitos.

Póñase en contacto co seu administrador para restablecer a información de acceso da súa conta se perde a aplicación de autenticación.

VPN de túnel dividido

Este tutorial guiarache a través do proceso de configuración da función de túnel dividido de WireGuard con Firezone para que só se reenvíe o tráfico a intervalos de IP específicos a través do servidor VPN.

 

1. Configure as IP permitidas 

Os intervalos de IP para os que o cliente encamiñará o tráfico de rede establécense no campo IPs permitidos situado na páxina /configuración/predeterminada. Só as configuracións de túneles WireGuard creadas recentemente producidas por Firezone se verán afectadas polos cambios neste campo.

 

[Inserir captura de pantalla]



O valor predeterminado é 0.0.0.0/0, ::/0, que encamiña todo o tráfico de rede do cliente ao servidor VPN.

 

Exemplos de valores neste campo inclúen:

 

0.0.0.0/0, ::/0: todo o tráfico da rede encamiñarase ao servidor VPN.

192.0.2.3/32: só o tráfico a un único enderezo IP se encamiñará ao servidor VPN.

3.5.140.0/22: só o tráfico a IPs do intervalo 3.5.140.1 – 3.5.143.254 se encamiñará ao servidor VPN. Neste exemplo, utilizouse o intervalo CIDR para a rexión AWS ap-northeast-2.



NOTA

Firezone selecciona primeiro a interface de saída asociada á ruta máis precisa ao determinar onde enrutar un paquete.

 

2. Rexenera as configuracións de WireGuard

Os usuarios deben rexenerar os ficheiros de configuración e engadilos ao seu cliente WireGuard nativo para actualizar os dispositivos de usuario existentes coa nova configuración do túnel dividido.

 

Para obter instrucións, consulte engadir dispositivo. <<<<<<<<<<< Engadir ligazón

Túnel inverso

Este manual mostrará como ligar dous dispositivos usando Firezone como relé. Un caso de uso típico é permitir que un administrador acceda a un servidor, contedor ou máquina que está protexido por un NAT ou un firewall.

 

Nodo a nodo 

Esta ilustración mostra un escenario sinxelo no que os dispositivos A e B constrúen un túnel.

 

[Inserir imaxe arquitectónica Firezone]

 

Comeza creando o dispositivo A e o dispositivo B navegando ata /users/[user_id]/new_device. Na configuración de cada dispositivo, asegúrese de que os seguintes parámetros estean configurados cos valores que se indican a continuación. Podes configurar a configuración do dispositivo ao crear a configuración do dispositivo (consulta Engadir dispositivos). Se precisas actualizar a configuración dun dispositivo existente, podes facelo xerando unha nova configuración do dispositivo.

 

Teña en conta que todos os dispositivos teñen unha páxina /settings/defaults onde se pode configurar PersistentKeepalive.

 

Dispositivo A

 

IP permitidas = 10.3.2.2/32

  Esta é a IP ou rango de IP do dispositivo B

PersistenteKeepalive = 25

  Se o dispositivo está detrás dun NAT, isto garante que o dispositivo é capaz de manter o túnel vivo e seguir recibindo paquetes da interface WireGuard. Normalmente un valor de 25 é suficiente, pero é posible que teñas que diminuír este valor dependendo da túa contorna.



dispositivo B

 

IP permitidas = 10.3.2.3/32

Esta é a IP ou intervalo de IP do dispositivo A

PersistenteKeepalive = 25

Caso de administración: un a moitos nodos

Este exemplo mostra unha situación na que o dispositivo A pode comunicarse cos dispositivos B a través de D en ambas direccións. Esta configuración pode representar a un enxeñeiro ou administrador que accede a numerosos recursos (servidores, contedores ou máquinas) en varias redes.

 

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

 

Asegúrate de que os seguintes axustes están feitos na configuración de cada dispositivo cos valores correspondentes. Ao crear a configuración do dispositivo, pode especificar a configuración do dispositivo (consulte Engadir dispositivos). Pódese crear unha nova configuración de dispositivo se é necesario actualizar a configuración dun dispositivo existente.

 

Dispositivo A (nodo administrador)

 

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

    Esta é a IP dos dispositivos B a D. As IP dos Dispositivos B a D deben incluírse en calquera intervalo de IP que elixas establecer.

PersistenteKeepalive = 25 

    Isto garante que o dispositivo pode manter o túnel e seguir recibindo paquetes da interface WireGuard aínda que estea protexido por un NAT. Na maioría dos casos, un valor de 25 é o adecuado, non obstante, dependendo da túa contorna, pode que teñas que baixar esta cifra.

 

Dispositivo B

 

  • AllowedIPs = 10.3.2.2/32: esta é a IP ou intervalo de IP do dispositivo A
  • PersistenteKeepalive = 25

Dispositivo C

 

  • AllowedIPs = 10.3.2.2/32: esta é a IP ou intervalo de IP do dispositivo A
  • PersistenteKeepalive = 25

Dispositivo D

 

  • AllowedIPs = 10.3.2.2/32: esta é a IP ou intervalo de IP do dispositivo A
  • PersistenteKeepalive = 25

Pasarela NAT

Para ofrecer unha única IP de saída estática para que todo o tráfico do teu equipo saia, pódese utilizar Firezone como pasarela NAT. Estas situacións implican o seu uso frecuente:

 

Compromisos de consultoría: solicite que o seu cliente incluíse na lista branca un único enderezo IP estático en lugar da IP única do dispositivo de cada empregado.

Usando un proxy ou enmascarando a túa IP de orixe por motivos de seguridade ou privacidade.

 

Nesta publicación amosarase un exemplo sinxelo de limitar o acceso a unha aplicación web autoaloxada a unha única IP estática na lista branca que executa Firezone. Nesta ilustración, Firezone e o recurso protexido están en diferentes áreas de VPC.

 

Esta solución úsase con frecuencia en lugar de xestionar unha lista branca de IP para numerosos usuarios finais, o que pode levar moito tempo a medida que se expande a lista de acceso.

Exemplo de AWS

O noso obxectivo é configurar un servidor Firezone nunha instancia EC2 para redirixir o tráfico VPN ao recurso restrinxido. Neste caso, Firezone está a servir como un proxy de rede ou pasarela NAT para dar a cada dispositivo conectado unha IP pública de saída única.

 

1. Instale o servidor Firezone

Neste caso, unha instancia EC2 chamada tc2.micro ten instalada unha instancia de Firezone. Para obter información sobre a implantación de Firezone, vaia á Guía de implementación. En relación con AWS, asegúrese de:

 

O grupo de seguranza da instancia de Firezone EC2 permite o tráfico de saída ao enderezo IP do recurso protexido.

A instancia de Firezone vén cunha IP elástica. O tráfico que se reenvía a través da instancia de Firezone a destinos externos terá este como enderezo IP de orixe. O enderezo IP en cuestión é 52.202.88.54.

 

[Inserir captura de pantalla]<<<<<<<<<<<<<<<<<<<<<<<<<

 

2. Restrinxir o acceso ao recurso que se está protexendo

Unha aplicación web autoaloxada serve como recurso protexido neste caso. Só se pode acceder á aplicación web mediante solicitudes procedentes do enderezo IP 52.202.88.54. Dependendo do recurso, pode ser necesario permitir o tráfico entrante en varios portos e tipos de tráfico. Isto non está tratado neste manual.

 

[Inserir captura de pantalla]<<<<<<<<<<<<<<<<<<<<<<<<<

 

Indíquelle ao terceiro responsable do recurso protexido que se debe permitir o tráfico desde a IP estática definida no paso 1 (neste caso 52.202.88.54).

 

3. Use o servidor VPN para dirixir o tráfico ao recurso protexido

 

Por defecto, todo o tráfico de usuarios pasará polo servidor VPN e procederá da IP estática que se configurou no paso 1 (neste caso 52.202.88.54). Non obstante, se se habilitou o túnel dividido, pode ser necesario realizar a configuración para asegurarse de que a IP de destino do recurso protexido figura entre as IP permitidas.

Engada o teu título de título aquí

A continuación móstrase unha lista completa das opcións de configuración dispoñibles en /etc/firezone/firezone.rb.



opción

Description

valor predeterminado

predeterminado['firezone']['external_url']

URL utilizado para acceder ao portal web desta instancia de Firezone.

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

predeterminado['firezone']['config_directory']

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

/etc/firezone'

predeterminado['firezone']['directorio_instalación']

Directorio de nivel superior no que instalar Firezone.

/opt/firezone'

predeterminado['firezone']['app_directory']

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

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

predeterminado['firezone']['log_directory']

Directorio de nivel superior para rexistros de Firezone.

/var/log/firezone'

predeterminado['firezone']['var_directory']

Directorio de nivel superior para ficheiros de execución de Firezone.

/var/opt/firezone'

predeterminado['firezone']['usuario']

Nome do usuario de Linux sen privilexios ao que pertencerán a maioría dos servizos e ficheiros.

zona de lume'

predeterminado['firezone']['grupo']

Nome do grupo de Linux ao que pertencerán a maioría dos servizos e ficheiros.

zona de lume'

predeterminado['firezone']['admin_email']

Enderezo de correo electrónico para o usuario inicial de Firezone.

"firezone@localhost"

predeterminado['firezone']['max_devices_per_user']

Número máximo de dispositivos que pode ter un usuario.

10

predeterminado['firezone']['allow_unprivileged_device_management']

Permite aos usuarios que non sexan administradores crear e eliminar dispositivos.

TRUE

predeterminado['firezone']['allow_unprivileged_device_configuration']

Permite aos usuarios que non sexan administradores modificar as configuracións do dispositivo. Cando está desactivado, impide que os usuarios sen privilexios cambien todos os campos do dispositivo excepto o nome e a descrición.

TRUE

predeterminado['firezone']['egress_interface']

Nome da interface de onde sairá o tráfico tunelizado. Se é nulo, empregarase a interface de ruta predeterminada.

cero

predeterminado['firezone']['fips_enabled']

Activa ou desactiva o modo OpenSSL FIP.

cero

predeterminado['firezone']['rexistro']['activado']

Activa ou desactiva o rexistro en Firezone. Establécese como false para desactivar o rexistro por completo.

TRUE

predeterminado['empresa']['nome']

Nome que usa o libro de receitas "empresa" do chef.

zona de lume'

predeterminado['firezone']['install_path']

Ruta de instalación utilizada polo libro de receitas "empresa" de Chef. Debe establecerse co mesmo que o directorio_instalación anterior.

nodo['firezone']['directorio_instalación']

predeterminado['firezone']['sysvinit_id']

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

SUP'

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

Activa ou desactiva a autenticación local de correo electrónico/contrasinal.

TRUE

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

Crea automaticamente usuarios que inicien sesión desde OIDC por primeira vez. Desactivar para permitir que só os usuarios existentes inicien sesión a través de OIDC.

TRUE

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

Desactive a VPN dun usuario se se detecta un erro ao tentar actualizar o seu token OIDC.

FALSE

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

Configuración de OpenID Connect, no formato de {“provedor” => [config…]} – Consulte Documentación de OpenIDConnect para exemplos de configuración.

{}

predeterminado ['firezone']['nginx']['activado']

Activa ou desactiva o servidor nginx incluído.

TRUE

predeterminado['firezone']['nginx']['ssl_port']

Porto de escoita HTTPS.

443

predeterminado ['firezone']['nginx']['directorio']

Directorio para almacenar a configuración do host virtual nginx relacionada con Firezone.

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

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

Directorio para almacenar ficheiros de rexistro nginx relacionados con Firezone.

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

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

Tamaño do ficheiro no que rotar os ficheiros de rexistro de Nginx.

104857600

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

Número de ficheiros de rexistro de Firezone nginx que hai que gardar antes de descartalo.

10

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

Indica se se debe rexistrar a cabeceira de Firezone nginx x-forwarded-for.

TRUE

predeterminado ['firezone']['nginx']['hsts_header']['activado']

Activar ou desactivar HSTS.

TRUE

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

Activa ou desactiva includeSubDomains para a cabeceira HSTS.

TRUE

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

Idade máxima para a cabeceira HSTS.

31536000

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

Indica se deben redirixir os URL ao FQDN canónico especificado anteriormente

FALSE

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

Activa ou desactiva a caché nginx de Firezone.

FALSE

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

Directorio para a caché de Firezone nginx.

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

predeterminado ['firezone']['nginx']['usuario']

Usuario de Firezone nginx.

nodo ['firezone']['usuario']

predeterminado ['firezone']['nginx']['grupo']

Grupo Nginx Firezone.

nodo ['firezone']['grupo']

predeterminado ['firezone']['nginx']['dir']

Directorio de configuración nginx de nivel superior.

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

predeterminado['firezone']['nginx']['log_dir']

Directorio de rexistro de nivel superior de nginx.

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

predeterminado['firezone']['nginx']['pid']

Localización do ficheiro pid de nginx.

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

predeterminado ['firezone']['nginx']['daemon_disable']

Desactive o modo daemon nginx para que poidamos supervisalo.

TRUE

predeterminado ['firezone']['nginx']['gzip']

Activa ou desactiva a compresión nginx gzip.

en

predeterminado['firezone']['nginx']['gzip_static']

Activa ou desactiva a compresión nginx gzip para ficheiros estáticos.

apagado'

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

Versión HTTP para usar para servir ficheiros estáticos.

1.0 '

predeterminado['firezone']['nginx']['gzip_comp_level']

Nivel de compresión nginx gzip.

2 '

predeterminado ['firezone']['nginx']['gzip_proxied']

Activa ou desactiva o gzipping de respostas para solicitudes proxy dependendo da solicitude e da resposta.

calquera'

predeterminado['firezone']['nginx']['gzip_vary']

Activa ou desactiva a inserción da cabeceira de resposta "Vary: Accept-Encoding".

apagado'

predeterminado ['firezone']['nginx']['gzip_buffers']

Establece o número e o tamaño dos búfers utilizados para comprimir unha resposta. Se nulo, úsase nginx por defecto.

cero

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

Tipos MIME para activar a compresión gzip.

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

predeterminado ['firezone']['nginx']['gzip_min_length']

Lonxitude mínima do ficheiro para activar a compresión gzip do ficheiro.

1000

predeterminado ['firezone']['nginx']['gzip_disable']

Coincididor de axente de usuario para desactivar a compresión gzip.

MSIE [1-6]\.'

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

Activa a caché para a conexión a servidores anteriores.

en

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

Tempo de espera en segundos para a conexión Keepalive a servidores anteriores.

65

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

Número de procesos de traballo de nginx.

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

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

Número máximo de conexións simultáneas que pode abrir un proceso de traballo.

1024

predeterminado['firezone']['nginx']['worker_rlimit_nofile']

Cambia o límite do número máximo de ficheiros abertos para os procesos de traballo. Usa nginx predeterminado se nil.

cero

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

Indica se os traballadores deben aceptar unha conexión á vez ou varias.

TRUE

predeterminado ['firezone']['nginx']['evento']

Especifica o método de procesamento de conexión que se usará no contexto de eventos nginx.

epollar'

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

Activa ou desactiva a emisión da versión nginx nas páxinas de erro e no campo de cabeceira de resposta "Servidor".

cero

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

Establece o tamaño do depósito para as táboas hash de nomes de servidor.

64

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

Activa ou desactiva o uso do sendfile( de nginx).

en

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

Establece as opcións de rexistro de acceso de nginx.

cero

predeterminado['firezone']['nginx']['error_log_options']

Establece as opcións de rexistro de erros de nginx.

cero

predeterminado['firezone']['nginx']['disable_access_log']

Desactiva o rexistro de acceso de nginx.

FALSE

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

nginx tipos hash tamaño máximo.

2048

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

Tipos nginx tamaño do cubo hash.

64

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

Tempo de espera de lectura do proxy nginx. Establécese como nulo para usar nginx predeterminado.

cero

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

Tamaño do buffer do corpo do cliente nginx. Establécese como nulo para usar nginx predeterminado.

cero

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

tamaño máximo do corpo do cliente nginx.

250 m'

predeterminado ['firezone']['nginx']['predeterminado']['módulos']

Especifique módulos nginx adicionais.

[]

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

Activa ou desactiva a limitación da taxa de nginx.

TRUE

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

Nome da zona de límite de taxa de Nginx.

zona de lume'

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

A taxa de Nginx limita o retroceso.

10 m'

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

Límite de taxa de Nginx.

10r/s'

predeterminado ['firezone']['nginx']['ipv6']

Permitir que nginx escoite solicitudes HTTP para IPv6 ademais de IPv4.

TRUE

predeterminado ['firezone']['postgresql']['activado']

Activa ou desactiva Postgresql agrupado. Establece como false e completa as opcións da base de datos a continuación para usar a túa propia instancia de Postgresql.

TRUE

predeterminado ['firezone']['postgresql']['nome de usuario']

Nome de usuario para Postgresql.

nodo ['firezone']['usuario']

predeterminado ['firezone']['postgresql']['data_directory']

Directorio de datos Postgresql.

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

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

Directorio de rexistro de Postgresql.

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

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

Tamaño máximo do ficheiro de rexistro de Postgresql antes de ser rotado.

104857600

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

Número de ficheiros de rexistro de Postgresql para manter.

10

predeterminado ['firezone']['postgresql']['checkpoint_completion_target']

Destino de finalización do punto de control Postgresql.

0.5

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

Número de segmentos de punto de control Postgresql.

3

predeterminado['firezone']['postgresql']['checkpoint_timeout']

Tempo de espera do punto de control Postgresql.

5 min

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

Tempo de aviso do punto de control Postgresql en segundos.

anos 30

predeterminado ['firezone']['postgresql']['effective_cache_size']

Tamaño efectivo da caché de Postgresql.

128 MB'

predeterminado['firezone']['postgresql']['listen_address']

Enderezo de escoita de Postgresql.

127.0.0.1 '

predeterminado['firezone']['postgresql']['max_connections']

Conexións max postgresql.

350

predeterminado['firezone']['postgresql']['md5_auth_cidr_addresses']

CIDR Postgresql para permitir a autenticación md5.

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

predeterminado ['firezone']['postgresql']['port']

Porto de escoita Postgresql.

15432

predeterminado['firezone']['postgresql']['shared_buffers']

Tamaño dos búfers compartidos de Postgresql.

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

predeterminado ['firezone']['postgresql']['shmmax']

Postgresql shmmax en bytes.

17179869184

predeterminado ['firezone']['postgresql']['shmall']

Postgresql shmall en bytes.

4194304

predeterminado['firezone']['postgresql']['work_mem']

Tamaño da memoria de traballo Postgresql.

8 MB'

predeterminado ['firezone']['base de datos']['usuario']

Especifica o nome de usuario que Firezone utilizará para conectarse á base de datos.

nodo['firezone']['postgresql']['nome de usuario']

predeterminado ['firezone']['base de datos']['contrasinal']

Se utiliza unha base de datos externa, especifica o contrasinal que Firezone utilizará para conectarse á base de datos.

cámbiame'

predeterminado ['firezone']['base de datos']['nome']

Base de datos que utilizará Firezone. Crearase se non existe.

zona de lume'

predeterminado ['firezone']['base de datos']['host']

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

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

predeterminado ['firezone']['base de datos']['porto']

Porto de base de datos ao que se conectará Firezone.

nodo ['firezone']['postgresql']['porto']

predeterminado ['firezone']['base de datos']['pool']

O tamaño do grupo de base de datos empregará Firezone.

[10, Etc.nprocesadores].máx

predeterminado ['firezone']['base de datos']['ssl']

Indica se conectarse á base de datos a través de SSL.

FALSE

predeterminado['firezone']['base de datos']['ssl_opts']

Hash de opcións para enviar á opción :ssl_opts ao conectarse a través de SSL. Ver Documentación Ecto.Adapters.Postgres.

{}

predeterminado ['firezone']['base de datos']['parámetros']

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

{}

predeterminado ['firezone']['base de datos']['extensións']

Extensións de base de datos para activar.

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

predeterminado ['firezone']['phoenix']['activado']

Activa ou desactiva a aplicación web Firezone.

TRUE

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

Enderezo de escoita da aplicación web Firezone. Este será o enderezo de escoita ascendente que proxy nginx.

127.0.0.1 '

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

Porto de escoita da aplicación web Firezone. Este será o porto ascendente que proxy nginx.

13000

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

Directorio de rexistro de aplicacións web Firezone.

"#{nodo['firezone']['log_directory']}/phoenix"

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

Tamaño do ficheiro de rexistro da aplicación web Firezone.

104857600

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

Número de ficheiros de rexistro de aplicacións web Firezone que se deben manter.

10

predeterminado['firezone']['phoenix']['crash_detection']['activado']

Activa ou desactiva a caída da aplicación web Firezone cando se detecta un fallo.

TRUE

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

Lista de proxies inversos de confianza formateados como unha matriz de IP e/ou CIDR.

[]

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

Lista de clientes HTTP de rede privada, formateada nunha matriz de IPs e/ou CIDR.

[]

predeterminado ['firezone']['wireguard']['activado']

Activa ou desactiva a xestión WireGuard agrupada.

TRUE

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

Directorio de rexistro para a xestión WireGuard integrada.

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

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

Tamaño máximo do ficheiro de rexistro de WireGuard.

104857600

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

Número de ficheiros de rexistro de WireGuard para manter.

10

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

Nome da interface WireGuard. Cambiar este parámetro pode provocar unha perda temporal na conectividade VPN.

wg-firezone'

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

Porto de escoita WireGuard.

51820

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

MTU da interface WireGuard para este servidor e para as configuracións do dispositivo.

1280

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

WireGuard Endpoint para usar para xerar configuracións de dispositivos. Se é nulo, o enderezo IP público do servidor é por defecto.

cero

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

WireGuard DNS para usar para as configuracións xeradas do dispositivo.

1.1.1.1, 1.0.0.1′

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

WireGuard AllowedIPs para usar para as configuracións de dispositivos xeradas.

0.0.0.0/0, ::/0′

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

Configuración predeterminada de PersistentKeepalive para as configuracións de dispositivos xeradas. Un valor de 0 desactiva.

0

predeterminado ['firezone']['wireguard']['ipv4']['activado']

Activa ou desactiva IPv4 para a rede WireGuard.

TRUE

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

Activa ou desactiva a mascarada para os paquetes que saen do túnel IPv4.

TRUE

predeterminado ['firezone']['wireguard']['ipv4']['rede']

Grupo de enderezos IPv4 da rede WireGuard.

10.3.2.0/24 ′

predeterminado ['firezone']['wireguard']['ipv4']['enderezo']

Enderezo IPv4 da interface WireGuard. Debe estar dentro do grupo de enderezos WireGuard.

10.3.2.1 '

predeterminado ['firezone']['wireguard']['ipv6']['activado']

Activa ou desactiva IPv6 para a rede WireGuard.

TRUE

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

Activa ou desactiva a mascarada para os paquetes que saen do túnel IPv6.

TRUE

predeterminado ['firezone']['wireguard']['ipv6']['rede']

Grupo de enderezos IPv6 da rede WireGuard.

fd00::3:2:0/120′

predeterminado ['firezone']['wireguard']['ipv6']['enderezo']

Enderezo IPv6 da interface WireGuard. Debe estar dentro do grupo de enderezos IPv6.

fd00::3:2:1′

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

Ubicación do bin svlogd de Runit.

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

predeterminado ['firezone']['ssl']['directorio']

Directorio SSL para almacenar certificados xerados.

/var/opt/firezone/ssl'

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

Enderezo de correo electrónico para usar para certificados auto-asinados e avisos de renovación do protocolo ACME.

ti@example.com'

predeterminado ['firezone']['ssl']['acme']['activado']

Activa ACME para o aprovisionamento automático de certificados SSL. Desactive isto para evitar que Nginx escoite no porto 80. Consulte aquí para obter máis instrucións.

FALSE

predeterminado ['firezone']['ssl']['acme']['servidor']

Servidor ACME para usar para a emisión/renovación de certificados. Pode ser calquera servidor acme.sh válido

deixa cifrar

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

Especifique o tipo de chave e a lonxitude dos certificados SSL. Ver aquí

ec-256

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

Ruta ao ficheiro de certificado para o teu FQDN. Anula a configuración ACME anterior se se especifica. Se tanto ACME como este son nulos, xerarase un certificado autoasinado.

cero

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

Ruta ao ficheiro do certificado.

cero

predeterminado['firezone']['ssl']['ssl_dhparam']

nginx ssl dh_param.

cero

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

Nome do país para o certificado autofirmado.

EUA'

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

Nome do estado para o certificado autofirmado.

CA '

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

Nome da localidade para o certificado autoasinado.

San Francisco'

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

Nome da empresa certificado autoasinado.

A miña empresa'

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

Nome da unidade organizativa para o certificado autoasinado.

Operacións'

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

Cifrados SSL para que use 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 o modo FIP.

FIPS@STRENGTH:!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']

Tempo de espera da sesión SSL.

5 m'

predeterminado['firezone']['robots_allow']

Os robots nginx permiten.

/'

predeterminado['firezone']['robots_disallow']

Os robots nginx non permiten.

cero

predeterminado['firezone']['outbound_email']['de']

Correo electrónico saínte do enderezo.

cero

predeterminado['firezone']['outbound_email']['provedor']

Provedor de servizos de correo electrónico de saída.

cero

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

Configuración do provedor de correo electrónico de saída.

ver omnibus/cookbooks/firezone/attributes/default.rb

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

Activa ou desactiva a telemetría de produto anónima.

TRUE

predeterminado ['firezone']['connectivity_checks']['activado']

Activa ou desactiva o servizo de comprobacións de conectividade Firezone.

TRUE

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

Intervalo entre comprobacións de conectividade en segundos.

3_600



________________________________________________________________

 

Localizacións de ficheiros e directorios

 

Aquí atoparás unha lista de ficheiros e directorios relacionados cunha instalación típica de Firezone. Estes poden cambiar dependendo dos cambios no seu ficheiro de configuración.



camiño

Description

/var/opt/firezone

Directorio de nivel superior que contén datos e configuración xerada para os servizos integrados de Firezone.

/opt/firezone

Directorio de nivel superior que contén bibliotecas construídas, binarios e ficheiros de execución que necesita Firezone.

/usr/bin/firezone-ctl

Firezone-ctl utilidade para xestionar a súa instalación de Firezone.

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

systemd para iniciar o proceso de supervisor runsvdir de Firezone.

/etc/firezone

Ficheiros de configuración de Firezone.



__________________________________________________________

 

Modelos de firewall

 

Esta páxina estaba baleira en documentos

 

_____________________________________________________________

 

Modelo de firewall de Nftables

 

O seguinte modelo de firewall de nftables pódese usar para protexer o servidor que executa Firezone. O modelo fai algunhas suposicións; quizais necesites axustar as regras para adaptalas ao teu caso de uso:

  • A interface WireGuard chámase wg-firezone. Se isto non é correcto, cambie a variable DEV_WIREGUARD para que coincida coa opción de configuración predeterminada ['firezone']['wireguard']['interface_name'].
  • O porto que escoita WireGuard é 51820. Se non estás a usar o porto predeterminado, cambia a variable WIREGUARD_PORT.
  • Só se permitirá o seguinte tráfico de entrada ao servidor:
    • SSH (porto TCP 22)
    • HTTP (porto TCP 80)
    • HTTPS (porto TCP 443)
    • WireGuard (porto UDP WIREGUARD_PORT)
    • UDP traceroute (porto UDP 33434-33524, taxa limitada a 500/segundo)
    • ICMP e ICMPv6 (taxa de respostas de ping/ping limitada a 2000/segundo)
  • Só se permitirá o seguinte tráfico de saída desde o servidor:
    • DNS (porto UDP e TCP 53)
    • HTTP (porto TCP 80)
    • NTP (porto UDP 123)
    • HTTPS (porto TCP 443)
    • Envío SMTP (porto TCP 587)
    • UDP traceroute (porto UDP 33434-33524, taxa limitada a 500/segundo)
  • O tráfico non coincidente rexistrarase. As regras utilizadas para o rexistro están separadas das regras para eliminar o tráfico e teñen unha taxa limitada. A eliminación das regras de rexistro relevantes non afectará o tráfico.

Regras xestionadas por Firezone

Firezone configura as súas propias regras nftables para permitir/rexeitar o tráfico a destinos configurados na interface web e xestionar a NAT de saída para o tráfico do cliente.

A aplicación do modelo de firewall que aparece a continuación nun servidor que xa está en execución (non no momento do inicio) provocará que se borrarán as regras de Firezone. Isto pode ter implicacións de seguridade.

Para evitar isto, reinicie o servizo Phoenix:

firezone-ctl reiniciar phoenix

Modelo de firewall base

#!/usr/sbin/nft -f

 

## Borrar/borrar todas as regras existentes

conxunto de regras de descarga

 

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

## Nome da interface de Internet/WAN

definir DEV_WAN = eth0

 

## Nome da interface WireGuard

definir DEV_WIREGUARD = wg-firezone

 

## Porto de escoita WireGuard

definir WIREGUARD_PORT = 51820

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

 

# Táboa de filtrado da familia inet principal

filtro inet de táboa {

 

 # Regras para o tráfico reenviado

 # Esta cadea procesase antes da cadea de avance de Firezone

 cadea adiante {

   tipo de filtro filtro de prioridade de gancho cara adiante - 5; política aceptar

 }

 

 # Regras para o tráfico de entrada

 entrada en cadea {

   tipo de filtro filtro de prioridade de entrada de gancho; caída da política

 

   ## Permitir o tráfico entrante á interface de loopback

   se o \

     aceptar \

     comentario "Permitir todo o tráfico desde a interface de loopback"

 

   ## Permitir conexións establecidas e relacionadas

   estado ct establecido,relacionado \

     aceptar \

     comentario "Permitir conexións establecidas/relacionadas"

 

   ## Permitir o tráfico WireGuard entrante

   se $DEV_WAN udp dport $WIREGUARD_PORT \

     contador \

     aceptar \

     comentario "Permitir tráfico de entrada WireGuard"

 

   ## Rexistra e solta novos paquetes TCP non SYN

   tcp flags != syn ct state new \

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

     prefixo de rexistro "IN - Novo !SYN: " \

     comentario "Rexistro de límite de taxas para novas conexións que non teñen definida a marca SYN TCP"

   tcp flags != syn ct state new \

     contador \

     soltar \

     comentario "Eliminar novas conexións que non teñen definida a marca SYN TCP"

 

   ## Rexistra e solta os paquetes TCP cunha marca fin/syn non válida

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

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

     prefixo de rexistro “IN – TCP FIN|SIN:” \

     comentario "Rexistro de límite de taxa para paquetes TCP cunha marca fin/syn non válida definida"

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

     contador \

     soltar \

     comentario "Eliminar paquetes TCP cunha marca fin/syn non válida"

 

   ## Rexistra e solta os paquetes TCP cunha marca syn/rst non válida

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

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

     prefixo de rexistro “IN – TCP SYN|RST:” \

     comentario "Rexistro de límite de taxa para paquetes TCP cunha marca syn/rst definida non válida"

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

     contador \

     soltar \

     comentario "Eliminar paquetes TCP cunha marca syn/rst non válida"

 

   ## Rexistra e solta marcas TCP non válidas

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

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

     prefixo de rexistro "IN - FIN:" \

     comentario "Rexistro de límite de taxa para marcas TCP non válidas (fin|syn|rst|psh|ack|urg) < (fin)"

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

     contador \

     soltar \

     comentario "Eliminar paquetes TCP con marcas (fin|syn|rst|psh|ack|urg) < (fin)"

 

   ## Rexistra e solta marcas TCP non válidas

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

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

     prefixo de rexistro “IN – FIN|PSH|URG:” \

     comentario "Rexistro de límite de taxa para marcas TCP non válidas (fin|syn|rst|psh|ack|urg) == (fin|psh|urg)"

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

     contador \

     soltar \

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

 

   ## Elimina o tráfico cun estado de conexión non válido

   estado ct non válido \

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

     rexistro marca todos os prefixos “IN – Non válido:” \

     comentario "Registro de límite de taxa para tráfico cun estado de conexión non válido"

   estado ct non válido \

     contador \

     soltar \

     comentario "Descartar o tráfico cun estado de conexión non válido"

 

   ## Permitir respostas ping/ping IPv4 pero límite de taxa a 2000 PPS

   ip protocolo icmp tipo icmp { eco-reply, eco-request } \

     taxa límite 2000/segundo \

     contador \

     aceptar \

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

 

   ## Permitir todos os demais ICMP IPv4 entrantes

   ip protocolo icmp \

     contador \

     aceptar \

     comentario "Permitir todos os demais IPv4 ICMP"

 

   ## Permitir respostas ping/ping IPv6 pero límite de taxa a 2000 PPS

   icmpv6 tipo { eco-reply, eco-request } \

     taxa límite 2000/segundo \

     contador \

     aceptar \

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

 

   ## Permitir todos os demais ICMP IPv6 entrantes

   meta l4proto {icmpv6} \

     contador \

     aceptar \

     comentario "Permitir todos os demais IPv6 ICMP"

 

   ## Permite portos UDP traceroute entrantes pero limita a 500 PPS

   udp dport 33434-33524 \

     taxa límite 500/segundo \

     contador \

     aceptar \

     comentario "Permitir traceroute UDP entrante limitado a 500 PPS"

 

   ## Permitir SSH de entrada

   tcp dport ssh estado ct novo \

     contador \

     aceptar \

     comentario "Permitir conexións SSH de entrada"

 

   ## Permitir HTTP e HTTPS entrantes

   tcp dport { http, https } estado ct novo \

     contador \

     aceptar \

     comentario "Permitir conexións HTTP e HTTPS entrantes"

 

   ## Rexistra calquera tráfico incomparable pero limita o rexistro a un máximo de 60 mensaxes/minuto

   ## A política predeterminada aplicarase ao tráfico sen coincidencia

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

     prefixo de rexistro "IN - Soltar:" \

     comentario "Registrar calquera tráfico sen igual"

 

   ## Conta o tráfico incomparable

   contador \

     comentario "Conta calquera tráfico sen igual"

 }

 

 # Regras para o tráfico de saída

 saída en cadea {

   tipo de filtro filtro de prioridade de saída de gancho; caída da política

 

   ## Permitir o tráfico de saída á interface de bucle

   oif lo \

     aceptar \

     comentario "Permitir que todo o tráfico saia á interface de loopback"

 

   ## Permitir conexións establecidas e relacionadas

   estado ct establecido,relacionado \

     contador \

     aceptar \

     comentario "Permitir conexións establecidas/relacionadas"

 

   ## Permitir o tráfico WireGuard de saída antes de desactivar as conexións con mal estado

   oif $DEV_WAN deporte udp $WIREGUARD_PORT \

     contador \

     aceptar \

     comentario "Permitir tráfico de saída de WireGuard"

 

   ## Elimina o tráfico cun estado de conexión non válido

   estado ct non válido \

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

     rexistro marca todos os prefixos “OUT – Non válido:” \

     comentario "Registro de límite de taxa para tráfico cun estado de conexión non válido"

   estado ct non válido \

     contador \

     soltar \

     comentario "Descartar o tráfico cun estado de conexión non válido"

 

   ## Permitir todos os demais ICMP IPv4 de saída

   ip protocolo icmp \

     contador \

     aceptar \

     comentario "Permitir todos os tipos de ICMP IPv4"

 

   ## Permitir todos os demais ICMP IPv6 de saída

   meta l4proto {icmpv6} \

     contador \

     aceptar \

     comentario "Permitir todos os tipos de ICMP IPv6"

 

   ## Permite portos de saída UDP traceroute pero limita a 500 PPS

   udp dport 33434-33524 \

     taxa límite 500/segundo \

     contador \

     aceptar \

     comentario "Permitir traceroute UDP de saída limitado a 500 PPS"

 

   ## Permite conexións HTTP e HTTPS de saída

   tcp dport { http, https } estado ct novo \

     contador \

     aceptar \

     comentario "Permitir conexións HTTP e HTTPS de saída"

 

   ## Permitir o envío SMTP saínte

   tcp dport envío ct estado novo \

     contador \

     aceptar \

     comentario "Permitir envío SMTP de saída"

 

   ## Permitir solicitudes de DNS de saída

   udp dport 53 \

     contador \

     aceptar \

     comentario "Permitir solicitudes de DNS UDP de saída"

   tcp dport 53 \

     contador \

     aceptar \

     comentario "Permitir solicitudes de DNS TCP de saída"

 

   ## Permitir solicitudes NTP de saída

   udp dport 123 \

     contador \

     aceptar \

     comentario "Permitir solicitudes NTP de saída"

 

   ## Rexistra calquera tráfico incomparable pero limita o rexistro a un máximo de 60 mensaxes/minuto

   ## A política predeterminada aplicarase ao tráfico sen coincidencia

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

     prefixo de rexistro "FÓRA - Soltar:" \

     comentario "Registrar calquera tráfico sen igual"

 

   ## Conta o tráfico incomparable

   contador \

     comentario "Conta calquera tráfico sen igual"

 }

 

}

 

# Táboa principal de filtrado NAT

táboa inet nat {

 

 # Regras para o enrutamento previo do tráfico NAT

 enrutamento previo en cadea {

   escriba nat hook prerouting priority dstnat; política aceptar

 }

 

 # Regras para o tráfico posterior ao enrutamento NAT

 # Esta táboa procesase antes da cadea de post-enrutamento de Firezone

 enrutamento posterior en cadea {

   escriba nat hook prioridad de enrutamiento srcnat – 5; política aceptar

 }

 

}

Uso

O firewall debe almacenarse na localización relevante para a distribución de Linux que se está a executar. Para Debian/Ubuntu isto é /etc/nftables.conf e para RHEL é /etc/sysconfig/nftables.conf.

nftables.service terá que estar configurado para comezar no arranque (se non xa) configurado:

systemctl activar nftables.service

Se se fai algún cambio no modelo do firewall, a sintaxe pódese validar executando o comando check:

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

Asegúrate de validar que o firewall funciona como se espera, xa que é posible que determinadas funcións de nftables non estean dispoñibles dependendo da versión que se execute no servidor.



_______________________________________________________________



Telemetría

 

Este documento presenta unha visión xeral da telemetría que recolle Firezone da túa instancia autoaloxada e como desactivala.

Por que Firezone recolle telemetría

Zona de fogo confía en telemetría para priorizar a nosa folla de ruta e optimizar os recursos de enxeñaría que temos para facer que Firezone sexa mellor para todos.

A telemetría que recollemos pretende responder ás seguintes preguntas:

  • Cantas persoas instalan, usan e deixan de usar Firezone?
  • Que funcións son máis valiosas e cales non teñen ningún uso?
  • Que función necesita máis melloras?
  • Cando algo se rompe, por que se rompeu e como podemos evitar que ocorra no futuro?

Como recollemos a telemetría

Hai tres lugares principais onde se recolle a telemetría en Firezone:

  1. Paquete de telemetría. Inclúe eventos como instalar, desinstalar e actualizar.
  2. Telemetría CLI a partir de comandos firezone-ctl.
  3. Telemetría do produto asociada ao portal web.

En cada un destes tres contextos, recollemos a cantidade mínima de datos necesarios para responder ás preguntas da sección anterior.

Os correos electrónicos dos administradores recóllense só se activas explícitamente as actualizacións de produtos. En caso contrario, a información de identificación persoal é nin recollido.

Firezone almacena a telemetría nunha instancia autoaloxada de PostHog que se executa nun clúster privado de Kubernetes, só accesible polo equipo de Firezone. Aquí tes un exemplo dun evento de telemetría que se envía desde a túa instancia de Firezone ao noso servidor de telemetría:

{

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

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

   "evento": "fz_http_iniciado",

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

   "propiedades":{

       “$geoip_city_name”: "Ashburn",

       "$geoip_continent_code": "N / A",

       “$geoip_continent_name”: "América do norte",

       "$geoip_country_code": "EUA",

       "$geoip_country_name": "Estados Unidos",

       "$geoip_latitude": 39.0469,

       "$geoip_longitude": -77.4903,

       "$geoip_postal_code": "20149",

       "$geoip_subdivision_1_code": "VA",

       "$geoip_subdivision_1_name": "Virxinia",

       "$geoip_time_zone": “América/Nova_York”,

       "$ip": "52.200.241.107",

       "$plugins_deferred": [],

       "$plugins_failed": [],

       "$plugins_succeeded": [

           "GeoIP (3)"

       ],

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

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

       "versión_kernel": "Linux 5.13.0",

       "versión": "0.4.6"

   },

   "cadea_de_elementos": ""

}

Como desactivar a telemetría

NOTA

O equipo de desenvolvemento de Firezone confía sobre análises de produtos para facer que Firezone sexa mellor para todos. Deixar a telemetría activada é a contribución máis valiosa que podes facer ao desenvolvemento de Firezone. Dito isto, entendemos que algúns usuarios teñen maiores requisitos de privacidade ou seguridade e preferirían desactivar a telemetría por completo. Se es ti, continúa lendo.

A telemetría está activada de forma predeterminada. Para desactivar completamente a telemetría do produto, configure a seguinte opción de configuración como false en /etc/firezone/firezone.rb e execute sudo firezone-ctl reconfigure para recoller os cambios.

predeterminado['firezone']['telemetría']['activado'] = teito

Isto desactivará por completo toda a telemetría do produto.