Die Node ist sofort einsatzbereit und muss nicht konfiguriert werden. Umgebungsvariablen benötigen Sie, wenn Sie das Verhalten des Clients an Ihre eigene Infrastruktur anpassen möchten: Ports ändern, TLS-Versionen einschränken, das Live-Log der Anfragen oder Metriken aktivieren.

Variablen setzen#

Der Client ist in /opt/wafclient installiert und läuft als systemd-Dienst privateflare. Die Variablen werden aus der Datei /opt/wafclient/.env gelesen — der Installer legt sie leer an.

  1. Öffnen Sie die Datei und fügen Sie die Variablen hinzu, eine pro Zeile im Format NAME=Wert:
nano /opt/wafclient/.env
  1. Starten Sie den Dienst neu — die Variablen werden nur beim Start des Clients gelesen:
systemctl restart privateflare

Beispiel für eine .env-Datei:

TLSMIN=1.2
LOGROUTE=/my-secret-log
LOGPASS=strong-password
LOGFORMAT=json

Um eine Einstellung rückgängig zu machen, entfernen Sie die Zeile aus .env und starten Sie den Dienst neu. Bei Schaltervariablen (PFNOH3, PFNOBAN und anderen) zählt allein, dass ein Wert vorhanden ist: Auch PFNOH3=0 deaktiviert HTTP/3.

Netzwerk und TLS#

VariableBeschreibungStandard
HTTPPHTTP-Port. Ein nicht numerischer Wert oder 0 wird ignoriert80
HTTPSPPort für HTTPS und HTTP/3443
TLSMINMinimale TLS-Version: 1.0, 1.1, 1.2 oder 1.31.0
TLSMAXMaximale TLS-Version: 1.0, 1.1, 1.2 oder 1.31.3

Ein ungültiger Wert für TLSMIN oder TLSMAX führt nicht zu einem Fehler — es wird der Standardwert verwendet.

HTTP/3 und Fingerprints#

VariableWirkung
PFNOH3Deaktiviert HTTP/3: QUIC wird nicht gestartet, der Header Alt-Svc wird nicht gesendet, die Besucher bleiben bei TCP
PFNOJADeaktiviert die Berechnung von JA3/JA4: Die Header PF-JA3 und PF-JA4 werden nicht an das Backend gesendet
PFNOSYNDeaktiviert den passiven TCP-Fingerprint: Die Header PF-TCP-Fingerprint, PF-TCP-Signature und PF-TCP-OS werden nicht an das Backend gesendet

Es genügt ein beliebiger nicht leerer Wert, zum Beispiel PFNOH3=1. Die Variablen sind voneinander unabhängig.

Wichtig: JA3/JA4 werden nur für TCP-Verbindungen berechnet. Ein Browser, der zu HTTP/3 gewechselt ist, erreicht das Backend ohne PF-JA3/PF-JA4. Wenn Sie die Fingerprints in jeder Anfrage benötigen, setzen Sie PFNOH3. Für den Header TLSFingerprint gilt das nicht: Er wird sowohl über TCP als auch über HTTP/3 gesendet, und PFNOJA hat keinen Einfluss auf ihn.

Header des passiven TCP-Fingerprints:

HeaderBeispielBedeutung
PF-TCP-Signature4:64:0:1460:mss*44,10:mss,sok,ts,nop,ws:df,id+:0Signatur der Verbindung im Format p0f v3
PF-TCP-Fingerprintcd79d39f578dKurzer Hash der Signatur
PF-TCP-OSLinux 2.2.x-3.xErkanntes Betriebssystem des Clients. Fehlt, wenn es keine Übereinstimmung gibt

Systemeinstellungen#

Beim Start optimiert der Client die Netzwerkparameter des Kernels, konfiguriert die Firewall und sperrt IPs über iptables/ipset. Wenn der Server von Ihrer eigenen Automatisierung verwaltet wird, können Sie diese Aktionen deaktivieren.

VariableWirkung
PFNOBANDeaktiviert die IP-Sperrung über iptables/ipset
PFNOTUNEDeaktiviert die sysctl-Optimierung und die Firewall-Konfiguration
PFNOFWDeaktiviert nur die Firewall-Konfiguration

Es genügt ein beliebiger nicht leerer Wert.

Live-Log der Anfragen#

VariableBeschreibungStandard
LOGROUTEAdresse der Live-Log-Seite, zum Beispiel /log. Ist sie nicht gesetzt, ist das Log deaktiviertdeaktiviert
LOGUSERLoginlog
LOGPASSPasswortlog
LOGFORMATZeilenformat: json oder Text (jeder andere Wert)Text

Mehr dazu im Abschnitt Logging.

Metriken#

Die Node kann Metriken im Prometheus-Format bereitstellen — so lassen sie sich bequem in Ihr eigenes Monitoring einbinden.

VariableBeschreibungStandard
METRICSROUTEAdresse der Metrikseite, zum Beispiel /metrics. Ist sie nicht gesetzt, sind die Metriken deaktiviertdeaktiviert
METRICSUSERLoginmetrics
METRICSPASSPasswortmetrics

Wichtig: Die Log- und die Metrikseite sind auf jeder Domain erreichbar, die die Node bedient. Legen Sie unbedingt ein eigenes Passwort und eine nicht offensichtliche Adresse fest — die Standardwerte sind allgemein bekannt.