Skip to content
Cette page a été générée et traduite avec l'aide de l'IA. Si vous remarquez des inexactitudes, n'hésitez pas à contribuer. Modifier sur GitHub

Référence de configuration

Cette page documente chaque clé de configuration dans le fichier de configuration TOML de PRX-WAF. Le fichier de configuration par défaut est configs/default.toml.

Paramètres du proxy ([proxy])

Paramètres qui contrôlent l'écouteur du proxy inverse.

CléTypeDéfautDescription
listen_addrstring"0.0.0.0:80"Adresse d'écoute HTTP
listen_addr_tlsstring"0.0.0.0:443"Adresse d'écoute HTTPS
worker_threadsinteger | nullnull (nombre de CPU)Nombre de threads worker du proxy. Quand null, utilise le nombre de cœurs CPU logiques.

Paramètres de l'API ([api])

Paramètres pour l'API de gestion et l'interface d'administration.

CléTypeDéfautDescription
listen_addrstring"127.0.0.1:9527"Adresse d'écoute de l'API d'administration + interface. Liez à 127.0.0.1 en production pour restreindre l'accès à localhost.

Paramètres de stockage ([storage])

Connexion à la base de données PostgreSQL.

CléTypeDéfautDescription
database_urlstring"postgresql://prx_waf:[email protected]:5432/prx_waf"URL de connexion PostgreSQL
max_connectionsinteger20Nombre maximum de connexions dans le pool de base de données

Paramètres du cache ([cache])

Configuration du cache de réponses utilisant un cache LRU moka en mémoire.

CléTypeDéfautDescription
enabledbooleantrueActiver le cache de réponses
max_size_mbinteger256Taille maximale du cache en mégaoctets
default_ttl_secsinteger60Durée de vie par défaut pour les réponses mises en cache (secondes)
max_ttl_secsinteger3600Plafond TTL maximum (secondes). Les réponses ne peuvent pas être mises en cache plus longtemps que cela, quels que soient les en-têtes en amont.

Paramètres HTTP/3 ([http3])

HTTP/3 via QUIC (bibliothèque Quinn).

CléTypeDéfautDescription
enabledbooleanfalseActiver le support HTTP/3
listen_addrstring"0.0.0.0:443"Adresse d'écoute QUIC (UDP)
cert_pemstring--Chemin vers le certificat TLS (format PEM)
key_pemstring--Chemin vers la clé privée TLS (format PEM)

WARNING

HTTP/3 nécessite des certificats TLS valides. cert_pem et key_pem doivent être définis quand enabled = true.

Paramètres de sécurité ([security])

Configuration de sécurité de l'API d'administration et du proxy.

CléTypeDéfautDescription
admin_ip_allowliststring[][]Liste des IPs/CIDRs autorisés à accéder à l'API d'administration. Vide signifie autoriser tout.
max_request_body_bytesinteger10485760 (10 Mo)Taille maximale du corps de requête en octets. Les requêtes dépassant cette limite sont rejetées avec 413.
api_rate_limit_rpsinteger0Limite de débit par IP pour l'API d'administration (requêtes par seconde). 0 signifie désactivé.
cors_originsstring[][]Origines CORS autorisées pour l'API d'administration. Vide signifie autoriser toutes les origines.

Paramètres des règles ([rules])

Configuration du moteur de règles.

CléTypeDéfautDescription
dirstring"rules/"Répertoire contenant les fichiers de règles
hot_reloadbooleantrueActiver la surveillance du système de fichiers pour le rechargement automatique des règles
reload_debounce_msinteger500Fenêtre d'anti-rebond pour les événements de modification de fichier (millisecondes)
enable_builtin_owaspbooleantrueActiver les règles OWASP CRS intégrées
enable_builtin_botbooleantrueActiver les règles de détection de bots intégrées
enable_builtin_scannerbooleantrueActiver les règles de détection de scanners intégrées

Sources de règles ([[rules.sources]])

Configurez plusieurs sources de règles (répertoires locaux ou URLs distantes) :

CléTypeRequisDescription
namestringOuiNom de la source (ex. "custom", "owasp-crs")
pathstringNonChemin du répertoire local
urlstringNonURL distante pour la récupération des règles
formatstringOuiFormat des règles : "yaml", "json" ou "modsec"
update_intervalintegerNonIntervalle de mise à jour automatique en secondes (sources distantes uniquement)
toml
[[rules.sources]]
name   = "custom"
path   = "rules/custom/"
format = "yaml"

[[rules.sources]]
name            = "owasp-crs"
url             = "https://example.com/rules/owasp.yaml"
format          = "yaml"
update_interval = 86400

Paramètres CrowdSec ([crowdsec])

Intégration de l'intelligence sur les menaces CrowdSec.

CléTypeDéfautDescription
enabledbooleanfalseActiver l'intégration CrowdSec
modestring"bouncer"Mode d'intégration : "bouncer", "appsec" ou "both"
lapi_urlstring"http://127.0.0.1:8080"URL du LAPI CrowdSec
api_keystring""Clé API du bouncer
update_frequency_secsinteger10Intervalle de rafraîchissement du cache de décisions (secondes)
fallback_actionstring"allow"Action quand le LAPI est inaccessible : "allow", "block" ou "log"
appsec_endpointstring--URL du point de terminaison d'inspection AppSec HTTP (optionnel)
appsec_keystring--Clé API AppSec (optionnel)

Configuration des hôtes ([[hosts]])

Entrées d'hôte statiques (peuvent aussi être gérées via l'interface d'administration/API) :

CléTypeRequisDescription
hoststringOuiNom de domaine à faire correspondre
portintegerOuiPort d'écoute (généralement 80 ou 443)
remote_hoststringOuiIP ou nom d'hôte du backend en amont
remote_portintegerOuiPort du backend en amont
sslbooleanNonUtiliser HTTPS vers le backend en amont (défaut : false)
guard_statusbooleanNonActiver la protection WAF (défaut : true)

Paramètres du cluster ([cluster])

Configuration du cluster multi-nœuds. Voir Mode cluster pour les détails.

CléTypeDéfautDescription
enabledbooleanfalseActiver le mode cluster
node_idstring"" (auto)Identifiant unique du nœud. Auto-généré si vide.
rolestring"auto"Rôle du nœud : "auto", "main" ou "worker"
listen_addrstring"0.0.0.0:16851"Adresse d'écoute QUIC pour la communication inter-nœuds
seedsstring[][]Adresses des nœuds seeds pour rejoindre le cluster

Crypto du cluster ([cluster.crypto])

CléTypeDéfautDescription
ca_certstring--Chemin vers le certificat CA (PEM)
ca_keystring--Chemin vers la clé privée CA (nœud principal uniquement)
node_certstring--Chemin vers le certificat du nœud (PEM)
node_keystring--Chemin vers la clé privée du nœud (PEM)
auto_generatebooleantrueAuto-générer les certificats au premier démarrage
ca_validity_daysinteger3650Validité du certificat CA (jours)
node_validity_daysinteger365Validité du certificat de nœud (jours)
renewal_before_daysinteger7Renouveler automatiquement ce nombre de jours avant expiration

Synchronisation du cluster ([cluster.sync])

CléTypeDéfautDescription
rules_interval_secsinteger10Intervalle de vérification de version des règles
config_interval_secsinteger30Intervalle de synchronisation de configuration
events_batch_sizeinteger100Vider le lot d'événements à ce nombre
events_flush_interval_secsinteger5Vider les événements même si le lot n'est pas plein
stats_interval_secsinteger10Intervalle de rapport des statistiques
events_queue_sizeinteger10000Taille de la file d'événements (supprime les plus anciens si pleine)

Élection du cluster ([cluster.election])

CléTypeDéfautDescription
timeout_min_msinteger150Délai d'élection minimum (ms)
timeout_max_msinteger300Délai d'élection maximum (ms)
heartbeat_interval_msinteger50Intervalle de heartbeat principal vers worker (ms)
phi_suspectfloat8.0Seuil de suspicion du détecteur de défaillances phi accrual
phi_deadfloat12.0Seuil mort du détecteur de défaillances phi accrual

Santé du cluster ([cluster.health])

CléTypeDéfautDescription
check_interval_secsinteger5Fréquence de vérification de santé
max_missed_heartbeatsinteger3Marquer le pair comme non sain après N manques

Configuration par défaut complète

Pour référence, consultez le fichier default.toml dans le dépôt.

Étapes suivantes

Released under the Apache-2.0 License.