Documentation sur le pare-feu Hailbytes VPN avec Firezone

Table des matières

Débuter

Des instructions étape par étape pour le déploiement de Hailbytes VPN avec Firezone GUI sont fournies ici. 

Administrer : la configuration de l'instance de serveur est directement liée à cette partie.

Guides de l'utilisateur : documents utiles qui peuvent vous apprendre à utiliser Firezone et à résoudre les problèmes courants. Une fois le serveur déployé avec succès, reportez-vous à cette section.

Guides pour les configurations courantes

Split Tunneling : utilisez le VPN pour envoyer le trafic uniquement vers des plages d'adresses IP spécifiques.

Liste blanche : Définissez l'adresse IP statique d'un serveur VPN afin d'utiliser la liste blanche.

Tunnels inversés : créez des tunnels entre plusieurs pairs à l'aide de tunnels inversés.

Obtenir de l'aide

Nous sommes heureux de vous aider si vous avez besoin d'aide pour installer, personnaliser ou utiliser Hailbytes VPN.

Authentification

Avant que les utilisateurs puissent produire ou télécharger des fichiers de configuration de périphérique, Firezone peut être configuré pour exiger une authentification. Les utilisateurs peuvent également avoir besoin de se ré-authentifier périodiquement afin de maintenir leur connexion VPN active.

Bien que la méthode de connexion par défaut de Firezone soit l'e-mail et le mot de passe locaux, il peut également être intégré à n'importe quel fournisseur d'identité OpenID Connect (OIDC) standardisé. Les utilisateurs peuvent désormais se connecter à Firezone à l'aide de leurs informations d'identification Okta, Google, Azure AD ou d'un fournisseur d'identité privé.

 

Intégrer un fournisseur OIDC générique

Les paramètres de configuration requis par Firezone pour autoriser l'authentification unique à l'aide d'un fournisseur OIDC sont illustrés dans l'exemple ci-dessous. Dans /etc/firezone/firezone.rb, vous pouvez trouver le fichier de configuration. Exécutez firezone-ctl reconfigure et firezone-ctl restart pour mettre à jour l'application et appliquer les modifications.

 

# Ceci est un exemple utilisant Google et Okta comme fournisseur d'identité SSO.

# Plusieurs configurations OIDC peuvent être ajoutées à la même instance Firezone.

 

# Firezone peut désactiver le VPN d'un utilisateur si une erreur est détectée en essayant

# pour actualiser leur access_token. Ceci est vérifié pour fonctionner pour Google, Okta et

# Azure SSO et est utilisé pour déconnecter automatiquement le VPN d'un utilisateur s'il est supprimé

# du fournisseur OIDC. Laissez cette option désactivée si votre fournisseur OIDC

# a des problèmes pour actualiser les jetons d'accès car cela pourrait interrompre de manière inattendue un

# session VPN de l'utilisateur.

défaut['firezone']['authentication']['disable_vpn_on_oidc_error'] = faux

 

default['firezone']['authentication']['oidc'] = {

  Google: {

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

    identité du client: " ”,

    secret_client : " ”,

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

    type_réponse : "code",

    champ d'application : "profil de messagerie openid",

    libellé : "Google"

  },

  octa : {

    découverte_document_uri : "https:// /.well-known/openid-configuration”,

    identité du client: " ”,

    secret_client : " ”,

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

    type_réponse : "code",

    portée : "openid email profile offline_access",

    étiquette : "Okta"

  }

}



Les paramètres de configuration suivants sont requis pour l'intégration :

  1. découverte_document_uri : le URI de configuration du fournisseur OpenID Connect qui renvoie un document JSON utilisé pour construire des demandes ultérieures à ce fournisseur OIDC.
  2. client_id : ID client de l'application.
  3. client_secret : Le secret client de l'application.
  4. redirect_uri : indique au fournisseur OIDC où rediriger après l'authentification. Cela devrait être votre Firezone EXTERNAL_URL + /auth/oidc/ /callback/ (par exemple https://instance-id.yourfirezone.com/auth/oidc/google/callback/).
  5. type_réponse : défini sur code.
  6. portée: Champs d'application OIDC à obtenir auprès de votre fournisseur OIDC. Cela doit être défini sur openid email profile ou openid email profile offline_access selon le fournisseur.
  7. label : le texte du libellé du bouton qui s'affiche sur l'écran de connexion de votre Firezone.

Jolies URL

Pour chaque fournisseur OIDC, une jolie URL correspondante est créée pour la redirection vers l'URL de connexion du fournisseur configuré. Pour l'exemple de configuration OIDC ci-dessus, les URL sont :

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

Instructions pour la configuration de Firezone avec des fournisseurs d'identité populaires

Fournisseurs pour lesquels nous avons de la documentation :

  • Google
  • Okta
  • Azure Active Directory
  • Connexion unique
  • Authentification locale

 

Si votre fournisseur d'identité dispose d'un connecteur OIDC générique et n'est pas répertorié ci-dessus, veuillez consulter sa documentation pour savoir comment récupérer les paramètres de configuration nécessaires.

Maintenir une ré-authentification régulière

Le paramètre sous paramètres/sécurité peut être modifié pour exiger une réauthentification périodique. Cela peut être utilisé pour faire respecter l'exigence que les utilisateurs entrent régulièrement dans Firezone afin de poursuivre leur session VPN.

La durée de la session peut être configurée entre une heure et quatre-vingt-dix jours. En le définissant sur Jamais, vous pouvez activer les sessions VPN à tout moment. C'est la norme.

Réauthentification

Un utilisateur doit mettre fin à sa session VPN et se connecter au portail Firezone afin de ré-authentifier une session VPN expirée (URL spécifiée lors du déploiement).

Vous pouvez ré-authentifier votre session en suivant les instructions précises du client trouvées ici.

 

État de la connexion VPN

La colonne du tableau Connexion VPN de la page Utilisateurs affiche l'état de la connexion d'un utilisateur. Voici les statuts de connexion :

ENABLED – La connexion est activée.

DÉSACTIVÉ – La connexion est désactivée par un administrateur ou un échec d'actualisation OIDC.

EXPIRED – La connexion est désactivée en raison de l'expiration de l'authentification ou d'un utilisateur qui ne s'est pas connecté pour la première fois.

Google

Via le connecteur OIDC général, Firezone permet l'authentification unique (SSO) avec Google Workspace et Cloud Identity. Ce guide vous montrera comment obtenir les paramètres de configuration listés ci-dessous, qui sont nécessaires à l'intégration :

  1. découverte_document_uri : le URI de configuration du fournisseur OpenID Connect qui renvoie un document JSON utilisé pour construire des demandes ultérieures à ce fournisseur OIDC.
  2. client_id : ID client de l'application.
  3. client_secret : Le secret client de l'application.
  4. redirect_uri : indique au fournisseur OIDC où rediriger après l'authentification. Cela devrait être votre Firezone EXTERNAL_URL + /auth/oidc/ /callback/ (par exemple https://instance-id.yourfirezone.com/auth/oidc/google/callback/).
  5. type_réponse : défini sur code.
  6. portée: Champs d'application OIDC à obtenir auprès de votre fournisseur OIDC. Il doit être défini sur le profil de messagerie openid pour fournir à Firezone l'e-mail de l'utilisateur dans les demandes renvoyées.
  7. label : le texte du libellé du bouton qui s'affiche sur l'écran de connexion de votre Firezone.

Obtenir les paramètres de configuration

1. Écran de configuration OAuth

Si c'est la première fois que vous créez un nouvel ID client OAuth, il vous sera demandé de configurer un écran de consentement.

*Sélectionnez Interne pour le type d'utilisateur. Ainsi, seuls les comptes appartenant aux utilisateurs de votre organisation Google Workspace peuvent créer des configurations d'appareils. NE sélectionnez PAS Externe, sauf si vous souhaitez autoriser toute personne disposant d'un compte Google valide à créer des configurations d'appareil.

 

Sur l'écran d'informations sur l'application :

  1. Nom de l'application : Firezone
  2. Logo de l'application : Logo Firezone (Enregistrer le lien sous).
  3. Page d'accueil de l'application : l'URL de votre instance Firezone.
  4. Domaines autorisés : le domaine de premier niveau de votre instance Firezone.

 

 

2. Créer des identifiants client OAuth

Cette section est basée sur la propre documentation de Google sur configuration d'OAuth 2.0.

Accédez à Google Cloud Console Page des identifiants , cliquez sur + Créer des informations d'identification et sélectionnez ID client OAuth.

Sur l'écran de création d'ID client OAuth :

  1. Définissez le type d'application sur l'application Web
  2. Ajoutez votre Firezone EXTERNAL_URL + /auth/oidc/google/callback/ (par exemple https://instance-id.yourfirezone.com/auth/oidc/google/callback/) en tant qu'entrée aux URI de redirection autorisés.

 

Après avoir créé l'ID client OAuth, vous recevrez un ID client et un secret client. Ceux-ci seront utilisés avec l'URI de redirection à l'étape suivante.

Intégration Firezone

Modifier /etc/firezone/firezone.rb pour inclure les options ci-dessous :

 

# Utiliser Google comme fournisseur d'identité SSO

default['firezone']['authentication']['oidc'] = {

  Google: {

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

    identité du client: " ”,

    secret_client : " ”,

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

    type_réponse : "code",

    champ d'application : "profil de messagerie openid",

    libellé : "Google"

  }

}

 

Exécutez firezone-ctl reconfigure et firezone-ctl restart pour mettre à jour l'application. Vous devriez maintenant voir un bouton Se connecter avec Google à l'URL racine de Firezone.

Okta

Firezone utilise le connecteur OIDC générique pour faciliter l'authentification unique (SSO) avec Okta. Ce tutoriel vous montrera comment obtenir les paramètres de configuration listés ci-dessous, qui sont nécessaires à l'intégration :

  1. découverte_document_uri : le URI de configuration du fournisseur OpenID Connect qui renvoie un document JSON utilisé pour construire des demandes ultérieures à ce fournisseur OIDC.
  2. client_id : ID client de l'application.
  3. client_secret : Le secret client de l'application.
  4. redirect_uri : indique au fournisseur OIDC où rediriger après l'authentification. Cela devrait être votre Firezone EXTERNAL_URL + /auth/oidc/ /callback/ (par exemple https://instance-id.yourfirezone.com/auth/oidc/okta/callback/).
  5. type_réponse : défini sur code.
  6. portée: Champs d'application OIDC à obtenir auprès de votre fournisseur OIDC. Il doit être défini sur openid email profile offline_access pour fournir à Firezone l'e-mail de l'utilisateur dans les revendications renvoyées.
  7. label : le texte du libellé du bouton qui s'affiche sur l'écran de connexion de votre Firezone.

 

Intégrer l'application Okta

Cette section du guide est basée sur Documentation d'Okta.

Dans la console d'administration, accédez à Applications > Applications et cliquez sur Créer une intégration d'application. Définissez Méthode de connexion sur OICD – OpenID Connect et Type d'application sur Application Web.

Configurez ces paramètres :

  1. Nom de l'application : Firezone
  2. Logo de l'application : Logo Firezone (Enregistrer le lien sous).
  3. Grant Type : cochez la case Refresh Token. Cela garantit que Firezone se synchronise avec le fournisseur d'identité et que l'accès VPN est interrompu une fois l'utilisateur supprimé.
  4. URI de redirection de connexion : ajoutez votre Firezone EXTERNAL_URL + /auth/oidc/okta/callback/ (par exemple, https://instance-id.yourfirezone.com/auth/oidc/okta/callback/) en tant qu'entrée aux URI de redirection autorisés .
  5. Affectations : Limitez les groupes auxquels vous souhaitez donner accès à votre instance Firezone.

Une fois les paramètres enregistrés, vous recevrez un ID client, un secret client et un domaine Okta. Ces 3 valeurs seront utilisées à l'étape 2 pour configurer Firezone.

Intégrer Firezone

Modifier /etc/firezone/firezone.rb pour inclure les options ci-dessous. Ton découverte_document_url sera /.well-known/openid-configuration ajouté à la fin de votre domaine_octa.

 

# Utiliser Okta comme fournisseur d'identité SSO

default['firezone']['authentication']['oidc'] = {

  octa : {

    découverte_document_uri : "https:// /.well-known/openid-configuration”,

    identité du client: " ”,

    secret_client : " ”,

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

    type_réponse : "code",

    portée : "openid email profile offline_access",

    étiquette : "Okta"

  }

}

 

Exécutez firezone-ctl reconfigure et firezone-ctl restart pour mettre à jour l'application. Vous devriez maintenant voir un bouton Se connecter avec Okta à l'URL racine de Firezone.

 

Restreindre l'accès à certains utilisateurs

Les utilisateurs qui peuvent accéder à l'application Firezone peuvent être restreints par Okta. Accédez à la page Affectations de l'intégration de l'application Firezone de votre console d'administration Okta pour accomplir cela.

Azure Active Directory

Grâce au connecteur OIDC générique, Firezone active l'authentification unique (SSO) avec Azure Active Directory. Ce manuel vous montrera comment obtenir les paramètres de configuration répertoriés ci-dessous, qui sont nécessaires à l'intégration :

  1. découverte_document_uri : le URI de configuration du fournisseur OpenID Connect qui renvoie un document JSON utilisé pour construire des demandes ultérieures à ce fournisseur OIDC.
  2. client_id : ID client de l'application.
  3. client_secret : Le secret client de l'application.
  4. redirect_uri : indique au fournisseur OIDC où rediriger après l'authentification. Cela devrait être votre Firezone EXTERNAL_URL + /auth/oidc/ /callback/ (par exemple https://instance-id.yourfirezone.com/auth/oidc/azure/callback/).
  5. type_réponse : défini sur code.
  6. portée: Champs d'application OIDC à obtenir auprès de votre fournisseur OIDC. Il doit être défini sur openid email profile offline_access pour fournir à Firezone l'e-mail de l'utilisateur dans les revendications renvoyées.
  7. label : le texte du libellé du bouton qui s'affiche sur l'écran de connexion de votre Firezone.

Obtenir les paramètres de configuration

Ce guide est tiré de la Documents Azure Active Directory.

 

Accédez à la page Azure Active Directory du portail Azure. Choisissez l'option de menu Gérer, sélectionnez Nouvel enregistrement, puis enregistrez-vous en fournissant les informations ci-dessous :

  1. Nom : Firezone
  2. Types de compte pris en charge : (répertoire par défaut uniquement - locataire unique)
  3. URI de redirection : il doit s'agir de votre firezone EXTERNAL_URL + /auth/oidc/azure/callback/ (par exemple, https://instance-id.yourfirezone.com/auth/oidc/azure/callback/). Assurez-vous d'inclure la barre oblique finale. Ce sera la valeur redirect_uri.

 

Après l'enregistrement, ouvrez la vue détaillée de l'application et copiez le ID de l'application (client). Ce sera la valeur client_id. Ensuite, ouvrez le menu des endpoints pour récupérer le Document de métadonnées OpenID Connect. Ce sera la valeur discovery_document_uri.

 

Créez un nouveau secret client en cliquant sur l'option Certificats et secrets dans le menu Gérer. Copiez le secret du client ; la valeur secrète du client sera celle-ci.

 

Enfin, sélectionnez le lien des autorisations API dans le menu Gérer, cliquez sur Ajouter une autorisation, et sélectionnez Microsoft Graph. Ajouter email, ouvert, accès_hors ligne ainsi que profil aux autorisations requises.

Intégration Firezone

Modifier /etc/firezone/firezone.rb pour inclure les options ci-dessous :

 

# Utilisation d'Azure Active Directory comme fournisseur d'identité SSO

default['firezone']['authentication']['oidc'] = {

  Azur: {

    découverte_document_uri : "https://login.microsoftonline.com/ /v2.0/.well-known/openid-configuration »,

    identité du client: " ”,

    secret_client : " ”,

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

    type_réponse : "code",

    portée : "openid email profile offline_access",

    étiquette : « Azur »

  }

}

 

Exécutez firezone-ctl reconfigure et firezone-ctl restart pour mettre à jour l'application. Vous devriez maintenant voir un bouton Se connecter avec Azure à l'URL racine de Firezone.

Comment : restreindre l'accès à certains membres

Azure AD permet aux administrateurs de limiter l'accès aux applications à un groupe spécifique d'utilisateurs au sein de votre entreprise. Vous trouverez plus d'informations sur la façon de procéder dans la documentation de Microsoft.

Administrer

  • Configurer
  • Gérer l'installation
  • Optimisation
  • Résolution des problèmes
  • Considérations de sécurité
  • Exécution de requêtes SQL

Configurer

Chef Omnibus est utilisé par Firezone pour gérer des tâches telles que l'empaquetage des versions, la supervision des processus, la gestion des journaux, etc.

Le code Ruby constitue le fichier de configuration principal, qui se trouve dans /etc/firezone/firezone.rb. Si vous redémarrez sudo firezone-ctl reconfigure après avoir apporté des modifications à ce fichier, Chef reconnaît les modifications et les applique au système d'exploitation actuel.

Voir la référence du fichier de configuration pour une liste complète des variables de configuration et leurs descriptions.

Gérer l'installation

Votre instance Firezone peut être gérée via le firezone-ctl commande, comme indiqué ci-dessous. La plupart des sous-commandes nécessitent un préfixe avec sudo.

 

root@demo :~# firezone-ctl

omnibus-ctl : commande (sous-commande)

Commandes générales :

  purifier

    Supprimez *toutes* les données de la zone d'incendie et recommencez à zéro.

  créer-ou-réinitialiser-admin

    Réinitialise le mot de passe de l'administrateur avec l'e-mail spécifié par défaut['firezone']['admin_email'] ou crée un nouvel administrateur si cet e-mail n'existe pas.

  aider

    Imprimez ce message d'aide.

  reconfigurer

    Reconfigurez l'application.

  réseau de réinitialisation

    Réinitialise nftables, l'interface WireGuard et la table de routage aux valeurs par défaut de Firezone.

  show-config

    Affichez la configuration qui serait générée par la reconfiguration.

  réseau de démontage

    Supprime l'interface WireGuard et la table firezone nftables.

  force-cert-renouvellement

    Forcez le renouvellement du certificat maintenant même s'il n'a pas expiré.

  stop-cert-renouvellement

    Supprime le cronjob qui renouvelle les certificats.

  Désinstaller

    Tuez tous les processus et désinstallez le superviseur de processus (les données seront conservées).

  version

    Afficher la version actuelle de Firezone

Commandes de gestion de service :

  gracieux-tuer

    Essayez un arrêt gracieux, puis SIGKILL l'ensemble du groupe de processus.

  hup

    Envoyez un HUP aux services.

  int

    Envoyez aux services un INT.

  tuer

    Envoyez un KILL aux services.

  une fois

    Démarrez les services s'ils sont en panne. Ne les redémarrez pas s'ils s'arrêtent.

  recommencer

    Arrêtez les services s'ils sont en cours d'exécution, puis redémarrez-les.

  liste de services

    Lister tous les services (les services activés apparaissent avec un *.)

  Commencer

    Démarrez les services s'ils sont arrêtés et redémarrez-les s'ils s'arrêtent.

  statuts

    Afficher l'état de tous les services.

  Arrêtez

    Arrêtez les services et ne les redémarrez pas.

  queue

    Regardez les journaux de service de tous les services activés.

  terme

    Envoyez aux services un TERM.

  usr1

    Envoyez aux services un USR1.

  usr2

    Envoyez aux services un USR2.

Optimisation

Toutes les sessions VPN doivent être terminées avant la mise à niveau de Firezone, ce qui nécessite également la fermeture de l'interface utilisateur Web. En cas de problème lors de la mise à niveau, nous vous conseillons de réserver une heure pour la maintenance.

 

Pour améliorer Firezone, procédez comme suit :

  1. Mettez à niveau le package firezone à l'aide de l'installation en une seule commande : sudo -E bash -c "$(curl -fsSL https://github.com/firezone/firezone/raw/master/scripts/install.sh)"
  2. Exécutez firezone-ctl reconfigure pour prendre en compte les nouvelles modifications.
  3. Exécutez firezone-ctl restart pour redémarrer les services.

En cas de problème, veuillez nous en informer par soumettre un ticket d'assistance.

Mise à niveau de <0.5.0 à >=0.5.0

Il y a quelques changements de rupture et modifications de configuration dans la version 0.5.0 qui doivent être résolus. En savoir plus ci-dessous.

Requêtes groupées Nginx non_ssl_port (HTTP) supprimées

Nginx ne prend plus en charge les paramètres de port force SSL et non-SSL à partir de la version 0.5.0. Étant donné que Firezone a besoin de SSL pour fonctionner, nous vous conseillons de supprimer le service groupé Nginx en définissant default['firezone']['nginx']['enabled'] = false et en dirigeant votre proxy inverse vers l'application Phoenix sur le port 13000 à la place (par défaut ).

Prise en charge du protocole ACME

La version 0.5.0 introduit la prise en charge du protocole ACME pour le renouvellement automatique des certificats SSL avec le service Nginx fourni. Autoriser,

  • Assurez-vous que default['firezone']['external_url'] contient un FQDN valide qui correspond à l'adresse IP publique de votre serveur.
  • Assurez-vous que le port 80/tcp est accessible
  • Activez la prise en charge du protocole ACME avec default['firezone']['ssl']['acme']['enabled'] = true dans votre fichier de configuration.

Chevauchement des destinations des règles de sortie

La possibilité d'ajouter des règles avec des destinations en double a disparu dans Firezone 0.5.0. Notre script de migration reconnaîtra automatiquement ces situations lors d'une mise à jour vers la 0.5.0 et ne conservera que les règles dont la destination inclut l'autre règle. Vous n'avez rien à faire si tout va bien.

Sinon, avant la mise à niveau, nous vous conseillons de modifier votre ensemble de règles pour vous débarrasser de ces situations.

Préconfigurer Okta et Google SSO

Firezone 0.5.0 supprime la prise en charge de l'ancienne configuration Okta et Google SSO au profit de la nouvelle configuration basée sur OIDC, plus flexible. 

Si vous avez une configuration sous les clés default['firezone']['authentication']['okta'] ou default['firezone']['authentication']['google'], vous devez les migrer vers notre OIDC -configuration basée sur le guide ci-dessous.

Configuration Google OAuth existante

Supprimez ces lignes contenant les anciennes configurations Google OAuth de votre fichier de configuration situé dans /etc/firezone/firezone.rb

 

par défaut['firezone']['authentication']['google']['enabled']

par défaut['firezone']['authentication']['google']['client_id']

par défaut['firezone']['authentication']['google']['client_secret']

par défaut['firezone']['authentication']['google']['redirect_uri']

 

Ensuite, configurez Google en tant que fournisseur OIDC en suivant les procédures décrites ici.

(Fournir des instructions de lien)<<<<<<<<<<<<<<<<

 

Configurer Google OAuth existant 

Supprimez ces lignes contenant les anciennes configurations Okta OAuth de votre fichier de configuration situé à /etc/firezone/firezone.rb

 

par défaut['firezone']['authentication']['okta']['enabled']

par défaut['firezone']['authentication']['okta']['client_id']

par défaut['firezone']['authentication']['okta']['client_secret']

Par défaut['firezone']['authentication']['okta']['site']

 

Ensuite, configurez Okta en tant que fournisseur OIDC en suivant les procédures décrites ici.

Mise à niveau de 0.3.x vers >= 0.3.16

En fonction de votre configuration et de votre version actuelles, respectez les instructions ci-dessous :

Si vous disposez déjà d'une intégration OIDC :

Pour certains fournisseurs OIDC, la mise à niveau vers >= 0.3.16 nécessite l'obtention d'un jeton d'actualisation pour l'étendue de l'accès hors ligne. Ce faisant, on s'assure que Firezone se met à jour avec le fournisseur d'identité et que la connexion VPN est coupée après la suppression d'un utilisateur. Les versions précédentes de Firezone ne disposaient pas de cette fonctionnalité. Dans certains cas, les utilisateurs supprimés de votre fournisseur d'identité peuvent toujours être connectés à un VPN.

Il est nécessaire d'inclure l'accès hors ligne dans le paramètre d'étendue de votre configuration OIDC pour les fournisseurs OIDC qui prennent en charge l'étendue de l'accès hors ligne. La reconfiguration Firezone-ctl doit être exécutée afin d'appliquer les modifications au fichier de configuration Firezone, qui se trouve dans /etc/firezone/firezone.rb.

Pour les utilisateurs qui ont été authentifiés par votre fournisseur OIDC, vous verrez l'en-tête Connexions OIDC dans la page des détails de l'utilisateur de l'interface utilisateur Web si Firezone parvient à récupérer le jeton d'actualisation.

Si cela ne fonctionne pas, vous devrez supprimer votre application OAuth existante et répéter les étapes de configuration OIDC pour créer une nouvelle intégration d'application .

J'ai une intégration OAuth existante

Avant la version 0.3.11, Firezone utilisait des fournisseurs OAuth2 préconfigurés. 

Suivez les instructions ici pour migrer vers OIDC.

Je n'ai pas intégré de fournisseur d'identité

Pas d'action requise. 

Vous pouvez suivre les instructions ici pour activer l'authentification unique via un fournisseur OIDC.

Mise à jour de 0.3.1 vers >= 0.3.2

À sa place, default['firezone']['external url'] a remplacé l'option de configuration default['firezone']['fqdn']. 

Définissez-le sur l'URL de votre portail en ligne Firezone accessible au grand public. Il sera par défaut https:// plus le FQDN de votre serveur s'il n'est pas défini.

Le fichier de configuration se trouve dans /etc/firezone/firezone.rb. Voir la référence du fichier de configuration pour une liste complète des variables de configuration et leurs descriptions.

Mise à niveau de 0.2.x vers 0.3.x

Firezone ne conserve plus les clés privées de l'appareil sur le serveur Firezone à partir de la version 0.3.0. 

L'interface utilisateur Web Firezone ne vous permettra pas de retélécharger ou de voir ces configurations, mais tous les appareils existants devraient continuer à fonctionner tels quels.

Mise à niveau de 0.1.x vers 0.2.x

Si vous effectuez une mise à niveau à partir de Firezone 0.1.x, quelques modifications du fichier de configuration doivent être traitées manuellement. 

Pour apporter les modifications nécessaires à votre fichier /etc/firezone/firezone.rb, exécutez les commandes ci-dessous en tant que root.

 

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

sed -i "s/\['enable'\]/\['enabled'\]/" /etc/firezone/firezone.rb

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

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

reconfigurer firezone-ctl

redémarrage firezone-ctl

Dépannage

La vérification des journaux Firezone est une première étape judicieuse pour tout problème pouvant survenir.

Exécutez sudo firezone-ctl tail pour afficher les journaux Firezone.

Débogage des problèmes de connectivité

La majorité des problèmes de connectivité avec Firezone sont provoqués par des règles iptables ou nftables incompatibles. Vous devez vous assurer que toutes les règles que vous avez en vigueur n'entrent pas en conflit avec les règles Firezone.

La connectivité Internet chute lorsque le tunnel est actif

Assurez-vous que la chaîne FORWARD autorise les paquets de vos clients WireGuard vers les emplacements que vous souhaitez laisser passer par Firezone si votre connectivité Internet se détériore à chaque fois que vous activez votre tunnel WireGuard.

 

Ceci peut être réalisé si vous utilisez ufw en vous assurant que la politique de routage par défaut est allow :

 

ubuntu@fz:~$ sudo ufw default allow routé

La stratégie routée par défaut a été remplacée par "autoriser"

(assurez-vous de mettre à jour vos règles en conséquence)

 

A ufw l'état d'un serveur Firezone typique pourrait ressembler à ceci :

 

ubuntu@fz:~$ sudo ufw status verbeux

Statut: actif

Journalisation : activée (faible)

Par défaut : refuser (entrant), autoriser (sortant), autoriser (routé)

Nouveaux profils : ignorer

 

À l'action de

— —— —-

22/tcp AUTORISER N'importe où

80/tcp AUTORISER N'importe où

443/tcp AUTORISER N'importe où

51820/udp autoriser n'importe où

22/tcp (v6) AUTORISER N'IMPORTE OÙ (v6)

80/tcp (v6) AUTORISER N'IMPORTE OÙ (v6)

443/tcp (v6) AUTORISER N'IMPORTE OÙ (v6)

51820/udp (v6) AUTORISER N'IMPORTE OÙ (v6)

Considérations de sécurité

Nous conseillons de limiter l'accès à l'interface Web pour les déploiements de production extrêmement sensibles et critiques, comme expliqué ci-dessous.

Services & Ports

 

Service

Port par défaut

Adresse d'écoute

Description

Nginx

80, 443

TOUTE

Port HTTP(S) public pour administrer Firezone et faciliter l'authentification.

Wireguard

51820

TOUTE

Port WireGuard public utilisé pour les sessions VPN. (UDP)

Postgresql

15432

127.0.0.1

Port local uniquement utilisé pour le serveur Postgresql fourni.

Phénix

13000

127.0.0.1

Port local uniquement utilisé par le serveur d'application Elixir en amont.

Déploiements de production

Nous vous conseillons de penser à restreindre l'accès à l'interface utilisateur Web exposée publiquement de Firezone (par défaut, les ports 443/tcp et 80/tcp) et d'utiliser à la place le tunnel WireGuard pour gérer Firezone pour la production et les déploiements publics où un seul administrateur sera en charge. de créer et de distribuer des configurations d'appareils aux utilisateurs finaux.

 

Par exemple, si un administrateur a créé une configuration de périphérique et créé un tunnel avec l'adresse WireGuard locale 10.3.2.2, la configuration ufw suivante permettrait à l'administrateur d'accéder à l'interface utilisateur Web Firezone sur l'interface wg-firezone du serveur en utilisant la valeur par défaut 10.3.2.1 adresse du tunnel :

 

root@demo:~# état ufw verbeux

Statut: actif

Journalisation : activée (faible)

Par défaut : refuser (entrant), autoriser (sortant), autoriser (routé)

Nouveaux profils : ignorer

 

À l'action de

— —— —-

22/tcp AUTORISER N'importe où

51820/udp autoriser n'importe où

Partout AUTORISER 10.3.2.2

22/tcp (v6) AUTORISER N'IMPORTE OÙ (v6)

51820/udp (v6) AUTORISER N'IMPORTE OÙ (v6)

Cela ne laisserait que 22 / TCP exposé pour un accès SSH afin de gérer le serveur (facultatif), et 51820/udp exposés afin d'établir des tunnels WireGuard.

Exécuter des requêtes SQL

Firezone regroupe un serveur Postgresql et correspondant psql utilitaire qui peut être utilisé depuis le shell local comme suit :

 

/opt/firezone/embedded/bin/psql\

  -U zone de feu \

  -d zone de feu \

  -h hôtelocal \

  -p 15432 \

  -c "SQL_STATEMENT"

 

Cela peut être utile à des fins de débogage.

 

Tâches communes:

 

  • Lister tous les utilisateurs
  • Lister tous les appareils
  • Modification du rôle d'un utilisateur
  • Sauvegarde de la base de données



Liste de tous les utilisateurs :

 

/opt/firezone/embedded/bin/psql\

  -U zone de feu \

  -d zone de feu \

  -h hôtelocal \

  -p 15432 \

  -c "SELECT * FROM utilisateurs ;"



Liste de tous les appareils :

 

/opt/firezone/embedded/bin/psql\

  -U zone de feu \

  -d zone de feu \

  -h hôtelocal \

  -p 15432 \

  -c "SÉLECTIONNER * À PARTIR d'appareils ;"



Modifier un rôle d'utilisateur :

 

Définissez le rôle sur 'admin' ou 'unprivileged' :

 

/opt/firezone/embedded/bin/psql\

  -U zone de feu \

  -d zone de feu \

  -h hôtelocal \

  -p 15432 \

  -c "UPDATE users SET role = 'admin' WHERE email = 'user@example.com';"



Sauvegarde de la base de données :

 

De plus, le programme pg dump est inclus, qui peut être utilisé pour effectuer des sauvegardes régulières de la base de données. Exécutez le code suivant pour vider une copie de la base de données dans le format de requête SQL commun (remplacez /path/to/backup.sql par l'emplacement où le fichier SQL doit être créé) :

 

/opt/firezone/embedded/bin/pg_dump\

  -U zone de feu \

  -d zone de feu \

  -h hôtelocal \

  -p 15432 > /chemin/vers/sauvegarde.sql

Guides de l'utilisateur

  • Ajouter des utilisateurs
  • Ajouter des appareils
  • Règles de sortie
  • Consignes pour les clients
  • VPN à tunnel partagé
  • Tunnel inversé 
  • Passerelle NAT

Ajouter des utilisateurs

Une fois Firezone déployé avec succès, vous devez ajouter des utilisateurs pour leur donner accès à votre réseau. L'interface utilisateur Web est utilisée pour ce faire.

 

Interface Web


En sélectionnant le bouton "Ajouter un utilisateur" sous /users, vous pouvez ajouter un utilisateur. Il vous sera demandé de fournir à l'utilisateur une adresse e-mail et un mot de passe. Afin d'autoriser automatiquement l'accès aux utilisateurs de votre organisation, Firezone peut également s'interfacer et se synchroniser avec un fournisseur d'identité. Plus de détails sont disponibles dans Authentifier. < Ajouter un lien pour s'authentifier

Ajouter des appareils

Nous conseillons de demander aux utilisateurs de créer leurs propres configurations d'appareils afin que la clé privée ne soit visible que par eux. Les utilisateurs peuvent générer leurs propres configurations d'appareils en suivant les instructions sur le Consignes pour les clients page.

 

Génération de la configuration de l'appareil d'administration

Toutes les configurations d'appareil utilisateur peuvent être créées par les administrateurs de Firezone. Sur la page de profil de l'utilisateur située dans /users, sélectionnez l'option "Ajouter un appareil" pour y parvenir.

 

[Insérer une capture d'écran]

 

Vous pouvez envoyer par e-mail à l'utilisateur le fichier de configuration WireGuard après avoir créé le profil de l'appareil.

 

Les utilisateurs et les appareils sont liés. Pour plus de détails sur la façon d'ajouter un utilisateur, voir Ajouter des utilisateurs.

Règles de sortie

Grâce à l'utilisation du système netfilter du noyau, Firezone active les capacités de filtrage de sortie pour spécifier les paquets DROP ou ACCEPT. Tout trafic est normalement autorisé.

 

Les CIDR IPv4 et IPv6 et les adresses IP sont pris en charge via la liste blanche et la liste de refus, respectivement. Vous pouvez choisir d'étendre une règle à un utilisateur lors de son ajout, ce qui applique la règle à tous les appareils de cet utilisateur.

Consignes pour les clients

Installer et configurer

Pour établir une connexion VPN à l'aide du client WireGuard natif, reportez-vous à ce guide.

 

1. Installez le client WireGuard natif

 

Les clients WireGuard officiels situés ici sont compatibles Firezone :

 

MacOS

 

Windows

 

iOS

 

Android

 

Visitez le site Web officiel de WireGuard à l'adresse https://www.wireguard.com/install/ pour les systèmes d'exploitation non mentionnés ci-dessus.

 

2. Téléchargez le fichier de configuration de l'appareil

 

Votre administrateur Firezone ou vous-même pouvez générer le fichier de configuration de l'appareil à l'aide du portail Firezone.

 

Accédez à l'URL fournie par votre administrateur Firezone pour générer vous-même un fichier de configuration de périphérique. Votre entreprise aura une URL unique pour cela ; dans ce cas, il s'agit de https://instance-id.yourfirezone.com.

 

Connectez-vous à Firezone Okta SSO

 

[Insérer une capture d'écran]

 

3. Ajouter la configuration du client

 

Importez le fichier.conf dans le client WireGuard en l'ouvrant. En basculant le commutateur Activer, vous pouvez démarrer une session VPN.

 

[Insérer une capture d'écran]

Réauthentification de session

Suivez les instructions ci-dessous si votre administrateur réseau a mandaté une authentification récurrente pour maintenir votre connexion VPN active. 



Vous avez besoin de:

 

URL du portail Firezone : demandez la connexion à votre administrateur réseau.

Votre administrateur réseau devrait être en mesure de vous fournir votre identifiant et votre mot de passe. Le site Firezone vous invitera à vous connecter à l'aide du service d'authentification unique utilisé par votre employeur (tel que Google ou Okta).

 

1. Désactivez la connexion VPN

 

[Insérer une capture d'écran]

 

2. Authentifiez-vous à nouveau 

Accédez à l'URL du portail Firezone et connectez-vous à l'aide des informations d'identification fournies par votre administrateur réseau. Si vous êtes déjà connecté, cliquez sur le bouton Réauthentifier avant de vous reconnecter.

 

[Insérer une capture d'écran]

 

Étape 3 : Lancer une session VPN

[Insérer une capture d'écran]

Gestionnaire de réseau pour Linux

Pour importer le profil de configuration WireGuard à l'aide de l'interface CLI de Network Manager sur des appareils Linux, suivez ces instructions (nmcli).

REMARQUE

Si la prise en charge d'IPv6 est activée pour le profil, la tentative d'importation du fichier de configuration à l'aide de l'interface graphique de Network Manager peut échouer avec l'erreur suivante :

ipv6.method : la méthode "auto" n'est pas prise en charge pour WireGuard

1. Installez les outils WireGuard 

Il est nécessaire d'installer les utilitaires de l'espace utilisateur WireGuard. Ce sera un paquet appelé wireguard ou wireguard-tools pour les distributions Linux.

Pour Ubuntu/Debian :

sudo apt installer wireguard

Pour utiliser Fedora :

sudo dnf installer les outils wireguard

Arch Linux:

sudo pacman -S wireguard-outils

Visitez le site Web officiel de WireGuard à l'adresse https://www.wireguard.com/install/ pour les distributions qui ne sont pas mentionnées ci-dessus.

2. Télécharger la configuration 

Votre administrateur Firezone ou votre propre génération peut générer le fichier de configuration de l'appareil à l'aide du portail Firezone.

Accédez à l'URL fournie par votre administrateur Firezone pour générer vous-même un fichier de configuration de périphérique. Votre entreprise aura une URL unique pour cela ; dans ce cas, il s'agit de https://instance-id.yourfirezone.com.

[Insérer une capture d'écran]

3. Importer les configurations

Importez le fichier de configuration fourni à l'aide de nmcli :

sudo nmcli type d'importation de connexion fichier wireguard /path/to/configuration.conf

REMARQUE

Le nom du fichier de configuration correspondra à la connexion/interface WireGuard. Après import, la connexion peut être renommée si nécessaire :

nmcli connection modify [ancien nom] connection.id [nouveau nom]

4. Connecter ou déconnecter

Via la ligne de commande, connectez-vous au VPN comme suit :

Connexion nmcli établie [nom du VPN]

Débrancher:

Connexion nmcli interrompue [nom du VPN]

L'applet Network Manager applicable peut également être utilisée pour gérer la connexion si vous utilisez une interface graphique.

Connexion automatique

En sélectionnant "oui" pour l'option de connexion automatique, la connexion VPN peut être configurée pour se connecter automatiquement :

 

connexion nmcli modifie la connexion [nom vpn]. <<<<<<<<<<<<<<<<<<<<<<

 

connexion automatique oui

 

Pour désactiver la connexion automatique, remettez-la sur non :

 

connexion nmcli modifie la connexion [nom vpn].

 

connexion automatique non

Rendre l'authentification multifacteur disponible

Pour activer MFA Accédez à la page /user account/register mfa du portail Firezone. Utilisez votre application d'authentification pour scanner le code QR après sa génération, puis saisissez le code à six chiffres.

Contactez votre administrateur pour réinitialiser les informations d'accès de votre compte si vous égarez votre application d'authentification.

VPN à tunnel partagé

Ce didacticiel vous guidera tout au long du processus de configuration de la fonctionnalité de tunneling partagé de WireGuard avec Firezone afin que seul le trafic vers des plages IP spécifiques soit transféré via le serveur VPN.

 

1. Configurer les IP autorisées 

Les plages d'adresses IP pour lesquelles le client acheminera le trafic réseau sont définies dans le champ IP autorisées situé sur la page /settings/default. Seules les configurations de tunnel WireGuard nouvellement créées produites par Firezone seront affectées par les modifications apportées à ce champ.

 

[Insérer une capture d'écran]



La valeur par défaut est 0.0.0.0/0, ::/0, qui achemine tout le trafic réseau du client vers le serveur VPN.

 

Voici des exemples de valeurs dans ce champ :

 

0.0.0.0/0, ::/0 – tout le trafic réseau sera acheminé vers le serveur VPN.

192.0.2.3/32 – seul le trafic vers une seule adresse IP sera acheminé vers le serveur VPN.

3.5.140.0/22 ​​– seul le trafic vers les adresses IP de la plage 3.5.140.1 – 3.5.143.254 sera acheminé vers le serveur VPN. Dans cet exemple, la plage CIDR pour la région AWS ap-northeast-2 a été utilisée.



REMARQUE

Firezone sélectionne d'abord l'interface de sortie associée à l'itinéraire le plus précis lorsqu'il détermine où acheminer un paquet.

 

2. Régénérer les configurations WireGuard

Les utilisateurs doivent régénérer les fichiers de configuration et les ajouter à leur client WireGuard natif afin de mettre à jour les appareils utilisateur existants avec la nouvelle configuration de tunnel partagé.

 

Pour obtenir des instructions, consultez ajouter un appareil. <<<<<<<<<<< Ajouter un lien

Tunnel inversé

Ce manuel vous montrera comment relier deux appareils en utilisant Firezone comme relais. Un cas d'utilisation typique consiste à permettre à un administrateur d'accéder à un serveur, un conteneur ou une machine qui est protégé par un NAT ou un pare-feu.

 

Nœud à nœud 

Cette illustration montre un scénario simple dans lequel les périphériques A et B construisent un tunnel.

 

[Insérer l'image architecturale de la zone de feu]

 

Commencez par créer le périphérique A et le périphérique B en accédant à /users/[user_id]/new_device. Dans les paramètres de chaque appareil, assurez-vous que les paramètres suivants sont définis sur les valeurs indiquées ci-dessous. Vous pouvez définir les paramètres de l'appareil lors de la création de la configuration de l'appareil (voir Ajouter des appareils). Si vous devez mettre à jour les paramètres d'un appareil existant, vous pouvez le faire en générant une nouvelle configuration d'appareil.

 

Notez que tous les appareils ont une page /settings/defaults où PersistentKeepalive peut être configuré.

 

Appareil A

 

IP autorisés = 10.3.2.2/32

  Il s'agit de l'adresse IP ou de la plage d'adresses IP de l'appareil B

PersistantKeepalive = 25

  Si l'appareil se trouve derrière un NAT, cela garantit que l'appareil est capable de maintenir le tunnel en vie et de continuer à recevoir des paquets de l'interface WireGuard. Généralement, une valeur de 25 est suffisante, mais vous devrez peut-être diminuer cette valeur en fonction de votre environnement.



Appareil B

 

IP autorisés = 10.3.2.3/32

Il s'agit de l'adresse IP ou de la plage d'adresses IP de l'appareil A

PersistantKeepalive = 25

Cas d'administration - Un à plusieurs nœuds

Cet exemple montre une situation dans laquelle le périphérique A peut communiquer avec les périphériques B à D dans les deux sens. Cette configuration peut représenter un ingénieur ou un administrateur accédant à de nombreuses ressources (serveurs, conteneurs ou machines) sur différents réseaux.

 

[Schéma architectural]<<<<<<<<<<<<<<<<<<<<<<

 

Assurez-vous que les paramètres suivants sont définis dans les paramètres de chaque appareil sur les valeurs correspondantes. Lors de la création de la configuration de l'appareil, vous pouvez spécifier les paramètres de l'appareil (voir Ajouter des appareils). Une nouvelle configuration d'appareil peut être créée si les paramètres d'un appareil existant doivent être mis à jour.

 

Appareil A (nœud administrateur)

 

IP autorisées = 10.3.2.3/32, 10.3.2.4/32, 10.3.2.5/32 

    Il s'agit de l'adresse IP des appareils B à D. Les adresses IP des appareils B à D doivent être incluses dans toute plage IP que vous choisissez de définir.

PersistantKeepalive = 25 

    Cela garantit que l'appareil peut maintenir le tunnel et continuer à recevoir des paquets de l'interface WireGuard même s'il est protégé par un NAT. Dans la plupart des cas, une valeur de 25 est adéquate, mais selon votre environnement, vous devrez peut-être réduire ce chiffre.

 

Appareil B

 

  • AllowedIPs = 10.3.2.2/32 : Il s'agit de l'adresse IP ou de la plage d'adresses IP du périphérique A
  • PersistantKeepalive = 25

Appareil C

 

  • AllowedIPs = 10.3.2.2/32 : Il s'agit de l'adresse IP ou de la plage d'adresses IP du périphérique A
  • PersistantKeepalive = 25

Appareil D

 

  • AllowedIPs = 10.3.2.2/32 : Il s'agit de l'adresse IP ou de la plage d'adresses IP du périphérique A
  • PersistantKeepalive = 25

Passerelle NAT

Pour offrir une seule adresse IP de sortie statique à partir de laquelle tout le trafic de votre équipe doit sortir, Firezone peut être utilisé comme passerelle NAT. Ces situations impliquent son utilisation fréquente :

 

Missions de conseil : demandez à votre client de mettre sur liste blanche une seule adresse IP statique plutôt que l'adresse IP unique de chaque employé.

Utiliser un proxy ou masquer votre adresse IP source à des fins de sécurité ou de confidentialité.

 

Un exemple simple de limitation de l'accès à une application Web auto-hébergée à une seule IP statique sur liste blanche exécutant Firezone sera présenté dans cet article. Dans cette illustration, Firezone et la ressource protégée se trouvent dans des zones VPC différentes.

 

Cette solution est fréquemment utilisée à la place de la gestion d'une liste blanche d'adresses IP pour de nombreux utilisateurs finaux, ce qui peut prendre du temps à mesure que la liste d'accès s'allonge.

Exemple AWS

Notre objectif est de mettre en place un serveur Firezone sur une instance EC2 pour rediriger le trafic VPN vers la ressource restreinte. Dans ce cas, Firezone sert de proxy réseau ou de passerelle NAT pour donner à chaque appareil connecté une adresse IP de sortie publique unique.

 

1. Installez le serveur Firezone

Dans ce cas, une instance EC2 nommée tc2.micro a une instance Firezone installée dessus. Pour plus d'informations sur le déploiement de Firezone, consultez le Guide de déploiement. En ce qui concerne AWS, assurez-vous :

 

Le groupe de sécurité de l'instance Firezone EC2 autorise le trafic sortant vers l'adresse IP de la ressource protégée.

L'instance Firezone est livrée avec une adresse IP élastique. Le trafic qui est transféré via l'instance Firezone vers des destinations externes aura cette adresse IP source. L'adresse IP en question est 52.202.88.54.

 

[Insérer une capture d'écran]<<<<<<<<<<<<<<<<<<<<<<<<

 

2. Restreindre l'accès à la ressource protégée

Une application Web auto-hébergée sert de ressource protégée dans ce cas. L'application Web n'est accessible que par des requêtes provenant de l'adresse IP 52.202.88.54. Selon la ressource, il peut être nécessaire d'autoriser le trafic entrant sur différents ports et types de trafic. Ceci n'est pas couvert dans ce manuel.

 

[Insérer une capture d'écran]<<<<<<<<<<<<<<<<<<<<<<<<

 

Veuillez indiquer au tiers responsable de la ressource protégée que le trafic provenant de l'adresse IP statique définie à l'étape 1 doit être autorisé (dans ce cas, 52.202.88.54).

 

3. Utilisez le serveur VPN pour diriger le trafic vers la ressource protégée

 

Par défaut, tout le trafic utilisateur passera par le serveur VPN et proviendra de l'adresse IP statique qui a été configurée à l'étape 1 (dans ce cas 52.202.88.54). Cependant, si le split tunneling a été activé, des paramètres peuvent être nécessaires pour s'assurer que l'adresse IP de destination de la ressource protégée est répertoriée parmi les adresses IP autorisées.

Ajoutez votre texte de titre ici

Vous trouverez ci-dessous une liste complète des options de configuration disponibles dans /etc/firezone/firezone.rb.



option

la description

valeur par défaut

par défaut['firezone']['external_url']

URL utilisée pour accéder au portail Web de cette instance Firezone.

“https://#{nœud['fqdn'] || nœud['nom d'hôte']} »

par défaut['firezone']['config_directory']

Répertoire de niveau supérieur pour la configuration de Firezone.

/etc/firezone'

par défaut['firezone']['install_directory']

Répertoire de niveau supérieur dans lequel installer Firezone.

/opt/firezone'

par défaut['firezone']['app_directory']

Répertoire de niveau supérieur pour installer l'application Web Firezone.

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

par défaut['firezone']['log_directory']

Répertoire de niveau supérieur pour les journaux Firezone.

/var/log/firezone'

par défaut['firezone']['var_directory']

Répertoire de niveau supérieur pour les fichiers d'exécution de Firezone.

/var/opt/firezone'

par défaut['firezone']['user']

Nom de l'utilisateur Linux non privilégié auquel la plupart des services et fichiers appartiendront.

zone de feu'

par défaut['firezone']['group']

Nom du groupe Linux auquel appartiendront la plupart des services et fichiers.

zone de feu'

par défaut['firezone']['admin_email']

Adresse e-mail de l'utilisateur initial de Firezone.

"firezone@localhost"

par défaut['firezone']['max_devices_per_user']

Nombre maximum d'appareils qu'un utilisateur peut avoir.

10

par défaut['firezone']['allow_unprivileged_device_management']

Permet aux utilisateurs non administrateurs de créer et de supprimer des appareils.

VRAI

par défaut['firezone']['allow_unprivileged_device_configuration']

Permet aux utilisateurs non administrateurs de modifier les configurations de l'appareil. Lorsqu'il est désactivé, empêche les utilisateurs non privilégiés de modifier tous les champs de l'appareil, à l'exception du nom et de la description.

VRAI

par défaut['firezone']['egress_interface']

Nom de l'interface où le trafic tunnelé sortira. Si nul, l'interface de route par défaut sera utilisée.

nul

par défaut['firezone']['fips_enabled']

Activez ou désactivez le mode FIP OpenSSL.

nul

par défaut['firezone']['logging']['enabled']

Activez ou désactivez la journalisation sur Firezone. Définissez sur false pour désactiver complètement la journalisation.

VRAI

par défaut['entreprise']['nom']

Nom utilisé par le livre de cuisine Chef 'enterprise'.

zone de feu'

par défaut['firezone']['install_path']

Chemin d'installation utilisé par le livre de recettes Chef 'Enterprise'. Doit être défini sur le même que le install_directory ci-dessus.

nœud['firezone']['install_directory']

par défaut['firezone']['sysvinit_id']

Un identifiant utilisé dans /etc/inittab. Doit être une séquence unique de 1 à 4 caractères.

SOUPER'

par défaut['firezone']['authentication']['local']['enabled']

Activez ou désactivez l'authentification locale par e-mail/mot de passe.

VRAI

par défaut['firezone']['authentication']['auto_create_oidc_users']

Créez automatiquement des utilisateurs qui se connectent à partir d'OIDC pour la première fois. Désactiver pour autoriser uniquement les utilisateurs existants à se connecter via OIDC.

VRAI

par défaut['firezone']['authentication']['disable_vpn_on_oidc_error']

Désactivez le VPN d'un utilisateur si une erreur est détectée lors de la tentative d'actualisation de son jeton OIDC.

FAUX

par défaut['firezone']['authentication']['oidc']

Configuration OpenID Connect, au format {“provider” => [config…]} – Voir Documentation OpenIDConnect pour des exemples de configuration.

{}

par défaut['firezone']['nginx']['enabled']

Activez ou désactivez le serveur nginx fourni.

VRAI

par défaut['firezone']['nginx']['ssl_port']

Port d'écoute HTTPS.

443

par défaut['firezone']['nginx']['répertoire']

Répertoire pour stocker la configuration de l'hôte virtuel nginx lié à Firezone.

"#{nœud['firezone']['var_directory']}/nginx/etc"

par défaut['firezone']['nginx']['log_directory']

Répertoire pour stocker les fichiers journaux nginx liés à Firezone.

"#{nœud['firezone']['log_directory']}/nginx"

par défaut['firezone']['nginx']['log_rotation']['file_maxbytes']

Taille de fichier à laquelle faire pivoter les fichiers journaux Nginx.

104857600

par défaut['firezone']['nginx']['log_rotation']['num_to_keep']

Nombre de fichiers journaux Firezone nginx à conserver avant de les supprimer.

10

par défaut['firezone']['nginx']['log_x_forwarded_for']

Si vous souhaitez enregistrer l'en-tête Firezone nginx x-forwarded-for.

VRAI

par défaut['firezone']['nginx']['hsts_header']['enabled']

Activer ou désactiver HSTS.

VRAI

par défaut['firezone']['nginx']['hsts_header']['include_subdomains']

Activez ou désactivez includeSubDomains pour l'en-tête HSTS.

VRAI

par défaut['firezone']['nginx']['hsts_header']['max_age']

Âge maximum pour l'en-tête HSTS.

31536000

par défaut['firezone']['nginx']['redirect_to_canonical']

S'il faut rediriger les URL vers le nom de domaine complet canonique spécifié ci-dessus

FAUX

par défaut['firezone']['nginx']['cache']['enabled']

Activez ou désactivez le cache Firezone nginx.

FAUX

défaut['firezone']['nginx']['cache']['répertoire']

Répertoire pour le cache Firezone nginx.

"#{nœud['firezone']['var_directory']}/nginx/cache"

par défaut['firezone']['nginx']['user']

Utilisateur Firezone nginx.

nœud['firezone']['user']

par défaut['firezone']['nginx']['group']

Groupe Firezone nginx.

nœud['firezone']['group']

par défaut['firezone']['nginx']['dir']

Répertoire de configuration nginx de niveau supérieur.

nœud['firezone']['nginx']['répertoire']

par défaut['firezone']['nginx']['log_dir']

Répertoire de journal nginx de niveau supérieur.

nœud['firezone']['nginx']['log_directory']

par défaut['firezone']['nginx']['pid']

Emplacement du fichier pid nginx.

"#{nœud['firezone']['nginx']['répertoire']}/nginx.pid"

par défaut['firezone']['nginx']['daemon_disable']

Désactivez le mode démon nginx afin que nous puissions le surveiller à la place.

VRAI

par défaut['firezone']['nginx']['gzip']

Activez ou désactivez la compression nginx gzip.

sur'

par défaut['firezone']['nginx']['gzip_static']

Activez ou désactivez la compression nginx gzip pour les fichiers statiques.

à l'arrêt'

par défaut['firezone']['nginx']['gzip_http_version']

Version HTTP à utiliser pour servir les fichiers statiques.

1.0 pi

par défaut['firezone']['nginx']['gzip_comp_level']

niveau de compression nginx gzip.

2 pi

par défaut['firezone']['nginx']['gzip_proxied']

Active ou désactive le gzipping des réponses pour les requêtes proxy en fonction de la requête et de la réponse.

n'importe quel'

par défaut['firezone']['nginx']['gzip_vary']

Active ou désactive l'insertion de l'en-tête de réponse "Vary : Accept-Encoding".

à l'arrêt'

par défaut['firezone']['nginx']['gzip_buffers']

Définit le nombre et la taille des tampons utilisés pour compresser une réponse. Si nul, nginx par défaut est utilisé.

nul

par défaut['firezone']['nginx']['gzip_types']

Types MIME pour lesquels activer la compression gzip.

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

par défaut['firezone']['nginx']['gzip_min_length']

Longueur de fichier minimale pour laquelle activer la compression gzip de fichier.

1000

par défaut['firezone']['nginx']['gzip_disable']

Matcher d'agent utilisateur pour désactiver la compression gzip.

MSIE [1-6]\.'

par défaut['firezone']['nginx']['keepalive']

Active le cache pour la connexion aux serveurs en amont.

sur'

par défaut['firezone']['nginx']['keepalive_timeout']

Délai d'expiration en secondes pour la connexion keepalive aux serveurs en amont.

65

par défaut['firezone']['nginx']['worker_processes']

Nombre de processus de travail nginx.

nœud['cpu'] && nœud['cpu']['total'] ? nœud['cpu']['total'] : 1

par défaut['firezone']['nginx']['worker_connections']

Nombre maximal de connexions simultanées pouvant être ouvertes par un processus de travail.

1024

par défaut['firezone']['nginx']['worker_rlimit_nofile']

Modifie la limite du nombre maximal de fichiers ouverts pour les processus de travail. Utilise nginx par défaut si nul.

nul

par défaut['firezone']['nginx']['multi_accept']

Indique si les travailleurs doivent accepter une connexion à la fois ou plusieurs.

VRAI

par défaut['firezone']['nginx']['event']

Spécifie la méthode de traitement de connexion à utiliser dans le contexte des événements nginx.

epoll'

par défaut['firezone']['nginx']['server_tokens']

Active ou désactive l'émission de la version nginx sur les pages d'erreur et dans le champ d'en-tête de réponse "Serveur".

nul

par défaut['firezone']['nginx']['server_names_hash_bucket_size']

Définit la taille du compartiment pour les tables de hachage des noms de serveur.

64

par défaut['firezone']['nginx']['sendfile']

Active ou désactive l'utilisation de sendfile() de nginx.

sur'

par défaut['firezone']['nginx']['access_log_options']

Définit les options du journal d'accès nginx.

nul

par défaut['firezone']['nginx']['error_log_options']

Définit les options du journal des erreurs nginx.

nul

par défaut['firezone']['nginx']['disable_access_log']

Désactive le journal d'accès nginx.

FAUX

par défaut['firezone']['nginx']['types_hash_max_size']

Taille maximale de hachage des types nginx.

2048

par défaut['firezone']['nginx']['types_hash_bucket_size']

Taille du compartiment de hachage des types nginx.

64

par défaut['firezone']['nginx']['proxy_read_timeout']

Délai de lecture du proxy nginx. Défini sur nil pour utiliser nginx par défaut.

nul

par défaut['firezone']['nginx']['client_body_buffer_size']

Taille de la mémoire tampon du corps du client nginx. Défini sur nil pour utiliser nginx par défaut.

nul

par défaut['firezone']['nginx']['client_max_body_size']

taille maximale du corps du client nginx.

250 m'

par défaut['firezone']['nginx']['default']['modules']

Spécifiez des modules nginx supplémentaires.

[]

par défaut['firezone']['nginx']['enable_rate_limiting']

Activez ou désactivez la limitation de débit nginx.

VRAI

par défaut['firezone']['nginx']['rate_limiting_zone_name']

Nom de la zone de limitation de débit Nginx.

zone de feu'

par défaut['firezone']['nginx']['rate_limiting_backoff']

Intervalle de limitation du taux Nginx.

10 m'

par défaut['firezone']['nginx']['rate_limit']

Limite de débit Nginx.

10r/s'

par défaut['firezone']['nginx']['ipv6']

Autoriser nginx à écouter les requêtes HTTP pour IPv6 en plus d'IPv4.

VRAI

par défaut['firezone']['postgresql']['enabled']

Activez ou désactivez Postgresql fourni. Définissez sur false et remplissez les options de base de données ci-dessous pour utiliser votre propre instance Postgresql.

VRAI

défaut['firezone']['postgresql']['nom d'utilisateur']

Nom d'utilisateur pour Postgresql.

nœud['firezone']['user']

par défaut['firezone']['postgresql']['data_directory']

Répertoire de données Postgresql.

"#{nœud['firezone']['var_directory']}/postgresql/13.3/data"

par défaut['firezone']['postgresql']['log_directory']

Répertoire des journaux Postgresql.

"#{nœud['firezone']['log_directory']}/postgresql"

par défaut['firezone']['postgresql']['log_rotation']['file_maxbytes']

Taille maximale du fichier journal Postgresql avant sa rotation.

104857600

par défaut['firezone']['postgresql']['log_rotation']['num_to_keep']

Nombre de fichiers journaux Postgresql à conserver.

10

par défaut['firezone']['postgresql']['checkpoint_completion_target']

Cible d'achèvement du point de contrôle Postgresql.

0.5

par défaut['firezone']['postgresql']['checkpoint_segments']

Nombre de segments de point de contrôle Postgresql.

3

par défaut['firezone']['postgresql']['checkpoint_timeout']

Délai d'expiration du point de contrôle Postgresql.

5min'

par défaut['firezone']['postgresql']['checkpoint_warning']

Délai d'avertissement du point de contrôle Postgresql en secondes.

années 30

par défaut['firezone']['postgresql']['effective_cache_size']

Taille effective du cache Postgresql.

128 Mo'

par défaut['firezone']['postgresql']['listen_address']

Adresse d'écoute Postgresql.

127.0.0.1 pi

par défaut['firezone']['postgresql']['max_connections']

Connexions postgresql max.

350

par défaut['firezone']['postgresql']['md5_auth_cidr_addresses']

CIDR Postgresql pour permettre l'authentification md5.

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

par défaut['firezone']['postgresql']['port']

Port d'écoute Postgresql.

15432

par défaut['firezone']['postgresql']['shared_buffers']

Taille des tampons partagés Postgresql.

"#{(nœud['mémoire']['total'].to_i / 4) / 1024} Mo"

par défaut['firezone']['postgresql']['shmmax']

Postgresql shmmax en octets.

17179869184

par défaut['firezone']['postgresql']['shmall']

Postgresql petit en octets.

4194304

par défaut['firezone']['postgresql']['work_mem']

Taille de la mémoire de travail Postgresql.

8 Mo'

par défaut['firezone']['database']['user']

Spécifie le nom d'utilisateur que Firezone utilisera pour se connecter à la base de données.

nœud['firezone']['postgresql']['nom d'utilisateur']

par défaut['firezone']['database']['password']

Si vous utilisez une base de données externe, spécifiez le mot de passe que Firezone utilisera pour se connecter à la base de données.

change moi'

par défaut['firezone']['database']['name']

Base de données que Firezone utilisera. Sera créé s'il n'existe pas.

zone de feu'

par défaut['firezone']['database']['host']

Hôte de base de données auquel Firezone se connectera.

nœud['firezone']['postgresql']['listen_address']

par défaut['firezone']['database']['port']

Port de la base de données auquel Firezone se connectera.

nœud['firezone']['postgresql']['port']

par défaut['firezone']['database']['pool']

Taille du pool de bases de données que Firezone utilisera.

[10, Etc.nprocesseurs].max

par défaut['firezone']['database']['ssl']

S'il faut se connecter à la base de données via SSL.

FAUX

par défaut['firezone']['database']['ssl_opts']

Hachage des options à envoyer à l'option :ssl_opts lors de la connexion via SSL. Voir Documentation Ecto.Adapters.Postgres.

{}

par défaut['firezone']['database']['parameters']

Hachage des paramètres à envoyer à l'option :parameters lors de la connexion à la base de données. Voir Documentation Ecto.Adapters.Postgres.

{}

par défaut['firezone']['database']['extensions']

Extensions de base de données à activer.

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

par défaut['firezone']['phoenix']['enabled']

Activez ou désactivez l'application Web Firezone.

VRAI

par défaut['firezone']['phoenix']['listen_address']

Adresse d'écoute de l'application Web Firezone. Ce sera l'adresse d'écoute en amont que nginx proxys.

127.0.0.1 pi

par défaut['firezone']['phoenix']['port']

Port d'écoute de l'application Web Firezone. Ce sera le port en amont que nginx proxys.

13000

par défaut['firezone']['phoenix']['log_directory']

Répertoire des journaux des applications Web Firezone.

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

par défaut['firezone']['phoenix']['log_rotation']['file_maxbytes']

Taille du fichier journal de l'application Web Firezone.

104857600

par défaut['firezone']['phoenix']['log_rotation']['num_to_keep']

Nombre de fichiers journaux d'application Web Firezone à conserver.

10

par défaut['firezone']['phoenix']['crash_detection']['enabled']

Activez ou désactivez l'arrêt de l'application Web Firezone lorsqu'un plantage est détecté.

VRAI

par défaut['firezone']['phoenix']['external_trusted_proxies']

Liste des proxys inverses de confiance formatés en tant que tableau d'adresses IP et/ou CIDR.

[]

par défaut['firezone']['phoenix']['private_clients']

Liste des clients HTTP du réseau privé, formatée en tableau d'adresses IP et/ou CIDR.

[]

par défaut['firezone']['wireguard']['enabled']

Activez ou désactivez la gestion WireGuard intégrée.

VRAI

par défaut['firezone']['wireguard']['log_directory']

Répertoire des journaux pour la gestion WireGuard intégrée.

"#{nœud['firezone']['log_directory']}/wireguard"

par défaut['firezone']['wireguard']['log_rotation']['file_maxbytes']

Taille maximale du fichier journal WireGuard.

104857600

par défaut['firezone']['wireguard']['log_rotation']['num_to_keep']

Nombre de fichiers journaux WireGuard à conserver.

10

par défaut['firezone']['wireguard']['interface_name']

Nom de l'interface WireGuard. La modification de ce paramètre peut entraîner une perte temporaire de la connectivité VPN.

wg-firezone'

par défaut['firezone']['wireguard']['port']

Port d'écoute WireGuard.

51820

par défaut['firezone']['wireguard']['mtu']

MTU de l'interface WireGuard pour ce serveur et pour les configurations de périphériques.

1280

par défaut['firezone']['wireguard']['endpoint']

WireGuard Endpoint à utiliser pour générer des configurations d'appareils. Si nil, la valeur par défaut est l'adresse IP publique du serveur.

nul

par défaut['firezone']['wireguard']['dns']

WireGuard DNS à utiliser pour les configurations d'appareils générées.

1.1.1.1, 1.0.0.1 XNUMX′

par défaut['firezone']['wireguard']['allowed_ips']

WireGuard AllowedIPs à utiliser pour les configurations d'appareils générées.

0.0.0.0/0, ::/0′

par défaut['firezone']['wireguard']['persistent_keepalive']

Paramètre PersistentKeepalive par défaut pour les configurations de périphérique générées. Une valeur de 0 désactive.

0

par défaut['firezone']['wireguard']['ipv4']['enabled']

Activez ou désactivez IPv4 pour le réseau WireGuard.

VRAI

par défaut['firezone']['wireguard']['ipv4']['masquerade']

Activez ou désactivez le masquage pour les paquets quittant le tunnel IPv4.

VRAI

par défaut['firezone']['wireguard']['ipv4']['network']

Pool d'adresses IPv4 du réseau WireGuard.

10.3.2.0/24 ′

par défaut['firezone']['wireguard']['ipv4']['address']

Adresse IPv4 de l'interface WireGuard. Doit être dans le pool d'adresses WireGuard.

10.3.2.1 pi

par défaut['firezone']['wireguard']['ipv6']['enabled']

Activez ou désactivez IPv6 pour le réseau WireGuard.

VRAI

par défaut['firezone']['wireguard']['ipv6']['masquerade']

Activez ou désactivez le masquage pour les paquets quittant le tunnel IPv6.

VRAI

par défaut['firezone']['wireguard']['ipv6']['network']

Pool d'adresses IPv6 du réseau WireGuard.

fd00::3:2:0/120′

par défaut['firezone']['wireguard']['ipv6']['address']

Adresse IPv6 de l'interface WireGuard. Doit se trouver dans le pool d'adresses IPv6.

fd00 :: 3: 2: 1′

par défaut['firezone']['runit']['svlogd_bin']

Exécutez l'emplacement de la corbeille svlogd.

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

par défaut['firezone']['ssl']['répertoire']

Répertoire SSL pour stocker les certificats générés.

/var/opt/firezone/ssl'

par défaut['firezone']['ssl']['email_address']

Adresse e-mail à utiliser pour les certificats auto-signés et les avis de renouvellement du protocole ACME.

vous@exemple.com'

par défaut['firezone']['ssl']['acme']['enabled']

Activez ACME pour le provisionnement automatique des certificats SSL. Désactivez-le pour empêcher Nginx d'écouter sur le port 80. Voir ici pour plus d'instructions.

FAUX

par défaut['firezone']['ssl']['acme']['server']

Serveur ACME à utiliser pour l'émission/le renouvellement du certificat. Peut être n'importe lequel serveur acme.sh valide

letencrypt

par défaut['firezone']['ssl']['acme']['keylength']

Spécifiez le type de clé et la longueur des certificats SSL. Voir ici

Ec-256

par défaut['firezone']['ssl']['certificate']

Chemin d'accès au fichier de certificat pour votre FQDN. Remplace le paramètre ACME ci-dessus si spécifié. Si ACME et this sont nuls, un certificat auto-signé sera généré.

nul

par défaut['firezone']['ssl']['certificate_key']

Chemin d'accès au fichier de certificat.

nul

par défaut['firezone']['ssl']['ssl_dhparam']

nginx ssl dh_param.

nul

par défaut['firezone']['ssl']['country_name']

Nom du pays pour le certificat auto-signé.

NOUS'

par défaut['firezone']['ssl']['state_name']

Indiquez le nom du certificat auto-signé.

CALIFORNIE'

par défaut['firezone']['ssl']['locality_name']

Nom de localité pour le certificat auto-signé.

San Fransisco'

par défaut['firezone']['ssl']['company_name']

Nom de l'entreprise certificat auto-signé.

Mon entreprise'

par défaut['firezone']['ssl']['organizational_unit_name']

Nom de l'unité organisationnelle pour le certificat auto-signé.

Opérations'

par défaut['firezone']['ssl']['ciphers']

Chiffrements SSL à utiliser par 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’

par défaut['firezone']['ssl']['fips_ciphers']

Chiffrements SSL pour le mode FIPs.

FIPS@FORCE : !aNULL : !eNULL'

défaut['firezone']['ssl']['protocoles']

Protocoles TLS à utiliser.

TLSv1 TLSv1.1 TLSv1.2′

par défaut['firezone']['ssl']['session_cache']

Cache de session SSL.

partagé:SSL:4m'

par défaut['firezone']['ssl']['session_timeout']

Délai d'expiration de la session SSL.

5 m'

par défaut['firezone']['robots_allow']

les robots nginx le permettent.

/'

par défaut['firezone']['robots_disallow']

les robots nginx interdisent.

nul

par défaut['firezone']['outbound_email']['from']

E-mail sortant de l'adresse.

nul

par défaut['firezone']['outbound_email']['provider']

Fournisseur de services de courrier électronique sortant.

nul

par défaut['firezone']['outbound_email']['configs']

Configurations du fournisseur de messagerie sortant.

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

par défaut['firezone']['télémétrie']['enabled']

Activez ou désactivez la télémétrie produit anonymisée.

VRAI

par défaut['firezone']['connectivity_checks']['enabled']

Activez ou désactivez le service de vérification de la connectivité Firezone.

VRAI

par défaut['firezone']['connectivity_checks']['interval']

Intervalle entre les vérifications de connectivité en secondes.

3_600



________________________________________________________________

 

Emplacements des fichiers et des répertoires

 

Vous trouverez ici une liste de fichiers et de répertoires liés à une installation typique de Firezone. Celles-ci peuvent changer en fonction des modifications apportées à votre fichier de configuration.



chemin

la description

/var/opt/firezone

Répertoire de niveau supérieur contenant les données et la configuration générée pour les services groupés Firezone.

/opt/firezone

Répertoire de niveau supérieur contenant les bibliothèques construites, les fichiers binaires et les fichiers d'exécution nécessaires à Firezone.

/usr/bin/firezone-ctl

Utilitaire firezone-ctl pour gérer votre installation Firezone.

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

fichier d'unité systemd pour démarrer le processus de superviseur Firezone runsvdir.

/etc/firezone

Fichiers de configuration Firezone.



__________________________________________________________

 

Modèles de pare-feu

 

Cette page était vide dans les documents

 

_____________________________________________________________

 

Modèle de pare-feu Nftables

 

Le modèle de pare-feu nftables suivant peut être utilisé pour sécuriser le serveur exécutant Firezone. Le modèle fait certaines hypothèses ; vous devrez peut-être ajuster les règles en fonction de votre cas d'utilisation :

  • L'interface WireGuard est nommée wg-firezone. Si ce n'est pas correct, modifiez la variable DEV_WIREGUARD pour qu'elle corresponde à l'option de configuration default['firezone']['wireguard']['interface_name'].
  • Le port sur lequel WireGuard écoute est 51820. Si vous n'utilisez pas le port par défaut, modifiez la variable WIREGUARD_PORT.
  • Seul le trafic entrant suivant sera autorisé vers le serveur :
    • SSH (port TCP 22)
    • HTTP (port TCP 80)
    • HTTPS (port TCP 443)
    • WireGuard (port UDP WIREGUARD_PORT)
    • Traceroute UDP (port UDP 33434-33524, débit limité à 500/seconde)
    • ICMP et ICMPv6 (taux de réponses ping/ping limité à 2000/seconde)
  • Seul le trafic sortant suivant sera autorisé depuis le serveur :
    • DNS (port UDP et TCP 53)
    • HTTP (port TCP 80)
    • NTP (port UDP 123)
    • HTTPS (port TCP 443)
    • Soumission SMTP (port TCP 587)
    • Traceroute UDP (port UDP 33434-33524, débit limité à 500/seconde)
  • Le trafic sans correspondance sera enregistré. Les règles utilisées pour la journalisation sont séparées des règles de suppression du trafic et sont limitées en débit. La suppression des règles de journalisation pertinentes n'affectera pas le trafic.

Règles gérées par Firezone

Firezone configure ses propres règles nftables pour autoriser/rejeter le trafic vers les destinations configurées dans l'interface Web et pour gérer le NAT sortant pour le trafic client.

L'application du modèle de pare-feu ci-dessous sur un serveur déjà en cours d'exécution (pas au démarrage) entraînera l'effacement des règles Firezone. Cela peut avoir des implications sur la sécurité.

Pour contourner ce problème, redémarrez le service Phoenix :

firezone-ctl redémarrer phénix

Modèle de pare-feu de base

#!/usr/sbin/nft-f

 

## Effacer/vider toutes les règles existantes

ensemble de règles de rinçage

 

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

## Nom de l'interface Internet/WAN

définir DEV_WAN = eth0

 

## Nom de l'interface WireGuard

définir DEV_WIREGUARD = wg-firezone

 

## Port d'écoute WireGuard

définir WIREGUARD_PORT = 51820

############################## FIN DES VARIABLES ################## ############

 

# Table de filtrage principale de la famille inet

table filtre inet {

 

 # Règles pour le trafic transféré

 # Cette chaîne est traitée avant la chaîne de transfert Firezone

 chaîne en avant {

   filtre de type hook forward priority filter – 5; politique accepter

 }

 

 # Règles pour le trafic d'entrée

 chaîne d'entrée {

   filtre de type filtre de priorité d'entrée de crochet ; baisse de la politique

 

   ## Autoriser le trafic entrant vers l'interface de bouclage

   si je suis là \

     accepter \

     commentaire "Autoriser tout le trafic à partir de l'interface de bouclage"

 

   ## Autoriser les connexions établies et associées

   ct état établi,lié \

     accepter \

     commentaire "Autoriser les connexions établies/associées"

 

   ## Autoriser le trafic WireGuard entrant

   si $DEV_WAN port udp $WIREGUARD_PORT \

     comptoir \

     accepter \

     commentaire "Autoriser le trafic WireGuard entrant"

 

   ## Enregistrez et supprimez les nouveaux paquets TCP non SYN

   drapeaux tcp != synchro état ct nouveau \

     taux limite 100/minute en rafale 150 paquets \

     préfixe de journal « IN – Nouveau !SYN : » \

     commentaire « Journalisation de la limite de débit pour les nouvelles connexions qui n'ont pas l'indicateur SYN TCP défini »

   drapeaux tcp != synchro état ct nouveau \

     comptoir \

     goutte \

     commentaire « Supprimer les nouvelles connexions qui n'ont pas l'indicateur SYN TCP défini »

 

   ## Journaliser et supprimer les paquets TCP avec un indicateur fin/syn invalide

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

     taux limite 100/minute en rafale 150 paquets \

     préfixe de journal « IN – FIN TCP|SIN : » \

     commentaire « Journalisation de la limite de débit pour les paquets TCP avec un indicateur fin/syn invalide »

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

     comptoir \

     goutte \

     commentaire « Supprimez les paquets TCP avec un ensemble d'indicateurs fin/syn non valide »

 

   ## Journaliser et supprimer les paquets TCP avec un indicateur syn/rst invalide

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

     taux limite 100/minute en rafale 150 paquets \

     préfixe de journal « EN – TCP SYN|RST : » \

     commentaire "Journalisation de la limite de débit pour les paquets TCP avec un indicateur syn/rst invalide"

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

     comptoir \

     goutte \

     commentaire « Supprimez les paquets TCP avec un ensemble d'indicateurs syn/rst invalide »

 

   ## Enregistrez et supprimez les drapeaux TCP invalides

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

     taux limite 100/minute en rafale 150 paquets \

     préfixe de journal « IN – FIN : » \

     commentaire « Journalisation de la limite de débit pour les drapeaux TCP non valides (fin|syn|rst|psh|ack|urg) < (fin) »

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

     comptoir \

     goutte \

     commentaire « Supprimez les paquets TCP avec les drapeaux (fin|syn|rst|psh|ack|urg) < (fin) »

 

   ## Enregistrez et supprimez les drapeaux TCP invalides

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

     taux limite 100/minute en rafale 150 paquets \

     préfixe de journal « IN – FIN|PSH|URG : » \

     commentaire « Journalisation de la limite de débit pour les indicateurs TCP non valides (fin|syn|rst|psh|ack|urg) == (fin|psh|urg) »

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

     comptoir \

     goutte \

     commentaire « Supprimez les paquets TCP avec les drapeaux (fin|syn|rst|psh|ack|urg) == (fin|psh|urg) »

 

   ## Supprimer le trafic avec un état de connexion invalide

   ct état invalide \

     taux limite 100/minute en rafale 150 paquets \

     log flags tous les préfixes "IN - Invalide : " \

     commentaire « Journalisation de la limite de débit pour le trafic avec un état de connexion non valide »

   ct état invalide \

     comptoir \

     goutte \

     commentaire « Supprimer le trafic avec un état de connexion invalide »

 

   ## Autoriser les réponses ping/ping IPv4 mais limiter le débit à 2000 PPS

   ip protocole icmp type icmp { réponse-écho, demande-écho } \

     taux limite 2000/deuxième \

     comptoir \

     accepter \

     commentaire "Autoriser l'écho IPv4 entrant (ping) limité à 2000 PPS"

 

   ## Autoriser tous les autres ICMP IPv4 entrants

   ip protocole icmp \

     comptoir \

     accepter \

     commentaire "Autoriser tous les autres ICMP IPv4"

 

   ## Autoriser les réponses ping/ping IPv6 mais limiter le débit à 2000 PPS

   type icmpv6 { réponse-écho, demande-écho } \

     taux limite 2000/deuxième \

     comptoir \

     accepter \

     commentaire "Autoriser l'écho IPv6 entrant (ping) limité à 2000 PPS"

 

   ## Autoriser tous les autres ICMP IPv6 entrants

   méta l4proto { icmpv6 } \

     comptoir \

     accepter \

     commentaire "Autoriser tous les autres ICMP IPv6"

 

   ## Autoriser les ports UDP traceroute entrants mais limiter à 500 PPS

   port udp 33434-33524\

     taux limite 500/deuxième \

     comptoir \

     accepter \

     commentaire "Autoriser le traceroute UDP entrant limité à 500 PPS"

 

   ## Autoriser le SSH entrant

   port tcp ssh ct état nouveau \

     comptoir \

     accepter \

     commentaire "Autoriser les connexions SSH entrantes"

 

   ## Autoriser HTTP et HTTPS entrants

   tcp dport { http, https } ct état nouveau \

     comptoir \

     accepter \

     commentaire "Autoriser les connexions HTTP et HTTPS entrantes"

 

   ## Enregistrez tout trafic sans correspondance, mais limitez la journalisation à un maximum de 60 messages/minute

   ## La politique par défaut sera appliquée au trafic sans correspondance

   taux limite 60/minute en rafale 100 paquets \

     préfixe de journal "IN - Drop : " \

     commentaire « Enregistrer tout trafic inégalé »

 

   ## Compter le trafic sans correspondance

   comptoir \

     commentaire "Compter tout trafic inégalé"

 }

 

 # Règles pour le trafic de sortie

 sortie de chaîne {

   filtre de type filtre de priorité de sortie de crochet ; baisse de la politique

 

   ## Autoriser le trafic sortant vers l'interface de bouclage

   oif lo \

     accepter \

     commentaire "Autoriser tout le trafic vers l'interface de bouclage"

 

   ## Autoriser les connexions établies et associées

   ct état établi,lié \

     comptoir \

     accepter \

     commentaire "Autoriser les connexions établies/associées"

 

   ## Autoriser le trafic WireGuard sortant avant de supprimer les connexions en mauvais état

   si $DEV_WAN sport de l'udp $WIREGUARD_PORT \

     comptoir \

     accepter \

     commentaire "Autoriser le trafic sortant WireGuard"

 

   ## Supprimer le trafic avec un état de connexion invalide

   ct état invalide \

     taux limite 100/minute en rafale 150 paquets \

     log flags tous les préfixes "OUT - Invalide : " \

     commentaire « Journalisation de la limite de débit pour le trafic avec un état de connexion non valide »

   ct état invalide \

     comptoir \

     goutte \

     commentaire « Supprimer le trafic avec un état de connexion invalide »

 

   ## Autoriser tous les autres ICMP IPv4 sortants

   ip protocole icmp \

     comptoir \

     accepter \

     commentaire "Autoriser tous les types ICMP IPv4"

 

   ## Autoriser tous les autres ICMP IPv6 sortants

   méta l4proto { icmpv6 } \

     comptoir \

     accepter \

     commentaire "Autoriser tous les types ICMP IPv6"

 

   ## Autoriser les ports UDP traceroute sortants mais limiter à 500 PPS

   port udp 33434-33524\

     taux limite 500/deuxième \

     comptoir \

     accepter \

     commentaire "Autoriser le traceroute UDP sortant limité à 500 PPS"

 

   ## Autoriser les connexions HTTP et HTTPS sortantes

   tcp dport { http, https } ct état nouveau \

     comptoir \

     accepter \

     commentaire "Autoriser les connexions HTTP et HTTPS sortantes"

 

   ## Autoriser la soumission SMTP sortante

   tcp dport soumission ct état nouveau \

     comptoir \

     accepter \

     commentaire "Autoriser la soumission SMTP sortante"

 

   ## Autoriser les requêtes DNS sortantes

   port udp 53 \

     comptoir \

     accepter \

     commentaire "Autoriser les requêtes DNS UDP sortantes"

   port tcp 53 \

     comptoir \

     accepter \

     commentaire "Autoriser les requêtes DNS TCP sortantes"

 

   ## Autoriser les requêtes NTP sortantes

   port udp 123 \

     comptoir \

     accepter \

     commentaire "Autoriser les requêtes NTP sortantes"

 

   ## Enregistrez tout trafic sans correspondance, mais limitez la journalisation à un maximum de 60 messages/minute

   ## La politique par défaut sera appliquée au trafic sans correspondance

   taux limite 60/minute en rafale 100 paquets \

     préfixe de journal « OUT – Drop : » \

     commentaire « Enregistrer tout trafic inégalé »

 

   ## Compter le trafic sans correspondance

   comptoir \

     commentaire "Compter tout trafic inégalé"

 }

 

}

 

# Tableau de filtrage NAT principal

table inet nat {

 

 # Règles de pré-acheminement du trafic NAT

 pré-acheminement de la chaîne {

   type nat crochet préroutage priorité dstnat ; politique accepter

 }

 

 # Règles pour le post-routage du trafic NAT

 # Cette table est traitée avant la chaîne de post-routage Firezone

 chaîne de post-routage {

   type nat crochet postroutage priorité srcnat – 5; politique accepter

 }

 

}

Utilisation

Le pare-feu doit être stocké à l'emplacement approprié pour la distribution Linux en cours d'exécution. Pour Debian/Ubuntu c'est /etc/nftables.conf et pour RHEL c'est /etc/sysconfig/nftables.conf.

nftables.service devra être configuré pour démarrer au démarrage (si ce n'est déjà fait) défini :

systemctl activer nftables.service

Si vous apportez des modifications au modèle de pare-feu, la syntaxe peut être validée en exécutant la commande check :

nft -f /chemin/vers/nftables.conf -c

Assurez-vous de valider que le pare-feu fonctionne comme prévu, car certaines fonctionnalités de nftables peuvent ne pas être disponibles en fonction de la version exécutée sur le serveur.



_______________________________________________________________



Télémétrie

 

Ce document présente un aperçu de la télémétrie que Firezone collecte à partir de votre instance auto-hébergée et comment la désactiver.

Pourquoi Firezone collecte la télémétrie

Zone d'incendie repose sur la télémétrie pour hiérarchiser notre feuille de route et optimiser les ressources d'ingénierie dont nous disposons pour améliorer Firezone pour tous.

La télémétrie que nous collectons vise à répondre aux questions suivantes :

  • Combien de personnes installent, utilisent et cessent d'utiliser Firezone ?
  • Quelles fonctionnalités sont les plus utiles et lesquelles ne voient aucune utilité ?
  • Quelle fonctionnalité nécessite le plus d'améliorations ?
  • Quand quelque chose se casse, pourquoi s'est-il cassé et comment pouvons-nous empêcher que cela se reproduise à l'avenir ?

Comment nous recueillons la télémétrie

Il existe trois endroits principaux où la télémétrie est collectée dans Firezone :

  1. Télémétrie de paquet. Inclut des événements tels que l'installation, la désinstallation et la mise à niveau.
  2. Télémétrie CLI à partir des commandes firezone-ctl.
  3. Télémétrie produit associée au portail Web.

Dans chacun de ces trois contextes, nous capturons la quantité minimale de données nécessaires pour répondre aux questions de la section ci-dessus.

Les e-mails d'administration ne sont collectés que si vous vous inscrivez explicitement aux mises à jour du produit. Sinon, les informations personnellement identifiables sont n'allons jamais collectées.

Firezone stocke la télémétrie dans une instance auto-hébergée de PostHog exécutée dans un cluster Kubernetes privé, accessible uniquement par l'équipe Firezone. Voici un exemple d'événement de télémétrie envoyé depuis votre instance de Firezone vers notre serveur de télémétrie :

{

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

   "Horodatage": “2022-07-22T18:30:39.748000+00:00”,

   "un événement": "fz_http_started",

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

   "propriétés": {

       "$geoip_city_name": "Ashburn",

       "$geoip_continent_code": "N / A",

       "$geoip_continent_name": "Amérique du Nord",

       "$geoip_country_code": "NOUS",

       "$geoip_country_name": "États Unis",

       "$geoip_latitude": 39.0469,

       "$geoip_longitude": - 77.4903,

       "$geoip_postal_code": "20149",

       "$geoip_subdivision_1_code": "VIRGINIE",

       "$geoip_subdivision_1_name": "Virginie",

       "$geoip_time_zone": "Amérique/New_York",

       "$ip": "52.200.241.107",

       "$plugins_deferred": []

       « $plugins_failed »: []

       « $plugins_succeeded »: [

           "GéoIP (3)"

       ],

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

       "nom de domaine": "awsdemo.firezone.dev",

       "version_noyau": "Linux 5.13.0",

       "Version": "0.4.6"

   },

   "chaîne_éléments": ""

}

Comment désactiver la télémétrie

REMARQUE

L'équipe de développement Firezone repose sur l'analyse des produits pour améliorer Firezone pour tout le monde. Laisser la télémétrie activée est la contribution la plus précieuse que vous puissiez apporter au développement de Firezone. Cela dit, nous comprenons que certains utilisateurs ont des exigences de confidentialité ou de sécurité plus élevées et préféreraient désactiver complètement la télémétrie. Si c'est vous, continuez à lire.

La télémétrie est activée par défaut. Pour désactiver complètement la télémétrie du produit, définissez l'option de configuration suivante sur false dans /etc/firezone/firezone.rb et exécutez sudo firezone-ctl reconfigure pour récupérer les modifications.

défaut['zone de feu']['télémétrie']['activé'🇧🇷 non

Cela désactivera complètement toute la télémétrie du produit.