Hailbytes VPN con la documentazione del firewall Firezone

Sommario

Inizia Ora

Le istruzioni dettagliate per la distribuzione di Hailbytes VPN con Firezone GUI sono fornite qui. 

Amministrazione: l'impostazione dell'istanza del server è direttamente correlata a questa parte.

Guide per l'utente: documenti utili che possono insegnarti come utilizzare Firezone e risolvere problemi tipici. Dopo che il server è stato distribuito correttamente, fare riferimento a questa sezione.

Guide per configurazioni comuni

Split Tunneling: utilizza la VPN per inviare il traffico solo a intervalli IP specifici.

Whitelisting: imposta l'indirizzo IP statico di un server VPN per utilizzare la whitelisting.

Tunnel inversi: crea tunnel tra diversi peer utilizzando tunnel inversi.

Richiedi supporto

Siamo lieti di assisterti se hai bisogno di assistenza per l'installazione, la personalizzazione o l'utilizzo di Hailbytes VPN.

Autenticazione

Prima che gli utenti possano produrre o scaricare i file di configurazione del dispositivo, Firezone può essere configurato per richiedere l'autenticazione. Gli utenti potrebbero anche dover ripetere periodicamente l'autenticazione per mantenere attiva la connessione VPN.

Sebbene il metodo di accesso predefinito di Firezone sia l'e-mail e la password locali, può anche essere integrato con qualsiasi provider di identità OpenID Connect (OIDC) standardizzato. Gli utenti possono ora accedere a Firezone utilizzando le credenziali di Okta, Google, Azure AD o del provider di identità privato.

 

Integra un provider OIDC generico

I parametri di configurazione necessari a Firezone per consentire SSO utilizzando un provider OIDC sono mostrati nell'esempio seguente. In /etc/firezone/firezone.rb, potresti trovare il file di configurazione. Eseguire firezone-ctl reconfigure e firezone-ctl restart per aggiornare l'applicazione e rendere effettive le modifiche.

 

# Questo è un esempio che utilizza Google e Okta come provider di identità SSO.

# È possibile aggiungere più configurazioni OIDC alla stessa istanza Firezone.

 

# Firezone può disabilitare la VPN di un utente se viene rilevato un errore durante il tentativo

# per aggiornare il proprio token di accesso. Questo è verificato per funzionare con Google, Okta e

# Azure SSO e viene usato per disconnettere automaticamente la VPN di un utente se viene rimosso

# dal provider OIDC. Lascialo disabilitato se il tuo provider OIDC

# presenta problemi durante l'aggiornamento dei token di accesso in quanto potrebbe interrompere inaspettatamente a

# sessione VPN dell'utente.

default['firezone']['authentication']['disable_vpn_on_oidc_error'] = falso

 

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

  Google: {

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

    Identificativo cliente: " ”,

    client_secret: " ”,

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

    response_type: "codice",

    ambito: "profilo email openid",

    etichetta: "Google"

  },

  va bene: {

    discovery_document_uri: "https:// /.noto/configurazione-openid”,

    Identificativo cliente: " ”,

    client_secret: " ”,

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

    response_type: "codice",

    ambito: "openid email profile offline_access",

    etichetta: “Okta”

  }

}



Per l'integrazione sono necessarie le seguenti impostazioni di configurazione:

  1. discovery_document_uri: Il file URI di configurazione del provider OpenID Connect che restituisce un documento JSON utilizzato per costruire richieste successive a questo provider OIDC.
  2. client_id: l'ID client dell'applicazione.
  3. client_secret: il segreto client dell'applicazione.
  4. redirect_uri: indica al provider OIDC dove reindirizzare dopo l'autenticazione. Questo dovrebbe essere il tuo EXTERNAL_URL Firezone + /auth/oidc/ /callback/ (ad es. https://instance-id.yourfirezone.com/auth/oidc/google/callback/).
  5. response_type: Imposta su codice.
  6. scopo: Ambiti OIDC ottenere dal proprio fornitore OIDC. Dovrebbe essere impostato su openid email profile o openid email profile offline_access a seconda del provider.
  7. etichetta: il testo dell'etichetta del pulsante che viene visualizzato nella schermata di accesso di Firezone.

URL graziosi

Per ogni provider OIDC viene creato un URL carino corrispondente per il reindirizzamento all'URL di accesso del provider configurato. Per l'esempio di configurazione OIDC sopra, gli URL sono:

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

Istruzioni per la configurazione di Firezone con i provider di identità più diffusi

Fornitori per i quali disponiamo di documentazione:

  • Google
  • Okta
  • Directory attiva di Azure
  • Un accesso
  • Autenticazione locale

 

Se il tuo provider di identità ha un connettore OIDC generico e non è elencato sopra, consulta la relativa documentazione per informazioni su come recuperare le impostazioni di configurazione necessarie.

Mantenere una riautenticazione regolare

L'impostazione in impostazioni/sicurezza può essere modificata per richiedere una riautenticazione periodica. Questo può essere utilizzato per imporre il requisito che gli utenti accedano regolarmente a Firezone per continuare la loro sessione VPN.

La durata della sessione può essere configurata tra un'ora e novanta giorni. Impostando questo su Mai, puoi abilitare le sessioni VPN in qualsiasi momento. Questo è lo standard.

Riautenticazione

Un utente deve terminare la propria sessione VPN e accedere al portale Firezone per autenticare nuovamente una sessione VPN scaduta (URL specificato durante la distribuzione).

Puoi riautenticare la tua sessione seguendo le precise istruzioni del cliente che trovi qui.

 

Stato della connessione VPN

La colonna della tabella Connessione VPN della pagina Utenti mostra lo stato della connessione di un utente. Questi sono gli stati della connessione:

ENABLED – La connessione è abilitata.

DISABILITATO: la connessione è stata disabilitata da un amministratore o da un errore di aggiornamento OIDC.

SCADUTO: la connessione è disabilitata a causa della scadenza dell'autenticazione o perché un utente non ha effettuato l'accesso per la prima volta.

Google

Tramite il connettore OIDC generale, Firezone abilita il Single Sign-On (SSO) con Google Workspace e Cloud Identity. Questa guida ti mostrerà come ottenere i parametri di configurazione elencati di seguito, necessari per l'integrazione:

  1. discovery_document_uri: Il file URI di configurazione del provider OpenID Connect che restituisce un documento JSON utilizzato per costruire richieste successive a questo provider OIDC.
  2. client_id: l'ID client dell'applicazione.
  3. client_secret: il segreto client dell'applicazione.
  4. redirect_uri: indica al provider OIDC dove reindirizzare dopo l'autenticazione. Questo dovrebbe essere il tuo EXTERNAL_URL Firezone + /auth/oidc/ /callback/ (ad es. https://instance-id.yourfirezone.com/auth/oidc/google/callback/).
  5. response_type: Imposta su codice.
  6. scopo: Ambiti OIDC ottenere dal proprio fornitore OIDC. Dovrebbe essere impostato su openid email profile per fornire a Firezone l'email dell'utente nelle attestazioni restituite.
  7. etichetta: il testo dell'etichetta del pulsante che viene visualizzato nella schermata di accesso di Firezone.

Ottieni impostazioni di configurazione

1. Schermata di configurazione OAuth

Se è la prima volta che crei un nuovo ID client OAuth, ti verrà chiesto di configurare una schermata di consenso.

*Selezionare Interno per il tipo di utente. Ciò garantisce che solo gli account appartenenti agli utenti della tua organizzazione Google Workspace possano creare configurazioni del dispositivo. NON selezionare Esterno a meno che non desideri consentire a chiunque disponga di un account Google valido di creare configurazioni del dispositivo.

 

Nella schermata delle informazioni sull'app:

  1. Nome dell'app: Firezone
  2. Logo dell'app: Logo della zona di fuoco (salva collegamento come).
  3. Home page dell'applicazione: l'URL della tua istanza Firezone.
  4. Domini autorizzati: il dominio di primo livello della tua istanza Firezone.

 

 

2. Creare ID client OAuth

Questa sezione si basa sulla documentazione di Google su configurazione di OAuth 2.0.

Visita Google Cloud Console Pagina delle credenziali pagina, fai clic su + Crea credenziali e seleziona ID client OAuth.

Nella schermata di creazione dell'ID client OAuth:

  1. Impostare Tipo di applicazione su Applicazione Web
  2. Aggiungi il tuo Firezone EXTERNAL_URL + /auth/oidc/google/callback/ (ad es. https://instance-id.yourfirezone.com/auth/oidc/google/callback/) come voce per gli URI di reindirizzamento autorizzato.

 

Dopo aver creato l'ID client OAuth, ti verrà fornito un ID client e un segreto client. Questi verranno utilizzati insieme all'URI di reindirizzamento nel passaggio successivo.

Integrazione FireZone

Modifica /etc/firezone/firezone.rb per includere le seguenti opzioni:

 

# Utilizzo di Google come provider di identità SSO

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

  Google: {

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

    Identificativo cliente: " ”,

    client_secret: " ”,

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

    response_type: "codice",

    ambito: "profilo email openid",

    etichetta: "Google"

  }

}

 

Eseguire firezone-ctl reconfigure e firezone-ctl restart per aggiornare l'applicazione. Ora dovresti vedere un pulsante Accedi con Google nell'URL principale di Firezone.

Okta

Firezone utilizza il connettore OIDC generico per facilitare il Single Sign-On (SSO) con Okta. Questo tutorial ti mostrerà come ottenere i parametri di configurazione elencati di seguito, necessari per l'integrazione:

  1. discovery_document_uri: Il file URI di configurazione del provider OpenID Connect che restituisce un documento JSON utilizzato per costruire richieste successive a questo provider OIDC.
  2. client_id: l'ID client dell'applicazione.
  3. client_secret: il segreto client dell'applicazione.
  4. redirect_uri: indica al provider OIDC dove reindirizzare dopo l'autenticazione. Questo dovrebbe essere il tuo EXTERNAL_URL Firezone + /auth/oidc/ /callback/ (ad es. https://instance-id.yourfirezone.com/auth/oidc/okta/callback/).
  5. response_type: Imposta su codice.
  6. scopo: Ambiti OIDC ottenere dal proprio fornitore OIDC. Dovrebbe essere impostato su openid email profile offline_access per fornire a Firezone l'email dell'utente nelle attestazioni restituite.
  7. etichetta: il testo dell'etichetta del pulsante che viene visualizzato nella schermata di accesso di Firezone.

 

Integra l'app Okta

Questa sezione della guida è basata su La documentazione di Okta.

In Admin Console, vai su Applicazioni > Applicazioni e fai clic su Crea integrazione app. Impostare Metodo di accesso su OICD – OpenID Connect e Tipo di applicazione su Applicazione Web.

Configura queste impostazioni:

  1. Nome dell'app: FireZone
  2. Logo dell'app: Logo della zona di fuoco (salva collegamento come).
  3. Tipo di concessione: selezionare la casella Refresh Token. Ciò garantisce che Firezone si sincronizzi con il provider di identità e che l'accesso alla VPN venga interrotto una volta rimosso l'utente.
  4. URI di reindirizzamento di accesso: aggiungi il tuo Firezone EXTERNAL_URL + /auth/oidc/okta/callback/ (ad es. https://instance-id.yourfirezone.com/auth/oidc/okta/callback/) come voce agli URI di reindirizzamento autorizzato .
  5. Assegnazioni: Limita ai gruppi a cui desideri fornire l'accesso alla tua istanza Firezone.

Una volta salvate le impostazioni, ti verrà fornito un ID client, un segreto client e un dominio Okta. Questi 3 valori verranno utilizzati nel passaggio 2 per configurare Firezone.

Integra FireZone

Modifica /etc/firezone/firezone.rb per includere le opzioni seguenti. Tuo discovery_document_url sarà /.noto/configurazione-openid aggiunto alla fine del tuo okta_dominio.

 

# Utilizzo di Okta come provider di identità SSO

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

  va bene: {

    discovery_document_uri: "https:// /.noto/configurazione-openid”,

    Identificativo cliente: " ”,

    client_secret: " ”,

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

    response_type: "codice",

    ambito: "openid email profile offline_access",

    etichetta: “Okta”

  }

}

 

Eseguire firezone-ctl reconfigure e firezone-ctl restart per aggiornare l'applicazione. Ora dovresti vedere un pulsante Accedi con Okta nell'URL principale di Firezone.

 

Limitare l'accesso a determinati utenti

Gli utenti che possono accedere all'app Firezone possono essere limitati da Okta. Vai alla pagina delle assegnazioni dell'integrazione dell'app Firezone della console di amministrazione Okta per eseguire questa operazione.

Directory attiva di Azure

Tramite il connettore OIDC generico, Firezone abilita il Single Sign-On (SSO) con Azure Active Directory. Questo manuale ti mostrerà come ottenere i parametri di configurazione elencati di seguito, necessari per l'integrazione:

  1. discovery_document_uri: Il file URI di configurazione del provider OpenID Connect che restituisce un documento JSON utilizzato per costruire richieste successive a questo provider OIDC.
  2. client_id: l'ID client dell'applicazione.
  3. client_secret: il segreto client dell'applicazione.
  4. redirect_uri: indica al provider OIDC dove reindirizzare dopo l'autenticazione. Questo dovrebbe essere il tuo EXTERNAL_URL Firezone + /auth/oidc/ /callback/ (ad es. https://instance-id.yourfirezone.com/auth/oidc/azure/callback/).
  5. response_type: Imposta su codice.
  6. scopo: Ambiti OIDC ottenere dal proprio fornitore OIDC. Dovrebbe essere impostato su openid email profile offline_access per fornire a Firezone l'email dell'utente nelle attestazioni restituite.
  7. etichetta: il testo dell'etichetta del pulsante che viene visualizzato nella schermata di accesso di Firezone.

Ottieni impostazioni di configurazione

Questa guida è tratta dal Documenti di Azure Active Directory.

 

Passare alla pagina Azure Active Directory del portale di Azure. Scegli l'opzione di menu Gestisci, seleziona Nuova registrazione, quindi registrati fornendo le informazioni di seguito:

  1. Nome: zona antincendio
  2. Tipi di account supportati: (solo directory predefinita - tenant singolo)
  3. URI di reindirizzamento: questo dovrebbe essere il tuo EXTERNAL_URL firezone + /auth/oidc/azure/callback/ (ad es. https://instance-id.yourfirezone.com/auth/oidc/azure/callback/). Assicurati di includere la barra finale. Questo sarà il valore redirect_uri.

 

Dopo la registrazione, apri la visualizzazione dei dettagli dell'applicazione e copia il file ID dell'applicazione (client). Questo sarà il valore client_id. Quindi, apri il menu degli endpoint per recuperare il file Documento di metadati OpenID Connect. Questo sarà il valore discovery_document_uri.

 

Crea un nuovo segreto client facendo clic sull'opzione Certificati e segreti nel menu Gestisci. Copia il client secret; il valore segreto del client sarà this.

 

Infine, seleziona il link Autorizzazioni API nel menu Gestisci, fai clic su Aggiungi un permessoe selezionare Microsoft Graph. Inserisci email, OpenID, accesso_offline ed tuo profilo alle autorizzazioni richieste.

Integrazione FireZone

Modifica /etc/firezone/firezone.rb per includere le seguenti opzioni:

 

# Utilizzo di Azure Active Directory come provider di identità SSO

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

  azzurro: {

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

    Identificativo cliente: " ”,

    client_secret: " ”,

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

    response_type: "codice",

    ambito: "openid email profile offline_access",

    etichetta: “Azzurro”

  }

}

 

Eseguire firezone-ctl reconfigure e firezone-ctl restart per aggiornare l'applicazione. Ora dovresti vedere un pulsante Accedi con Azure nell'URL Firezone root.

Procedura: limitare l'accesso a determinati membri

Azure AD consente agli amministratori di limitare l'accesso alle app a un gruppo specifico di utenti all'interno dell'azienda. Ulteriori informazioni su come eseguire questa operazione sono disponibili nella documentazione di Microsoft.

Amministrare

  • Configurazione
  • Gestisci l'installazione
  • Upgrade
  • Risoluzione dei problemi
  • Considerazioni sulla sicurezza
  • Esecuzione di query SQL

Configurazione

Chef Omnibus viene utilizzato da Firezone per gestire le attività, tra cui pacchetti di rilascio, supervisione dei processi, gestione dei registri e altro ancora.

Il codice Ruby costituisce il file di configurazione principale, che si trova in /etc/firezone/firezone.rb. Il riavvio di sudo firezone-ctl reconfigure dopo aver apportato modifiche a questo file fa sì che Chef riconosca le modifiche e le applichi al sistema operativo corrente.

Vedere il riferimento al file di configurazione per un elenco completo delle variabili di configurazione e le relative descrizioni.

Gestisci l'installazione

La tua istanza Firezone può essere gestita tramite il firezone-ctl comando, come mostrato di seguito. La maggior parte dei sottocomandi richiede il prefisso with sudo.

 

root@demo:~# firezone-ctl

omnibus-ctl: comando (sottocomando)

Comandi generali:

  pulire

    Elimina *tutti* i dati di Firezone e ricomincia da zero.

  crea-o-reimposta-admin

    Reimposta la password per l'amministratore con l'indirizzo email specificato per impostazione predefinita['firezone']['admin_email'] o crea un nuovo amministratore se quell'indirizzo email non esiste.

  Aiuto

    Stampa questo messaggio di aiuto.

  riconfigurare

    Riconfigurare l'applicazione.

  reimpostare la rete

    Reimposta nftables, l'interfaccia WireGuard e la tabella di instradamento ai valori predefiniti di Firezone.

  mostra-config

    Mostra la configurazione che verrebbe generata da reconfigure.

  rete di smontaggio

    Rimuove l'interfaccia WireGuard e la tabella nftables firezone.

  vigore-cert-rinnovo

    Forza il rinnovo del certificato ora anche se non è scaduto.

  stop-cert-rinnovo

    Rimuove il cronjob che rinnova i certificati.

  disinstallazione

    Uccidi tutti i processi e disinstalla il supervisore del processo (i dati verranno conservati).

  versione

    Visualizza la versione corrente di Firezone

Comandi di gestione del servizio:

  grazioso-uccidere

    Tenta un arresto aggraziato, quindi SIGKILL l'intero gruppo di processi.

  hup

    Invia i servizi a HUP.

  int

    Invia ai servizi un INT.

  kill

    Invia ai servizi un KILL.

  una volta

    Avviare i servizi se sono inattivi. Non riavviarli se si fermano.

  nuovo inizio

    Arrestare i servizi se sono in esecuzione, quindi riavviarli.

  lista dei servizi

    Elenca tutti i servizi (i servizi abilitati vengono visualizzati con un *.)

  inizia a

    Avvia i servizi se sono inattivi e riavviali se si arrestano.

  status

    Mostra lo stato di tutti i servizi.

  Stop

    Arrestare i servizi e non riavviarli.

  coda

    Guarda i log di servizio di tutti i servizi abilitati.

  termine

    Invia i servizi un TERMINE.

  USR1

    Invia i servizi a USR1.

  USR2

    Invia i servizi a USR2.

Upgrade

Tutte le sessioni VPN devono essere terminate prima di aggiornare Firezone, che richiede anche la chiusura dell'interfaccia utente Web. Nel caso in cui qualcosa vada storto durante l'aggiornamento, consigliamo di dedicare un'ora alla manutenzione.

 

Per migliorare Firezone, intraprendi le seguenti azioni:

  1. Aggiorna il pacchetto firezone usando l'installazione con un solo comando: sudo -E bash -c "$(curl -fsSL https://github.com/firezone/firezone/raw/master/scripts/install.sh)"
  2. Esegui firezone-ctl reconfigure per raccogliere le nuove modifiche.
  3. Esegui firezone-ctl restart per riavviare i servizi.

In caso di problemi, fatecelo sapere tramite inviando un ticket di assistenza.

Aggiornamento da <0.5.0 a >=0.5.0

Ci sono alcune modifiche sostanziali e modifiche alla configurazione nella versione 0.5.0 che devono essere affrontate. Scopri di più qui sotto.

Richieste Nginx non_ssl_port (HTTP) in bundle rimosse

Nginx non supporta più i parametri della porta force SSL e non SSL a partire dalla versione 0.5.0. Poiché Firezone necessita di SSL per funzionare, ti consigliamo di rimuovere il servizio bundle Nginx impostando default['firezone']['nginx']['enabled'] = false e indirizzando invece il proxy inverso all'app Phoenix sulla porta 13000 (per impostazione predefinita ).

Supporto del protocollo ACME

0.5.0 introduce il supporto del protocollo ACME per il rinnovo automatico dei certificati SSL con il servizio Nginx in bundle. Abilitare,

  • Assicurati che default['firezone']['external_url'] contenga un FQDN valido che si risolva nell'indirizzo IP pubblico del tuo server.
  • Assicurarsi che la porta 80/tcp sia raggiungibile
  • Abilita il supporto del protocollo ACME con default['firezone']['ssl']['acme']['enabled'] = true nel tuo file di configurazione.

Destinazioni regole di uscita sovrapposte

La possibilità di aggiungere regole con destinazioni duplicate è sparita in Firezone 0.5.0. Il nostro script di migrazione riconoscerà automaticamente queste situazioni durante un aggiornamento alla versione 0.5.0 e manterrà solo le regole la cui destinazione include l'altra regola. Non c'è niente che devi fare se va bene.

Altrimenti, prima dell'aggiornamento, ti consigliamo di modificare il tuo set di regole per eliminare queste situazioni.

Preconfigurare Okta e Google SSO

Firezone 0.5.0 rimuove il supporto per la vecchia configurazione Okta e Google SSO a favore della nuova configurazione più flessibile basata su OIDC. 

Se hai una configurazione sotto le chiavi default['firezone']['authentication']['okta'] o default['firezone']['authentication']['google'], devi migrarle al nostro OIDC configurazione basata su Internet utilizzando la guida riportata di seguito.

Configurazione di Google OAuth esistente

Rimuovi queste righe contenenti le vecchie configurazioni di Google OAuth dal file di configurazione che si trova in /etc/firezone/firezone.rb

 

default['firezone']['authentication']['google']['enabled']

default['firezone']['authentication']['google']['client_id']

default['firezone']['authentication']['google']['client_secret']

default['firezone']['authentication']['google']['redirect_uri']

 

Quindi, configura Google come provider OIDC seguendo le procedure qui.

(Fornire istruzioni sul collegamento)<<<<<<<<<<<<<<<<

 

Configura Google OAuth esistente 

Rimuovi queste righe contenenti le vecchie configurazioni di Okta OAuth dal file di configurazione che si trova in /etc/firezone/firezone.rb

 

default['firezone']['authentication']['okta']['enabled']

default['firezone']['authentication']['okta']['client_id']

default['firezone']['authentication']['okta']['client_secret']

Predefinito['firezone']['authentication']['okta']['site']

 

Quindi, configura Okta come provider OIDC seguendo le procedure qui.

Aggiornamento da 0.3.x a >= 0.3.16

A seconda della configurazione e della versione correnti, attenersi alle indicazioni riportate di seguito:

Se hai già un'integrazione OIDC:

Per alcuni provider OIDC, l'aggiornamento a >= 0.3.16 richiede l'ottenimento di un token di aggiornamento per l'ambito di accesso offline. In questo modo, ci si assicura che Firezone si aggiorni con il provider di identità e che la connessione VPN venga interrotta dopo l'eliminazione di un utente. Le versioni precedenti di Firezone non avevano questa funzionalità. In alcuni casi, gli utenti eliminati dal tuo provider di identità potrebbero essere ancora connessi a una VPN.

È necessario includere l'accesso offline nel parametro dell'ambito della configurazione OIDC per i provider OIDC che supportano l'ambito dell'accesso offline. La riconfigurazione di Firezone-ctl deve essere eseguita per applicare le modifiche al file di configurazione di Firezone, che si trova in /etc/firezone/firezone.rb.

Per gli utenti che sono stati autenticati dal tuo provider OIDC, vedrai l'intestazione Connessioni OIDC nella pagina dei dettagli dell'utente dell'interfaccia utente web se Firezone è in grado di recuperare correttamente il token di aggiornamento.

Se questo non funziona, dovrai eliminare l'app OAuth esistente e ripetere i passaggi di configurazione OIDC per creare una nuova integrazione dell'app .

Ho un'integrazione OAuth esistente

Prima della 0.3.11, Firezone utilizzava provider OAuth2 preconfigurati. 

Seguire le istruzioni qui per migrare a OIDC.

Non ho integrato un provider di identità

Nessuna azione necessaria. 

Puoi seguire le istruzioni qui per abilitare SSO tramite un provider OIDC.

Aggiornamento da 0.3.1 a >= 0.3.2

Al suo posto, default['firezone']['external url'] ha sostituito l'opzione di configurazione default['firezone']['fqdn']. 

Impostalo sull'URL del tuo portale online Firezone accessibile al pubblico. L'impostazione predefinita sarà https:// più l'FQDN del tuo server se lasciato indefinito.

Il file di configurazione si trova in /etc/firezone/firezone.rb. Vedere il riferimento al file di configurazione per un elenco completo delle variabili di configurazione e le relative descrizioni.

Aggiornamento da 0.2.x a 0.3.x

Firezone non conserva più le chiavi private del dispositivo sul server Firezone a partire dalla versione 0.3.0. 

L'interfaccia utente Web di Firezone non ti consentirà di scaricare nuovamente o visualizzare queste configurazioni, ma qualsiasi dispositivo esistente dovrebbe continuare a funzionare così com'è.

Aggiornamento da 0.1.x a 0.2.x

Se esegui l'aggiornamento da Firezone 0.1.x, ci sono alcune modifiche al file di configurazione che devono essere risolte manualmente. 

Per apportare le modifiche necessarie al tuo file /etc/firezone/firezone.rb, esegui i comandi seguenti come 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

riconfigurare firezone-ctl

riavvio firezone-ctl

Troubleshooting

Il controllo dei registri di Firezone è un saggio primo passo per eventuali problemi che possono verificarsi.

Esegui sudo firezone-ctl tail per visualizzare i log di Firezone.

Debug dei problemi di connettività

La maggior parte dei problemi di connettività con Firezone è causata da regole iptables o nftables incompatibili. Devi assicurarti che le regole che hai in vigore non siano in conflitto con le regole di Firezone.

La connettività Internet diminuisce quando il tunnel è attivo

Assicurati che la catena FORWARD consenta i pacchetti dai tuoi client WireGuard alle posizioni che desideri far passare Firezone se la tua connettività Internet si deteriora ogni volta che attivi il tuo tunnel WireGuard.

 

Ciò può essere ottenuto se stai utilizzando ufw assicurandoti che la politica di routing predefinita sia allow:

 

ubuntu@fz:~$ sudo ufw default consente il routing

Criterio di instradamento predefinito modificato in "consenti"

(assicurati di aggiornare le tue regole di conseguenza)

 

A Oh lo stato per un tipico server Firezone potrebbe essere simile al seguente:

 

ubuntu@fz:~$ sudo ufw stato dettagliato

Stato: attivo

Registrazione: attiva (bassa)

Predefinito: nega (in entrata), consenti (in uscita), consenti (instradato)

Nuovi profili: salta

 

All'azione da

— —— —-

22/tcp PERMETTI OVUNQUE

80/tcp PERMETTI OVUNQUE

443/tcp PERMETTI OVUNQUE

51820/udp PERMETTI OVUNQUE

22/tcp (v6) PERMETTI OVUNQUE (v6)

80/tcp (v6) PERMETTI OVUNQUE (v6)

443/tcp (v6) CONSENTI OVUNQUE (v6)

51820/udp (v6) CONSENTI OVUNQUE (v6)

Considerazioni sulla sicurezza

Consigliamo di limitare l'accesso all'interfaccia web per distribuzioni di produzione estremamente sensibili e mission-critical, come spiegato di seguito.

Servizi & Porti

 

Servizi

Porta predefinita

Ascolta indirizzo

Descrizione

Nginx

80, 443

contro tutti i

Porta HTTP(S) pubblica per amministrare Firezone e facilitare l'autenticazione.

Gabbia di protezione

51820

contro tutti i

Porta WireGuard pubblica utilizzata per le sessioni VPN. (UDP)

Postgresql

15432

127.0.0.1

Porta solo locale utilizzata per il server Postgresql in bundle.

Phoenix

13000

127.0.0.1

Porta solo locale utilizzata dal server dell'app elixir upstream.

Distribuzioni di produzione

Ti consigliamo di pensare a limitare l'accesso all'interfaccia utente web pubblicamente esposta di Firezone (porte predefinite 443/tcp e 80/tcp) e utilizzare invece il tunnel WireGuard per gestire Firezone per le distribuzioni di produzione e rivolte al pubblico in cui sarà responsabile un singolo amministratore di creare e distribuire le configurazioni dei dispositivi agli utenti finali.

 

Ad esempio, se un amministratore ha creato una configurazione del dispositivo e un tunnel con l'indirizzo WireGuard locale 10.3.2.2, la seguente configurazione ufw consentirebbe all'amministratore di accedere all'interfaccia utente web di Firezone sull'interfaccia wg-firezone del server utilizzando l'indirizzo predefinito 10.3.2.1 indirizzo della galleria:

 

root@demo:~# stato ufw dettagliato

Stato: attivo

Registrazione: attiva (bassa)

Predefinito: nega (in entrata), consenti (in uscita), consenti (instradato)

Nuovi profili: salta

 

All'azione da

— —— —-

22/tcp PERMETTI OVUNQUE

51820/udp PERMETTI OVUNQUE

Ovunque PERMETTI IN 10.3.2.2

22/tcp (v6) PERMETTI OVUNQUE (v6)

51820/udp (v6) CONSENTI OVUNQUE (v6)

Questo lascerebbe solo 22/TCP esposto per l'accesso SSH per gestire il server (facoltativo) e 51820/sud esposto al fine di stabilire tunnel WireGuard.

Eseguire query SQL

Firezone raggruppa un server Postgresql e la corrispondenza psql utilità che può essere utilizzata dalla shell locale in questo modo:

 

/opt/firezone/incorporato/bin/psql \

  -U zona di fuoco \

  -d zona fuoco \

  -h host locale \

  -p 15432 \

  -c "STATEMENT_SQL"

 

Questo può essere utile per scopi di debug.

 

Compiti comuni:

 

  • Elenco di tutti gli utenti
  • Elenco di tutti i dispositivi
  • Modifica del ruolo di un utente
  • Backup del database



Elenco di tutti gli utenti:

 

/opt/firezone/incorporato/bin/psql \

  -U zona di fuoco \

  -d zona fuoco \

  -h host locale \

  -p 15432 \

  -c "SELEZIONA * DA utenti;"



Elenco di tutti i dispositivi:

 

/opt/firezone/incorporato/bin/psql \

  -U zona di fuoco \

  -d zona fuoco \

  -h host locale \

  -p 15432 \

  -c "SELEZIONA * DA dispositivi;"



Modificare un ruolo utente:

 

Imposta il ruolo su "amministratore" o "senza privilegi":

 

/opt/firezone/incorporato/bin/psql \

  -U zona di fuoco \

  -d zona fuoco \

  -h host locale \

  -p 15432 \

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



Backup del database:

 

Inoltre, è incluso il programma pg dump, che può essere utilizzato per eseguire backup regolari del database. Eseguire il codice seguente per eseguire il dump di una copia del database nel formato di query SQL comune (sostituire /path/to/backup.sql con la posizione in cui deve essere creato il file SQL):

 

/opt/firezone/embedded/bin/pg_dump \

  -U zona di fuoco \

  -d zona fuoco \

  -h host locale \

  -p 15432 > /percorso/di/backup.sql

Guide per l'utente

  • Aggiungi utenti
  • Aggiungi dispositivi
  • Regole di uscita
  • Istruzioni per il cliente
  • VPN a tunnel diviso
  • Tunnel inverso 
  • Gateway NAT

Aggiungi utenti

Dopo che Firezone è stato distribuito correttamente, devi aggiungere utenti per fornire loro l'accesso alla tua rete. L'interfaccia utente Web viene utilizzata per eseguire questa operazione.

 

Interfaccia utente Web


Selezionando il pulsante "Aggiungi utente" sotto /users, è possibile aggiungere un utente. Ti verrà richiesto di fornire all'utente un indirizzo e-mail e una password. Per consentire automaticamente l'accesso agli utenti della tua organizzazione, Firezone può anche interfacciarsi e sincronizzarsi con un provider di identità. Maggiori dettagli sono disponibili in autenticare. < Aggiungi un link per autenticare

Aggiungi dispositivi

Consigliamo di richiedere agli utenti di creare le proprie configurazioni del dispositivo in modo che la chiave privata sia visibile solo a loro. Gli utenti possono generare le proprie configurazioni del dispositivo seguendo le indicazioni sul Istruzioni per il cliente pagina.

 

Generazione della configurazione del dispositivo amministratore in corso

Tutte le configurazioni dei dispositivi degli utenti possono essere create dagli amministratori di Firezone. Nella pagina del profilo utente situata in /users, seleziona l'opzione "Aggiungi dispositivo" per eseguire questa operazione.

 

[Inserisci screenshot]

 

È possibile inviare tramite e-mail all'utente il file di configurazione WireGuard dopo aver creato il profilo del dispositivo.

 

Utenti e dispositivi sono collegati. Per ulteriori dettagli su come aggiungere un utente, vedere Aggiungi utenti.

Regole di uscita

Attraverso l'uso del sistema netfilter del kernel, Firezone abilita le funzionalità di filtraggio in uscita per specificare i pacchetti DROP o ACCEPT. Tutto il traffico è normalmente consentito.

 

I CIDR IPv4 e IPv6 e gli indirizzi IP sono supportati rispettivamente tramite la lista consentita e la lista negata. Puoi scegliere di applicare l'ambito di una regola a un utente quando lo aggiungi, in modo da applicare la regola a tutti i dispositivi dell'utente.

Istruzioni per il cliente

Installa e configura

Per stabilire una connessione VPN utilizzando il client WireGuard nativo, fare riferimento a questa guida.

 

1. Installa il client WireGuard nativo

 

I client WireGuard ufficiali che si trovano qui sono compatibili con Firezone:

 

MacOS

 

Windows

 

iOS

 

Android

 

Visitare il sito Web ufficiale di WireGuard all'indirizzo https://www.wireguard.com/install/ per i sistemi operativi non menzionati sopra.

 

2. Scaricare il file di configurazione del dispositivo

 

Sia il tuo amministratore Firezone che te stesso possono generare il file di configurazione del dispositivo utilizzando il portale Firezone.

 

Visita l'URL fornito dall'amministratore di Firezone per generare autonomamente un file di configurazione del dispositivo. La tua azienda avrà un URL univoco per questo; in questo caso, è https://instance-id.yourfirezone.com.

 

Accedi a Firezone Okta SSO

 

[Inserisci schermata]

 

3. Aggiungere la configurazione del client

 

Importa il file .conf nel client WireGuard aprendolo. Ruotando l'interruttore Attiva, puoi avviare una sessione VPN.

 

[Inserisci schermata]

Riautenticazione della sessione

Segui le istruzioni riportate di seguito se il tuo amministratore di rete ha richiesto l'autenticazione ricorrente per mantenere attiva la tua connessione VPN. 



Hai bisogno di:

 

URL del portale Firezone: chiedi al tuo amministratore di rete la connessione.

Il tuo amministratore di rete dovrebbe essere in grado di offrire il tuo login e password. Il sito Firezone ti chiederà di accedere utilizzando il servizio Single Sign-On utilizzato dal tuo datore di lavoro (come Google o Okta).

 

1. Disattivare la connessione VPN

 

[Inserisci schermata]

 

2. Eseguire nuovamente l'autenticazione 

Vai all'URL del portale Firezone e accedi utilizzando le credenziali fornite dall'amministratore di rete. Se hai già effettuato l'accesso, fai clic sul pulsante Riautentica prima di accedere nuovamente.

 

[Inserisci schermata]

 

Passaggio 3: avvia una sessione VPN

[Inserisci schermata]

Gestore di rete per Linux

Per importare il profilo di configurazione WireGuard utilizzando l'interfaccia a riga di comando di Network Manager su dispositivi Linux, seguire queste istruzioni (nmcli).

NOTA

Se il profilo ha il supporto IPv6 abilitato, il tentativo di importare il file di configurazione utilizzando la GUI di Network Manager potrebbe non riuscire con il seguente errore:

ipv6.method: il metodo "auto" non è supportato per WireGuard

1. Installare gli strumenti WireGuard 

È necessario installare le utilità dello spazio utente WireGuard. Questo sarà un pacchetto chiamato wireguard o wireguard-tools per le distribuzioni Linux.

Per Ubuntu/Debian:

sudo apt installa wireguard

Per usare Fedora:

sudo dnf installa wireguard-tools

Arch Linux:

sudo pacman -S strumenti wireguard

Visita il sito Web ufficiale di WireGuard all'indirizzo https://www.wireguard.com/install/ per le distribuzioni non menzionate sopra.

2. Scarica la configurazione 

L'amministratore Firezone o l'autogeneratore possono generare il file di configurazione del dispositivo utilizzando il portale Firezone.

Visita l'URL fornito dall'amministratore di Firezone per generare autonomamente un file di configurazione del dispositivo. La tua azienda avrà un URL univoco per questo; in questo caso, è https://instance-id.yourfirezone.com.

[Inserisci schermata]

3. Importa le impostazioni

Importa il file di configurazione fornito utilizzando nmcli:

sudo nmcli connessione tipo di importazione file wireguard /percorso/a/configuration.conf

NOTA

Il nome del file di configurazione corrisponderà alla connessione/interfaccia WireGuard. Dopo l'importazione, la connessione può essere rinominata se necessario:

nmcli connessione modificare [vecchio nome] connection.id [nuovo nome]

4. Connettersi o disconnettersi

Tramite la riga di comando, connettiti alla VPN come segue:

connessione nmcli attiva [nome vpn]

Per disconnettersi:

connessione nmcli interrotta [nome vpn]

L'applet Network Manager applicabile può anche essere utilizzata per gestire la connessione se si utilizza una GUI.

Connessione automatica

Selezionando "sì" per l'opzione di connessione automatica, la connessione VPN può essere configurata per connettersi automaticamente:

 

connessione nmcli modificare la connessione [nome vpn]. <<<<<<<<<<<<<<<<<<<<<<

 

connessione automatica sì

 

Per disabilitare la connessione automatica reimpostarla su no:

 

connessione nmcli modificare la connessione [nome vpn].

 

connessione automatica n

Rendi disponibile l'autenticazione a più fattori

Per attivare MFA Vai alla pagina /user account/register mfa del portale Firezone. Usa la tua app di autenticazione per scansionare il codice QR dopo che è stato generato, quindi inserisci il codice a sei cifre.

Contatta il tuo amministratore per reimpostare le informazioni di accesso del tuo account se smarrisci l'app di autenticazione.

VPN a tunnel diviso

Questo tutorial ti guiderà attraverso il processo di configurazione della funzione di split tunneling di WireGuard con Firezone in modo che solo il traffico verso intervalli IP specifici venga inoltrato attraverso il server VPN.

 

1. Configura gli IP consentiti 

Gli intervalli IP per i quali il client instraderà il traffico di rete sono indicati nel campo IP consentiti situato nella pagina /settings/default. Solo le nuove configurazioni del tunnel WireGuard prodotte da Firezone saranno interessate dalle modifiche a questo campo.

 

[Inserisci schermata]



Il valore predefinito è 0.0.0.0/0, ::/0, che instrada tutto il traffico di rete dal client al server VPN.

 

Esempi di valori in questo campo includono:

 

0.0.0.0/0, ::/0 – tutto il traffico di rete verrà indirizzato al server VPN.

192.0.2.3/32: solo il traffico verso un singolo indirizzo IP verrà instradato al server VPN.

3.5.140.0/22: solo il traffico verso gli IP nell'intervallo 3.5.140.1 – 3.5.143.254 verrà instradato al server VPN. In questo esempio è stato utilizzato l'intervallo CIDR per la regione AWS ap-northeast-2.



NOTA

Firezone seleziona prima l'interfaccia di uscita associata al percorso più preciso quando determina dove instradare un pacchetto.

 

2. Rigenera le configurazioni WireGuard

Gli utenti devono rigenerare i file di configurazione e aggiungerli al proprio client WireGuard nativo per aggiornare i dispositivi utente esistenti con la nuova configurazione split tunnel.

 

Per istruzioni, vedere Aggiungi dispositivo. <<<<<<<<<<< Aggiungi collegamento

Tunnel inverso

Questo manuale dimostrerà come collegare due dispositivi utilizzando Firezone come relè. Un caso d'uso tipico è consentire a un amministratore di accedere a un server, un contenitore o una macchina protetta da un NAT o da un firewall.

 

Da nodo a nodo 

Questa illustrazione mostra uno scenario semplice in cui i dispositivi A e B costruiscono un tunnel.

 

[Inserisci l'immagine architettonica della zona antincendio]

 

Inizia creando il dispositivo A e il dispositivo B accedendo a /users/[user_id]/new_device. Nelle impostazioni per ciascun dispositivo, assicurarsi che i seguenti parametri siano impostati sui valori elencati di seguito. È possibile configurare le impostazioni del dispositivo durante la creazione della configurazione del dispositivo (vedere Aggiungi dispositivi). Se devi aggiornare le impostazioni su un dispositivo esistente, puoi farlo generando una nuova configurazione del dispositivo.

 

Tieni presente che tutti i dispositivi hanno una pagina /settings/defaults in cui è possibile configurare PersistentKeepalive.

 

Dispositivo A

 

IP consentiti = 10.3.2.2/32

  Questo è l'IP o l'intervallo di IP del dispositivo B

Keepalive persistente = 25

  Se il dispositivo si trova dietro un NAT, ciò garantisce che il dispositivo sia in grado di mantenere attivo il tunnel e continuare a ricevere pacchetti dall'interfaccia WireGuard. Di solito è sufficiente un valore di 25, ma potrebbe essere necessario diminuire questo valore a seconda dell'ambiente.



dispositivo B

 

IP consentiti = 10.3.2.3/32

Questo è l'IP o l'intervallo di IP del dispositivo A

Keepalive persistente = 25

Caso di amministrazione - Uno a molti nodi

Questo esempio mostra una situazione in cui il dispositivo A può comunicare con i dispositivi da B a D in entrambe le direzioni. Questa configurazione può rappresentare un tecnico o un amministratore che accede a numerose risorse (server, container o macchine) su varie reti.

 

[Diagramma architettonico]<<<<<<<<<<<<<<<<<<<<<<<<

 

Assicurarsi che le seguenti impostazioni siano configurate nelle impostazioni di ciascun dispositivo sui valori corrispondenti. Quando si crea la configurazione del dispositivo, è possibile specificare le impostazioni del dispositivo (vedere Aggiungi dispositivi). È possibile creare una nuova configurazione del dispositivo se è necessario aggiornare le impostazioni su un dispositivo esistente.

 

Dispositivo A (Nodo amministratore)

 

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

    Questo è l'IP dei dispositivi da B a D. Gli IP dei dispositivi da B a D devono essere inclusi in qualsiasi intervallo IP che scegli di impostare.

Keepalive persistente = 25 

    Ciò garantisce che il dispositivo possa mantenere il tunnel e continuare a ricevere pacchetti dall'interfaccia WireGuard anche se è protetto da un NAT. Nella maggior parte dei casi, un valore di 25 è adeguato, tuttavia, a seconda dell'ambiente circostante, potrebbe essere necessario abbassare questa cifra.

 

Dispositivo B

 

  • AllowedIPs = 10.3.2.2/32: questo è l'IP o l'intervallo di IP del dispositivo A
  • Keepalive persistente = 25

Dispositivo C

 

  • AllowedIPs = 10.3.2.2/32: questo è l'IP o l'intervallo di IP del dispositivo A
  • Keepalive persistente = 25

Dispositivo D

 

  • AllowedIPs = 10.3.2.2/32: questo è l'IP o l'intervallo di IP del dispositivo A
  • Keepalive persistente = 25

Gateway NAT

Per offrire un unico IP di uscita statico per tutto il traffico del tuo team, Firezone può essere utilizzato come gateway NAT. Queste situazioni comportano il suo uso frequente:

 

Incarichi di consulenza: richiedi che il tuo cliente inserisca nella whitelist un singolo indirizzo IP statico anziché l'IP univoco del dispositivo di ciascun dipendente.

Utilizzo di un proxy o mascheramento dell'IP di origine per motivi di sicurezza o privacy.

 

In questo post verrà illustrato un semplice esempio di limitazione dell'accesso a un'applicazione Web self-hosted a un singolo IP statico autorizzato che esegue Firezone. In questa illustrazione, Firezone e la risorsa protetta si trovano in diverse aree VPC.

 

Questa soluzione viene spesso utilizzata al posto della gestione di una whitelist IP per numerosi utenti finali, che può richiedere molto tempo man mano che l'elenco di accesso si espande.

Esempio AWS

Il nostro obiettivo è configurare un server Firezone su un'istanza EC2 per reindirizzare il traffico VPN alla risorsa con restrizioni. In questo caso, Firezone funge da proxy di rete o gateway NAT per fornire a ciascun dispositivo connesso un IP di uscita pubblico univoco.

 

1. Installa il server Firezone

In questo caso, un'istanza EC2 denominata tc2.micro ha un'istanza Firezone installata su di essa. Per informazioni sulla distribuzione di Firezone, vai alla Guida alla distribuzione. In relazione ad AWS, assicurati di:

 

Il gruppo di sicurezza dell'istanza Firezone EC2 consente il traffico in uscita verso l'indirizzo IP della risorsa protetta.

L'istanza Firezone viene fornita con un IP elastico. Il traffico che viene inoltrato attraverso l'istanza Firezone verso destinazioni esterne avrà questo come indirizzo IP di origine. L'indirizzo IP in questione è 52.202.88.54.

 

[Inserisci schermata]<<<<<<<<<<<<<<<<<<<<<<<

 

2. Limitare l'accesso alla risorsa protetta

In questo caso, un'applicazione Web self-hosted funge da risorsa protetta. L'app Web è accessibile solo tramite richieste provenienti dall'indirizzo IP 52.202.88.54. A seconda della risorsa, può essere necessario consentire il traffico in entrata su vari porti e tipi di traffico. Questo non è trattato in questo manuale.

 

[Inserisci screenshot]<<<<<<<<<<<<<<<<<<<<<<<

 

Si prega di informare la terza parte responsabile della risorsa protetta che il traffico dall'IP statico definito nel passaggio 1 deve essere consentito (in questo caso 52.202.88.54).

 

3. Utilizzare il server VPN per indirizzare il traffico alla risorsa protetta

 

Per impostazione predefinita, tutto il traffico utente passerà attraverso il server VPN e proverrà dall'IP statico configurato nel passaggio 1 (in questo caso 52.202.88.54). Tuttavia, se è stato abilitato lo split tunneling, potrebbero essere necessarie impostazioni per assicurarsi che l'IP di destinazione della risorsa protetta sia elencato tra gli IP consentiti.

Aggiungi qui il testo dell'intestazione

Di seguito è riportato un elenco completo delle opzioni di configurazione disponibili in /etc/firezone/firezone.rb.



opzione

descrizione

valore di default

default['firezone']['external_url']

URL utilizzato per accedere al portale web di questa istanza Firezone.

“https://#{node['fqdn'] || nodo['hostname']}"

default['firezone']['config_directory']

Directory di primo livello per la configurazione di Firezone.

/etc/firezone'

default['firezone']['install_directory']

Directory di primo livello in cui installare Firezone.

/opt/firezone'

default['firezone']['app_directory']

Directory di primo livello per installare l'applicazione Web Firezone.

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

default['firezone']['log_directory']

Directory di primo livello per i log di Firezone.

/var/log/firezone'

default['firezone']['var_directory']

Directory di primo livello per i file di runtime di Firezone.

/var/opt/firezone'

default['firezone']['user']

Nome dell'utente Linux senza privilegi a cui apparterrà la maggior parte dei servizi e dei file.

zona di fuoco'

default['firezone']['group']

Nome del gruppo Linux a cui apparterrà la maggior parte dei servizi e dei file.

zona di fuoco'

predefinito['firezone']['admin_email']

Indirizzo e-mail per l'utente Firezone iniziale.

"firezone@localhost"

default['firezone']['max_devices_per_user']

Numero massimo di dispositivi che un utente può avere.

10

default['firezone']['allow_unprivileged_device_management']

Consente agli utenti non amministratori di creare ed eliminare dispositivi.

TRUE

default['firezone']['allow_unprivileged_device_configuration']

Consente agli utenti non amministratori di modificare le configurazioni del dispositivo. Se disabilitato, impedisce agli utenti senza privilegi di modificare tutti i campi del dispositivo ad eccezione del nome e della descrizione.

TRUE

default['firezone']['egress_interface']

Nome dell'interfaccia da cui uscirà il traffico in tunnel. Se nil, verrà utilizzata l'interfaccia di route predefinita.

zero

default['firezone']['fips_enabled']

Abilita o disabilita la modalità FIP OpenSSL.

zero

default['firezone']['logging']['enabled']

Abilita o disabilita la registrazione su Firezone. Imposta su false per disabilitare completamente la registrazione.

TRUE

predefinito['impresa']['nome']

Nome utilizzato dal libro di cucina "impresa" dello chef.

zona di fuoco'

default['firezone']['install_path']

Percorso di installazione utilizzato dal libro di cucina "enterprise" di Chef. Dovrebbe essere impostato allo stesso modo della directory_installazione sopra.

nodo['firezone']['install_directory']

default['firezone']['sysvinit_id']

Un identificatore utilizzato in /etc/inittab. Deve essere una sequenza univoca di 1-4 caratteri.

SUP'

default['firezone']['authentication']['local']['enabled']

Abilitare o disabilitare l'autenticazione e-mail/password locale.

TRUE

default['firezone']['authentication']['auto_create_oidc_users']

Crea automaticamente gli utenti che accedono da OIDC per la prima volta. Disabilita per consentire solo agli utenti esistenti di accedere tramite OIDC.

TRUE

default['firezone']['authentication']['disable_vpn_on_oidc_error']

Disabilita la VPN di un utente se viene rilevato un errore durante il tentativo di aggiornare il token OIDC.

FALSO

default['firezone']['authentication']['oidc']

Configurazione di OpenID Connect, nel formato {“provider” => [config…]} – Vedi Documentazione OpenIDConnect per esempi di configurazione.

{}

default['firezone']['nginx']['enabled']

Abilita o disabilita il server nginx in bundle.

TRUE

default['firezone']['nginx']['ssl_port']

Porta di ascolto HTTPS.

443

default['firezone']['nginx']['directory']

Directory per archiviare la configurazione dell'host virtuale nginx relativa a Firezone.

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

default['firezone']['nginx']['log_directory']

Directory per archiviare i file di registro nginx relativi a Firezone.

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

default['firezone']['nginx']['log_rotation']['file_maxbytes']

Dimensione del file alla quale ruotare i file di registro Nginx.

104857600

default['firezone']['nginx']['log_rotation']['num_to_keep']

Numero di file di log nginx di Firezone da conservare prima dell'eliminazione.

10

default['firezone']['nginx']['log_x_forwarded_for']

Se registrare l'intestazione x-forwarded-for di Firezone nginx.

TRUE

default['firezone']['nginx']['hsts_header']['enabled']

Abilita o disabilita HSTS.

TRUE

default['firezone']['nginx']['hsts_header']['include_subdomains']

Abilita o disabilita includeSubDomains per l'intestazione HSTS.

TRUE

default['firezone']['nginx']['hsts_header']['max_age']

Età massima per l'intestazione HSTS.

31536000

default['firezone']['nginx']['redirect_to_canonical']

Indica se reindirizzare gli URL al nome di dominio completo canonico specificato sopra

FALSO

default['firezone']['nginx']['cache']['enabled']

Abilita o disabilita la cache nginx di Firezone.

FALSO

default['firezone']['nginx']['cache']['directory']

Directory per la cache nginx di Firezone.

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

default['firezone']['nginx']['user']

Utente Firezone nginx.

nodo['firezone']['user']

default['firezone']['nginx']['group']

Gruppo Firezone nginx.

nodo['firezone']['group']

default['firezone']['nginx']['dir']

Directory di configurazione nginx di primo livello.

nodo['firezone']['nginx']['directory']

default['firezone']['nginx']['log_dir']

Directory di registro nginx di primo livello.

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

default['firezone']['nginx']['pid']

Posizione per il file pid nginx.

“#{node['firezone']['nginx']['directory']}/nginx.pid”

default['firezone']['nginx']['daemon_disable']

Disabilita la modalità daemon nginx in modo che possiamo invece monitorarla.

TRUE

default['firezone']['nginx']['gzip']

Attiva o disattiva la compressione nginx gzip.

sopra'

default['firezone']['nginx']['gzip_static']

Attiva o disattiva la compressione nginx gzip per i file statici.

spento'

default['firezone']['nginx']['gzip_http_version']

Versione HTTP da utilizzare per servire file statici.

1.0 '

default['firezone']['nginx']['gzip_comp_level']

livello di compressione nginx gzip.

2 '

default['firezone']['nginx']['gzip_proxied']

Abilita o disabilita il gzipping delle risposte per le richieste inoltrate a seconda della richiesta e della risposta.

Qualunque'

default['firezone']['nginx']['gzip_vary']

Abilita o disabilita l'inserimento dell'intestazione della risposta "Vary: Accept-Encoding".

spento'

default['firezone']['nginx']['gzip_buffers']

Imposta il numero e la dimensione dei buffer usati per comprimere una risposta. Se nil, viene utilizzato il valore predefinito nginx.

zero

default['firezone']['nginx']['gzip_types']

Tipi MIME per cui abilitare la compressione gzip.

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

predefinito['firezone']['nginx']['gzip_min_length']

Lunghezza minima del file per abilitare la compressione gzip del file.

1000

default['firezone']['nginx']['gzip_disable']

User-agent matcher per disabilitare la compressione gzip per.

MSIE [1-6]\.'

default['firezone']['nginx']['keepalive']

Attiva la cache per la connessione ai server upstream.

sopra'

default['firezone']['nginx']['keepalive_timeout']

Timeout in secondi per la connessione keepalive ai server upstream.

65

default['firezone']['nginx']['worker_processes']

Numero di processi di lavoro nginx.

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

default['firezone']['nginx']['worker_connections']

Numero massimo di connessioni simultanee che possono essere aperte da un processo di lavoro.

1024

default['firezone']['nginx']['worker_rlimit_nofile']

Modifica il limite del numero massimo di file aperti per i processi di lavoro. Utilizza l'impostazione predefinita di nginx se nil.

zero

default['firezone']['nginx']['multi_accept']

Se i lavoratori devono accettare una connessione alla volta o più.

TRUE

default['firezone']['nginx']['event']

Specifica il metodo di elaborazione della connessione da usare all'interno del contesto degli eventi nginx.

epoll'

default['firezone']['nginx']['server_tokens']

Abilita o disabilita l'emissione della versione nginx nelle pagine di errore e nel campo di intestazione della risposta "Server".

zero

default['firezone']['nginx']['server_names_hash_bucket_size']

Imposta la dimensione del bucket per le tabelle hash dei nomi dei server.

64

default['firezone']['nginx']['sendfile']

Abilita o disabilita l'uso di sendfile() di nginx.

sopra'

predefinito['firezone']['nginx']['access_log_options']

Imposta le opzioni del registro di accesso nginx.

zero

default['firezone']['nginx']['error_log_options']

Imposta le opzioni del log degli errori nginx.

zero

default['firezone']['nginx']['disable_access_log']

Disabilita il registro degli accessi nginx.

FALSO

default['firezone']['nginx']['types_hash_max_size']

nginx digita la dimensione massima dell'hash.

2048

default['firezone']['nginx']['types_hash_bucket_size']

nginx digita la dimensione del bucket di hash.

64

default['firezone']['nginx']['proxy_read_timeout']

timeout di lettura del proxy nginx. Impostare su zero per utilizzare l'impostazione predefinita di nginx.

zero

default['firezone']['nginx']['client_body_buffer_size']

dimensione del buffer del corpo del client nginx. Impostare su zero per utilizzare l'impostazione predefinita di nginx.

zero

default['firezone']['nginx']['client_max_body_size']

dimensione massima del corpo del client nginx.

250 m'

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

Specifica moduli nginx aggiuntivi.

[]

default['firezone']['nginx']['enable_rate_limiting']

Abilita o disabilita la limitazione della velocità di nginx.

TRUE

default['firezone']['nginx']['rate_limiting_zone_name']

Nome della zona di limitazione della velocità di Nginx.

zona di fuoco'

default['firezone']['nginx']['rate_limiting_backoff']

Backoff di limitazione della velocità di Nginx.

10 m'

default['firezone']['nginx']['rate_limit']

Limite di velocità Nginx.

10r/s'

default['firezone']['nginx']['ipv6']

Consenti a nginx di ascoltare le richieste HTTP per IPv6 oltre a IPv4.

TRUE

default['firezone']['postgresql']['enabled']

Abilita o disabilita Postgresql in bundle. Imposta su false e compila le opzioni del database di seguito per utilizzare la tua istanza Postgresql.

TRUE

default['firezone']['postgresql']['username']

Nome utente per Postgresql.

nodo['firezone']['user']

default['firezone']['postgresql']['data_directory']

Directory dei dati di Postgresql.

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

default['firezone']['postgresql']['log_directory']

Directory di registro di Postgresql.

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

default['firezone']['postgresql']['log_rotation']['file_maxbytes']

Dimensione massima del file di registro Postgresql prima che venga ruotato.

104857600

default['firezone']['postgresql']['log_rotation']['num_to_keep']

Numero di file di registro Postgresql da conservare.

10

default['firezone']['postgresql']['checkpoint_completion_target']

Obiettivo di completamento del checkpoint Postgresql.

0.5

default['firezone']['postgresql']['checkpoint_segments']

Numero di segmenti di checkpoint Postgresql.

3

default['firezone']['postgresql']['checkpoint_timeout']

Timeout del punto di controllo Postgresql.

5 minuti'

default['firezone']['postgresql']['checkpoint_warning']

Tempo di avviso del checkpoint Postgresql in secondi.

anni '30

default['firezone']['postgresql']['effect_cache_size']

Dimensione effettiva della cache di Postgresql.

128MB'

default['firezone']['postgresql']['listen_address']

Indirizzo di ascolto Postgresql.

127.0.0.1 '

default['firezone']['postgresql']['max_connections']

Connessioni massime Postgresql.

350

default['firezone']['postgresql']['md5_auth_cidr_addresses']

CIDR Postgresql per consentire l'autenticazione md5.

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

default['firezone']['postgresql']['port']

Porta di ascolto Postgresql.

15432

default['firezone']['postgresql']['shared_buffers']

Dimensione dei buffer condivisi di Postgresql.

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

default['firezone']['postgresql']['shmmax']

Postgresql shmax in byte.

17179869184

default['firezone']['postgresql']['shmall']

Postgresql shmall in byte.

4194304

default['firezone']['postgresql']['work_mem']

Dimensione della memoria di lavoro di Postgresql.

8MB'

default['firezone']['database']['user']

Specifica il nome utente che Firezone utilizzerà per connettersi al DB.

nodo['firezone']['postgresql']['nomeutente']

default['firezone']['database']['password']

Se si utilizza un DB esterno, specifica la password che Firezone utilizzerà per connettersi al DB.

cambiami'

default['firezone']['database']['name']

Database che verrà utilizzato da Firezone. Verrà creato se non esiste.

zona di fuoco'

default['firezone']['database']['host']

Host del database a cui si connetterà Firezone.

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

default['firezone']['database']['port']

Porta del database a cui si collegherà Firezone.

nodo['firezone']['postgresql']['port']

default['firezone']['database']['pool']

Dimensione del pool di database che Firezone utilizzerà.

[10, Etc.nprocessori].max

default['firezone']['database']['ssl']

Se connettersi al database tramite SSL.

FALSO

default['firezone']['database']['ssl_opts']

Hash delle opzioni da inviare all'opzione :ssl_opts durante la connessione tramite SSL. Vedere Documentazione Ecto.Adapters.Postgres.

{}

default['firezone']['database']['parametri']

Hash dei parametri da inviare all'opzione :parameters durante la connessione al database. Vedere Documentazione Ecto.Adapters.Postgres.

{}

default['firezone']['database']['extensions']

Estensioni del database da abilitare.

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

default['firezone']['phoenix']['enabled']

Abilita o disabilita l'applicazione web Firezone.

TRUE

default['firezone']['phoenix']['listen_address']

Indirizzo di ascolto dell'applicazione Web Firezone. Questo sarà l'indirizzo di ascolto upstream che nginx proxy.

127.0.0.1 '

default['firezone']['phoenix']['port']

Porta di ascolto dell'applicazione Web Firezone. Questa sarà la porta upstream che nginx proxy.

13000

default['firezone']['phoenix']['log_directory']

Directory di registro dell'applicazione Web Firezone.

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

default['firezone']['phoenix']['log_rotation']['file_maxbytes']

Dimensioni del file di registro dell'applicazione Web Firezone.

104857600

default['firezone']['phoenix']['log_rotation']['num_to_keep']

Numero di file di registro dell'applicazione Web Firezone da conservare.

10

default['firezone']['phoenix']['crash_detection']['enabled']

Abilita o disabilita la chiusura dell'applicazione Web Firezone quando viene rilevato un arresto anomalo.

TRUE

default['firezone']['phoenix']['external_trusted_proxies']

Elenco di proxy inversi attendibili formattato come matrice di IP e/o CIDR.

[]

default['firezone']['phoenix']['private_clients']

Elenco di client HTTP di rete privata, formattati come Array di IP e/o CIDR.

[]

default['firezone']['wireguard']['enabled']

Abilita o disabilita la gestione WireGuard in bundle.

TRUE

default['firezone']['wireguard']['log_directory']

Directory di registro per la gestione WireGuard in bundle.

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

default['firezone']['wireguard']['log_rotation']['file_maxbytes']

Dimensione massima del file di registro WireGuard.

104857600

default['firezone']['wireguard']['log_rotation']['num_to_keep']

Numero di file di registro WireGuard da conservare.

10

default['firezone']['wireguard']['interface_name']

Nome dell'interfaccia WireGuard. La modifica di questo parametro può causare una perdita temporanea della connettività VPN.

wg-firezone'

default['firezone']['wireguard']['port']

Porta di ascolto WireGuard.

51820

default['firezone']['wireguard']['mtu']

Interfaccia WireGuard MTU per questo server e per le configurazioni del dispositivo.

1280

default['firezone']['wireguard']['endpoint']

WireGuard Endpoint da utilizzare per la generazione delle configurazioni del dispositivo. Se nil, il valore predefinito è l'indirizzo IP pubblico del server.

zero

default['firezone']['wireguard']['dns']

WireGuard DNS da utilizzare per le configurazioni dei dispositivi generati.

1.1.1.1, 1.0.0.1'

default['firezone']['wireguard']['allowed_ips']

WireGuard AllowedIPs da utilizzare per le configurazioni del dispositivo generate.

0.0.0.0/0, ::/0′

default['firezone']['wireguard']['persistent_keepalive']

Impostazione predefinita di PersistentKeepalive per le configurazioni del dispositivo generate. Un valore pari a 0 disabilita.

0

default['firezone']['wireguard']['ipv4']['enabled']

Abilita o disabilita IPv4 per la rete WireGuard.

TRUE

default['firezone']['wireguard']['ipv4']['masquerade']

Abilita o disabilita il mascheramento per i pacchetti che escono dal tunnel IPv4.

TRUE

default['firezone']['wireguard']['ipv4']['network']

Pool di indirizzi IPv4 della rete WireGuard.

10.3.2.0/24 ′

default['firezone']['wireguard']['ipv4']['address']

Indirizzo IPv4 dell'interfaccia WireGuard. Deve essere all'interno del pool di indirizzi WireGuard.

10.3.2.1 '

default['firezone']['wireguard']['ipv6']['enabled']

Abilita o disabilita IPv6 per la rete WireGuard.

TRUE

default['firezone']['wireguard']['ipv6']['masquerade']

Abilita o disabilita il mascheramento per i pacchetti che escono dal tunnel IPv6.

TRUE

default['firezone']['wireguard']['ipv6']['network']

Pool di indirizzi IPv6 della rete WireGuard.

fd00::3:2:0/120′

default['firezone']['wireguard']['ipv6']['address']

Indirizzo IPv6 dell'interfaccia WireGuard. Deve essere all'interno del pool di indirizzi IPv6.

fd00::3:2:1′

default['firezone']['runit']['svlogd_bin']

Esegui la posizione del contenitore svlogd.

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

default['firezone']['ssl']['directory']

Directory SSL per l'archiviazione dei certificati generati.

/var/opt/firezone/ssl'

default['firezone']['ssl']['email_address']

Indirizzo e-mail da utilizzare per i certificati autofirmati e gli avvisi di rinnovo del protocollo ACME.

tu@esempio.com'

default['firezone']['ssl']['acme']['enabled']

Abilita ACME per il provisioning automatico dei certificati SSL. Disabilitalo per impedire a Nginx di ascoltare sulla porta 80. Vedi qui per ulteriori istruzioni.

FALSO

default['firezone']['ssl']['acme']['server']

Server ACME da utilizzare per l'emissione/rinnovo del certificato. Può essere qualsiasi server acme.sh valido

letsencrypt

default['firezone']['ssl']['acme']['keylength']

Specificare il tipo e la lunghezza della chiave per i certificati SSL. Vedere qui

ec-256

default['firezone']['ssl']['certificato']

Percorso del file del certificato per il nome di dominio completo. Sostituisce l'impostazione ACME sopra se specificata. Se sia ACME che this sono nulli, verrà generato un certificato autofirmato.

zero

default['firezone']['ssl']['certificate_key']

Percorso del file del certificato.

zero

default['firezone']['ssl']['ssl_dhparam']

nginx ssl dh_param.

zero

default['firezone']['ssl']['country_name']

Nome del paese per il certificato autofirmato.

NOI'

default['firezone']['ssl']['state_name']

Nome dello stato per il certificato autofirmato.

CIRCA'

default['firezone']['ssl']['locality_name']

Nome della località per il certificato autofirmato.

San Francisco'

default['firezone']['ssl']['company_name']

Ragione sociale cert autofirmato

La mia compagnia'

default['firezone']['ssl']['organizational_unit_name']

Nome dell'unità organizzativa per il certificato autofirmato.

Operazioni

default['firezone']['ssl']['ciphers']

Crittografie SSL da utilizzare per 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’

default['firezone']['ssl']['fips_ciphers']

Crittografie SSL per la modalità FIP.

FIPS@FORZA:!aNULL:!eNULL'

default['firezone']['ssl']['protocolli']

Protocolli TLS da utilizzare.

TLSv1 TLSv1.1 TLSv1.2′

default['firezone']['ssl']['session_cache']

Cache della sessione SSL.

condiviso:SSL:4m'

default['firezone']['ssl']['session_timeout']

Timeout della sessione SSL.

5 m'

default['firezone']['robots_allow']

i robot nginx lo consentono.

/'

predefinito['firezone']['robots_disallow']

i robot nginx non consentono.

zero

default['firezone']['outbound_email']['from']

E-mail in uscita dall'indirizzo.

zero

default['firezone']['outbound_email']['provider']

Fornitore di servizi di posta elettronica in uscita.

zero

default['firezone']['outbound_email']['configs']

Configurazioni del provider di posta elettronica in uscita.

vedi omnibus/ricettari/firezone/attributes/default.rb

default['firezone']['telemetry']['enabled']

Abilitare o disabilitare la telemetria del prodotto anonima.

TRUE

default['firezone']['connectivity_checks']['enabled']

Abilita o disabilita il servizio di verifica della connettività Firezone.

TRUE

default['firezone']['connectivity_checks']['interval']

Intervallo tra i controlli di connettività in secondi.

3_600



________________________________________________________________

 

Posizioni di file e directory

 

Qui troverai un elenco di file e directory relativi a una tipica installazione di Firezone. Questi potrebbero cambiare a seconda delle modifiche al file di configurazione.



sentiero

descrizione

/var/opt/firezone

Directory di primo livello contenente i dati e la configurazione generata per i servizi in bundle di Firezone.

/opt/firezona

Directory di primo livello contenente librerie create, binari e file di runtime necessari a Firezone.

/usr/bin/firezone-ctl

utility firezone-ctl per la gestione dell'installazione di Firezone.

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

systemd unit file per l'avvio del processo supervisore Runsvdir di Firezone.

/etc/firezona

File di configurazione di Firezone.



__________________________________________________________

 

Modelli firewall

 

Questa pagina era vuota nei documenti

 

_____________________________________________________________

 

Modello firewall Nftables

 

Il seguente modello di firewall nftables può essere utilizzato per proteggere il server che esegue Firezone. Il modello fa alcuni presupposti; potrebbe essere necessario modificare le regole per adattarle al proprio caso d'uso:

  • L'interfaccia WireGuard è denominata wg-firezone. Se questo non è corretto, cambia la variabile DEV_WIREGUARD in modo che corrisponda all'opzione di configurazione default['firezone']['wireguard']['interface_name'].
  • La porta su cui WireGuard è in ascolto è 51820. Se non si utilizza la porta predefinita, modificare la variabile WIREGUARD_PORT.
  • Solo il seguente traffico in entrata sarà consentito al server:
    • SSH (porta TCP 22)
    • HTTP (porta TCP 80)
    • HTTPS (porta TCP 443)
    • WireGuard (porta UDP WIREGUARD_PORT)
    • Traceroute UDP (porta UDP 33434-33524, velocità limitata a 500/secondo)
    • ICMP e ICMPv6 (tasso di risposte ping/ping limitato a 2000/secondo)
  • Dal server sarà consentito solo il seguente traffico in uscita:
    • DNS (porta UDP e TCP 53)
    • HTTP (porta TCP 80)
    • NTP (porta UDP 123)
    • HTTPS (porta TCP 443)
    • Invio SMTP (porta TCP 587)
    • Traceroute UDP (porta UDP 33434-33524, velocità limitata a 500/secondo)
  • Il traffico senza corrispondenza verrà registrato. Le regole utilizzate per la registrazione sono separate dalle regole per eliminare il traffico e sono a velocità limitata. La rimozione delle regole di registrazione pertinenti non influirà sul traffico.

Regole gestite da Firezone

Firezone configura le proprie regole nftables per consentire/rifiutare il traffico verso le destinazioni configurate nell'interfaccia web e per gestire il NAT in uscita per il traffico client.

L'applicazione del seguente modello di firewall su un server già in esecuzione (non all'avvio) comporterà la cancellazione delle regole di Firezone. Ciò potrebbe avere implicazioni sulla sicurezza.

Per ovviare a questo riavviare il servizio Phoenix:

firezone-ctl riavvia phoenix

Modello firewall di base

#!/usr/sbin/nft -f

 

## Cancella/elimina tutte le regole esistenti

set di regole a filo

 

################################ VARIABILI ################ ##############

## Nome dell'interfaccia Internet/WAN

definire DEV_WAN = eth0

 

## Nome interfaccia WireGuard

definire DEV_WIREGUARD = wg-firezone

 

## Porta di ascolto WireGuard

definire WIREGUARD_PORT = 51820

############################## FINE VARIABILI ################## ############

 

# Tabella di filtraggio della famiglia inet principale

filtro inet tabella {

 

 # Regole per il traffico inoltrato

 # Questa catena viene elaborata prima della catena di inoltro di Firezone

 catena in avanti {

   filtro di tipo hook forward filtro di priorità – 5; la politica accetta

 }

 

 # Regole per il traffico in ingresso

 ingresso a catena {

   filtro di tipo hook filtro di priorità di input; caduta politica

 

   ## Consenti il ​​traffico in entrata all'interfaccia di loopback

   se lo \

     accetta \

     commento "Consenti tutto il traffico dall'interfaccia di loopback"

 

   ## Consenti connessioni stabilite e correlate

   ct stato stabilito, correlato \

     accetta \

     commento “Consenti connessioni stabilite/correlate”

 

   ## Autorizza il traffico WireGuard in entrata

   se $DEV_WAN porta udp $WIREGUARD_PORT \

     contatore \

     accetta \

     commento "Consenti traffico WireGuard in entrata"

 

   ## Registra ed elimina nuovi pacchetti TCP non SYN

   flag tcp != syn ct state new \

     tasso limite 100scoppio al minuto 150 pacchetti \

     prefisso log “IN – Nuovo !SYN: “ \

     commento "Registrazione del limite di velocità per le nuove connessioni che non hanno il flag SYN TCP impostato"

   flag tcp != syn ct state new \

     contatore \

     gocciolare \

     commento "Elimina nuove connessioni che non hanno il flag SYN TCP impostato"

 

   ## Registra ed elimina i pacchetti TCP con il flag fin/syn non valido impostato

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

     tasso limite 100scoppio al minuto 150 pacchetti \

     prefisso log “IN – TCP FIN|SIN: “ \

     commento "Registrazione del limite di velocità per i pacchetti TCP con flag fin/syn non valido impostato"

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

     contatore \

     gocciolare \

     commento "Elimina pacchetti TCP con flag fin/syn non valido impostato"

 

   ## Registra ed elimina i pacchetti TCP con il flag syn/rst non valido impostato

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

     tasso limite 100scoppio al minuto 150 pacchetti \

     prefisso log “IN – TCP SYN|RST: “ \

     commento "Rate limit logging for TCP packets with invalid syn/rst flag set"

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

     contatore \

     gocciolare \

     commento "Elimina i pacchetti TCP con il flag syn/rst non valido impostato"

 

   ## Registra ed elimina i flag TCP non validi

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

     tasso limite 100scoppio al minuto 150 pacchetti \

     prefisso log “IN – FIN:” \

     commento "Rate limit logging per flag TCP non validi (fin|syn|rst|psh|ack|urg) < (fin)"

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

     contatore \

     gocciolare \

     commento "Elimina i pacchetti TCP con i flag (fin|syn|rst|psh|ack|urg) < (fin)"

 

   ## Registra ed elimina i flag TCP non validi

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

     tasso limite 100scoppio al minuto 150 pacchetti \

     prefisso log “IN – FIN|PSH|URG:” \

     commento "Rate limit logging per flag TCP non validi (fin|syn|rst|psh|ack|urg) == (fin|psh|urg)"

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

     contatore \

     gocciolare \

     commento "Elimina i pacchetti TCP con i flag (fin|syn|rst|psh|ack|urg) == (fin|psh|urg)"

 

   ## Elimina il traffico con uno stato di connessione non valido

   stato ct non valido \

     tasso limite 100scoppio al minuto 150 pacchetti \

     log contrassegna tutti i prefissi “IN – Non valido: “ \

     commento "Registrazione del limite di velocità per il traffico con stato di connessione non valido"

   stato ct non valido \

     contatore \

     gocciolare \

     commento "Rilascia traffico con stato di connessione non valido"

 

   ## Consenti risposte ping/ping IPv4 ma limite di velocità a 2000 PPS

   ip protocollo icmp icmp tipo { echo-risposta, echo-richiesta } \

     tasso limite 2000/secondo \

     contatore \

     accetta \

     commento "Consenti eco IPv4 in entrata (ping) limitato a 2000 PPS"

 

   ## Autorizza tutti gli altri ICMP IPv4 in entrata

   ip protocollo ICMP \

     contatore \

     accetta \

     commento "Consenti tutti gli altri ICMP IPv4"

 

   ## Consenti risposte ping/ping IPv6 ma limite di velocità a 2000 PPS

   tipo icmpv6 { risposta-eco, richiesta-eco } \

     tasso limite 2000/secondo \

     contatore \

     accetta \

     commento "Consenti eco IPv6 in entrata (ping) limitato a 2000 PPS"

 

   ## Autorizza tutti gli altri ICMP IPv6 in entrata

   meta l4proto {icmpv6} \

     contatore \

     accetta \

     commento "Consenti tutti gli altri ICMP IPv6"

 

   ## Consenti porte UDP traceroute in entrata ma limita a 500 PPS

   porta udp 33434-33524 \

     tasso limite 500/secondo \

     contatore \

     accetta \

     commento "Consenti traceroute UDP in entrata limitato a 500 PPS"

 

   ## Consenti SSH in entrata

   porta tcp SSH ct stato nuovo \

     contatore \

     accetta \

     commento "Consenti connessioni SSH in entrata"

 

   ## Consenti HTTP e HTTPS in entrata

   tcp dport { http, https } ct stato nuovo \

     contatore \

     accetta \

     commento "Consenti connessioni HTTP e HTTPS in entrata"

 

   ## Registra qualsiasi traffico senza corrispondenza ma limita la velocità di registrazione a un massimo di 60 messaggi/minuto

   ## Il criterio predefinito verrà applicato al traffico senza corrispondenza

   tasso limite 60scoppio al minuto 100 pacchetti \

     prefisso log “IN – Goccia: “ \

     commento "Registra qualsiasi traffico senza corrispondenza"

 

   ## Conta il traffico senza corrispondenza

   contatore \

     commento "Conta qualsiasi traffico senza corrispondenza"

 }

 

 # Regole per il traffico in uscita

 output a catena {

   filtro di tipo hook filtro di priorità di uscita; caduta politica

 

   ## Consenti il ​​traffico in uscita all'interfaccia di loopback

   oif lo \

     accetta \

     commento "Consenti tutto il traffico all'interfaccia di loopback"

 

   ## Consenti connessioni stabilite e correlate

   ct stato stabilito, correlato \

     contatore \

     accetta \

     commento “Consenti connessioni stabilite/correlate”

 

   ## Autorizza il traffico WireGuard in uscita prima di interrompere le connessioni con uno stato non valido

   oif $DEV_WAN sport udp $WIREGUARD_PORT \

     contatore \

     accetta \

     commento "Consenti traffico in uscita WireGuard"

 

   ## Elimina il traffico con uno stato di connessione non valido

   stato ct non valido \

     tasso limite 100scoppio al minuto 150 pacchetti \

     log contrassegna tutti i prefissi “FUORI – Non valido: “ \

     commento "Registrazione del limite di velocità per il traffico con stato di connessione non valido"

   stato ct non valido \

     contatore \

     gocciolare \

     commento "Rilascia traffico con stato di connessione non valido"

 

   ## Autorizza tutti gli altri ICMP IPv4 in uscita

   ip protocollo ICMP \

     contatore \

     accetta \

     commento "Consenti tutti i tipi ICMP IPv4"

 

   ## Autorizza tutti gli altri ICMP IPv6 in uscita

   meta l4proto {icmpv6} \

     contatore \

     accetta \

     commento "Consenti tutti i tipi ICMP IPv6"

 

   ## Consenti porte UDP traceroute in uscita ma limita a 500 PPS

   porta udp 33434-33524 \

     tasso limite 500/secondo \

     contatore \

     accetta \

     commento "Consenti traceroute UDP in uscita limitato a 500 PPS"

 

   ## Consenti connessioni HTTP e HTTPS in uscita

   tcp dport { http, https } ct stato nuovo \

     contatore \

     accetta \

     commento "Consenti connessioni HTTP e HTTPS in uscita"

 

   ## Consenti invio SMTP in uscita

   tcp dport invio ct state new \

     contatore \

     accetta \

     commento "Consenti invio SMTP in uscita"

 

   ## Consenti richieste DNS in uscita

   porta udp 53 \

     contatore \

     accetta \

     commento "Consenti richieste DNS UDP in uscita"

   porta tcp 53 \

     contatore \

     accetta \

     commento "Consenti richieste DNS TCP in uscita"

 

   ## Consenti richieste NTP in uscita

   porta udp 123 \

     contatore \

     accetta \

     commento "Consenti richieste NTP in uscita"

 

   ## Registra qualsiasi traffico senza corrispondenza ma limita la velocità di registrazione a un massimo di 60 messaggi/minuto

   ## Il criterio predefinito verrà applicato al traffico senza corrispondenza

   tasso limite 60scoppio al minuto 100 pacchetti \

     prefisso log “FUORI – Rilascia: “ \

     commento "Registra qualsiasi traffico senza corrispondenza"

 

   ## Conta il traffico senza corrispondenza

   contatore \

     commento "Conta qualsiasi traffico senza corrispondenza"

 }

 

}

 

# Tabella di filtraggio NAT principale

tabella inet nat {

 

 # Regole per il pre-instradamento del traffico NAT

 preinstradamento a catena {

   digitare nat hook prerouting priorità dstnat; la politica accetta

 }

 

 # Regole per il post-instradamento del traffico NAT

 # Questa tabella viene elaborata prima della catena di post-routing di Firezone

 catena postrouting {

   tipo nat hook postrouting priorità srcnat – 5; la politica accetta

 }

 

}

Impiego

Il firewall deve essere archiviato nella posizione pertinente per la distribuzione Linux in esecuzione. Per Debian/Ubuntu questo è /etc/nftables.conf e per RHEL questo è /etc/sysconfig/nftables.conf.

nftables.service dovrà essere configurato per l'avvio all'avvio (se non già) impostato:

systemctl abilita nftables.service

Se si apportano modifiche al modello del firewall, la sintassi può essere convalidata eseguendo il comando check:

nft -f /percorso/di/nftables.conf -c

Assicurati di convalidare il funzionamento del firewall come previsto poiché alcune funzionalità di nftables potrebbero non essere disponibili a seconda della versione in esecuzione sul server.



_______________________________________________________________



Telemetria

 

Questo documento presenta una panoramica della telemetria che Firezone raccoglie dalla tua istanza self-hosted e come disabilitarla.

Perché Firezone raccoglie la telemetria

Zona di fuoco si basa sulla telemetria per dare priorità alla nostra roadmap e ottimizzare le risorse ingegneristiche di cui disponiamo per rendere Firezone migliore per tutti.

La telemetria che raccogliamo mira a rispondere alle seguenti domande:

  • Quante persone installano, usano e smettono di usare Firezone?
  • Quali caratteristiche sono più preziose e quali non vedono alcuna utilità?
  • Quale funzionalità necessita di maggiori miglioramenti?
  • Quando qualcosa si rompe, perché si è rotto e come possiamo evitare che accada in futuro?

Come raccogliamo la telemetria

Esistono tre luoghi principali in cui viene raccolta la telemetria in Firezone:

  1. Telemetria del pacchetto. Include eventi come installazione, disinstallazione e aggiornamento.
  2. Telemetria CLI dai comandi firezone-ctl.
  3. Telemetria del prodotto associata al portale Web.

In ciascuno di questi tre contesti, acquisiamo la quantità minima di dati necessari per rispondere alle domande nella sezione precedente.

Le e-mail dell'amministratore vengono raccolte solo se acconsenti esplicitamente agli aggiornamenti del prodotto. In caso contrario, le informazioni di identificazione personale lo sono mai raccolto.

Firezone memorizza la telemetria in un'istanza self-hosted di PostHog in esecuzione in un cluster Kubernetes privato, accessibile solo dal team di Firezone. Ecco un esempio di un evento di telemetria inviato dalla tua istanza di Firezone al nostro server di telemetria:

{

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

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

   "evento": "fz_http_iniziato",

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

   "proprietà": {

       “$nome_città_geoip”: “Ashburn”,

       “$codice_continente_geoip”: "N / A",

       “$geoip_nome_continente”: "Nord America",

       “$codice_paese_geoip”: "NOI",

       “$geoip_nome_paese”: "Stati Uniti",

       “$geoip_latitudine”: 39.0469,

       "$ geoip_longitudine": all'77.4903 ottobre,

       “$codice_postale_geoip”: "20149",

       "$geoip_suddivisione_1_codice": “VA”,

       “$geoip_suddivisione_1_nome”: "Virginia",

       “$geoip_time_zone”: “America/New_York”,

       "$IP": "52.200.241.107",

       "$plugins_differita": [],

       "$plugins_fallito": [],

       "$plugins_succeeded": [

           "GeoIP (3)"

       ],

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

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

       "versione_kernel": "Linux 5.13.0",

       "versione": "0.4.6"

   },

   "elementi_catena": ""

}

Come disabilitare la telemetria

NOTA

Il team di sviluppo di Firezone si basa sull'analisi dei prodotti per rendere Firezone migliore per tutti. Lasciare abilitata la telemetria è il singolo contributo più prezioso che puoi dare allo sviluppo di Firezone. Detto questo, comprendiamo che alcuni utenti hanno requisiti di privacy o sicurezza più elevati e preferirebbero disabilitare del tutto la telemetria. Se sei tu, continua a leggere.

La telemetria è abilitata per impostazione predefinita. Per disabilitare completamente la telemetria del prodotto, imposta la seguente opzione di configurazione su false in /etc/firezone/firezone.rb ed esegui sudo firezone-ctl reconfigure per rilevare le modifiche.

predefinito['zona di fuoco']['telemetria']['abilitato'🇧🇷 falso

Ciò disabiliterà completamente tutta la telemetria del prodotto.