Steg-för-steg-instruktioner för att distribuera Hailbytes VPN med Firezone GUI finns här.
Administrera: Att ställa in serverinstansen är direkt relaterad till denna del.
Användarhandböcker: Användbara dokument som kan lära dig hur du använder Firezone och löser typiska problem. När servern har distribuerats, se det här avsnittet.
Split tunneling: Använd VPN för att bara skicka trafik till specifika IP-intervall.
Vitlistning: Ställ in en VPN-servers statiska IP-adress för att använda vitlista.
Omvända tunnlar: Skapa tunnlar mellan flera kamrater med omvända tunnlar.
Vi hjälper dig gärna om du behöver hjälp med att installera, anpassa eller använda Hailbytes VPN.
Innan användare kan skapa eller ladda ner enhetskonfigurationsfiler kan Firezone konfigureras för att kräva autentisering. Användare kan också behöva autentisera sig med jämna mellanrum för att hålla sin VPN-anslutning aktiv.
Även om Firezones standardinloggningsmetod är lokal e-post och lösenord, kan den också integreras med vilken standardiserad OpenID Connect (OIDC) identitetsleverantör som helst. Användare kan nu logga in på Firezone med sina uppgifter från Okta, Google, Azure AD eller privata identitetsleverantörer.
Integrera en generisk OIDC-leverantör
Konfigurationsparametrarna som behövs av Firezone för att tillåta SSO med en OIDC-leverantör visas i exemplet nedan. På /etc/firezone/firezone.rb kan du hitta konfigurationsfilen. Kör firezone-ctl reconfigure och firezone-ctl restart för att uppdatera programmet och träda i kraft ändringar.
# Det här är ett exempel som använder Google och Okta som SSO-identitetsleverantör.
# Flera OIDC-konfigurationer kan läggas till i samma Firezone-instans.
# Firezone kan inaktivera en användares VPN om det upptäcks något fel när du försöker
# för att uppdatera deras access_token. Detta är verifierat att det fungerar för Google, Okta och
# Azure SSO och används för att automatiskt koppla bort en användares VPN om de tas bort
# från OIDC-leverantören. Lämna detta inaktiverat om din OIDC-leverantör
# har problem med att uppdatera åtkomsttokens eftersom det oväntat kan avbryta en
# användares VPN-session.
default['firezone']['autentication']['disable_vpn_on_oidc_error'] = false
default['firezone']['authentication']['oidc'] = {
Google: {
discovery_document_uri: "https://accounts.google.com/.well-known/openid-configuration",
Klient ID: " ”,
client_secret: " ”,
redirect_uri: "https://instance-id.yourfirezone.com/auth/oidc/google/callback/",
response_type: "kod",
scope: "openid e-postprofil",
etikett: "Google"
},
okta: {
discovery_document_uri: "https:// /.välkänd/openid-konfiguration”,
Klient ID: " ”,
client_secret: " ”,
redirect_uri: "https://instance-id.yourfirezone.com/auth/oidc/okta/callback/",
response_type: "kod",
scope: "openid email profile offline_access",
etikett: "Okta"
}
}
Följande konfigurationsinställningar krävs för integrationen:
För varje OIDC-leverantör skapas en motsvarande snygg URL för omdirigering till den konfigurerade leverantörens inloggnings-URL. För exemplet OIDC-konfiguration ovan är webbadresserna:
Leverantörer vi har dokumentation för:
Om din identitetsleverantör har en generisk OIDC-anslutning och inte finns med i listan ovan, gå till deras dokumentation för information om hur du hämtar de nödvändiga konfigurationsinställningarna.
Inställningen under inställningar/säkerhet kan ändras för att kräva periodisk återautentisering. Detta kan användas för att upprätthålla kravet att användare går in i Firezone regelbundet för att fortsätta sin VPN-session.
Sessionslängden kan konfigureras till att vara mellan en timme och nittio dagar. Genom att ställa in detta på Aldrig kan du aktivera VPN-sessioner när som helst. Detta är standarden.
En användare måste avsluta sin VPN-session och logga in på Firezone-portalen för att autentisera en utgången VPN-session (URL specificerad under driftsättning).
Du kan autentisera din session igen genom att följa de exakta klientinstruktionerna som finns här.
Status för VPN-anslutning
Användarsidans VPN-anslutningstabellkolumn visar en användares anslutningsstatus. Dessa är anslutningsstatusarna:
ENABLED – Anslutningen är aktiverad.
INAKTIVERAD – Anslutningen har inaktiverats av ett administratörs- eller OIDC-uppdateringsfel.
UTGÅTT – Anslutningen är inaktiverad på grund av att autentiseringen löper ut eller att en användare inte har loggat in för första gången.
Genom den allmänna OIDC-anslutningen möjliggör Firezone Single Sign-On (SSO) med Google Workspace och Cloud Identity. Den här guiden visar dig hur du får de konfigurationsparametrar som anges nedan, som är nödvändiga för integrationen:
1. OAuth-konfigurationsskärmâ € <
Om det är första gången du skapar ett nytt OAuth-klient-ID kommer du att bli ombedd att konfigurera en samtyckesskärm.
*Välj Intern för användartyp. Detta säkerställer att endast konton som tillhör användare i din Google Workspace-organisation kan skapa enhetskonfigurationer. Välj INTE Extern om du inte vill göra det möjligt för någon med ett giltigt Google-konto att skapa enhetskonfigurationer.
På appinformationsskärmen:
2. Skapa OAuth-klient-ID:nâ € <
Detta avsnitt är baserat på Googles egen dokumentation om konfigurera OAuth 2.0.
Besök Google Cloud Console Inloggningssida klickar du på + Skapa inloggningsuppgifter och väljer OAuth-klient-ID.
På skärmen för att skapa OAuth-klient-ID:
När du har skapat OAuth-klient-ID:t får du ett klient-ID och klienthemlighet. Dessa kommer att användas tillsammans med omdirigerings-URI i nästa steg.
Redigera /etc/firezone/firezone.rb för att inkludera alternativen nedan:
# Använder Google som SSO-identitetsleverantör
default['firezone']['authentication']['oidc'] = {
Google: {
discovery_document_uri: "https://accounts.google.com/.well-known/openid-configuration",
Klient ID: " ”,
client_secret: " ”,
redirect_uri: "https://instance-id.yourfirezone.com/auth/oidc/google/callback/",
response_type: "kod",
scope: "openid e-postprofil",
etikett: "Google"
}
}
Kör firezone-ctl reconfigure och firezone-ctl restart för att uppdatera programmet. Du bör nu se en Logga in med Google-knapp vid Firezone-rotadressen.
Firezone använder den generiska OIDC-kontakten för att underlätta Single Sign-On (SSO) med Okta. Denna handledning visar dig hur du får de konfigurationsparametrar som anges nedan, som är nödvändiga för integrationen:
Detta avsnitt av guiden bygger på Oktas dokumentation.
I administratörskonsolen, gå till Applikationer > Applikationer och klicka på Skapa appintegration. Ställ in inloggningsmetod till OICD – OpenID Connect och applikationstyp till webbapplikation.
Konfigurera dessa inställningar:
När inställningarna har sparats kommer du att få ett klient-ID, klienthemlighet och Okta Domain. Dessa 3 värden kommer att användas i steg 2 för att konfigurera Firezone.
Redigera /etc/firezone/firezone.rb för att inkludera alternativen nedan. Din discovery_document_url kommer vara /.välkänd/openid-konfiguration läggs till i slutet av din okta_domän.
# Använder Okta som SSO-identitetsleverantör
default['firezone']['authentication']['oidc'] = {
okta: {
discovery_document_uri: "https:// /.välkänd/openid-konfiguration”,
Klient ID: " ”,
client_secret: " ”,
redirect_uri: "https://instance-id.yourfirezone.com/auth/oidc/okta/callback/",
response_type: "kod",
scope: "openid email profile offline_access",
etikett: "Okta"
}
}
Kör firezone-ctl reconfigure och firezone-ctl restart för att uppdatera programmet. Du bör nu se en Logga in med Okta-knapp vid root-URL-adressen för Firezone.
De användare som kan komma åt Firezone-appen kan begränsas av Okta. Gå till Okta Admin Consoles Firezone App Integration's Assignments-sida för att göra detta.
Genom den generiska OIDC-anslutningen möjliggör Firezone Single Sign-On (SSO) med Azure Active Directory. Den här manualen kommer att visa dig hur du får de konfigurationsparametrar som anges nedan, som är nödvändiga för integrationen:
Denna guide är hämtad från Azure Active Directory Docs.
Gå till Azure-portalens Azure Active Directory-sida. Välj menyalternativet Hantera, välj Ny registrering och registrera dig sedan genom att ange informationen nedan:
Efter registrering, öppna detaljvyn för applikationen och kopiera Program (klient) ID. Detta kommer att vara client_id-värdet. Öppna sedan ändpunktersmenyn för att hämta OpenID Connect-metadatadokument. Detta kommer att vara discovery_document_uri-värdet.
Skapa en ny klienthemlighet genom att klicka på alternativet Certifikat och hemligheter under menyn Hantera. Kopiera klienthemligheten; klientens hemliga värde kommer att vara detta.
Slutligen, välj länken API-behörigheter under menyn Hantera, klicka Lägg till en behörighet, och välj Microsoft Graph, lägga till e-mail, öppet, offline_access och profil till de nödvändiga behörigheterna.
Redigera /etc/firezone/firezone.rb för att inkludera alternativen nedan:
# Använder Azure Active Directory som SSO-identitetsleverantör
default['firezone']['authentication']['oidc'] = {
azurblå: {
discovery_document_uri: "https://login.microsoftonline.com/ /v2.0/.well-known/openid-configuration”,
Klient ID: " ”,
client_secret: " ”,
redirect_uri: "https://instance-id.yourfirezone.com/auth/oidc/azure/callback/",
response_type: "kod",
scope: "openid email profile offline_access",
etikett: "Azure"
}
}
Kör firezone-ctl reconfigure och firezone-ctl restart för att uppdatera programmet. Du bör nu se en Logga in med Azure-knapp vid Firezone-rotadressen.
Azure AD gör det möjligt för administratörer att begränsa appåtkomst till en specifik grupp användare inom ditt företag. Mer information om hur du gör detta finns i Microsofts dokumentation.
Chef Omnibus används av Firezone för att hantera uppgifter inklusive releasepaketering, processövervakning, logghantering och mer.
Ruby-koden utgör den primära konfigurationsfilen, som finns på /etc/firezone/firezone.rb. Att starta om sudo firezone-ctl reconfigure efter att ha gjort ändringar i den här filen får Chef att känna igen ändringarna och tillämpa dem på det aktuella operativsystemet.
Se referensen till konfigurationsfilen för en komplett lista över konfigurationsvariabler och deras beskrivningar.
Din Firezone-instans kan hanteras via brandzon-ctl kommando, som visas nedan. De flesta underkommandon kräver prefix med sudo.
root@demo:~# firezone-ctl
omnibus-ctl: kommando (underkommando)
Allmänna kommandon:
rengöra
Ta bort *alla* brandzonsdata och börja om från början.
skapa-eller-återställ-admin
Återställer lösenordet för administratören med e-post som anges som standard['firezone']['admin_email'] eller skapar en ny admin om den e-postadressen inte finns.
hjälpa
Skriv ut det här hjälpmeddelandet.
omkonfigurera
Konfigurera om programmet.
reset-nätverk
Återställer nftables, WireGuard-gränssnittet och routingtabellen tillbaka till Firezone-standarderna.
show-config
Visa konfigurationen som skulle genereras av reconfigure.
rivningsnätverk
Tar bort WireGuard-gränssnitt och firezone nftables-tabell.
force-cert-förnyelse
Tvinga certifikatförnyelse nu även om det inte har löpt ut.
stoppa-cert-förnyelse
Tar bort cronjob som förnyar certifikat.
avinstallera
Döda alla processer och avinstallera processövervakaren (data kommer att bevaras).
version
Visa aktuell version av Firezone
Service Management-kommandon:
graciös-döda
Försök ett graciöst stopp och SIGKILL sedan hela processgruppen.
hup
Skicka tjänsterna en HUP.
int
Skicka tjänsterna en INT.
döda
Skicka tjänsterna en KILL.
gång
Starta tjänsterna om de är nere. Starta inte om dem om de slutar.
omstart
Stoppa tjänsterna om de körs och starta dem sedan igen.
servicelista
Lista alla tjänster (aktiverade tjänster visas med en *.)
starta
Starta tjänster om de är nere och starta om dem om de slutar.
status
Visa status för alla tjänster.
stoppa
Stoppa tjänsterna och starta inte om dem.
svans
Titta på serviceloggarna för alla aktiverade tjänster.
termin
Skicka tjänsterna en TERM.
usr1
Skicka en USR1 till tjänsterna.
usr2
Skicka en USR2 till tjänsterna.
Alla VPN-sessioner måste avslutas innan Firezone uppgraderas, vilket också kräver att webbgränssnittet stängs av. I händelse av att något går fel under uppgraderingen rekommenderar vi att du avsätter en timme för underhåll.
För att förbättra Firezone, vidta följande åtgärder:
Om några problem uppstår, vänligen meddela oss senast skicka in en supportärende.
Det finns några brytande ändringar och konfigurationsändringar i 0.5.0 som måste åtgärdas. Ta reda på mer nedan.
Nginx stöder inte längre parametrarna för force SSL och icke-SSL-portar från och med version 0.5.0. Eftersom Firezone behöver SSL för att fungera, rekommenderar vi att du tar bort paketet Nginx-tjänsten genom att ställa in standard['firezone']['nginx']['enabled'] = false och dirigera din omvänd proxy till Phoenix-appen på port 13000 istället (som standard) ).
0.5.0 introducerar ACME-protokollstöd för automatisk förnyelse av SSL-certifikat med den medföljande Nginx-tjänsten. Att möjliggöra,
Möjligheten att lägga till regler med dubbletter av destinationer är borta i Firezone 0.5.0. Vårt migreringsskript kommer automatiskt att känna igen dessa situationer under en uppgradering till 0.5.0 och bara behålla de regler vars destination inkluderar den andra regeln. Det finns inget du behöver göra om detta är okej.
Annars, innan du uppgraderar, rekommenderar vi att du ändrar din regeluppsättning för att bli av med dessa situationer.
Firezone 0.5.0 tar bort stödet för den gamla Okta- och Google SSO-konfigurationen till förmån för den nya, mer flexibla OIDC-baserade konfigurationen.
Om du har någon konfiguration under standardnycklarna['firezone']['authentication']['okta'] eller standard['firezone']['authentication']['google'] måste du migrera dessa till vår OIDC -baserad konfiguration med hjälp av guiden nedan.
Befintlig Google OAuth-konfiguration
Ta bort dessa rader som innehåller de gamla Google OAuth-konfigurationerna från din konfigurationsfil som finns på /etc/firezone/firezone.rb
default['firezone']['autentication']['google']['enabled']
default['firezone']['autentication']['google']['client_id']
default['firezone']['autentication']['google']['client_secret']
default['firezone']['autentication']['google']['redirect_uri']
Konfigurera sedan Google som en OIDC-leverantör genom att följa procedurerna här.
(Ge länkinstruktioner)<<<<<<<<<<<<<<<<
Konfigurera befintlig Google OAuth
Ta bort dessa rader som innehåller de gamla Okta OAuth-konfigurationerna från din konfigurationsfil som finns på /etc/firezone/firezone.rb
default['firezone']['autentication']['okta']['enabled']
default['firezone']['autentication']['okta']['client_id']
default['firezone']['autentication']['okta']['client_secret']
Default['firezone']['autentication']['okta']['site']
Konfigurera sedan Okta som en OIDC-leverantör genom att följa procedurerna här.
Beroende på din nuvarande konfiguration och version, följ anvisningarna nedan:
Om du redan har en OIDC-integration:
För vissa OIDC-leverantörer kräver uppgradering till >= 0.3.16 att man skaffar en uppdateringstoken för offlineåtkomstomfånget. Genom att göra detta ser man till att Firezone uppdaterar med identitetsleverantören och att VPN-anslutningen stängs av efter att en användare har raderats. Firezones tidigare iterationer saknade denna funktion. I vissa fall kan användare som raderas från din identitetsleverantör fortfarande vara anslutna till ett VPN.
Det är nödvändigt att inkludera offlineåtkomst i scope-parametern för din OIDC-konfiguration för OIDC-leverantörer som stöder offlineåtkomstomfånget. Firezone-ctl reconfigure måste köras för att kunna tillämpa ändringar på Firezone-konfigurationsfilen, som finns på /etc/firezone/firezone.rb.
För användare som har autentiserats av din OIDC-leverantör kommer du att se rubriken OIDC Connections på sidan med användarinformation i webbgränssnittet om Firezone lyckas hämta uppdateringstoken.
Om detta inte fungerar måste du ta bort din befintliga OAuth-app och upprepa OIDC-installationsstegen för att skapa en ny appintegration .
Jag har en befintlig OAuth-integration
Före 0.3.11 använde Firezone förkonfigurerade OAuth2-leverantörer.
Följ instruktionerna här. att migrera till OIDC.
Jag har inte integrerat en identitetsleverantör
Ingen åtgärd krävs.
Du kan följa instruktionerna här. för att aktivera SSO genom en OIDC-leverantör.
I dess ställe har standard['firezone']['extern url'] ersatt konfigurationsalternativet default['firezone']['fqdn'].
Ställ in detta till URL:en till din Firezone onlineportal som är tillgänglig för allmänheten. Den kommer som standard till https:// plus FQDN för din server om den lämnas odefinierad.
Konfigurationsfilen finns på /etc/firezone/firezone.rb. Se referensen till konfigurationsfilen för en komplett lista över konfigurationsvariabler och deras beskrivningar.
Firezone håller inte längre enhetens privata nycklar på Firezone-servern från och med version 0.3.0.
Firezone Web UI tillåter dig inte att ladda ner eller se dessa konfigurationer igen, men alla befintliga enheter bör fortsätta att fungera som de är.
Om du uppgraderar från Firezone 0.1.x finns det några ändringar i konfigurationsfilen som måste åtgärdas manuellt.
För att göra de nödvändiga ändringarna i din /etc/firezone/firezone.rb-fil, kör kommandona nedan som 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'] = sant” >> /etc/firezone/firezone.rb
echo “default['firezone']['connectivity_checks']['interval'] = 3_600” >> /etc/firezone/firezone.rb
firezone-ctl omkonfigurera
firezone-ctl omstart
Att kontrollera Firezone-loggarna är ett klokt första steg för eventuella problem som kan uppstå.
Kör sudo firezone-ctl tail för att se Firezone-loggarna.
Majoriteten av anslutningsproblem med Firezone orsakas av inkompatibla iptables eller nftables regler. Du måste se till att alla regler du har i kraft inte kolliderar med Firezone-reglerna.
Se till att FORWARD-kedjan tillåter paket från dina WireGuard-klienter till de platser du vill släppa igenom Firezone om din Internetanslutning försämras varje gång du aktiverar din WireGuard-tunnel.
Detta kan uppnås om du använder ufw genom att se till att standardruttpolicyn tillåter:
ubuntu@fz:~$ sudo ufw standard tillåter dirigerad
Standardriktad policy har ändrats till "tillåt"
(var noga med att uppdatera dina regler därefter)
A ufw status för en typisk Firezone-server kan se ut så här:
ubuntu@fz:~$ sudo ufw status verbose
Status: aktiv
Inloggning: på (låg)
Standard: neka (inkommande), tillåt (utgående), tillåt (dirigerad)
Nya profiler: hoppa över
Till handling Från
— —— —-
22/tcp LÅTA IN var som helst
80/tcp LÅTA IN var som helst
443/tcp LÅT IN var som helst
51820/udp TILLÅT IN var som helst
22/tcp (v6) ALLOW IN Anywhere (v6)
80/tcp (v6) ALLOW IN Anywhere (v6)
443/tcp (v6) ALLOW IN Anywhere (v6)
51820/udp (v6) ALLOW IN Anywhere (v6)
Vi rekommenderar att du begränsar åtkomsten till webbgränssnittet för extremt känsliga och verksamhetskritiska produktionsinstallationer, som förklaras nedan.
Service | Standardport | Lyssna Adress | Beskrivning |
nginx | 80, 443 | alla | Offentlig HTTP(S)-port för att administrera Firezone och underlätta autentisering. |
Trådskydd | 51820 | alla | Offentlig WireGuard-port som används för VPN-sessioner. (UDP) |
PostgreSQL | 15432 | 127.0.0.1 | Endast lokal port som används för medföljande Postgresql-server. |
Phoenix | 13000 | 127.0.0.1 | Endast lokal port som används av uppströms elixir-appserver. |
Vi råder dig att tänka på att begränsa åtkomsten till Firezones offentligt exponerade webbgränssnitt (som standard portar 443/tcp och 80/tcp) och istället använda WireGuard-tunneln för att hantera Firezone för produktion och offentliga installationer där en enda administratör kommer att vara ansvarig att skapa och distribuera enhetskonfigurationer till slutanvändare.
Till exempel, om en administratör skapade en enhetskonfiguration och skapade en tunnel med den lokala WireGuard-adressen 10.3.2.2, skulle följande ufw-konfiguration göra det möjligt för administratören att komma åt Firezones webbgränssnitt på serverns wg-firezone-gränssnitt med standard 10.3.2.1 tunnel adress:
root@demo:~# ufw status verbose
Status: aktiv
Inloggning: på (låg)
Standard: neka (inkommande), tillåt (utgående), tillåt (dirigerad)
Nya profiler: hoppa över
Till handling Från
— —— —-
22/tcp LÅTA IN var som helst
51820/udp TILLÅT IN var som helst
Var som helst TILLÅT I 10.3.2.2
22/tcp (v6) ALLOW IN Anywhere (v6)
51820/udp (v6) ALLOW IN Anywhere (v6)
Detta skulle bara lämna 22/tcp exponerad för SSH-åtkomst för att hantera servern (valfritt), och 51820/udp exponerade för att etablera WireGuard-tunnlar.
Firezone paketerar en Postgresql-server och matchar psql verktyg som kan användas från det lokala skalet så här:
/opt/firezone/embedded/bin/psql \
-U brandzon \
-d brandzon \
-h localhost \
-p 15432 \
-c "SQL_STATEMENT"
Detta kan vara till hjälp för felsökningsändamål.
Vanliga uppgifter:
Listar alla användare:
/opt/firezone/embedded/bin/psql \
-U brandzon \
-d brandzon \
-h localhost \
-p 15432 \
-c "VÄLJ * FRÅN användare;"
Listar alla enheter:
/opt/firezone/embedded/bin/psql \
-U brandzon \
-d brandzon \
-h localhost \
-p 15432 \
-c "VÄLJ * FRÅN enheter;"
Ändra en användarroll:
Ställ in rollen på "admin" eller "oprivilegierad":
/opt/firezone/embedded/bin/psql \
-U brandzon \
-d brandzon \
-h localhost \
-p 15432 \
-c "UPPDATERA användare SET role = 'admin' WHERE email = 'user@example.com';"
Säkerhetskopiera databasen:
Dessutom ingår programmet pg dump, som kan användas för att ta regelbundna säkerhetskopior av databasen. Kör följande kod för att dumpa en kopia av databasen i det vanliga SQL-frågeformatet (ersätt /path/to/backup.sql med platsen där SQL-filen ska skapas):
/opt/firezone/embedded/bin/pg_dump \
-U brandzon \
-d brandzon \
-h localhost \
-p 15432 > /sökväg/till/backup.sql
Efter att Firezone har implementerats måste du lägga till användare för att ge dem åtkomst till ditt nätverk. Webbgränssnittet används för att göra detta.
Genom att välja knappen "Lägg till användare" under /användare kan du lägga till en användare. Du kommer att behöva förse användaren med en e-postadress och ett lösenord. För att tillåta åtkomst till användare i din organisation automatiskt kan Firezone också gränssnitt och synkronisera med en identitetsleverantör. Mer information finns i autentisera. < Lägg till en länk till Autentisera
Vi rekommenderar att du begär att användare skapar sina egna enhetskonfigurationer så att den privata nyckeln endast är synlig för dem. Användare kan skapa sina egna enhetskonfigurationer genom att följa anvisningarna på Kundens instruktioner sida.
Alla användarenhetskonfigurationer kan skapas av Firezone-administratörer. På användarprofilsidan som finns på /users, välj alternativet "Lägg till enhet" för att göra detta.
[Infoga skärmdump]
Du kan e-posta användaren WireGuard-konfigurationsfilen efter att ha skapat enhetsprofilen.
Användare och enheter är länkade. För ytterligare information om hur du lägger till en användare, se Lägg till användare.
Genom att använda kärnans nätfiltersystem möjliggör Firezone möjligheter för utgående filtrering för att specificera DROP- eller ACCEPT-paket. All trafik är normalt tillåten.
IPv4- och IPv6-CIDR:er och IP-adresser stöds via Tillåtelselistan respektive Denylistan. Du kan välja att omfånga en regel för en användare när du lägger till den, vilket tillämpar regeln på alla den användarens enheter.
Installera och konfigurera
För att upprätta en VPN-anslutning med den inbyggda WireGuard-klienten, se den här guiden.
De officiella WireGuard-klienterna som finns här är Firezone-kompatibla:
Besök den officiella WireGuard-webbplatsen på https://www.wireguard.com/install/ för OS-system som inte nämns ovan.
Antingen din Firezone-administratör eller du själv kan generera enhetens konfigurationsfil med hjälp av Firezone-portalen.
Besök webbadressen som din Firezone-administratör har angett för att självgenerera en enhetskonfigurationsfil. Ditt företag kommer att ha en unik URL för detta; i det här fallet är det https://instance-id.yourfirezone.com.
Logga in på Firezone Okta SSO
[Infoga skärmdump]
Importera filen.conf till WireGuard-klienten genom att öppna den. Genom att vända på knappen Aktivera kan du starta en VPN-session.
[Infoga skärmdump]
Följ instruktionerna nedan om din nätverksadministratör har beordrat återkommande autentisering för att hålla din VPN-anslutning aktiv.
Du behöver:
Firezone-portalens URL: Fråga din nätverksadministratör om anslutningen.
Din nätverksadministratör bör kunna erbjuda ditt användarnamn och lösenord. Firezone-webbplatsen kommer att uppmana dig att logga in med den tjänst för enkel inloggning som din arbetsgivare använder (som Google eller Okta).
[Infoga skärmdump]
Gå till Firezone-portalens URL och logga in med de uppgifter som din nätverksadministratör har tillhandahållit. Om du redan är inloggad klickar du på knappen Autentisera igen innan du loggar in igen.
[Infoga skärmdump]
[Infoga skärmdump]
För att importera WireGuard-konfigurationsprofilen med Network Manager CLI på Linux-enheter, följ dessa instruktioner (nmcli).
Om profilen har IPv6-stöd aktiverat kan ett försök att importera konfigurationsfilen med Network Manager GUI misslyckas med följande fel:
ipv6.method: metoden "auto" stöds inte för WireGuard
Det är nödvändigt att installera WireGuards användarutrymmesverktyg. Detta kommer att vara ett paket som kallas wireguard eller wireguard-tools för Linux-distributioner.
För Ubuntu/Debian:
sudo apt installera wireguard
För att använda Fedora:
sudo dnf installera wireguard-verktyg
Arch Linux:
sudo pacman -S wireguard-verktyg
Besök den officiella WireGuard-webbplatsen på https://www.wireguard.com/install/ för distributioner som inte nämns ovan.
Antingen din Firezone-administratör eller egengenerering kan generera enhetens konfigurationsfil med hjälp av Firezone-portalen.
Besök webbadressen som din Firezone-administratör har angett för att självgenerera en enhetskonfigurationsfil. Ditt företag kommer att ha en unik URL för detta; i det här fallet är det https://instance-id.yourfirezone.com.
[Infoga skärmdump]
Importera den medföljande konfigurationsfilen med nmcli:
sudo nmcli anslutning import typ wireguard fil /path/to/configuration.conf
Namnet på konfigurationsfilen kommer att motsvara WireGuard-anslutningen/gränssnittet. Efter importen kan anslutningen byta namn vid behov:
nmcli-anslutning ändra [gammalt namn] connection.id [nytt namn]
Via kommandoraden ansluter du till VPN enligt följande:
nmcli-anslutning [vpn-namn]
För att koppla bort:
nmcli-anslutning nere [vpn-namn]
Den tillämpliga Network Manager-appleten kan också användas för att hantera anslutningen om du använder ett GUI.
Genom att välja "ja" för autoanslutningsalternativet kan VPN-anslutningen konfigureras för att ansluta automatiskt:
nmcli-anslutning ändra [vpn-namn]-anslutning. <<<<<<<<<<<<<<<<<<<<<<
autoanslut ja
För att inaktivera den automatiska anslutningen ställer du tillbaka den till no:
nmcli-anslutning ändra [vpn-namn]-anslutning.
autoconnect nr
För att aktivera MFA Gå till Firezone-portalens /användarkonto/register mfa-sida. Använd din autentiseringsapp för att skanna QR-koden efter att den har skapats och ange sedan den sexsiffriga koden.
Kontakta din administratör för att återställa ditt kontos åtkomstinformation om du tappar bort din autentiseringsapp.
Denna handledning kommer att leda dig genom processen att ställa in WireGuards delade tunnelfunktion med Firezone så att endast trafik till specifika IP-intervall vidarebefordras via VPN-servern.
IP-intervallen för vilka klienten kommer att dirigera nätverkstrafik anges i fältet Tillåtna IP-adresser på sidan /inställningar/standard. Endast de nyskapade WireGuard-tunnelkonfigurationerna som produceras av Firezone kommer att påverkas av ändringar i detta fält.
[Infoga skärmdump]
Standardvärdet är 0.0.0.0/0, ::/0, vilket dirigerar all nätverkstrafik från klienten till VPN-servern.
Exempel på värden i det här fältet inkluderar:
0.0.0.0/0, ::/0 – all nätverkstrafik kommer att dirigeras till VPN-servern.
192.0.2.3/32 – endast trafik till en enda IP-adress kommer att dirigeras till VPN-servern.
3.5.140.0/22 – endast trafik till IP-adresser i intervallet 3.5.140.1 – 3.5.143.254 kommer att dirigeras till VPN-servern. I det här exemplet användes CIDR-intervallet för ap-northeast-2 AWS-regionen.
Firezone väljer utträdesgränssnittet som är kopplat till den mest exakta rutten först när det bestäms vart ett paket ska dirigeras.
Användare måste återskapa konfigurationsfilerna och lägga till dem i sin inhemska WireGuard-klient för att uppdatera befintliga användarenheter med den nya delade tunnelkonfigurationen.
För instruktioner, se Lägg till enhet. <<<<<<<<<<< Lägg till länk
Denna manual kommer att visa hur man länkar två enheter med Firezone som ett relä. Ett typiskt användningsfall är att göra det möjligt för en administratör att komma åt en server, behållare eller maskin som är skyddad av en NAT eller brandvägg.
Den här illustrationen visar ett enkelt scenario där enheterna A och B bygger en tunnel.
[Infoga brandzonens arkitektoniska bild]
Börja med att skapa Enhet A och Enhet B genom att navigera till /users/[user_id]/new_device. Se till att följande parametrar är inställda på värdena nedan i inställningarna för varje enhet. Du kan ställa in enhetsinställningar när du skapar enhetskonfigurationen (se Lägg till enheter). Om du behöver uppdatera inställningar på en befintlig enhet kan du göra det genom att skapa en ny enhetskonfiguration.
Observera att alla enheter har en /inställningar/defaults-sida där PersistentKeepalive kan konfigureras.
TillåtnaIPs = 10.3.2.2/32
Detta är IP-adressen eller IP-intervallet för Enhet B
PersistentKeepalive = 25
Om enheten är bakom en NAT säkerställer detta att enheten kan hålla tunneln vid liv och fortsätta att ta emot paket från WireGuard-gränssnittet. Vanligtvis är ett värde på 25 tillräckligt, men du kan behöva minska detta värde beroende på din miljö.
TillåtnaIPs = 10.3.2.3/32
Detta är IP-adressen eller IP-intervallet för Enhet A
PersistentKeepalive = 25
Detta exempel visar en situation där anordning A kan kommunicera med anordningar B till D i båda riktningarna. Denna inställning kan representera en ingenjör eller administratör som har åtkomst till många resurser (servrar, behållare eller maskiner) över olika nätverk.
[Arkitektoniskt diagram]<<<<<<<<<<<<<<<<<<<<<<<<
Se till att följande inställningar görs i varje enhets inställningar till motsvarande värden. När du skapar enhetskonfigurationen kan du ange enhetsinställningar (se Lägg till enheter). En ny enhetskonfiguration kan skapas om inställningarna på en befintlig enhet behöver uppdateras.
Tillåtna IP-adresser = 10.3.2.3/32, 10.3.2.4/32, 10.3.2.5/32
Detta är IP-adressen för enheterna B till D. IP-adresserna för enheterna B till D måste inkluderas i alla IP-intervall som du väljer att ställa in.
PersistentKeepalive = 25
Detta garanterar att enheten kan underhålla tunneln och fortsätta att ta emot paket från WireGuard-gränssnittet även om den är skyddad av en NAT. I de flesta fall är ett värde på 25 tillräckligt, men beroende på din omgivning kan du behöva sänka denna siffra.
För att erbjuda en enda statisk utgående IP för all ditt teams trafik att flyta ut ur, kan Firezone användas som en NAT-gateway. Dessa situationer involverar dess frekventa användning:
Konsultuppdrag: Be att din kund vitlistar en enda statisk IP-adress istället för varje anställds unika enhets-IP.
Använda en proxy eller maskera din käll-IP för säkerhets- eller integritetsskäl.
Ett enkelt exempel på att begränsa åtkomsten till en webbapplikation med egen värd till en enda vitlistad statisk IP som kör Firezone kommer att visas i det här inlägget. I den här illustrationen finns Firezone och den skyddade resursen i olika VPC-områden.
Denna lösning används ofta i stället för att hantera en IP-vitlista för många slutanvändare, vilket kan vara tidskrävande när åtkomstlistan utökas.
Vårt mål är att sätta upp en Firezone-server på en EC2-instans för att omdirigera VPN-trafik till den begränsade resursen. I det här fallet fungerar Firezone som en nätverksproxy eller NAT-gateway för att ge varje ansluten enhet en unik offentlig utgående IP.
I det här fallet har en EC2-instans med namnet tc2.micro en Firezone-instans installerad på sig. För information om hur du distribuerar Firezone, gå till implementeringsguiden. I förhållande till AWS, var säker på:
Firezone EC2-instansens säkerhetsgrupp tillåter utgående trafik till den skyddade resursens IP-adress.
Firezone-instansen kommer med en elastisk IP. Trafik som vidarebefordras genom Firezone-instansen till externa destinationer kommer att ha detta som sin käll-IP-adress. IP-adressen i fråga är 52.202.88.54.
[Infoga skärmdump]<<<<<<<<<<<<<<<<<<<<<<<<
En webbapplikation som är värd för sig själv fungerar som den skyddade resursen i detta fall. Webbappen kan endast nås av förfrågningar som kommer från IP-adressen 52.202.88.54. Beroende på resurs kan det vara nödvändigt att tillåta inkommande trafik på olika hamnar och trafiktyper. Detta tas inte upp i denna manual.
[Infoga skärmdump]<<<<<<<<<<<<<<<<<<<<<<<<
Tala om för den tredje part som ansvarar för den skyddade resursen att trafik från den statiska IP som definieras i steg 1 måste tillåtas (i det här fallet 52.202.88.54).
Som standard kommer all användartrafik att gå via VPN-servern och komma från den statiska IP-adressen som konfigurerades i steg 1 (i det här fallet 52.202.88.54). Men om delad tunnling har aktiverats kan inställningar vara nödvändiga för att säkerställa att den skyddade resursens destinations-IP är listad bland de tillåtna IP-adresserna.
Nedan visas en komplett lista över de tillgängliga konfigurationsalternativen /etc/firezone/firezone.rb.
alternativ | beskrivning | standardvärde |
default['firezone']['external_url'] | URL som används för att komma åt webbportalen för denna Firezone-instans. | “https://#{nod['fqdn'] || nod['värdnamn']}” |
default['firezone']['config_directory'] | Katalog på toppnivå för Firezone-konfiguration. | /etc/firezone' |
default['firezone']['install_directory'] | Översta katalog att installera Firezone på. | /opt/firezone' |
default['firezone']['app_directory'] | Katalog på toppnivå för att installera Firezone-webbapplikationen. | “#{node['firezone']['install_directory']}/embedded/service/firezone” |
default['firezone']['log_directory'] | Katalog på toppnivå för Firezone-loggar. | /var/log/firezone' |
default['firezone']['var_directory'] | Katalog på toppnivå för Firezone runtime-filer. | /var/opt/firezone' |
default['firezone']['user'] | Namn på oprivilegierad Linux-användare de flesta tjänster och filer kommer att tillhöra. | eldzon' |
default['brandzon']['grupp'] | Namn på Linux-grupp de flesta tjänster och filer kommer att tillhöra. | eldzon' |
default['firezone']['admin_email'] | E-postadress för den första Firezone-användaren. | "firezone@localhost" |
default['firezone']['max_devices_per_user'] | Maximalt antal enheter en användare kan ha. | 10 |
default['firezone']['allow_unprivileged_device_management'] | Tillåter användare som inte är administratörer att skapa och ta bort enheter. | SANN |
default['firezone']['allow_unprivileged_device_configuration'] | Tillåter användare som inte är administratörer att ändra enhetskonfigurationer. När inaktiverad, förhindrar oprivilegierade användare från att ändra alla enhetsfält utom namn och beskrivning. | SANN |
default['firezone']['egress_interface'] | Gränssnittsnamn där tunnlad trafik kommer att lämnas. Om noll kommer standardruttgränssnittet att användas. | noll |
default['firezone']['fips_enabled'] | Aktivera eller inaktivera OpenSSL FIPs-läge. | noll |
default['firezone']['logging']['enabled'] | Aktivera eller inaktivera loggning över Firezone. Ställ in på false för att inaktivera loggning helt. | SANN |
default['företag']['namn'] | Namn som används av kockens "företagskokbok". | eldzon' |
default['firezone']['install_path'] | Installationssökväg som används av kokboken för kockens "företag". Bör ställas in på samma som installationskatalogen ovan. | nod['firezone']['install_directory'] |
default['firezone']['sysvinit_id'] | En identifierare som används i /etc/inittab. Måste vara en unik sekvens på 1-4 tecken. | SUPERA' |
default['firezone']['autentication']['local']['enabled'] | Aktivera eller inaktivera lokal e-post-/lösenordsautentisering. | SANN |
default['firezone']['autentication']['auto_create_oidc_users'] | Skapa automatiskt användare som loggar in från OIDC för första gången. Inaktivera för att endast tillåta befintliga användare att logga in via OIDC. | SANN |
default['firezone']['autentication']['disable_vpn_on_oidc_error'] | Inaktivera en användares VPN om ett fel upptäcks vid försök att uppdatera deras OIDC-token. | FALSK |
default['firezone']['autentication']['oidc'] | OpenID Connect config, i formatet {“provider” => [config…]} – Se OpenIDConnect-dokumentation för konfigurationsexempel. | {} |
default['firezone']['nginx']['enabled'] | Aktivera eller inaktivera den medföljande nginx-servern. | SANN |
default['firezone']['nginx']['ssl_port'] | HTTPS lyssningsport. | 443 |
default['firezone']['nginx']['katalog'] | Katalog för att lagra Firezone-relaterad nginx virtuell värdkonfiguration. | “#{node['firezone']['var_directory']}/nginx/etc” |
default['firezone']['nginx']['log_directory'] | Katalog för att lagra Firezone-relaterade nginx-loggfiler. | “#{node['firezone']['log_directory']}/nginx” |
default['firezone']['nginx']['log_rotation']['file_maxbytes'] | Filstorlek för att rotera Nginx-loggfiler. | 104857600 |
default['firezone']['nginx']['log_rotation']['num_to_keep'] | Antal Firezone nginx-loggfiler att behålla innan de kasseras. | 10 |
default['firezone']['nginx']['log_x_forwarded_for'] | Om Firezone nginx x-forwarded-for header ska loggas. | SANN |
default['firezone']['nginx']['hsts_header']['enabled'] | SANN | |
default['firezone']['nginx']['hsts_header']['include_subdomains'] | Aktivera eller inaktivera includeSubDomains för HSTS-huvudet. | SANN |
default['firezone']['nginx']['hsts_header']['max_age'] | Max ålder för HSTS-huvudet. | 31536000 |
default['firezone']['nginx']['redirect_to_canonical'] | Om webbadresser ska omdirigeras till det kanoniska FQDN som anges ovan | FALSK |
default['firezone']['nginx']['cache']['enabled'] | Aktivera eller inaktivera Firezone nginx-cachen. | FALSK |
default['firezone']['nginx']['cache']['katalog'] | Katalog för Firezone nginx cache. | “#{node['firezone']['var_directory']}/nginx/cache” |
default['firezone']['nginx']['user'] | Firezone nginx-användare. | nod['firezone']['user'] |
default['firezone']['nginx']['grupp'] | Firezone nginx grupp. | nod['brandzon']['grupp'] |
default['firezone']['nginx']['dir'] | nginx-konfigurationskatalog på toppnivå. | nod['firezone']['nginx']['katalog'] |
default['firezone']['nginx']['log_dir'] | nginx-loggkatalog på toppnivå. | node['firezone']['nginx']['log_directory'] |
default['firezone']['nginx']['pid'] | Plats för nginx pid-fil. | "#{node['firezone']['nginx']['katalog']}/nginx.pid” |
default['firezone']['nginx']['daemon_disable'] | Inaktivera nginx-demonläget så att vi kan övervaka det istället. | SANN |
default['firezone']['nginx']['gzip'] | Slå på eller av nginx gzip-komprimering. | på' |
default['firezone']['nginx']['gzip_static'] | Slå på eller av nginx gzip-komprimering för statiska filer. | av' |
default['firezone']['nginx']['gzip_http_version'] | HTTP-version att använda för att visa statiska filer. | 1.0 ' |
default['firezone']['nginx']['gzip_comp_level'] | nginx gzip komprimeringsnivå. | 2 ' |
default['firezone']['nginx']['gzip_proxied'] | Aktiverar eller inaktiverar gzipping av svar för fullmaktsbegäranden beroende på begäran och svaret. | några' |
default['firezone']['nginx']['gzip_vary'] | Aktiverar eller inaktiverar infogning av svarshuvudet "Vary: Accept-Encoding". | av' |
default['firezone']['nginx']['gzip_buffers'] | Ställer in antalet och storleken på buffertar som används för att komprimera ett svar. Om noll används nginx default. | noll |
default['firezone']['nginx']['gzip_types'] | MIME-typer för att aktivera gzip-komprimering för. | ['text/plain', 'text/css','application/x-javascript', 'text/xml', 'application/xml', 'application/rss+xml', 'application/atom+xml', ' text/javascript', 'application/javascript', 'application/json'] |
default['firezone']['nginx']['gzip_min_length'] | Minsta fillängd för att aktivera fil-gzip-komprimering för. | 1000 |
default['firezone']['nginx']['gzip_disable'] | User-agent matcher att inaktivera gzip-komprimering för. | MSIE [1-6]\.' |
default['firezone']['nginx']['keepalive'] | Aktiverar cache för anslutning till uppströmsservrar. | på' |
default['firezone']['nginx']['keepalive_timeout'] | Timeout i sekunder för keepalive-anslutning till uppströmsservrar. | 65 |
default['firezone']['nginx']['worker_processes'] | Antal nginx-arbetarprocesser. | nod['cpu'] && node['cpu']['total'] ? nod['cpu']['total'] : 1 |
default['firezone']['nginx']['worker_connections'] | Max antal samtidiga anslutningar som kan öppnas av en arbetsprocess. | 1024 |
default['firezone']['nginx']['worker_rlimit_nofile'] | Ändrar gränsen för det maximala antalet öppna filer för arbetsprocesser. Använder nginx default om noll. | noll |
default['firezone']['nginx']['multi_accept'] | Om arbetare ska acceptera en anslutning i taget eller flera. | SANN |
default['firezone']['nginx']['event'] | Anger anslutningsbearbetningsmetoden som ska användas i nginx-händelser. | epoll' |
default['firezone']['nginx']['server_tokens'] | Aktiverar eller inaktiverar sändande nginx-version på felsidor och i svarsrubrikfältet "Server". | noll |
default['firezone']['nginx']['server_names_hash_bucket_size'] | Ställer in hinkstorleken för servernamnens hashtabeller. | 64 |
default['firezone']['nginx']['sendfile'] | Aktiverar eller inaktiverar användningen av nginx's sendfile(). | på' |
default['firezone']['nginx']['access_log_options'] | Ställer in alternativ för nginx-åtkomstlogg. | noll |
default['firezone']['nginx']['error_log_options'] | Ställer in alternativ för nginx-fellogg. | noll |
default['firezone']['nginx']['disable_access_log'] | Inaktiverar nginx-åtkomstlogg. | FALSK |
default['firezone']['nginx']['types_hash_max_size'] | nginx typer hash max storlek. | 2048 |
default['firezone']['nginx']['types_hash_bucket_size'] | nginx-typer hash-hinkstorlek. | 64 |
default['firezone']['nginx']['proxy_read_timeout'] | nginx proxy läs timeout. Ställ in på noll för att använda nginx standard. | noll |
default['firezone']['nginx']['client_body_buffer_size'] | nginx klientkroppsbuffertstorlek. Ställ in på noll för att använda nginx standard. | noll |
default['firezone']['nginx']['client_max_body_size'] | nginx klient max kroppsstorlek. | 250 m' |
default['firezone']['nginx']['default']['modules'] | Ange ytterligare nginx-moduler. | [] |
default['firezone']['nginx']['enable_rate_limiting'] | Aktivera eller inaktivera nginx-hastighetsbegränsning. | SANN |
default['firezone']['nginx']['rate_limiting_zone_name'] | Namn på Nginx hastighetsbegränsande zon. | eldzon' |
default['firezone']['nginx']['rate_limiting_backoff'] | Nginx hastighetsbegränsande backoff. | 10 m' |
default['firezone']['nginx']['rate_limit'] | Nginx hastighetsgräns. | 10r/s' |
default['firezone']['nginx']['ipv6'] | Tillåt nginx att lyssna efter HTTP-förfrågningar för IPv6 utöver IPv4. | SANN |
default['firezone']['postgresql']['enabled'] | Aktivera eller inaktivera medföljande Postgresql. Ställ in på false och fyll i databasalternativen nedan för att använda din egen Postgresql-instans. | SANN |
default['firezone']['postgresql']['användarnamn'] | Användarnamn för Postgresql. | nod['firezone']['user'] |
default['firezone']['postgresql']['data_directory'] | Postgresql datakatalog. | “#{node['firezone']['var_directory']}/postgresql/13.3/data” |
default['firezone']['postgresql']['log_directory'] | Postgresql loggkatalog. | “#{node['firezone']['log_directory']}/postgresql” |
default['firezone']['postgresql']['log_rotation']['file_maxbytes'] | Postgresql-loggfilens maximala storlek innan den roteras. | 104857600 |
default['firezone']['postgresql']['log_rotation']['num_to_keep'] | Antal Postgresql-loggfiler att behålla. | 10 |
default['firezone']['postgresql']['checkpoint_completion_target'] | Mål för slutförande av Postgresql checkpoint. | 0.5 |
default['firezone']['postgresql']['checkpoint_segments'] | Antal Postgresql-kontrollpunktsegment. | 3 |
default['firezone']['postgresql']['checkpoint_timeout'] | Postgresql checkpoint timeout. | 5 min' |
default['firezone']['postgresql']['checkpoint_warning'] | Postgresql checkpoint varningstid i sekunder. | 30-tal |
default['firezone']['postgresql']['effective_cache_size'] | Postgresql effektiv cachestorlek. | 128MB' |
default['firezone']['postgresql']['listen_address'] | Postgresql lyssna adress. | 127.0.0.1 ' |
default['firezone']['postgresql']['max_connections'] | Postgresql max-anslutningar. | 350 |
default['firezone']['postgresql']['md5_auth_cidr_addresses'] | Postgresql CIDR:er för att tillåta md5 auth. | ['127.0.0.1/32', '::1/128'] |
default['firezone']['postgresql']['port'] | Postgresql lyssna port. | 15432 |
default['firezone']['postgresql']['shared_buffers'] | Postgresql delade buffertar storlek. | “#{(nod['minne']['total'].to_i / 4) / 1024}MB” |
default['firezone']['postgresql']['shmmax'] | Postgresql shmmax i byte. | 17179869184 |
default['firezone']['postgresql']['shmall'] | Postgresql shmall i byte. | 4194304 |
default['firezone']['postgresql']['work_mem'] | Postgresql arbetsminnesstorlek. | 8MB' |
default['firezone']['databas']['user'] | Anger användarnamnet Firezone kommer att använda för att ansluta till databasen. | node['firezone']['postgresql']['användarnamn'] |
default['firezone']['databas']['lösenord'] | Om du använder en extern DB, anger lösenordet Firezone kommer att använda för att ansluta till DB. | ändra mig' |
default['firezone']['database']['name'] | Databas som Firezone kommer att använda. Kommer att skapas om det inte finns. | eldzon' |
default['firezone']['databas']['host'] | Databasvärd som Firezone kommer att ansluta till. | node['firezone']['postgresql']['listen_address'] |
default['firezone']['databas']['port'] | Databasport som Firezone kommer att ansluta till. | node['firezone']['postgresql']['port'] |
default['firezone']['databas']['pool'] | Databaspoolstorlek Firezone kommer att använda. | [10, Etc.nprocessorer].max |
default['firezone']['databas']['ssl'] | Om man ska ansluta till databasen över SSL. | FALSK |
default['firezone']['database']['ssl_opts'] | {} | |
default['firezone']['databas']['parametrar'] | {} | |
default['firezone']['databas']['extensions'] | Databastillägg för att aktivera. | { 'plpgsql' => sant, 'pg_trgm' => sant } |
default['firezone']['phoenix']['enabled'] | Aktivera eller inaktivera Firezone-webbapplikationen. | SANN |
default['firezone']['phoenix']['listen_address'] | Firezone webbapplikation lyssna adress. Detta kommer att vara uppströmslyssningsadressen som nginx proxar. | 127.0.0.1 ' |
default['firezone']['phoenix']['port'] | Firezone webbapplikation lyssna port. Detta kommer att vara uppströmsporten som nginx proxyservrar. | 13000 |
default['firezone']['phoenix']['log_directory'] | Firezone webbapplikationsloggkatalog. | “#{node['firezone']['log_directory']}/phoenix” |
default['firezone']['phoenix']['log_rotation']['file_maxbytes'] | Firezone-webbapplikationsloggfilstorlek. | 104857600 |
default['firezone']['phoenix']['log_rotation']['num_to_keep'] | Antal Firezone-webbapplikationsloggfiler att behålla. | 10 |
default['firezone']['phoenix']['crash_detection']['enabled'] | Aktivera eller inaktivera nedläggning av Firezone-webbapplikationen när en krasch upptäcks. | SANN |
default['firezone']['phoenix']['external_trusted_proxies'] | Lista över betrodda omvända proxyservrar formaterade som en matris med IP:er och/eller CIDR:er. | [] |
default['firezone']['phoenix']['private_clients'] | Lista över privata nätverks-HTTP-klienter, formaterad en uppsättning IP-adresser och/eller CIDR:er. | [] |
default['firezone']['wireguard']['enabled'] | Aktivera eller inaktivera paketerad WireGuard-hantering. | SANN |
default['firezone']['wireguard']['log_directory'] | Loggkatalog för medföljande WireGuard-hantering. | “#{node['firezone']['log_directory']}/wireguard” |
default['firezone']['wireguard']['log_rotation']['file_maxbytes'] | WireGuard loggfil max storlek. | 104857600 |
default['firezone']['wireguard']['log_rotation']['num_to_keep'] | Antal WireGuard-loggfiler att behålla. | 10 |
default['firezone']['wireguard']['interface_name'] | WireGuard-gränssnittsnamn. Att ändra denna parameter kan orsaka en tillfällig förlust av VPN-anslutning. | wg-firezone' |
default['firezone']['wireguard']['port'] | WireGuard lyssningsport. | 51820 |
default['firezone']['wireguard']['mtu'] | WireGuard-gränssnitt MTU för denna server och för enhetskonfigurationer. | 1280 |
default['firezone']['wireguard']['endpoint'] | WireGuard Endpoint att använda för att generera enhetskonfigurationer. Om noll, används som standard serverns offentliga IP-adress. | noll |
default['firezone']['wireguard']['dns'] | WireGuard DNS att använda för genererade enhetskonfigurationer. | 1.1.1.1, 1.0.0.1′ |
default['firezone']['wireguard']['allowed_ips'] | WireGuard AllowedIPs att använda för genererade enhetskonfigurationer. | 0.0.0.0/0, ::/0′ |
default['firezone']['wireguard']['persistent_keepalive'] | Standardinställningen PersistentKeepalive för genererade enhetskonfigurationer. Ett värde på 0 inaktiverar. | 0 |
default['firezone']['wireguard']['ipv4']['enabled'] | Aktivera eller inaktivera IPv4 för WireGuard-nätverk. | SANN |
default['firezone']['wireguard']['ipv4']['masquerade'] | Aktivera eller inaktivera maskerad för paket som lämnar IPv4-tunneln. | SANN |
default['firezone']['wireguard']['ipv4']['nätverk'] | WireGuard nätverk IPv4 adresspool. | 10.3.2.0/24 ′ |
default['firezone']['wireguard']['ipv4']['adress'] | WireGuard-gränssnitt IPv4-adress. Måste vara inom WireGuard adresspool. | 10.3.2.1 ' |
default['firezone']['wireguard']['ipv6']['enabled'] | Aktivera eller inaktivera IPv6 för WireGuard-nätverk. | SANN |
default['firezone']['wireguard']['ipv6']['masquerade'] | Aktivera eller inaktivera maskerad för paket som lämnar IPv6-tunneln. | SANN |
default['firezone']['wireguard']['ipv6']['nätverk'] | WireGuard nätverk IPv6 adresspool. | fd00::3:2:0/120′ |
default['firezone']['wireguard']['ipv6']['adress'] | IPv6-adress för WireGuard-gränssnitt. Måste finnas inom IPv6-adresspoolen. | fd00::3:2:1′ |
default['firezone']['runit']['svlogd_bin'] | Kör svlogd bin plats. | “#{node['firezone']['install_directory']}/embedded/bin/svlogd” |
default['firezone']['ssl']['katalog'] | SSL-katalog för lagring av genererade certifikat. | /var/opt/firezone/ssl' |
default['firezone']['ssl']['email_address'] | E-postadress att använda för självsignerade certifikat och meddelanden om förnyelse av ACME-protokoll. | du@exempel.com' |
default['firezone']['ssl']['acme']['enabled'] | Aktivera ACME för automatisk SSL-certifiering. Inaktivera detta för att förhindra att Nginx lyssnar på port 80. Se här. för mer instruktioner. | FALSK |
default['firezone']['ssl']['acme']['server'] | letsencrypt | |
default['firezone']['ssl']['acme']['keylength'] | ec-256 | |
default['brandzon']['ssl']['certifikat'] | Sökväg till certifikatfilen för din FQDN. Åsidosätter ACME-inställningen ovan om det anges. Om både ACME och detta är noll kommer ett självsignerat certifikat att genereras. | noll |
default['firezone']['ssl']['certificate_key'] | Sökväg till certifikatfilen. | noll |
default['firezone']['ssl']['ssl_dhparam'] | nginx ssl dh_param. | noll |
default['firezone']['ssl']['country_name'] | Landsnamn för självsignerat certifikat. | USA' |
default['firezone']['ssl']['state_name'] | Ange namn för självsignerat certifikat. | CA ' |
default['firezone']['ssl']['locality_name'] | Ortsnamn för självsignerat certifikat. | San Francisco' |
default['firezone']['ssl']['company_name'] | Företagsnamn självsignerat certifikat. | Mitt företag' |
default['firezone']['ssl']['organizational_unit_name'] | Organisationsenhetsnamn för självsignerat certifikat. | Operationer' |
default['firezone']['ssl']['ciphers'] | SSL-chiffer för nginx att använda. | 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'] | SSL-chiffer för FIP-läge. | FIPS@STRENGTH:!aNULL:!eNULL' |
default['brandzon']['ssl']['protokoll'] | TLS-protokoll att använda. | TLSv1 TLSv1.1 TLSv1.2′ |
default['firezone']['ssl']['session_cache'] | SSL-sessionscache. | shared:SSL:4m' |
default['firezone']['ssl']['session_timeout'] | SSL-session timeout. | 5 m' |
default['firezone']['robots_allow'] | nginx-robotar tillåter. | /' |
default['firezone']['robots_disallow'] | nginx-robotar tillåter inte. | noll |
default['firezone']['outbound_email']['from'] | Utgående e-post från adress. | noll |
default['firezone']['outbound_email']['provider'] | Utgående e-postleverantör. | noll |
default['firezone']['outbound_email']['configs'] | Konfigurationer för utgående e-postleverantör. | se omnibus/kokböcker/firezone/attributes/default.rb |
default['firezone']['telemetry']['enabled'] | Aktivera eller inaktivera anonymiserad produkttelemetri. | SANN |
default['firezone']['connectivity_checks']['enabled'] | Aktivera eller inaktivera tjänsten Firezone Connectivity Checks. | SANN |
default['firezone']['connectivity_checks']['interval'] | Intervall mellan anslutningskontroller i sekunder. | 3_600 |
________________________________________________________________
Här hittar du en lista över filer och kataloger relaterade till en typisk Firezone-installation. Dessa kan ändras beroende på ändringar i din konfigurationsfil.
bana | beskrivning |
/var/opt/firezone | Katalog på toppnivå som innehåller data och genererad konfiguration för Firezone-paketerade tjänster. |
/opt/brandzon | Katalog på toppnivå som innehåller inbyggda bibliotek, binärer och runtime-filer som behövs av Firezone. |
/usr/bin/firezone-ctl | firezone-ctl-verktyget för att hantera din Firezone-installation. |
/etc/systemd/system/firezone-runsvdir-start.service | systemd-enhetsfil för att starta Firezone runsvdir-övervakarprocessen. |
/etc/firezone | Firezone konfigurationsfiler. |
__________________________________________________________
Den här sidan var tom i dokument
_____________________________________________________________
Följande nftables brandväggsmall kan användas för att säkra servern som kör Firezone. Mallen gör vissa antaganden; du kan behöva justera reglerna för att passa ditt användningsfall:
Firezone konfigurerar sina egna nftables-regler för att tillåta/avvisa trafik till destinationer konfigurerade i webbgränssnittet och för att hantera utgående NAT för klienttrafik.
Om du använder brandväggsmallen nedan på en redan körande server (inte vid uppstart) kommer Firezone-reglerna att rensas. Detta kan ha säkerhetskonsekvenser.
För att kringgå detta starta om phoenix-tjänsten:
firezone-ctl starta om phoenix
#!/usr/sbin/nft -f
## Rensa/spola alla befintliga regler
spola regeluppsättningen
############################## VARIABLER ################# ###############
## Namn på Internet/WAN-gränssnitt
definiera DEV_WAN = eth0
## WireGuard-gränssnittsnamn
definiera DEV_WIREGUARD = wg-brandzon
## WireGuard lyssningsport
definiera WIREGUARD_PORT = 51820
############################# VARIABLER SLUT ################## ############
# Huvudinet-familjens filtreringstabell
tabell inet filter {
# Regler för vidarebefordrad trafik
# Denna kedja bearbetas före Firezone forward-kedjan
kedja fram {
typ filter krok framåt prioritetsfilter – 5; policy acceptera
}
# Regler för ingående trafik
chain input {
typ filter krok input prioritetsfilter; politiken faller
## Tillåt inkommande trafik till loopback-gränssnittet
om jag
acceptera \
kommentar "Tillåt all trafik in från loopback-gränssnittet"
## Tillåt etablerade och relaterade anslutningar
ct tillstånd etablerat, relaterat \
acceptera \
kommentar "Tillåt etablerade/relaterade anslutningar"
## Tillåt inkommande WireGuard-trafik
iIF $DEV_WAN udp dport $WIREGUARD_PORT \
disken \
acceptera \
kommentar "Tillåt inkommande WireGuard-trafik"
## Logga och släpp nya TCP icke-SYN-paket
tcp flaggor != syn ct state new \
gränsvärde 100/minut skur 150 paket \
log prefix “IN – Nytt !SYN: “ \
kommentar "Taxgränsloggning för nya anslutningar som inte har SYN TCP-flaggan inställd"
tcp flaggor != syn ct state new \
disken \
släppa \
kommentar "Släpp nya anslutningar som inte har SYN TCP-flaggan inställd"
## Logga och släpp TCP-paket med ogiltig fin/syn-flagga
tcp flaggor & (fin|syn) == (fin|syn) \
gränsvärde 100/minut skur 150 paket \
log prefix "IN – TCP FIN|SIN: " \
kommentar "Loggning av hastighetsgräns för TCP-paket med ogiltig fin/syn-flagga inställd"
tcp flaggor & (fin|syn) == (fin|syn) \
disken \
släppa \
kommentar "Släpp TCP-paket med ogiltig fin/syn-flaggauppsättning"
## Logga och släpp TCP-paket med ogiltig syn/rst-flagga
tcp flaggor & (syn|rst) == (syn|rst) \
gränsvärde 100/minut skur 150 paket \
log prefix “IN – TCP SYN|RST: “ \
kommentar "Loggning av hastighetsgräns för TCP-paket med ogiltig syn/rst-flagga inställd"
tcp flaggor & (syn|rst) == (syn|rst) \
disken \
släppa \
kommentar "Släpp TCP-paket med ogiltig syn/rst-flaggauppsättning"
## Logga och släpp ogiltiga TCP-flaggor
tcp flaggor & (fin|syn|rst|psh|ack|urg) < (fin) \
gränsvärde 100/minut skur 150 paket \
log prefix "IN - FIN:" \
kommentar "Loggning av hastighetsgräns för ogiltiga TCP-flaggor (fin|syn|rst|psh|ack|urg) < (fin)"
tcp flaggor & (fin|syn|rst|psh|ack|urg) < (fin) \
disken \
släppa \
kommentar "Släpp TCP-paket med flaggor (fin|syn|rst|psh|ack|urg) < (fin)"
## Logga och släpp ogiltiga TCP-flaggor
tcp flaggor & (fin|syn|rst|psh|ack|urg) == (fin|psh|urg) \
gränsvärde 100/minut skur 150 paket \
log prefix “IN – FIN|PSH|URG:” \
kommentar "Loggning av hastighetsgräns för ogiltiga TCP-flaggor (fin|syn|rst|psh|ack|urg) == (fin|psh|urg)"
tcp flaggor & (fin|syn|rst|psh|ack|urg) == (fin|psh|urg) \
disken \
släppa \
kommentar "Släpp TCP-paket med flaggor (fin|syn|rst|psh|ack|urg) == (fin|psh|urg)"
## Släpp trafik med ogiltigt anslutningstillstånd
ct-tillstånd ogiltig \
gränsvärde 100/minut skur 150 paket \
log flaggar alla prefix "IN - Ogiltig: " \
kommentar "Taxgränsloggning för trafik med ogiltigt anslutningstillstånd"
ct-tillstånd ogiltig \
disken \
släppa \
kommentar "Släpp trafik med ogiltigt anslutningstillstånd"
## Tillåt IPv4 ping/ping-svar men hastighetsbegränsning till 2000 PPS
ip protokoll icmp icmp typ { echo-reply, echo-request } \
gränsvärde 2000/sekund \
disken \
acceptera \
kommentar "Tillåt inkommande IPv4-eko (ping) begränsat till 2000 PPS"
## Tillåt alla andra inkommande IPv4 ICMP
ip protokoll icmp \
disken \
acceptera \
kommentar "Tillåt alla andra IPv4 ICMP"
## Tillåt IPv6 ping/ping-svar men hastighetsbegränsning till 2000 PPS
icmpv6 typ { echo-reply, echo-request } \
gränsvärde 2000/sekund \
disken \
acceptera \
kommentar "Tillåt inkommande IPv6-eko (ping) begränsat till 2000 PPS"
## Tillåt alla andra inkommande IPv6 ICMP
meta l4proto { icmpv6 } \
disken \
acceptera \
kommentar "Tillåt alla andra IPv6 ICMP"
## Tillåt inkommande traceroute UDP-portar men begränsa till 500 PPS
udp dport 33434-33524 \
gränsvärde 500/sekund \
disken \
acceptera \
kommentar "Tillåt inkommande UDP traceroute begränsad till 500 PPS"
## Tillåt inkommande SSH
tcp dport ssh ct state new \
disken \
acceptera \
kommentar "Tillåt inkommande SSH-anslutningar"
## Tillåt inkommande HTTP och HTTPS
tcp dport { http, https } ct state new \
disken \
acceptera \
kommentar "Tillåt inkommande HTTP- och HTTPS-anslutningar"
## Logga all oöverträffad trafik men hastighetsbegränsa loggningen till maximalt 60 meddelanden/minut
## Standardpolicyn kommer att tillämpas på omatchad trafik
gränsvärde 60/minut skur 100 paket \
log prefix "IN - Släpp: " \
kommentar "Logga all oöverträffad trafik"
## Räkna den oöverträffade trafiken
disken \
kommentar "Räkna all oöverträffad trafik"
}
# Regler för utgående trafik
kedjeutgång {
typ filter krokutgång prioritetsfilter; politiken faller
## Tillåt utgående trafik till loopback-gränssnitt
oif lo \
acceptera \
kommentar "Tillåt all trafik ut till loopback-gränssnittet"
## Tillåt etablerade och relaterade anslutningar
ct tillstånd etablerat, relaterat \
disken \
acceptera \
kommentar "Tillåt etablerade/relaterade anslutningar"
## Tillåt utgående WireGuard-trafik innan anslutningar med dåligt tillstånd avbryts
oif $DEV_WAN udp sport $WIREGUARD_PORT \
disken \
acceptera \
kommentar "Tillåt WireGuard utgående trafik"
## Släpp trafik med ogiltigt anslutningstillstånd
ct-tillstånd ogiltig \
gränsvärde 100/minut skur 150 paket \
log flaggar alla prefix "UT - Ogiltigt: " \
kommentar "Taxgränsloggning för trafik med ogiltigt anslutningstillstånd"
ct-tillstånd ogiltig \
disken \
släppa \
kommentar "Släpp trafik med ogiltigt anslutningstillstånd"
## Tillåt alla andra utgående IPv4 ICMP
ip protokoll icmp \
disken \
acceptera \
kommentar "Tillåt alla IPv4 ICMP-typer"
## Tillåt alla andra utgående IPv6 ICMP
meta l4proto { icmpv6 } \
disken \
acceptera \
kommentar "Tillåt alla IPv6 ICMP-typer"
## Tillåt utgående traceroute UDP-portar men begränsa till 500 PPS
udp dport 33434-33524 \
gränsvärde 500/sekund \
disken \
acceptera \
kommentar "Tillåt utgående UDP-spårväg begränsad till 500 PPS"
## Tillåt utgående HTTP- och HTTPS-anslutningar
tcp dport { http, https } ct state new \
disken \
acceptera \
kommentar "Tillåt utgående HTTP- och HTTPS-anslutningar"
## Tillåt utgående SMTP-inlämning
tcp dport submission ct state new \
disken \
acceptera \
kommentar "Tillåt utgående SMTP-inlämning"
## Tillåt utgående DNS-förfrågningar
udp dport 53 \
disken \
acceptera \
kommentar "Tillåt utgående UDP DNS-förfrågningar"
tcp dport 53 \
disken \
acceptera \
kommentar "Tillåt utgående TCP DNS-förfrågningar"
## Tillåt utgående NTP-förfrågningar
udp dport 123 \
disken \
acceptera \
kommentar "Tillåt utgående NTP-förfrågningar"
## Logga all oöverträffad trafik men hastighetsbegränsa loggningen till maximalt 60 meddelanden/minut
## Standardpolicyn kommer att tillämpas på omatchad trafik
gränsvärde 60/minut skur 100 paket \
log prefix "UT – Släpp: " \
kommentar "Logga all oöverträffad trafik"
## Räkna den oöverträffade trafiken
disken \
kommentar "Räkna all oöverträffad trafik"
}
}
# Huvud NAT-filtreringstabell
tabell inet nat {
# Regler för fördirigering av NAT-trafik
kedja förvägning {
typ nat hook prerouting priority dstnat; policy acceptera
}
# Regler för NAT-trafik efter routing
# Den här tabellen bearbetas före Firezone post-routing-kedjan
chain postrouting {
typ nat hook postrouting priority srcnat – 5; policy acceptera
}
}
Brandväggen bör lagras på lämplig plats för Linux-distributionen som körs. För Debian/Ubuntu är detta /etc/nftables.conf och för RHEL är detta /etc/sysconfig/nftables.conf.
nftables.service måste konfigureras för att starta vid uppstart (om inte redan) inställd:
systemctl aktivera nftables.service
Om du gör några ändringar i brandväggsmallen kan syntaxen valideras genom att köra check-kommandot:
nft -f /sökväg/till/nftables.conf -c
Se till att validera att brandväggen fungerar som förväntat eftersom vissa nftables-funktioner kanske inte är tillgängliga beroende på vilken version som körs på servern.
_______________________________________________________________
Det här dokumentet presenterar en översikt över telemetrin Firezone samlar in från din egen värd instans och hur du inaktiverar den.
Brandzon därefter samman på telemetri för att prioritera vår färdplan och optimera de tekniska resurserna vi har för att göra Firezone bättre för alla.
Telemetrin vi samlar in syftar till att svara på följande frågor:
Det finns tre huvudsakliga platser där telemetri samlas in i Firezone:
I vart och ett av dessa tre sammanhang samlar vi in den minsta mängd data som krävs för att svara på frågorna i avsnittet ovan.
Admin-e-postmeddelanden samlas bara in om du uttryckligen väljer att ta del av produktuppdateringar. Annars är personligt identifierbar information aldrig samlade in.
Firezone lagrar telemetri i en självvärderad instans av PostHog som körs i ett privat Kubernetes-kluster, endast tillgängligt för Firezone-teamet. Här är ett exempel på en telemetrihändelse som skickas från din instans av Firezone till vår telemetriserver:
{
"id": “0182272d-0b88-0000-d419-7b9a413713f1”,
"tidsstämpel": “2022-07-22T18:30:39.748000+00:00”,
"händelse": "fz_http_started",
"distinct_id": “1ec2e794-1c3e-43fc-a78f-1db6d1a37f54”,
"egenskaper"{
"$geoip_city_name": "Ashburn",
"$geoip_continent_code": "NA",
"$geoip_continent_name": "Nordamerika",
"$geoip_country_code": "USA",
"$geoip_country_name": "Förenta staterna",
"$geoip_latitude": 39.0469,
"$geoip_longitude": -77.4903,
“$geoip_postal_code”: "20149",
"$geoip_subdivision_1_code": "VA",
"$geoip_subdivision_1_name": “Virginia”,
"$geoip_time_zone": "Amerika/New_York",
"$ip": "52.200.241.107",
"$plugins_deferred": []
"$plugins_failed": []
"$plugins_succeeded": [
"GeoIP (3)"
],
"distinct_id": “1zc2e794-1c3e-43fc-a78f-1db6d1a37f54”,
"fqdn": "awsdemo.firezone.dev",
"kärna_version": "linux 5.13.0",
"version": "0.4.6"
},
"elements_chain": ""
}
ANMÄRKNINGAR
Firezones utvecklingsteam därefter samman på produktanalys för att göra Firezone bättre för alla. Att låta telemetri vara aktiverat är det enskilt mest värdefulla bidraget du kan göra till Firezones utveckling. Som sagt, vi förstår att vissa användare har högre integritets- eller säkerhetskrav och skulle föredra att inaktivera telemetri helt och hållet. Om det är du, fortsätt läsa.
Telemetri är aktiverat som standard. För att helt inaktivera produkttelemetri, ställ in följande konfigurationsalternativ till false i /etc/firezone/firezone.rb och kör sudo firezone-ctl reconfigure för att hämta ändringarna.
standard["brandzon"]["telemetri"]['aktiverad'🇧🇷 falsk
Det kommer att inaktivera all produkttelemetri helt.
Hagelbytes
9511 Queens Guard Ct.
Laurel, MD 20723
Telefon: (732) 771-9995
E-post: info@hailbytes.com