Eine Schritt-für-Schritt-Anleitung zum Bereitstellen von Hailbytes VPN mit der Firezone-GUI finden Sie hier.
Verwalten: Das Einrichten der Serverinstanz steht in direktem Zusammenhang mit diesem Teil.
Benutzerhandbücher: Hilfreiche Dokumente, die Ihnen die Verwendung von Firezone beibringen und typische Probleme lösen können. Nachdem der Server erfolgreich bereitgestellt wurde, lesen Sie diesen Abschnitt.
Split-Tunneling: Verwenden Sie das VPN, um Datenverkehr nur an bestimmte IP-Bereiche zu senden.
Whitelisting: Legen Sie die statische IP-Adresse eines VPN-Servers fest, um Whitelisting zu verwenden.
Reverse-Tunnel: Erstellen Sie Tunnel zwischen mehreren Peers mithilfe von Reverse-Tunneln.
Wir helfen Ihnen gerne, wenn Sie Hilfe bei der Installation, Anpassung oder Nutzung von Hailbytes VPN benötigen.
Bevor Benutzer Gerätekonfigurationsdateien erstellen oder herunterladen können, kann Firezone so konfiguriert werden, dass eine Authentifizierung erforderlich ist. Benutzer müssen sich möglicherweise auch regelmäßig neu authentifizieren, um ihre VPN-Verbindung aktiv zu halten.
Obwohl die Standard-Anmeldemethode von Firezone lokale E-Mail und Passwort ist, kann sie auch in jeden standardisierten OpenID Connect (OIDC)-Identitätsanbieter integriert werden. Benutzer können sich jetzt mit ihren Anmeldeinformationen von Okta, Google, Azure AD oder privaten Identitätsanbietern bei Firezone anmelden.
Integrieren Sie einen generischen OIDC-Anbieter
Die von Firezone benötigten Konfigurationsparameter, um SSO über einen OIDC-Anbieter zu ermöglichen, sind im folgenden Beispiel dargestellt. Unter /etc/firezone/firezone.rb finden Sie die Konfigurationsdatei. Führen Sie firezone-ctl reconfigure und firezone-ctl restart aus, um die Anwendung zu aktualisieren und Änderungen zu übernehmen.
# Dies ist ein Beispiel mit Google und Okta als SSO-Identitätsanbieter.
# Mehrere OIDC-Konfigurationen können derselben Firezone-Instanz hinzugefügt werden.
# Firezone kann das VPN eines Benutzers deaktivieren, wenn beim Versuch ein Fehler erkannt wird
# um ihr access_token zu aktualisieren. Dies funktioniert nachweislich für Google, Okta und
# Azure SSO und wird verwendet, um das VPN eines Benutzers automatisch zu trennen, wenn er entfernt wird
# vom OIDC-Anbieter. Lassen Sie dies bei Ihrem OIDC-Anbieter deaktiviert
# hat Probleme beim Aktualisieren von Zugriffstoken, da es a unerwartet unterbrechen könnte
# VPN-Sitzung des Nutzers.
default['firezone']['authentication']['disable_vpn_on_oidc_error'] = false
default['firezone']['authentication']['oidc'] = {
Google: {
discovery_document_uri: „https://accounts.google.com/.well-known/openid-configuration“,
Kunden ID: " “,
client_secret: „ “,
Umleitungs-URI: „https://instance-id.yourfirezone.com/auth/oidc/google/callback/“,
Antworttyp: "Code",
Geltungsbereich: „openid-E-Mail-Profil“,
Bezeichnung: „Google“
},
Okta: {
Discovery_document_uri: „https:// /.well-known/openid-configuration“,
Kunden ID: " “,
client_secret: „ “,
Umleitungs-URI: „https://instance-id.yourfirezone.com/auth/oidc/okta/callback/“,
Antworttyp: "Code",
Geltungsbereich: „openid E-Mail-Profil offline_access“,
Label: „Okta“
}
}
Für die Integration sind folgende Konfigurationseinstellungen erforderlich:
Für jeden OIDC-Anbieter wird eine entsprechende hübsche URL zum Weiterleiten an die Anmelde-URL des konfigurierten Anbieters erstellt. Für die obige Beispiel-OIDC-Konfiguration lauten die URLs:
Anbieter, für die wir Dokumentation haben:
Wenn Ihr Identitätsanbieter über einen generischen OIDC-Konnektor verfügt und oben nicht aufgeführt ist, finden Sie in seiner Dokumentation Informationen zum Abrufen der erforderlichen Konfigurationseinstellungen.
Die Einstellung unter Einstellungen/Sicherheit kann so geändert werden, dass eine regelmäßige Neuauthentifizierung erforderlich ist. Dies kann verwendet werden, um die Anforderung durchzusetzen, dass Benutzer Firezone regelmäßig betreten müssen, um ihre VPN-Sitzung fortzusetzen.
Die Sitzungsdauer kann zwischen einer Stunde und neunzig Tagen konfiguriert werden. Indem Sie dies auf Nie setzen, können Sie VPN-Sitzungen jederzeit aktivieren. Dies ist die Norm.
Ein Benutzer muss seine VPN-Sitzung beenden und sich beim Firezone-Portal anmelden, um eine abgelaufene VPN-Sitzung erneut zu authentifizieren (URL wird während der Bereitstellung angegeben).
Sie können Ihre Sitzung erneut authentifizieren, indem Sie die genauen Client-Anweisungen befolgen, die Sie hier finden.
Status der VPN-Verbindung
Die Tabellenspalte „VPN-Verbindung“ auf der Seite „Benutzer“ zeigt den Verbindungsstatus eines Benutzers an. Dies sind die Verbindungsstatus:
ENABLED – Die Verbindung ist aktiviert.
DEAKTIVIERT – Die Verbindung wurde durch einen Administrator oder einen OIDC-Aktualisierungsfehler deaktiviert.
ABGELAUFEN – Die Verbindung wurde aufgrund des Ablaufs der Authentifizierung deaktiviert oder ein Benutzer hat sich nicht zum ersten Mal angemeldet.
Über den allgemeinen OIDC-Konnektor ermöglicht Firezone Single Sign-On (SSO) mit Google Workspace und Cloud Identity. Diese Anleitung zeigt Ihnen, wie Sie die unten aufgeführten Konfigurationsparameter erhalten, die für die Integration notwendig sind:
1. OAuth-Konfigurationsbildschirm
Wenn Sie zum ersten Mal eine neue OAuth-Client-ID erstellen, werden Sie aufgefordert, einen Zustimmungsbildschirm zu konfigurieren.
*Wählen Sie Intern als Benutzertyp aus. Dadurch wird sichergestellt, dass nur Konten von Nutzern in Ihrer Google Workspace-Organisation Gerätekonfigurationen erstellen können. Wählen Sie NICHT Extern aus, es sei denn, Sie möchten jedem mit einem gültigen Google-Konto ermöglichen, Gerätekonfigurationen zu erstellen.
Auf dem App-Informationsbildschirm:
2. Erstellen Sie OAuth-Client-IDs
Dieser Abschnitt basiert auf der eigenen Dokumentation von Google OAuth 2.0 einrichten.
Besuchen Sie die Google Cloud Console Anmeldeseite Klicken Sie auf der Seite + Anmeldeinformationen erstellen und wählen Sie OAuth-Client-ID aus.
Auf dem OAuth-Client-ID-Erstellungsbildschirm:
Nachdem Sie die OAuth-Client-ID erstellt haben, erhalten Sie eine Client-ID und ein Client-Geheimnis. Diese werden im nächsten Schritt zusammen mit der Weiterleitungs-URI verwendet.
Bearbeiten /etc/firezone/firezone.rb um die folgenden Optionen einzuschließen:
# Verwendung von Google als SSO-Identitätsanbieter
default['firezone']['authentication']['oidc'] = {
Google: {
discovery_document_uri: „https://accounts.google.com/.well-known/openid-configuration“,
Kunden ID: " “,
client_secret: „ “,
Umleitungs-URI: „https://instance-id.yourfirezone.com/auth/oidc/google/callback/“,
Antworttyp: "Code",
Geltungsbereich: „openid-E-Mail-Profil“,
Bezeichnung: „Google“
}
}
Führen Sie firezone-ctl reconfigure und firezone-ctl restart aus, um die Anwendung zu aktualisieren. Sie sollten jetzt eine Schaltfläche „Mit Google anmelden“ unter der Root-Firezone-URL sehen.
Firezone verwendet den generischen OIDC-Konnektor, um Single Sign-On (SSO) mit Okta zu erleichtern. Dieses Tutorial zeigt Ihnen, wie Sie die unten aufgeführten Konfigurationsparameter erhalten, die für die Integration notwendig sind:
Dieser Abschnitt des Leitfadens basiert auf Oktas Dokumentation.
Gehen Sie in der Admin-Konsole zu Anwendungen > Anwendungen und klicken Sie auf App-Integration erstellen. Legen Sie die Anmeldemethode auf OICD – OpenID Connect und den Anwendungstyp auf Webanwendung fest.
Konfigurieren Sie diese Einstellungen:
Sobald die Einstellungen gespeichert sind, erhalten Sie eine Client-ID, ein Client-Geheimnis und eine Okta-Domäne. Diese 3 Werte werden in Schritt 2 verwendet, um Firezone zu konfigurieren.
Bearbeiten /etc/firezone/firezone.rb um die folgenden Optionen einzuschließen. Dein Discovery_document_url wird sein /.well-known/openid-configuration an das Ende Ihrer angehängt okta_domain.
# Verwendung von Okta als SSO-Identitätsanbieter
default['firezone']['authentication']['oidc'] = {
Okta: {
Discovery_document_uri: „https:// /.well-known/openid-configuration“,
Kunden ID: " “,
client_secret: „ “,
Umleitungs-URI: „https://instance-id.yourfirezone.com/auth/oidc/okta/callback/“,
Antworttyp: "Code",
Geltungsbereich: „openid E-Mail-Profil offline_access“,
Label: „Okta“
}
}
Führen Sie firezone-ctl reconfigure und firezone-ctl restart aus, um die Anwendung zu aktualisieren. Sie sollten jetzt die Schaltfläche Mit Okta anmelden unter der Stamm-Firezone-URL sehen.
Die Benutzer, die auf die Firezone-App zugreifen können, können von Okta eingeschränkt werden. Rufen Sie dazu die Seite „Zuweisungen“ der Firezone-App-Integration Ihrer Okta-Admin-Konsole auf.
Über den generischen OIDC-Connector ermöglicht Firezone Single Sign-On (SSO) mit Azure Active Directory. Dieses Handbuch zeigt Ihnen, wie Sie die unten aufgeführten Konfigurationsparameter erhalten, die für die Integration notwendig sind:
Dieser Leitfaden stammt aus der Azure Active Directory-Dokumentation.
Wechseln Sie zur Azure Active Directory-Seite des Azure-Portals. Wählen Sie die Menüoption Verwalten, wählen Sie Neue Registrierung und registrieren Sie sich dann, indem Sie die folgenden Informationen angeben:
Öffnen Sie nach der Registrierung die Detailansicht der Bewerbung und kopieren Sie die Anwendungs-ID (Client-ID). Dies ist der client_id-Wert. Öffnen Sie als Nächstes das Endpunktmenü, um die abzurufen OpenID Connect-Metadatendokument. Dies ist der Wert discovery_document_uri.
Erstellen Sie ein neues Client-Geheimnis, indem Sie im Menü „Verwalten“ auf die Option „Zertifikate und Geheimnisse“ klicken. Kopieren Sie das Client-Geheimnis; Der Client-Secret-Wert ist dies.
Wählen Sie zuletzt den Link API-Berechtigungen im Menü Verwalten aus und klicken Sie auf Berechtigung hinzufügen, Und wählen Sie Microsoft Graph. Hinzufügen , openid, offline_zugriff funktioniert Profil zu den erforderlichen Berechtigungen.
Bearbeiten /etc/firezone/firezone.rb um die folgenden Optionen einzuschließen:
# Verwendung von Azure Active Directory als SSO-Identitätsanbieter
default['firezone']['authentication']['oidc'] = {
azurblau: {
Discovery_document_uri: „https://login.microsoftonline.com/ /v2.0/.well-known/openid-configuration“,
Kunden ID: " “,
client_secret: „ “,
Umleitungs-URI: „https://instance-id.yourfirezone.com/auth/oidc/azure/callback/“,
Antworttyp: "Code",
Geltungsbereich: „openid E-Mail-Profil offline_access“,
Etikett: „Azur“
}
}
Führen Sie firezone-ctl reconfigure und firezone-ctl restart aus, um die Anwendung zu aktualisieren. Sie sollten jetzt eine Schaltfläche Mit Azure anmelden unter der Stamm-Firezone-URL sehen.
Azure AD ermöglicht es Administratoren, den App-Zugriff auf eine bestimmte Gruppe von Benutzern in Ihrem Unternehmen zu beschränken. Weitere Informationen dazu finden Sie in der Dokumentation von Microsoft.
Chef Omnibus wird von Firezone verwendet, um Aufgaben zu verwalten, einschließlich Release-Paketierung, Prozessüberwachung, Protokollverwaltung und mehr.
Ruby-Code bildet die primäre Konfigurationsdatei, die sich unter /etc/firezone/firezone.rb befindet. Der Neustart von sudo firezone-ctl reconfigure nach Änderungen an dieser Datei bewirkt, dass Chef die Änderungen erkennt und sie auf das aktuelle Betriebssystem anwendet.
Eine vollständige Liste der Konfigurationsvariablen und ihrer Beschreibungen finden Sie in der Referenz zur Konfigurationsdatei.
Ihre Firezone-Instanz kann über die verwaltet werden firezone-ctl Befehl, wie unten gezeigt. Die meisten Unterbefehle müssen mit vorangestellt werden sudo.
root@demo:~# firezone-ctl
omnibus-ctl: Befehl (Unterbefehl)
Allgemeine Befehle:
reinigen
Löschen Sie *alle* Firezone-Daten und beginnen Sie von vorne.
Administrator erstellen oder zurücksetzen
Setzt das Passwort für den Administrator mit der standardmäßig angegebenen E-Mail-Adresse ['firezone']['admin_email'] zurück oder erstellt einen neuen Administrator, wenn diese E-Mail-Adresse nicht existiert.
Hilfe
Drucken Sie diese Hilfemeldung aus.
neu konfigurieren
Konfigurieren Sie die Anwendung neu.
Reset-Netzwerk
Setzt nftables, WireGuard-Schnittstelle und Routing-Tabelle auf die Firezone-Standardwerte zurück.
show-config
Zeigt die Konfiguration an, die durch Reconfigure generiert würde.
Teardown-Netzwerk
Entfernt die WireGuard-Schnittstelle und die Firezone-nftables-Tabelle.
Force-Cert-Renewal
Erneuerung des Zertifikats jetzt erzwingen, auch wenn es noch nicht abgelaufen ist.
Stop-Zertifikat-Erneuerung
Entfernt Cronjob, der Zertifikate erneuert.
Deinstallieren
Beenden Sie alle Prozesse und deinstallieren Sie den Prozess-Supervisor (Daten bleiben erhalten).
Version
Aktuelle Version von Firezone anzeigen
Dienstverwaltungsbefehle:
anmutig töten
Versuchen Sie einen eleganten Stopp, dann SIGKILL die gesamte Prozessgruppe.
hup
Senden Sie den Diensten ein HUP.
int
Senden Sie den Diensten eine INT.
töten
Senden Sie den Diensten einen KILL.
einmal
Starten Sie die Dienste, wenn sie heruntergefahren sind. Starten Sie sie nicht neu, wenn sie anhalten.
Wiederaufnahme
Stoppen Sie die Dienste, falls sie ausgeführt werden, und starten Sie sie dann erneut.
Service-Liste
Alle Dienste auflisten (aktivierte Dienste werden mit einem * angezeigt.)
Anfang
Starten Sie Dienste, wenn sie ausgefallen sind, und starten Sie sie neu, wenn sie angehalten werden.
Status
Zeigen Sie den Status aller Dienste an.
halt
Beenden Sie die Dienste und starten Sie sie nicht neu.
Schwanz
Sehen Sie sich die Dienstprotokolle aller aktivierten Dienste an.
Begriff
Senden Sie den Diensten eine Laufzeit.
usr1
Senden Sie den Diensten eine USR1.
usr2
Senden Sie den Diensten eine USR2.
Alle VPN-Sitzungen müssen vor dem Upgrade von Firezone beendet werden, was auch das Herunterfahren der Web-Benutzeroberfläche erfordert. Falls während des Upgrades etwas schief geht, empfehlen wir, eine Stunde für die Wartung einzuplanen.
Führen Sie die folgenden Aktionen aus, um Firezone zu verbessern:
Sollten Probleme auftreten, teilen Sie uns dies bitte per mit Einreichen eines Support-Tickets.
Es gibt einige Breaking Changes und Konfigurationsmodifikationen in 0.5.0, die berücksichtigt werden müssen. Erfahren Sie weiter unten mehr.
Nginx unterstützt ab Version 0.5.0 nicht mehr die erzwungenen SSL- und Nicht-SSL-Portparameter. Da Firezone SSL benötigt, um zu funktionieren, empfehlen wir, den gebündelten Nginx-Dienst zu entfernen, indem Sie default['firezone']['nginx']['enabled'] = false setzen und Ihren Reverse-Proxy stattdessen an die Phoenix-App auf Port 13000 leiten (standardmäßig ).
0.5.0 führt ACME-Protokollunterstützung für die automatische Erneuerung von SSL-Zertifikaten mit dem gebündelten Nginx-Dienst ein. Ermöglichen,
Die Möglichkeit, Regeln mit doppelten Zielen hinzuzufügen, ist in Firezone 0.5.0 verschwunden. Unser Migrationsskript wird diese Situationen bei einem Upgrade auf 0.5.0 automatisch erkennen und nur die Regeln beibehalten, deren Ziel die andere Regel enthält. Es gibt nichts, was Sie tun müssen, wenn dies in Ordnung ist.
Andernfalls empfehlen wir Ihnen, vor dem Upgrade Ihren Regelsatz zu ändern, um diese Situationen zu beseitigen.
Firezone 0.5.0 entfernt die Unterstützung für die Okta- und Google-SSO-Konfiguration im alten Stil zugunsten der neuen, flexibleren OIDC-basierten Konfiguration.
Wenn Sie eine Konfiguration unter den Schlüsseln default['firezone']['authentication']['okta'] oder default['firezone']['authentication']['google'] haben, müssen Sie diese zu unserem OIDC migrieren -basierte Konfiguration mit der Anleitung unten.
Vorhandene Google OAuth-Konfiguration
Entfernen Sie diese Zeilen mit den alten Google-OAuth-Konfigurationen aus Ihrer Konfigurationsdatei unter /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']
Konfigurieren Sie dann Google als OIDC-Anbieter, indem Sie die hier beschriebenen Verfahren befolgen.
(Geben Sie Linkanweisungen an)<<<<<<<<<<<<<<<<
Konfigurieren Sie vorhandenes Google OAuth
Entfernen Sie diese Zeilen mit den alten Okta-OAuth-Konfigurationen aus Ihrer Konfigurationsdatei unter /etc/firezone/firezone.rb
default['firezone']['authentication']['okta']['enabled']
default['firezone']['authentication']['okta']['client_id']
default['firezone']['authentication']['okta']['client_secret']
Default['firezone']['authentication']['okta']['site']
Konfigurieren Sie dann Okta als OIDC-Anbieter, indem Sie die hier beschriebenen Verfahren befolgen.
Befolgen Sie je nach Ihrer aktuellen Einrichtung und Version die folgenden Anweisungen:
Wenn Sie bereits eine OIDC-Integration haben:
Bei einigen OIDC-Anbietern erfordert das Upgrade auf >= 0.3.16 das Anfordern eines Aktualisierungstokens für den Offlinezugriffsbereich. Dadurch wird sichergestellt, dass Firezone mit dem Identitätsanbieter aktualisiert und die VPN-Verbindung nach dem Löschen eines Benutzers getrennt wird. Den früheren Iterationen von Firezone fehlte diese Funktion. In einigen Fällen können Benutzer, die von Ihrem Identitätsanbieter gelöscht wurden, immer noch mit einem VPN verbunden sein.
Für OIDC-Anbieter, die den Bereich Offline-Zugriff unterstützen, muss der Offline-Zugriff in den Bereichsparameter Ihrer OIDC-Konfiguration aufgenommen werden. Firezone-ctl reconfigure muss ausgeführt werden, um Änderungen an der Firezone-Konfigurationsdatei anzuwenden, die sich unter /etc/firezone/firezone.rb befindet.
Für Benutzer, die von Ihrem OIDC-Anbieter authentifiziert wurden, sehen Sie die Überschrift OIDC-Verbindungen auf der Benutzerdetailseite der Webbenutzeroberfläche, wenn Firezone das Aktualisierungstoken erfolgreich abrufen kann.
Wenn dies nicht funktioniert, müssen Sie Ihre vorhandene OAuth-App löschen und die OIDC-Einrichtungsschritte bis wiederholen Erstellen Sie eine neue App-Integration .
Ich habe eine bestehende OAuth-Integration
Vor 0.3.11 verwendete Firezone vorkonfigurierte OAuth2-Anbieter.
Folge den Anweisungen hier auf OIDC migrieren.
Ich habe keinen Identity Provider integriert
Keine Handlung nötig.
Sie können den Anweisungen folgen hier um SSO über einen OIDC-Anbieter zu aktivieren.
An ihrer Stelle hat default['firezone']['external url'] die Konfigurationsoption default['firezone']['fqdn'] ersetzt.
Setzen Sie dies auf die URL Ihres Firezone-Online-Portals, das für die breite Öffentlichkeit zugänglich ist. Es wird standardmäßig https:// plus den FQDN Ihres Servers sein, wenn er undefiniert bleibt.
Die Konfigurationsdatei befindet sich unter /etc/firezone/firezone.rb. Eine vollständige Liste der Konfigurationsvariablen und ihrer Beschreibungen finden Sie in der Referenz zur Konfigurationsdatei.
Firezone speichert ab Version 0.3.0 keine privaten Geräteschlüssel mehr auf dem Firezone-Server.
Die Firezone-Webbenutzeroberfläche erlaubt Ihnen nicht, diese Konfigurationen erneut herunterzuladen oder anzuzeigen, aber alle vorhandenen Geräte sollten weiterhin so funktionieren, wie sie sind.
Wenn Sie von Firezone 0.1.x aktualisieren, gibt es einige Änderungen an der Konfigurationsdatei, die manuell vorgenommen werden müssen.
Führen Sie die folgenden Befehle als root aus, um die erforderlichen Änderungen an Ihrer /etc/firezone/firezone.rb-Datei vorzunehmen.
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
firezone-ctl neu konfigurieren
firezone-ctl neustarten
Das Überprüfen der Firezone-Protokolle ist ein kluger erster Schritt für alle Probleme, die auftreten können.
Führen Sie sudo firezone-ctl tail aus, um die Firezone-Protokolle anzuzeigen.
Die meisten Verbindungsprobleme mit Firezone werden durch inkompatible iptables- oder nftables-Regeln verursacht. Sie müssen sicherstellen, dass Ihre gültigen Regeln nicht mit den Firezone-Regeln kollidieren.
Stellen Sie sicher, dass die FORWARD-Kette Pakete von Ihren WireGuard-Clients zu den Standorten zulässt, die Sie Firezone passieren lassen möchten, wenn sich Ihre Internetverbindung bei jeder Aktivierung Ihres WireGuard-Tunnels verschlechtert.
Dies kann erreicht werden, wenn Sie ufw verwenden, indem Sie sicherstellen, dass die Standard-Routingrichtlinie allow ist:
ubuntu@fz:~$ sudo ufw default geroutet zulassen
Die standardmäßige Routing-Richtlinie wurde in „Zulassen“ geändert
(Stellen Sie sicher, dass Sie Ihre Regeln entsprechend aktualisieren)
A ufw Status für einen typischen Firezone-Server könnte so aussehen:
ubuntu@fz:~$ sudo ufw status ausführlich
Status: aktiv
Protokollierung: an (niedrig)
Standard: ablehnen (eingehend), zulassen (ausgehend), zulassen (weitergeleitet)
Neue Profile: überspringen
Bis Aktion von
— —— —-
22/tcp ERLAUBEN überall
80/tcp ERLAUBEN überall
443/tcp ERLAUBEN überall
51820/udp ERLAUBEN überall
22/tcp (v6) ERLAUBEN überall (v6)
80/tcp (v6) ERLAUBEN überall (v6)
443/tcp (v6) ERLAUBEN überall (v6)
51820/udp (v6) ERLAUBEN überall (v6)
Wir empfehlen, den Zugriff auf die Webschnittstelle für äußerst sensible und geschäftskritische Produktionsbereitstellungen zu beschränken, wie unten erläutert.
Service | Standardport | Adresse hören | Beschreibung |
Nginx | 80, 443 | aller | Öffentlicher HTTP(S)-Port zur Verwaltung von Firezone und zur Erleichterung der Authentifizierung. |
Wireguard | 51820 | aller | Öffentlicher WireGuard-Port, der für VPN-Sitzungen verwendet wird. (UDP) |
Postgresql | 15432 | 127.0.0.1 | Nur lokaler Port, der für den gebündelten Postgresql-Server verwendet wird. |
Phoenix | 13000 | 127.0.0.1 | Nur lokaler Port, der vom Upstream-Elixir-App-Server verwendet wird. |
Wir empfehlen Ihnen, den Zugriff auf die öffentlich verfügbare Web-Benutzeroberfläche von Firezone (standardmäßig Ports 443/tcp und 80/tcp) einzuschränken und stattdessen den WireGuard-Tunnel zu verwenden, um Firezone für Produktions- und öffentlich zugängliche Bereitstellungen zu verwalten, bei denen ein einzelner Administrator verantwortlich ist des Erstellens und Verteilens von Gerätekonfigurationen an Endbenutzer.
Wenn ein Administrator beispielsweise eine Gerätekonfiguration erstellt und einen Tunnel mit der lokalen WireGuard-Adresse 10.3.2.2 erstellt hat, würde die folgende ufw-Konfiguration dem Administrator den Zugriff auf die Firezone-Webbenutzeroberfläche auf der wg-firezone-Schnittstelle des Servers mit dem Standardwert 10.3.2.1 ermöglichen Tunneladresse:
root@demo:~# ufw-Status ausführlich
Status: aktiv
Protokollierung: an (niedrig)
Standard: ablehnen (eingehend), zulassen (ausgehend), zulassen (weitergeleitet)
Neue Profile: überspringen
Bis Aktion von
— —— —-
22/tcp ERLAUBEN überall
51820/udp ERLAUBEN überall
Überall ERLAUBEN IN 10.3.2.2
22/tcp (v6) ERLAUBEN überall (v6)
51820/udp (v6) ERLAUBEN überall (v6)
Dies würde nur verlassen 22 / TCP für den SSH-Zugriff verfügbar gemacht, um den Server zu verwalten (optional), und 51820/udp freigelegt, um WireGuard-Tunnel aufzubauen.
Firezone bündelt einen Postgresql-Server und passendes psql Dienstprogramm, das von der lokalen Shell wie folgt verwendet werden kann:
/opt/firezone/embedded/bin/psql \
-U Feuerzone \
-d Feuerzone \
-h lokaler Host \
-p 15432 \
-c „SQL_STATEMENT“
Dies kann für Debugging-Zwecke hilfreich sein.
Allgemeine Aufgaben:
Alle Benutzer auflisten:
/opt/firezone/embedded/bin/psql \
-U Feuerzone \
-d Feuerzone \
-h lokaler Host \
-p 15432 \
-c „SELECT * VON Benutzern;“
Alle Geräte auflisten:
/opt/firezone/embedded/bin/psql \
-U Feuerzone \
-d Feuerzone \
-h lokaler Host \
-p 15432 \
-c „AUSWAHL * VON Geräten;“
Benutzerrolle ändern:
Stellen Sie die Rolle auf „admin“ oder „unprivilegiert“ ein:
/opt/firezone/embedded/bin/psql \
-U Feuerzone \
-d Feuerzone \
-h lokaler Host \
-p 15432 \
-c „UPDATE users SET role = ‚admin‘ WHERE email = ‚user@example.com‘;“
Datenbank sichern:
Außerdem ist das Programm pg dump enthalten, mit dem regelmäßig Backups der Datenbank erstellt werden können. Führen Sie den folgenden Code aus, um eine Kopie der Datenbank im gängigen SQL-Abfrageformat zu sichern (ersetzen Sie /path/to/backup.sql durch den Speicherort, an dem die SQL-Datei erstellt werden soll):
/opt/firezone/embedded/bin/pg_dump \
-U Feuerzone \
-d Feuerzone \
-h lokaler Host \
-p 15432 > /path/to/backup.sql
Nachdem Firezone erfolgreich bereitgestellt wurde, müssen Sie Benutzer hinzufügen, um ihnen Zugriff auf Ihr Netzwerk zu gewähren. Dazu wird das Web UI verwendet.
Durch Auswahl der Schaltfläche „Benutzer hinzufügen“ unter /users können Sie einen Benutzer hinzufügen. Sie müssen dem Benutzer eine E-Mail-Adresse und ein Passwort mitteilen. Um Benutzern in Ihrer Organisation automatisch Zugriff zu gewähren, kann Firezone auch mit einem Identitätsanbieter kommunizieren und synchronisieren. Weitere Einzelheiten finden Sie in Authentifizieren. < Fügen Sie einen Link zum Authentifizieren hinzu
Wir empfehlen, dass Benutzer ihre eigenen Gerätekonfigurationen erstellen, damit der private Schlüssel nur für sie sichtbar ist. Benutzer können ihre eigenen Gerätekonfigurationen generieren, indem sie den Anweisungen auf folgen Kundenanweisungen Buchseite.
Alle Benutzergerätekonfigurationen können von Firezone-Administratoren erstellt werden. Wählen Sie dazu auf der Benutzerprofilseite unter /users die Option „Gerät hinzufügen“.
[Screenshot einfügen]
Sie können dem Benutzer die WireGuard-Konfigurationsdatei per E-Mail senden, nachdem Sie das Geräteprofil erstellt haben.
Benutzer und Geräte sind verknüpft. Weitere Einzelheiten zum Hinzufügen eines Benutzers finden Sie unter Benutzer hinzufügen.
Durch die Verwendung des Netfilter-Systems des Kernels ermöglicht Firezone Ausgangsfilterfunktionen, um DROP- oder ACCEPT-Pakete zu spezifizieren. Der gesamte Verkehr ist normalerweise erlaubt.
IPv4- und IPv6-CIDRs und -IP-Adressen werden über die Allowlist bzw. Denylist unterstützt. Sie können eine Regel beim Hinzufügen auf einen Benutzer festlegen, wodurch die Regel auf alle Geräte dieses Benutzers angewendet wird.
Installieren und konfigurieren
Informationen zum Herstellen einer VPN-Verbindung mit dem nativen WireGuard-Client finden Sie in dieser Anleitung.
Die hier befindlichen offiziellen WireGuard-Clients sind Firezone-kompatibel:
Besuchen Sie die offizielle WireGuard-Website unter https://www.wireguard.com/install/ für oben nicht erwähnte Betriebssysteme.
Entweder Ihr Firezone-Administrator oder Sie selbst können die Gerätekonfigurationsdatei über das Firezone-Portal generieren.
Rufen Sie die URL auf, die Ihr Firezone-Administrator bereitgestellt hat, um selbst eine Gerätekonfigurationsdatei zu generieren. Ihre Firma hat dafür eine eindeutige URL; in diesem Fall ist es https://instance-id.yourfirezone.com.
Melden Sie sich bei Firezone Okta SSO an
[Screenshot einfügen]
Importieren Sie die.conf-Datei in den WireGuard-Client, indem Sie sie öffnen. Durch Umlegen des Aktivieren-Schalters können Sie eine VPN-Sitzung starten.
[Screenshot einfügen]
Befolgen Sie die nachstehenden Anweisungen, wenn Ihr Netzwerkadministrator eine wiederkehrende Authentifizierung vorgeschrieben hat, um Ihre VPN-Verbindung aktiv zu halten.
Du brauchst:
URL des Firezone-Portals: Fragen Sie Ihren Netzwerkadministrator nach der Verbindung.
Ihr Netzwerkadministrator sollte Ihnen Ihren Benutzernamen und Ihr Passwort anbieten können. Die Firezone-Site fordert Sie auf, sich mit dem Single-Sign-On-Dienst anzumelden, den Ihr Arbeitgeber verwendet (z. B. Google oder Okta).
[Screenshot einfügen]
Rufen Sie die URL des Firezone-Portals auf und melden Sie sich mit den Anmeldeinformationen an, die Ihr Netzwerkadministrator bereitgestellt hat. Wenn Sie bereits angemeldet sind, klicken Sie auf die Schaltfläche Erneut authentifizieren, bevor Sie sich erneut anmelden.
[Screenshot einfügen]
[Screenshot einfügen]
Um das WireGuard-Konfigurationsprofil mit Network Manager CLI auf Linux-Geräten zu importieren, befolgen Sie diese Anweisungen (nmcli).
Wenn für das Profil IPv6-Unterstützung aktiviert ist, schlägt der Versuch, die Konfigurationsdatei über die Network Manager-GUI zu importieren, möglicherweise mit dem folgenden Fehler fehl:
ipv6.method: Methode „auto“ wird für WireGuard nicht unterstützt
Es ist notwendig, die WireGuard Userspace-Dienstprogramme zu installieren. Dies wird ein Paket namens wireguard oder wireguard-tools für Linux-Distributionen sein.
Für Ubuntu/Debian:
sudo apt installiert Wireguard
So verwenden Sie Fedora:
sudo dnf installiert Wireguard-Tools
Arch Linux:
sudo pacman -S Wireguard-Tools
Besuchen Sie die offizielle WireGuard-Website unter https://www.wireguard.com/install/ für Distributionen, die oben nicht erwähnt werden.
Entweder Ihr Firezone-Administrator oder die Selbstgenerierung kann die Gerätekonfigurationsdatei über das Firezone-Portal generieren.
Rufen Sie die URL auf, die Ihr Firezone-Administrator bereitgestellt hat, um selbst eine Gerätekonfigurationsdatei zu generieren. Ihre Firma hat dafür eine eindeutige URL; in diesem Fall ist es https://instance-id.yourfirezone.com.
[Screenshot einfügen]
Importieren Sie die mitgelieferte Konfigurationsdatei mit nmcli:
sudo nmcli-Verbindungsimporttyp Wireguard-Datei /path/to/configuration.conf
Der Name der Konfigurationsdatei entspricht der WireGuard-Verbindung/Schnittstelle. Nach dem Import kann die Verbindung bei Bedarf umbenannt werden:
nmcli connection modify [alter Name] connection.id [neuer Name]
Verbinden Sie sich über die Befehlszeile wie folgt mit dem VPN:
nmcli-Verbindung aufgebaut [VPN-Name]
Trennen:
nmcli-Verbindung unterbrochen [VPN-Name]
Das entsprechende Network Manager-Applet kann auch verwendet werden, um die Verbindung zu verwalten, wenn eine GUI verwendet wird.
Durch Auswahl von „Ja“ für die Option „Autoconnect“ kann die VPN-Verbindung so konfiguriert werden, dass sie automatisch eine Verbindung herstellt:
nmcli-Verbindung [VPN-Name]-Verbindung ändern. <<<<<<<<<<<<<<<<<<<<<<
Autoconnect ja
Um die automatische Verbindung zu deaktivieren, setzen Sie sie zurück auf no:
nmcli-Verbindung [VPN-Name]-Verbindung ändern.
Autoconnect-Nr
So aktivieren Sie MFA Gehen Sie zur Seite /user account/register mfa des Firezone-Portals. Verwenden Sie Ihre Authentifizierungs-App, um den QR-Code zu scannen, nachdem er generiert wurde, und geben Sie dann den sechsstelligen Code ein.
Wenden Sie sich an Ihren Administrator, um die Zugangsdaten Ihres Kontos zurückzusetzen, wenn Sie Ihre Authentifizierungs-App verlegt haben.
Dieses Tutorial führt Sie durch den Prozess der Einrichtung der Split-Tunneling-Funktion von WireGuard mit Firezone, sodass nur Datenverkehr zu bestimmten IP-Bereichen über den VPN-Server weitergeleitet wird.
Die IP-Bereiche, für die der Client den Netzwerkverkehr weiterleitet, sind im Feld „Zugelassene IPs“ auf der Seite „/settings/default“ angegeben. Nur die neu erstellten WireGuard-Tunnelkonfigurationen, die von Firezone produziert werden, sind von Änderungen in diesem Feld betroffen.
[Screenshot einfügen]
Der Standardwert ist 0.0.0.0/0, ::/0, wodurch der gesamte Netzwerkverkehr vom Client zum VPN-Server geleitet wird.
Beispiele für Werte in diesem Feld sind:
0.0.0.0/0, ::/0 – Der gesamte Netzwerkverkehr wird zum VPN-Server geleitet.
192.0.2.3/32 – nur Datenverkehr zu einer einzelnen IP-Adresse wird zum VPN-Server geleitet.
3.5.140.0/22 – nur Datenverkehr zu IPs im Bereich 3.5.140.1 – 3.5.143.254 wird zum VPN-Server geleitet. In diesem Beispiel wurde der CIDR-Bereich für die AWS-Region ap-northeast-2 verwendet.
Firezone wählt zuerst die Egress-Schnittstelle aus, die der genauesten Route zugeordnet ist, wenn bestimmt wird, wohin ein Paket geleitet werden soll.
Benutzer müssen die Konfigurationsdateien neu generieren und sie ihrem nativen WireGuard-Client hinzufügen, um vorhandene Benutzergeräte mit der neuen Split-Tunnel-Konfiguration zu aktualisieren.
Anweisungen finden Sie unter Gerät hinzufügen. <<<<<<<<<<< Link hinzufügen
Dieses Handbuch zeigt, wie zwei Geräte mit Firezone als Relais verbunden werden. Ein typischer Anwendungsfall besteht darin, einem Administrator den Zugriff auf einen Server, Container oder Computer zu ermöglichen, der durch ein NAT oder eine Firewall geschützt ist.
Diese Abbildung zeigt ein einfaches Szenario, in dem die Geräte A und B einen Tunnel aufbauen.
[Firezone-Architekturbild einfügen]
Erstellen Sie zunächst Gerät A und Gerät B, indem Sie zu /users/[user_id]/new_device navigieren. Stellen Sie in den Einstellungen für jedes Gerät sicher, dass die folgenden Parameter auf die unten aufgeführten Werte eingestellt sind. Sie können Geräteeinstellungen beim Erstellen der Gerätekonfiguration festlegen (siehe Geräte hinzufügen). Wenn Sie die Einstellungen auf einem vorhandenen Gerät aktualisieren müssen, können Sie dies tun, indem Sie eine neue Gerätekonfiguration generieren.
Beachten Sie, dass alle Geräte eine Seite /settings/defaults haben, auf der PersistentKeepalive konfiguriert werden kann.
Zulässige IPs = 10.3.2.2/32
Dies ist die IP oder der IP-Bereich von Gerät B
PersistentKeepalive = 25
Wenn sich das Gerät hinter einem NAT befindet, stellt dies sicher, dass das Gerät den Tunnel am Leben erhalten und weiterhin Pakete von der WireGuard-Schnittstelle empfangen kann. Normalerweise ist ein Wert von 25 ausreichend, aber je nach Umgebung müssen Sie diesen Wert möglicherweise verringern.
Zulässige IPs = 10.3.2.3/32
Dies ist die IP oder der IP-Bereich von Gerät A
PersistentKeepalive = 25
Dieses Beispiel zeigt eine Situation, in der Gerät A mit den Geräten B bis D in beide Richtungen kommunizieren kann. Dieses Setup kann einen Techniker oder Administrator darstellen, der über verschiedene Netzwerke auf zahlreiche Ressourcen (Server, Container oder Maschinen) zugreift.
[Architekturdiagramm]<<<<<<<<<<<<<<<<<<<<<<<<<
Stellen Sie sicher, dass die folgenden Einstellungen in den Einstellungen jedes Geräts auf die entsprechenden Werte vorgenommen werden. Beim Erstellen der Gerätekonfiguration können Sie Geräteeinstellungen festlegen (siehe Geräte hinzufügen). Eine neue Gerätekonfiguration kann erstellt werden, wenn Einstellungen auf einem vorhandenen Gerät aktualisiert werden müssen.
Zulässige IPs = 10.3.2.3/32, 10.3.2.4/32, 10.3.2.5/32
Dies ist die IP der Geräte B bis D. Die IPs der Geräte B bis D müssen in jedem IP-Bereich enthalten sein, den Sie festlegen möchten.
PersistentKeepalive = 25
Dadurch wird gewährleistet, dass das Gerät den Tunnel aufrechterhalten und weiterhin Pakete von der WireGuard-Schnittstelle empfangen kann, auch wenn es durch ein NAT geschützt ist. In den meisten Fällen ist ein Wert von 25 ausreichend, je nach Umgebung müssen Sie diesen Wert jedoch möglicherweise verringern.
Firezone kann als NAT-Gateway verwendet werden, um eine einzige statische Egress-IP bereitzustellen, über die der gesamte Datenverkehr Ihres Teams abfließen kann. Diese Situationen beinhalten seine häufige Verwendung:
Beratungsaufträge: Fordern Sie Ihren Kunden auf, eine einzelne statische IP-Adresse statt der eindeutigen Geräte-IP jedes Mitarbeiters auf die Whitelist zu setzen.
Verwenden eines Proxys oder Maskieren Ihrer Quell-IP aus Sicherheits- oder Datenschutzgründen.
In diesem Beitrag wird ein einfaches Beispiel für die Beschränkung des Zugriffs auf eine selbst gehostete Webanwendung auf eine einzelne statische IP auf der Whitelist gezeigt, auf der Firezone ausgeführt wird. In dieser Abbildung befinden sich Firezone und die geschützte Ressource in verschiedenen VPC-Bereichen.
Diese Lösung wird häufig anstelle der Verwaltung einer IP-Whitelist für zahlreiche Endbenutzer verwendet, was zeitaufwändig sein kann, wenn die Zugriffsliste erweitert wird.
Unser Ziel ist es, einen Firezone-Server auf einer EC2-Instance einzurichten, um den VPN-Datenverkehr auf die eingeschränkte Ressource umzuleiten. In diesem Fall dient Firezone als Netzwerk-Proxy oder NAT-Gateway, um jedem angeschlossenen Gerät eine eindeutige öffentliche Ausgangs-IP zuzuweisen.
In diesem Fall ist auf einer EC2-Instance namens tc2.micro eine Firezone-Instance installiert. Informationen zum Bereitstellen von Firezone finden Sie im Bereitstellungsleitfaden. Achten Sie in Bezug auf AWS auf Folgendes:
Die Sicherheitsgruppe der Firezone EC2-Instance lässt ausgehenden Datenverkehr zur IP-Adresse der geschützten Ressource zu.
Die Firezone-Instanz wird mit einer elastischen IP geliefert. Datenverkehr, der über die Firezone-Instanz an externe Ziele weitergeleitet wird, hat dies als Quell-IP-Adresse. Die betreffende IP-Adresse lautet 52.202.88.54.
[Screenshot einfügen]<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Als geschützte Ressource dient in diesem Fall eine selbst gehostete Webanwendung. Auf die Web-App kann nur über Anfragen von der IP-Adresse 52.202.88.54 zugegriffen werden. Abhängig von der Ressource kann es erforderlich sein, eingehenden Datenverkehr auf verschiedenen Ports und Datenverkehrstypen zuzulassen. Dies wird in diesem Handbuch nicht behandelt.
[Screenshot einfügen]<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Bitte teilen Sie dem für die geschützte Ressource zuständigen Drittanbieter mit, dass Datenverkehr von der in Schritt 1 definierten statischen IP zugelassen werden muss (in diesem Fall 52.202.88.54).
Standardmäßig wird der gesamte Benutzerdatenverkehr durch den VPN-Server geleitet und kommt von der statischen IP, die in Schritt 1 konfiguriert wurde (in diesem Fall 52.202.88.54). Wenn jedoch Split-Tunneling aktiviert wurde, müssen möglicherweise Einstellungen vorgenommen werden, um sicherzustellen, dass die Ziel-IP der geschützten Ressource unter den zulässigen IPs aufgeführt wird.
Unten sehen Sie eine vollständige Liste der verfügbaren Konfigurationsoptionen in /etc/firezone/firezone.rb.
Option | Beschreibung | Standardwert |
default['firezone']['external_url'] | URL, die für den Zugriff auf das Webportal dieser Firezone-Instanz verwendet wird. | „https://#{node['fqdn'] || node['hostname']}” |
default['firezone']['config_directory'] | Verzeichnis der obersten Ebene für die Firezone-Konfiguration. | /etc/firezone' |
default['firezone']['install_directory'] | Verzeichnis der obersten Ebene, in dem Firezone installiert werden soll. | /opt/firezone' |
default['firezone']['app_directory'] | Verzeichnis der obersten Ebene zum Installieren der Firezone-Webanwendung. | „#{node['firezone']['install_directory']}/embedded/service/firezone“ |
default['firezone']['log_directory'] | Verzeichnis der obersten Ebene für Firezone-Protokolle. | /var/log/firezone' |
default['firezone']['var_directory'] | Verzeichnis der obersten Ebene für Firezone-Laufzeitdateien. | /var/opt/firezone' |
default['firezone']['user'] | Name des nicht privilegierten Linux-Benutzers, dem die meisten Dienste und Dateien gehören. | Feuerzone' |
default['firezone']['group'] | Name der Linux-Gruppe, zu der die meisten Dienste und Dateien gehören. | Feuerzone' |
default['firezone']['admin_email'] | E-Mail-Adresse für den ersten Firezone-Benutzer. | „firezone@localhost“ |
default['firezone']['max_devices_per_user'] | Maximale Anzahl von Geräten, die ein Benutzer haben kann. | 10 |
default['firezone']['allow_unprivileged_device_management'] | Ermöglicht Benutzern ohne Administratorrechte das Erstellen und Löschen von Geräten. | TRUE |
default['firezone']['allow_unprivileged_device_configuration'] | Ermöglicht Benutzern ohne Administratorrechte das Ändern von Gerätekonfigurationen. Bei Deaktivierung wird verhindert, dass nicht privilegierte Benutzer alle Gerätefelder mit Ausnahme von Name und Beschreibung ändern. | TRUE |
default['firezone']['egress_interface'] | Schnittstellenname, an dem getunnelter Datenverkehr austritt. Wenn nil, wird die Standardroutenschnittstelle verwendet. | Null |
default['firezone']['fips_enabled'] | Aktivieren oder deaktivieren Sie den OpenSSL-FIPs-Modus. | Null |
default['firezone']['logging']['enabled'] | Aktivieren oder deaktivieren Sie die Protokollierung über Firezone. Auf „false“ setzen, um die Protokollierung vollständig zu deaktivieren. | TRUE |
default['Unternehmen']['Name'] | Name, der vom Kochbuch Chef 'Enterprise' verwendet wird. | Feuerzone' |
default['firezone']['install_path'] | Installationspfad, der vom Kochbuch „Enterprise“ von Chef verwendet wird. Sollte auf das gleiche wie das Installationsverzeichnis oben gesetzt werden. | node['firezone']['install_directory'] |
default['firezone']['sysvinit_id'] | Ein Bezeichner, der in /etc/inittab verwendet wird. Muss eine eindeutige Folge von 1-4 Zeichen sein. | SUP' |
default['firezone']['authentication']['local']['enabled'] | Aktivieren oder deaktivieren Sie die lokale E-Mail/Passwort-Authentifizierung. | TRUE |
default['firezone']['authentication']['auto_create_oidc_users'] | Erstellen Sie automatisch Benutzer, die sich zum ersten Mal über OIDC anmelden. Deaktivieren, damit sich nur vorhandene Benutzer über OIDC anmelden können. | TRUE |
default['firezone']['authentication']['disable_vpn_on_oidc_error'] | Deaktivieren Sie das VPN eines Benutzers, wenn beim Versuch, sein OIDC-Token zu aktualisieren, ein Fehler erkannt wird. | FALSCH |
default['firezone']['authentication']['oidc'] | OpenID Connect-Konfiguration im Format {“Anbieter” => [Konfiguration…]} – Siehe OpenIDConnect-Dokumentation für Konfigurationsbeispiele. | {} |
default['firezone']['nginx']['enabled'] | Aktivieren oder deaktivieren Sie den gebündelten Nginx-Server. | TRUE |
default['firezone']['nginx']['ssl_port'] | HTTPS-Abhörport. | 443 |
default['firezone']['nginx']['directory'] | Verzeichnis zum Speichern der Firezone-bezogenen Konfiguration des virtuellen nginx-Hosts. | „#{node['firezone']['var_directory']}/nginx/etc“ |
default['firezone']['nginx']['log_directory'] | Verzeichnis zum Speichern von Firezone-bezogenen Nginx-Protokolldateien. | „#{node['firezone']['log_directory']}/nginx“ |
default['firezone']['nginx']['log_rotation']['file_maxbytes'] | Dateigröße, um die Nginx-Protokolldateien gedreht werden sollen. | 104857600 |
default['firezone']['nginx']['log_rotation']['num_to_keep'] | Anzahl der Firezone-Nginx-Protokolldateien, die vor dem Verwerfen aufbewahrt werden sollen. | 10 |
default['firezone']['nginx']['log_x_forwarded_for'] | Ob Firezone nginx x-forwarded-for Header protokolliert werden soll. | TRUE |
default['firezone']['nginx']['hsts_header']['enabled'] | TRUE | |
default['firezone']['nginx']['hsts_header']['include_subdomains'] | Aktivieren oder deaktivieren Sie includeSubDomains für den HSTS-Header. | TRUE |
default['firezone']['nginx']['hsts_header']['max_age'] | Maximales Alter für den HSTS-Header. | 31536000 |
default['firezone']['nginx']['redirect_to_canonical'] | Ob URLs an den oben angegebenen kanonischen FQDN umgeleitet werden sollen | FALSCH |
default['firezone']['nginx']['cache']['enabled'] | Aktivieren oder deaktivieren Sie den Nginx-Cache von Firezone. | FALSCH |
default['firezone']['nginx']['cache']['directory'] | Verzeichnis für den Nginx-Cache von Firezone. | „#{node['firezone']['var_directory']}/nginx/cache“ |
default['firezone']['nginx']['user'] | Firezone Nginx-Benutzer. | node['firezone']['user'] |
default['firezone']['nginx']['group'] | Firezone Nginx-Gruppe. | node['firezone']['group'] |
default['firezone']['nginx']['dir'] | nginx-Konfigurationsverzeichnis der obersten Ebene. | node['firezone']['nginx']['directory'] |
default['firezone']['nginx']['log_dir'] | nginx-Protokollverzeichnis der obersten Ebene. | node['firezone']['nginx']['log_directory'] |
default['firezone']['nginx']['pid'] | Speicherort für die nginx-PID-Datei. | „#{node['firezone']['nginx']['directory']}/nginx.pid“ |
default['firezone']['nginx']['daemon_disable'] | Deaktivieren Sie den nginx-Daemon-Modus, damit wir ihn stattdessen überwachen können. | TRUE |
default['firezone']['nginx']['gzip'] | Schalten Sie die nginx gzip-Komprimierung ein oder aus. | auf' |
default['firezone']['nginx']['gzip_static'] | Schalten Sie die nginx gzip-Komprimierung für statische Dateien ein oder aus. | aus' |
default['firezone']['nginx']['gzip_http_version'] | HTTP-Version, die zum Bereitstellen statischer Dateien verwendet werden soll. | 1.0' |
default['firezone']['nginx']['gzip_comp_level'] | nginx gzip-Komprimierungsstufe. | 2' |
default['firezone']['nginx']['gzip_proxyed'] | Aktiviert oder deaktiviert gzipping von Antworten für Proxy-Anforderungen, je nach Anforderung und Antwort. | beliebig' |
default['firezone']['nginx']['gzip_vary'] | Aktiviert oder deaktiviert das Einfügen des Antwortheaders „Vary: Accept-Encoding“. | aus' |
default['firezone']['nginx']['gzip_buffers'] | Legt die Anzahl und Größe der Puffer fest, die zum Komprimieren einer Antwort verwendet werden. Wenn nil, wird der nginx-Standard verwendet. | Null |
default['firezone']['nginx']['gzip_types'] | MIME-Typen, für die die gzip-Komprimierung aktiviert werden soll. | ['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'] | Minimale Dateilänge zum Aktivieren der Datei-gzip-Komprimierung. | 1000 |
default['firezone']['nginx']['gzip_disable'] | User-Agent-Matcher zum Deaktivieren der gzip-Komprimierung für. | MSIE [1-6]\.' |
default['firezone']['nginx']['keepalive'] | Aktiviert den Cache für die Verbindung zu Upstream-Servern. | auf' |
default['firezone']['nginx']['keepalive_timeout'] | Timeout in Sekunden für Keepalive-Verbindung zu Upstream-Servern. | 65 |
default['firezone']['nginx']['worker_processes'] | Anzahl der nginx-Worker-Prozesse. | node['cpu'] && node['cpu']['total'] ? node['cpu']['total'] : 1 |
default['firezone']['nginx']['worker_connections'] | Maximale Anzahl gleichzeitiger Verbindungen, die von einem Arbeitsprozess geöffnet werden können. | 1024 |
default['firezone']['nginx']['worker_rlimit_nofile'] | Ändert das Limit für die maximale Anzahl geöffneter Dateien für Worker-Prozesse. Verwendet nginx-Standard, wenn nil. | Null |
default['firezone']['nginx']['multi_accept'] | Ob Worker jeweils eine oder mehrere Verbindungen akzeptieren sollen. | TRUE |
default['firezone']['nginx']['event'] | Gibt die Verbindungsverarbeitungsmethode an, die im Kontext von nginx-Ereignissen verwendet werden soll. | epoll' |
default['firezone']['nginx']['server_tokens'] | Aktiviert oder deaktiviert die Ausgabe der nginx-Version auf Fehlerseiten und im Antwort-Header-Feld „Server“. | Null |
default['firezone']['nginx']['server_names_hash_bucket_size'] | Legt die Bucket-Größe für die Hash-Tabellen der Servernamen fest. | 64 |
default['firezone']['nginx']['sendfile'] | Aktiviert oder deaktiviert die Verwendung von sendfile() von nginx. | auf' |
default['firezone']['nginx']['access_log_options'] | Legt nginx-Zugriffsprotokolloptionen fest. | Null |
default['firezone']['nginx']['error_log_options'] | Legt nginx-Fehlerprotokolloptionen fest. | Null |
default['firezone']['nginx']['disable_access_log'] | Deaktiviert das nginx-Zugriffsprotokoll. | FALSCH |
default['firezone']['nginx']['types_hash_max_size'] | nginx gibt Hash-Maximalgröße ein. | 2048 |
default['firezone']['nginx']['types_hash_bucket_size'] | nginx gibt Hash-Bucket-Größe ein. | 64 |
default['firezone']['nginx']['proxy_read_timeout'] | nginx-Proxy-Lesezeitüberschreitung. Auf nil setzen, um den Nginx-Standard zu verwenden. | Null |
default['firezone']['nginx']['client_body_buffer_size'] | nginx-Client-Body-Puffergröße. Auf nil setzen, um den Nginx-Standard zu verwenden. | Null |
default['firezone']['nginx']['client_max_body_size'] | Maximale Körpergröße des Nginx-Clients | 250 m |
default['firezone']['nginx']['default']['modules'] | Geben Sie zusätzliche nginx-Module an. | [] |
default['firezone']['nginx']['enable_rate_limiting'] | Aktivieren oder deaktivieren Sie die Nginx-Ratenbegrenzung. | TRUE |
default['firezone']['nginx']['rate_limiting_zone_name'] | Name der Nginx-Ratenbegrenzungszone. | Feuerzone' |
default['firezone']['nginx']['rate_limiting_backoff'] | Nginx-Ratenbegrenzungs-Backoff. | 10 m |
default['firezone']['nginx']['rate_limit'] | Nginx-Ratenbegrenzung. | 10 U/s' |
default['firezone']['nginx']['ipv6'] | Erlauben Sie nginx, zusätzlich zu IPv6 auf HTTP-Anforderungen für IPv4 zu lauschen. | TRUE |
default['firezone']['postgresql']['enabled'] | Aktivieren oder deaktivieren Sie gebündeltes Postgresql. Legen Sie dies auf „false“ fest und füllen Sie die folgenden Datenbankoptionen aus, um Ihre eigene Postgresql-Instanz zu verwenden. | TRUE |
default['firezone']['postgresql']['username'] | Benutzername für Postgresql. | node['firezone']['user'] |
default['firezone']['postgresql']['data_directory'] | Postgresql-Datenverzeichnis. | „#{node['firezone']['var_directory']}/postgresql/13.3/data“ |
default['firezone']['postgresql']['log_directory'] | Postgresql-Protokollverzeichnis. | „#{node['firezone']['log_directory']}/postgresql“ |
default['firezone']['postgresql']['log_rotation']['file_maxbytes'] | Maximale Größe der Postgresql-Protokolldatei vor der Rotation. | 104857600 |
default['firezone']['postgresql']['log_rotation']['num_to_keep'] | Anzahl der aufzubewahrenden Postgresql-Protokolldateien. | 10 |
default['firezone']['postgresql']['checkpoint_completion_target'] | Abschlussziel des Postgresql-Checkpoints. | 0.5 |
default['firezone']['postgresql']['checkpoint_segments'] | Anzahl der Postgresql-Checkpoint-Segmente. | 3 |
default['firezone']['postgresql']['checkpoint_timeout'] | Postgresql-Checkpoint-Zeitüberschreitung. | 5 Minuten' |
default['firezone']['postgresql']['checkpoint_warning'] | Warnzeit des Postgresql-Checkpoints in Sekunden. | 30er |
default['firezone']['postgresql']['effektive_cache_size'] | Effektive Postgresql-Cachegröße. | 128MB' |
default['firezone']['postgresql']['listen_address'] | Postgresql-Abhöradresse. | 127.0.0.1' |
default['firezone']['postgresql']['max_connections'] | Maximale Postgresql-Verbindungen. | 350 |
default['firezone']['postgresql']['md5_auth_cidr_addresses'] | Postgresql-CIDRs, um md5-Authentifizierung zu ermöglichen. | ['127.0.0.1/32', '::1/128'] |
default['firezone']['postgresql']['port'] | Postgresql-Abhörport. | 15432 |
default['firezone']['postgresql']['shared_buffers'] | Größe der gemeinsam genutzten Postgresql-Puffer. | „#{(node['memory']['total'].to_i / 4) / 1024}MB“ |
default['firezone']['postgresql']['shmmax'] | Postgresql-shmmax in Byte. | 17179869184 |
default['firezone']['postgresql']['shmall'] | Postgresql klein in Byte. | 4194304 |
default['firezone']['postgresql']['work_mem'] | Postgresql-Arbeitsspeichergröße. | 8MB' |
default['firezone']['database']['user'] | Gibt den Benutzernamen an, den Firezone verwendet, um sich mit der DB zu verbinden. | node['firezone']['postgresql']['username'] |
default['firezone']['database']['password'] | Gibt bei Verwendung einer externen DB das Passwort an, das Firezone verwendet, um sich mit der DB zu verbinden. | ändere mich' |
default['firezone']['database']['name'] | Datenbank, die Firezone verwenden wird. Wird erstellt, wenn es nicht existiert. | Feuerzone' |
default['firezone']['database']['host'] | Datenbankhost, mit dem Firezone eine Verbindung herstellt. | node['firezone']['postgresql']['listen_address'] |
default['firezone']['database']['port'] | Datenbankport, mit dem Firezone eine Verbindung herstellt. | node['firezone']['postgresql']['port'] |
default['firezone']['database']['pool'] | Größe des Datenbankpools, den Firezone verwendet. | [10, Etc.nProzessoren].max |
default['firezone']['database']['ssl'] | Ob eine Verbindung zur Datenbank über SSL hergestellt werden soll. | FALSCH |
default['firezone']['database']['ssl_opts'] | {} | |
default['firezone']['database']['parameters'] | {} | |
default['firezone']['database']['extensions'] | Zu aktivierende Datenbankerweiterungen. | { 'plpgsql' => wahr, 'pg_trgm' => wahr } |
default['firezone']['phoenix']['enabled'] | Aktivieren oder deaktivieren Sie die Firezone-Webanwendung. | TRUE |
default['firezone']['phoenix']['listen_address'] | Abhöradresse der Firezone-Webanwendung. Dies ist die Upstream-Listen-Adresse, die nginx als Proxys verwendet. | 127.0.0.1' |
default['firezone']['phoenix']['port'] | Abhörport der Firezone-Webanwendung. Dies ist der Upstream-Port, den nginx proxiert. | 13000 |
default['firezone']['phoenix']['log_directory'] | Protokollverzeichnis der Firezone-Webanwendung. | „#{node['firezone']['log_directory']}/phoenix“ |
default['firezone']['phoenix']['log_rotation']['file_maxbytes'] | Größe der Protokolldatei der Firezone-Webanwendung. | 104857600 |
default['firezone']['phoenix']['log_rotation']['num_to_keep'] | Anzahl der aufzubewahrenden Protokolldateien der Firezone-Webanwendung. | 10 |
default['firezone']['phoenix']['crash_detection']['enabled'] | Aktivieren oder deaktivieren Sie das Herunterfahren der Firezone-Webanwendung, wenn ein Absturz erkannt wird. | TRUE |
default['firezone']['phoenix']['external_trusted_proxys'] | Liste vertrauenswürdiger Reverse-Proxys, formatiert als Array von IPs und/oder CIDRs. | [] |
default['firezone']['phoenix']['private_clients'] | Liste der HTTP-Clients privater Netzwerke, formatiert als Array von IPs und/oder CIDRs. | [] |
default['firezone']['wireguard']['enabled'] | Aktivieren oder deaktivieren Sie die gebündelte WireGuard-Verwaltung. | TRUE |
default['firezone']['wireguard']['log_directory'] | Protokollverzeichnis für gebündelte WireGuard-Verwaltung. | „#{node['firezone']['log_directory']}/wireguard“ |
default['firezone']['wireguard']['log_rotation']['file_maxbytes'] | Maximale Größe der WireGuard-Protokolldatei. | 104857600 |
default['firezone']['wireguard']['log_rotation']['num_to_keep'] | Anzahl der aufzubewahrenden WireGuard-Protokolldateien. | 10 |
default['firezone']['wireguard']['interface_name'] | Name der WireGuard-Schnittstelle. Das Ändern dieses Parameters kann zu einem vorübergehenden Verlust der VPN-Konnektivität führen. | wg-firezone' |
default['firezone']['wireguard']['port'] | WireGuard-Abhörport. | 51820 |
default['firezone']['wireguard']['mtu'] | WireGuard-Schnittstellen-MTU für diesen Server und für Gerätekonfigurationen. | 1280 |
default['firezone']['wireguard']['endpoint'] | WireGuard Endpoint zum Generieren von Gerätekonfigurationen. Wenn nil, wird standardmäßig die öffentliche IP-Adresse des Servers verwendet. | Null |
default['firezone']['wireguard']['dns'] | WireGuard DNS zur Verwendung für generierte Gerätekonfigurationen. | 1.1.1.1, 1.0.0.1′ |
default['firezone']['wireguard']['allowed_ips'] | WireGuard AllowedIPs zur Verwendung für generierte Gerätekonfigurationen. | 0.0.0.0/0, ::/0′ |
default['firezone']['wireguard']['persistent_keepalive'] | PersistentKeepalive-Standardeinstellung für generierte Gerätekonfigurationen. Ein Wert von 0 deaktiviert. | 0 |
default['firezone']['wireguard']['ipv4']['enabled'] | Aktivieren oder deaktivieren Sie IPv4 für das WireGuard-Netzwerk. | TRUE |
default['firezone']['wireguard']['ipv4']['masquerade'] | Aktivieren oder deaktivieren Sie die Maskerade für Pakete, die den IPv4-Tunnel verlassen. | TRUE |
default['firezone']['wireguard']['ipv4']['network'] | IPv4-Adresspool des WireGuard-Netzwerks. | 10.3.2.0/24 ′ |
default['firezone']['wireguard']['ipv4']['address'] | IPv4-Adresse der WireGuard-Schnittstelle. Muss innerhalb des WireGuard-Adresspools liegen. | 10.3.2.1' |
default['firezone']['wireguard']['ipv6']['enabled'] | Aktivieren oder deaktivieren Sie IPv6 für das WireGuard-Netzwerk. | TRUE |
default['firezone']['wireguard']['ipv6']['masquerade'] | Aktivieren oder deaktivieren Sie die Maskerade für Pakete, die den IPv6-Tunnel verlassen. | TRUE |
default['firezone']['wireguard']['ipv6']['network'] | IPv6-Adresspool des WireGuard-Netzwerks. | fd00::3:2:0/120′ |
default['firezone']['wireguard']['ipv6']['address'] | IPv6-Adresse der WireGuard-Schnittstelle. Muss innerhalb des IPv6-Adresspools liegen. | fd00::3:2:1′ |
default['firezone']['runit']['svlogd_bin'] | Runit svlogd bin-Speicherort. | „#{node['firezone']['install_directory']}/embedded/bin/svlogd“ |
default['firezone']['ssl']['directory'] | SSL-Verzeichnis zum Speichern generierter Zertifikate. | /var/opt/firezone/ssl' |
default['firezone']['ssl']['email_address'] | E-Mail-Adresse zur Verwendung für selbstsignierte Zertifikate und Verlängerungsbenachrichtigungen für das ACME-Protokoll. | du@example.com' |
default['firezone']['ssl']['acme']['enabled'] | Aktivieren Sie ACME für die automatische Bereitstellung von SSL-Zertifikaten. Deaktivieren Sie dies, um zu verhindern, dass Nginx auf Port 80 lauscht. Siehe hier für weitere Anweisungen. | FALSCH |
default['firezone']['ssl']['acme']['server'] | letsencrypt | |
default['firezone']['ssl']['acme']['keylength'] | Geben Sie den Schlüsseltyp und die Länge für SSL-Zertifikate an. Sehen hier | ec-256 |
default['firezone']['ssl']['certificate'] | Pfad zur Zertifikatsdatei für Ihren FQDN. Überschreibt die obige ACME-Einstellung, falls angegeben. Wenn sowohl ACME als auch this null sind, wird ein selbstsigniertes Zertifikat generiert. | Null |
default['firezone']['ssl']['certificate_key'] | Pfad zur Zertifikatsdatei. | Null |
default['firezone']['ssl']['ssl_dhparam'] | nginx ssl dh_param. | Null |
default['firezone']['ssl']['country_name'] | Ländername für selbstsigniertes Zertifikat. | UNS' |
default['firezone']['ssl']['state_name'] | Zustandsname für selbstsigniertes Zertifikat. | CA ' |
default['firezone']['ssl']['locality_name'] | Ortsname für selbstsigniertes Zertifikat. | San Francisco' |
default['firezone']['ssl']['company_name'] | Firmenname selbstsigniertes Zertifikat. | Meine Firma' |
default['firezone']['ssl']['organizational_unit_name'] | Name der Organisationseinheit für selbstsigniertes Zertifikat. | Operationen |
default['firezone']['ssl']['ciphers'] | SSL-Chiffren für nginx zu verwenden. | 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-Chiffren für den FIPs-Modus. | FIPS@STRENGTH:!aNULL:!eNULL' |
default['firezone']['ssl']['protocols'] | Zu verwendende TLS-Protokolle. | TLSv1 TLSv1.1 TLSv1.2′ |
default['firezone']['ssl']['session_cache'] | SSL-Sitzungscache. | freigegeben:SSL:4m' |
default['firezone']['ssl']['session_timeout'] | SSL-Sitzungszeitüberschreitung. | 5 m |
default['firezone']['robots_allow'] | nginx-Roboter erlauben. | /' |
default['firezone']['robots_disallow'] | Nginx-Roboter verbieten. | Null |
default['firezone']['outbound_email']['from'] | Ausgehende E-Mail von Adresse. | Null |
default['firezone']['outbound_email']['provider'] | Dienstanbieter für ausgehende E-Mails. | Null |
default['firezone']['outbound_email']['configs'] | Konfigurationen des ausgehenden E-Mail-Anbieters. | siehe omnibus/cookbooks/firezone/attributes/default.rb |
default['firezone']['telemetry']['enabled'] | Aktivieren oder deaktivieren Sie die anonymisierte Produkttelemetrie. | TRUE |
default['firezone']['connectivity_checks']['enabled'] | Aktivieren oder deaktivieren Sie den Firezone-Verbindungsprüfungsdienst. | TRUE |
default['firezone']['connectivity_checks']['interval'] | Intervall zwischen Konnektivitätsprüfungen in Sekunden. | 3_600 |
________________________________________________________________
Hier finden Sie eine Liste von Dateien und Verzeichnissen, die zu einer typischen Firezone-Installation gehören. Diese können sich je nach Änderungen an Ihrer Konfigurationsdatei ändern.
Weg | Beschreibung |
/var/opt/firezone | Verzeichnis der obersten Ebene, das Daten und generierte Konfigurationen für gebündelte Firezone-Dienste enthält. |
/opt/firezone | Verzeichnis der obersten Ebene, das erstellte Bibliotheken, Binärdateien und Laufzeitdateien enthält, die von Firezone benötigt werden. |
/usr/bin/firezone-ctl | Dienstprogramm firezone-ctl zum Verwalten Ihrer Firezone-Installation. |
/etc/systemd/system/firezone-runsvdir-start.service | systemd-Unit-Datei zum Starten des Firezone-Runsvdir-Supervisor-Prozesses. |
/etc/firezone | Firezone-Konfigurationsdateien. |
__________________________________________________________
Diese Seite war in Dokumenten leer
_____________________________________________________________
Die folgende nftables-Firewall-Vorlage kann verwendet werden, um den Server zu sichern, auf dem Firezone ausgeführt wird. Die Vorlage macht einige Annahmen; Möglicherweise müssen Sie die Regeln an Ihren Anwendungsfall anpassen:
Firezone konfiguriert seine eigenen nftables-Regeln, um Datenverkehr zu Zielen zuzulassen/zu verweigern, die in der Webschnittstelle konfiguriert sind, und ausgehenden NAT für Clientdatenverkehr zu handhaben.
Das Anwenden der folgenden Firewall-Vorlage auf einem bereits laufenden Server (nicht beim Booten) führt dazu, dass die Firezone-Regeln gelöscht werden. Dies kann Auswirkungen auf die Sicherheit haben.
Um dies zu umgehen, starten Sie den Phoenix-Dienst neu:
firezone-ctl startet phoenix neu
#!/usr/sbin/nft -f
## Alle vorhandenen Regeln löschen/leeren
Spülregelsatz
################################ VARIABLEN ################# ###############
## Internet/WAN-Schnittstellenname
Definiere DEV_WAN = eth0
## Name der WireGuard-Schnittstelle
Definiere DEV_WIREGUARD = wg-firezone
## WireGuard-Abhörport
definieren WIREGUARD_PORT = 51820
############################## VARIABLEN ENDE ################## ############
# Hauptfiltertabelle für die Inet-Familie
Tabellen-Inet-Filter {
# Regeln für weitergeleiteten Datenverkehr
# Diese Kette wird vor der Firezone-Forward-Kette verarbeitet
Kette vorwärts {
Typ Filter Hook-Forward-Prioritätsfilter – 5; Politik akzeptieren
}
# Regeln für den Eingabeverkehr
Ketteneingang {
Typ Filter Hook Eingangsprioritätsfilter; Politik fallen
## Eingehenden Datenverkehr zur Loopback-Schnittstelle zulassen
wenn lo \
akzeptieren \
Kommentar „Zulassen Sie den gesamten Datenverkehr von der Loopback-Schnittstelle“
## Gegründete und zugehörige Verbindungen zulassen
ct Zustand etabliert, bezogen \
akzeptieren \
Kommentar „Aufgebaute/verbundene Verbindungen zulassen“
## Eingehenden WireGuard-Datenverkehr zulassen
iif $DEV_WAN udp-dport $WIREGUARD_PORT \
Schalter \
akzeptieren \
Kommentar „Eingehenden WireGuard-Datenverkehr zulassen“
## Neue TCP-Nicht-SYN-Pakete protokollieren und löschen
tcp flags != syn ct state neu \
Grenzsatz 100/Minute platzen 150 Pakete \
Log-Präfix „IN – Neu !SYN:“ \
Kommentar „Ratenbegrenzungsprotokollierung für neue Verbindungen, bei denen das SYN-TCP-Flag nicht gesetzt ist“
tcp flags != syn ct state neu \
Schalter \
tropfen \
Kommentar „Neue Verbindungen verwerfen, bei denen das SYN-TCP-Flag nicht gesetzt ist“
## TCP-Pakete mit ungültigem fin/syn-Flag protokollieren und verwerfen
TCP-Flags & (fin|syn) == (fin|syn) \
Grenzsatz 100/Minute platzen 150 Pakete \
Log-Präfix „IN – TCP FIN|SIN:“ \
Kommentar „Protokollierung der Ratenbegrenzung für TCP-Pakete mit ungültigem fin/syn-Flag gesetzt“
TCP-Flags & (fin|syn) == (fin|syn) \
Schalter \
tropfen \
Kommentar „TCP-Pakete mit ungültigem Fin/Syn-Flag verwerfen“
## TCP-Pakete mit ungültigem syn/rst-Flag protokollieren und verwerfen
TCP-Flags & (syn|rst) == (syn|rst) \
Grenzsatz 100/Minute platzen 150 Pakete \
Log-Präfix „IN – TCP SYN|RST:“ \
Kommentar „Protokollierung der Ratenbegrenzung für TCP-Pakete mit ungültigem syn/rst-Flag gesetzt“
TCP-Flags & (syn|rst) == (syn|rst) \
Schalter \
tropfen \
Kommentar „TCP-Pakete mit ungültigem syn/rst-Flag verwerfen“
## Ungültige TCP-Flags protokollieren und löschen
TCP-Flags & (fin|syn|rst|psh|ack|urg) < (fin) \
Grenzsatz 100/Minute platzen 150 Pakete \
Log-Präfix „IN – FIN:“ \
Kommentar „Protokollierung der Ratenbegrenzung für ungültige TCP-Flags (fin|syn|rst|psh|ack|urg) < (fin)“
TCP-Flags & (fin|syn|rst|psh|ack|urg) < (fin) \
Schalter \
tropfen \
Kommentar „TCP-Pakete mit Flags verwerfen (fin|syn|rst|psh|ack|urg) < (fin)“
## Ungültige TCP-Flags protokollieren und löschen
TCP-Flags & (fin|syn|rst|psh|ack|urg) == (fin|psh|urg) \
Grenzsatz 100/Minute platzen 150 Pakete \
Log-Präfix „IN – FIN|PSH|URG:“ \
Kommentar „Protokollierung der Ratenbegrenzung für ungültige TCP-Flags (fin|syn|rst|psh|ack|urg) == (fin|psh|urg)“
TCP-Flags & (fin|syn|rst|psh|ack|urg) == (fin|psh|urg) \
Schalter \
tropfen \
Kommentar „TCP-Pakete mit Flags verwerfen (fin|syn|rst|psh|ack|urg) == (fin|psh|urg)“
## Datenverkehr mit ungültigem Verbindungsstatus verwerfen
ct-Zustand ungültig \
Grenzsatz 100/Minute platzen 150 Pakete \
log kennzeichnet alle Präfixe „IN – Ungültig:“ \
Kommentar „Ratenbegrenzungsprotokollierung für Datenverkehr mit ungültigem Verbindungsstatus“
ct-Zustand ungültig \
Schalter \
tropfen \
Kommentar „Traffic mit ungültigem Verbindungsstatus verwerfen“
## IPv4-Ping/Ping-Antworten zulassen, aber Ratenbegrenzung auf 2000 PPS
ip Protokoll icmp icmp-Typ { echo-reply, echo-request } \
Grenzsatz 2000/zweite \
Schalter \
akzeptieren \
Kommentar „Eingehendes IPv4-Echo (Ping) zulassen auf 2000 PPS begrenzt“
## Alle anderen eingehenden IPv4-ICMP zulassen
ip Protokoll icmp \
Schalter \
akzeptieren \
Kommentar „Alle anderen IPv4 ICMP zulassen“
## IPv6-Ping/Ping-Antworten zulassen, aber Ratenbegrenzung auf 2000 PPS
icmpv6 Typ { Echo-Antwort, Echo-Anfrage } \
Grenzsatz 2000/zweite \
Schalter \
akzeptieren \
Kommentar „Eingehendes IPv6-Echo (Ping) zulassen auf 2000 PPS begrenzt“
## Alle anderen eingehenden IPv6-ICMP zulassen
meta l4proto { icmpv6 } \
Schalter \
akzeptieren \
Kommentar „Alle anderen IPv6 ICMP zulassen“
## Eingehende Traceroute-UDP-Ports zulassen, aber auf 500 PPS beschränken
udp-dport 33434-33524 \
Grenzsatz 500/zweite \
Schalter \
akzeptieren \
Kommentar „Eingehenden UDP-Traceroute zulassen auf 500 PPS begrenzt“
## Eingehenden SSH zulassen
TCP-Port ssh ct Zustand neu \
Schalter \
akzeptieren \
Kommentar „Eingehende SSH-Verbindungen zulassen“
## Eingehendes HTTP und HTTPS zulassen
tcp dport { http, https } ct Zustand neu \
Schalter \
akzeptieren \
Kommentar „Eingehende HTTP- und HTTPS-Verbindungen zulassen“
## Nicht übereinstimmenden Datenverkehr protokollieren, aber die Protokollierung auf maximal 60 Nachrichten/Minute begrenzen
## Die Standardrichtlinie wird auf nicht übereinstimmenden Datenverkehr angewendet
Grenzsatz 60/Minute platzen 100 Pakete \
Log-Präfix „EIN – Drop:“ \
Kommentar „Nicht übereinstimmenden Datenverkehr protokollieren“
## Zählen Sie den nicht übereinstimmenden Datenverkehr
Schalter \
Kommentar „Zählen Sie alle nicht übereinstimmenden Zugriffe“
}
# Regeln für den Ausgangsdatenverkehr
Kettenausgang {
Typ Filter Hook Ausgangsprioritätsfilter; Politik fallen
## Ausgehenden Datenverkehr zur Loopback-Schnittstelle zulassen
oif lo \
akzeptieren \
Kommentar „Zulassen Sie den gesamten Datenverkehr zur Loopback-Schnittstelle“
## Gegründete und zugehörige Verbindungen zulassen
ct Zustand etabliert, bezogen \
Schalter \
akzeptieren \
Kommentar „Aufgebaute/verbundene Verbindungen zulassen“
## Ausgehenden WireGuard-Datenverkehr zulassen, bevor Verbindungen mit schlechtem Status unterbrochen werden
oif $DEV_WAN UDP-Sport $WIREGUARD_PORT \
Schalter \
akzeptieren \
Kommentar „DrahtGuard ausgehenden Datenverkehr zulassen“
## Datenverkehr mit ungültigem Verbindungsstatus verwerfen
ct-Zustand ungültig \
Grenzsatz 100/Minute platzen 150 Pakete \
log kennzeichnet alle Präfixe „AUS – Ungültig:“ \
Kommentar „Ratenbegrenzungsprotokollierung für Datenverkehr mit ungültigem Verbindungsstatus“
ct-Zustand ungültig \
Schalter \
tropfen \
Kommentar „Traffic mit ungültigem Verbindungsstatus verwerfen“
## Alle anderen ausgehenden IPv4-ICMP zulassen
ip Protokoll icmp \
Schalter \
akzeptieren \
Kommentar „Alle IPv4-ICMP-Typen zulassen“
## Alle anderen ausgehenden IPv6-ICMP zulassen
meta l4proto { icmpv6 } \
Schalter \
akzeptieren \
Kommentar „Alle IPv6-ICMP-Typen zulassen“
## Ausgehende Traceroute-UDP-Ports zulassen, aber auf 500 PPS beschränken
udp-dport 33434-33524 \
Grenzsatz 500/zweite \
Schalter \
akzeptieren \
Kommentar „Zulassen ausgehender UDP-Traceroute auf 500 PPS beschränkt“
## Ausgehende HTTP- und HTTPS-Verbindungen zulassen
tcp dport { http, https } ct Zustand neu \
Schalter \
akzeptieren \
Kommentar „Ausgehende HTTP- und HTTPS-Verbindungen zulassen“
## Ausgehende SMTP-Übermittlung zulassen
tcp dport Übermittlung ct Status neu \
Schalter \
akzeptieren \
Kommentar „Ausgehende SMTP-Übermittlung zulassen“
## Ausgehende DNS-Anfragen zulassen
udp-dport 53 \
Schalter \
akzeptieren \
Kommentar „Ausgehende UDP-DNS-Anfragen zulassen“
TCP-Port 53 \
Schalter \
akzeptieren \
Kommentar „Ausgehende TCP-DNS-Anfragen zulassen“
## Ausgehende NTP-Anfragen zulassen
udp-dport 123 \
Schalter \
akzeptieren \
Kommentar „Ausgehende NTP-Anfragen zulassen“
## Nicht übereinstimmenden Datenverkehr protokollieren, aber die Protokollierung auf maximal 60 Nachrichten/Minute begrenzen
## Die Standardrichtlinie wird auf nicht übereinstimmenden Datenverkehr angewendet
Grenzsatz 60/Minute platzen 100 Pakete \
Log-Präfix „AUS – Fallenlassen:“ \
Kommentar „Nicht übereinstimmenden Datenverkehr protokollieren“
## Zählen Sie den nicht übereinstimmenden Datenverkehr
Schalter \
Kommentar „Zählen Sie alle nicht übereinstimmenden Zugriffe“
}
}
# Haupt-NAT-Filtertabelle
Tabelle inet nat {
# Regeln für das Pre-Routing von NAT-Verkehr
Kettenvorrangierung {
Geben Sie nat Hook Prerouting-Priorität ein dstnat; Politik akzeptieren
}
# Regeln für das Post-Routing von NAT-Verkehr
# Diese Tabelle wird vor der Firezone-Post-Routing-Kette verarbeitet
Kettenpostrouting {
Typ nat Hook postrouting priorität srcnat – 5; Politik akzeptieren
}
}
Die Firewall sollte am entsprechenden Ort für die laufende Linux-Distribution gespeichert werden. Für Debian/Ubuntu ist dies /etc/nftables.conf und für RHEL ist dies /etc/sysconfig/nftables.conf.
nftables.service muss konfiguriert werden, um beim Booten zu starten (falls noch nicht geschehen):
systemctl aktiviert nftables.service
Wenn Sie Änderungen an der Firewall-Vorlage vornehmen, kann die Syntax durch Ausführen des Befehls check validiert werden:
nft -f /path/to/nftables.conf -c
Stellen Sie sicher, dass die Firewall wie erwartet funktioniert, da bestimmte nftables-Funktionen je nach Version, die auf dem Server ausgeführt wird, möglicherweise nicht verfügbar sind.
_______________________________________________________________
Dieses Dokument bietet einen Überblick über die Telemetriedaten, die Firezone von Ihrer selbst gehosteten Instanz sammelt, und wie Sie sie deaktivieren können.
Feuerzone verlässt sich auf Telemetrie, um unsere Roadmap zu priorisieren und die technischen Ressourcen zu optimieren, die wir haben, um Firezone für alle besser zu machen.
Die von uns gesammelte Telemetrie zielt darauf ab, die folgenden Fragen zu beantworten:
Es gibt drei Hauptorte, an denen Telemetriedaten in Firezone gesammelt werden:
In jedem dieser drei Kontexte erfassen wir die Mindestdatenmenge, die zur Beantwortung der Fragen im obigen Abschnitt erforderlich ist.
Administrator-E-Mails werden nur erfasst, wenn Sie sich ausdrücklich für Produktaktualisierungen entscheiden. Andernfalls handelt es sich um personenbezogene Daten hört niemals gesammelt.
Firezone speichert Telemetriedaten in einer selbst gehosteten Instanz von PostHog, die in einem privaten Kubernetes-Cluster ausgeführt wird, auf das nur das Firezone-Team zugreifen kann. Hier ist ein Beispiel für ein Telemetrieereignis, das von Ihrer Instanz von Firezone an unseren Telemetrieserver gesendet wird:
{
"Ich würde": “0182272d-0b88-0000-d419-7b9a413713f1”,
„Zeitstempel“: “2022-07-22T18:30:39.748000+00:00”,
"Veranstaltung": „fz_http_started“,
„eindeutige_id“: “1ec2e794-1c3e-43fc-a78f-1db6d1a37f54”,
"Eigenschaften": {
„$geoip_city_name“: „Aschenbrand“,
„$geoip_continent_code“: "N / A",
„$geoip_continent_name“: "Nordamerika",
„$geoip_country_code“: "UNS",
„$geoip_country_name“: "Vereinigte Staaten",
„$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)“
],
„eindeutige_id“: “1zc2e794-1c3e-43fc-a78f-1db6d1a37f54”,
„fqdn“: „awsdemo.firezone.dev“,
"Kernelversion": „Linux 5.13.0“,
"Ausführung": "0.4.6"
},
„Elemente_Kette“: ""
}
HINWEIS
Das Firezone-Entwicklungsteam verlässt sich auf Produktanalysen, um Firezone für alle besser zu machen. Telemetrie aktiviert zu lassen, ist der wertvollste Beitrag, den Sie zur Entwicklung von Firezone leisten können. Wir verstehen jedoch, dass einige Benutzer höhere Datenschutz- oder Sicherheitsanforderungen haben und es vorziehen, die Telemetrie vollständig zu deaktivieren. Wenn Sie das sind, lesen Sie weiter.
Telemetrie ist standardmäßig aktiviert. Um die Produkttelemetrie vollständig zu deaktivieren, setzen Sie die folgende Konfigurationsoption in /etc/firezone/firezone.rb auf false und führen Sie sudo firezone-ctl reconfigure aus, um die Änderungen zu übernehmen.
Standard['Feuerzone']['Telemetrie']['ermöglicht'] = falsch
Dadurch wird die gesamte Produkttelemetrie vollständig deaktiviert.
Hagelbytes
9511 Queens Guard Ct.
Lorbeer, MD 20723
Telefon: (732) 771-9995
E-Mail: info@hailbytes.com