Le noeud fonctionne dès l’installation et ne nécessite aucune configuration. Les variables d’environnement servent à adapter le comportement du client à votre infrastructure : changer les ports, restreindre les versions de TLS, activer le journal des requêtes en direct ou les métriques.

Comment définir les variables#

Le client est installé dans /opt/wafclient et s’exécute en tant que service systemd privateflare. Les variables sont lues dans le fichier /opt/wafclient/.env — l’installateur le crée vide.

  1. Ouvrez le fichier et ajoutez les variables, une par ligne, au format NOM=valeur :
nano /opt/wafclient/.env
  1. Redémarrez le service — les variables ne sont lues qu’au démarrage du client :
systemctl restart privateflare

Exemple de fichier .env :

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

Pour annuler un réglage, supprimez la ligne dans .env et redémarrez le service. Pour les variables de type interrupteur (PFNOH3, PFNOBAN et les autres), c’est la présence même d’une valeur qui compte : PFNOH3=0 désactivera lui aussi HTTP/3.

Réseau et TLS#

VariableDescriptionPar défaut
HTTPPPort HTTP. Une valeur non numérique ou 0 est ignorée80
HTTPSPPort HTTPS et HTTP/3443
TLSMINVersion minimale de TLS : 1.0, 1.1, 1.2 ou 1.31.0
TLSMAXVersion maximale de TLS : 1.0, 1.1, 1.2 ou 1.31.3

Une valeur incorrecte de TLSMIN ou TLSMAX ne provoque pas d’erreur — la valeur par défaut est utilisée.

HTTP/3 et empreintes#

VariableEffet
PFNOH3Désactive HTTP/3 : QUIC n’est pas lancé, l’en-tête Alt-Svc n’est pas renvoyé, les visiteurs restent en TCP
PFNOJADésactive le calcul de JA3/JA4 : les en-têtes PF-JA3 et PF-JA4 ne sont pas envoyés au backend
PFNOSYNDésactive l’empreinte TCP passive : les en-têtes PF-TCP-Fingerprint, PF-TCP-Signature et PF-TCP-OS ne sont pas envoyés au backend

N’importe quelle valeur non vide suffit, par exemple PFNOH3=1. Les variables sont indépendantes les unes des autres.

Important : JA3/JA4 ne sont calculés que pour les connexions TCP. Un navigateur passé en HTTP/3 arrivera sur le backend sans PF-JA3/PF-JA4. Si vous avez besoin des empreintes dans chaque requête, définissez PFNOH3. Cela ne concerne pas l’en-tête TLSFingerprint : il est transmis aussi bien en TCP qu’en HTTP/3, et PFNOJA n’a aucun effet sur lui.

En-têtes de l’empreinte TCP passive :

En-têteExempleSignification
PF-TCP-Signature4:64:0:1460:mss*44,10:mss,sok,ts,nop,ws:df,id+:0Signature de la connexion au format p0f v3
PF-TCP-Fingerprintcd79d39f578dHachage court de la signature
PF-TCP-OSLinux 2.2.x-3.xOS du client détecté. Absent si aucune correspondance n’est trouvée

Paramètres système#

Au démarrage, le client optimise les paramètres réseau du noyau, configure le pare-feu et bloque des IP via iptables/ipset. Si le serveur est géré par votre propre automatisation, ces actions peuvent être désactivées.

VariableEffet
PFNOBANDésactive le blocage des IP via iptables/ipset
PFNOTUNEDésactive l’optimisation sysctl et la configuration du pare-feu
PFNOFWDésactive uniquement la configuration du pare-feu

N’importe quelle valeur non vide suffit.

Journal des requêtes en direct#

VariableDescriptionPar défaut
LOGROUTEAdresse de la page du journal en direct, par exemple /log. Si elle n’est pas définie, le journal est désactivédésactivé
LOGUSERIdentifiantlog
LOGPASSMot de passelog
LOGFORMATFormat des lignes : json ou texte (toute autre valeur)texte

Pour en savoir plus, consultez la section Journalisation.

Métriques#

Le noeud peut exposer des métriques au format Prometheus — vous pouvez ainsi les intégrer facilement à votre propre monitoring.

VariableDescriptionPar défaut
METRICSROUTEAdresse de la page des métriques, par exemple /metrics. Si elle n’est pas définie, les métriques sont désactivéesdésactivées
METRICSUSERIdentifiantmetrics
METRICSPASSMot de passemetrics

Important : les pages du journal et des métriques sont accessibles sur n’importe quel domaine desservi par le noeud. Définissez impérativement votre propre mot de passe et une adresse difficile à deviner — les valeurs par défaut sont connues de tous.