Skip to content
Esta página fue generada y traducida con asistencia de IA. Si encuentra alguna imprecisión, no dude en ayudar a mejorarla. Editar en GitHub

Referencia de Configuración

Esta página documenta cada clave de configuración en el archivo de configuración TOML de PRX-WAF. El archivo de configuración predeterminado es configs/default.toml.

Ajustes del Proxy ([proxy])

Ajustes que controlan el listener del proxy inverso.

ClaveTipoPredeterminadoDescripción
listen_addrstring"0.0.0.0:80"Dirección del listener HTTP
listen_addr_tlsstring"0.0.0.0:443"Dirección del listener HTTPS
worker_threadsinteger | nullnull (recuento de CPUs)Número de hilos de trabajo del proxy. Cuando es null, usa el número de núcleos de CPU lógicos.

Ajustes de la API ([api])

Ajustes para la API de gestión y la interfaz de administración.

ClaveTipoPredeterminadoDescripción
listen_addrstring"127.0.0.1:9527"Dirección del listener de la API de administración + interfaz. Vincula a 127.0.0.1 en producción para restringir el acceso al localhost.

Ajustes de Almacenamiento ([storage])

Conexión a la base de datos PostgreSQL.

ClaveTipoPredeterminadoDescripción
database_urlstring"postgresql://prx_waf:[email protected]:5432/prx_waf"URL de conexión PostgreSQL
max_connectionsinteger20Número máximo de conexiones de base de datos en el pool

Ajustes de Caché ([cache])

Configuración de caché de respuestas usando una caché LRU en memoria moka.

ClaveTipoPredeterminadoDescripción
enabledbooleantrueHabilitar caché de respuestas
max_size_mbinteger256Tamaño máximo de la caché en megabytes
default_ttl_secsinteger60Tiempo de vida predeterminado para las respuestas en caché (segundos)
max_ttl_secsinteger3600Límite máximo de TTL (segundos). Las respuestas no pueden almacenarse en caché más de esto independientemente de los encabezados del ascendente.

Ajustes HTTP/3 ([http3])

HTTP/3 vía QUIC (biblioteca Quinn).

ClaveTipoPredeterminadoDescripción
enabledbooleanfalseHabilitar soporte HTTP/3
listen_addrstring"0.0.0.0:443"Dirección del listener QUIC (UDP)
cert_pemstring--Ruta al certificado TLS (formato PEM)
key_pemstring--Ruta a la clave privada TLS (formato PEM)

WARNING

HTTP/3 requiere certificados TLS válidos. Tanto cert_pem como key_pem deben establecerse cuando enabled = true.

Ajustes de Seguridad ([security])

Configuración de seguridad de la API de administración y el proxy.

ClaveTipoPredeterminadoDescripción
admin_ip_allowliststring[][]Lista de IPs/CIDRs permitidos para acceder a la API de administración. Vacío significa permitir todo.
max_request_body_bytesinteger10485760 (10 MB)Tamaño máximo del cuerpo de la solicitud en bytes. Las solicitudes que superen esto son rechazadas con 413.
api_rate_limit_rpsinteger0Límite de velocidad por IP para la API de administración (solicitudes por segundo). 0 significa deshabilitado.
cors_originsstring[][]Orígenes CORS permitidos para la API de administración. Vacío significa permitir todos los orígenes.

Ajustes de Reglas ([rules])

Configuración del motor de reglas.

ClaveTipoPredeterminadoDescripción
dirstring"rules/"Directorio que contiene los archivos de reglas
hot_reloadbooleantrueHabilitar la observación del sistema de archivos para la recarga automática de reglas
reload_debounce_msinteger500Ventana de debounce para eventos de cambio de archivo (milisegundos)
enable_builtin_owaspbooleantrueHabilitar las reglas OWASP CRS integradas
enable_builtin_botbooleantrueHabilitar las reglas de detección de bots integradas
enable_builtin_scannerbooleantrueHabilitar las reglas de detección de escáneres integradas

Fuentes de Reglas ([[rules.sources]])

Configura múltiples fuentes de reglas (directorios locales o URLs remotas):

ClaveTipoRequeridoDescripción
namestringNombre de la fuente (p. ej., "custom", "owasp-crs")
pathstringNoRuta al directorio local
urlstringNoURL remota para la obtención de reglas
formatstringFormato de reglas: "yaml", "json", o "modsec"
update_intervalintegerNoIntervalo de actualización automática en segundos (solo fuentes remotas)
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

Ajustes de CrowdSec ([crowdsec])

Integración de inteligencia de amenazas con CrowdSec.

ClaveTipoPredeterminadoDescripción
enabledbooleanfalseHabilitar la integración con CrowdSec
modestring"bouncer"Modo de integración: "bouncer", "appsec", o "both"
lapi_urlstring"http://127.0.0.1:8080"URL del LAPI de CrowdSec
api_keystring""Clave de API del bouncer
update_frequency_secsinteger10Intervalo de actualización de la caché de decisiones (segundos)
fallback_actionstring"allow"Acción cuando LAPI no es accesible: "allow", "block", o "log"
appsec_endpointstring--URL del endpoint de inspección HTTP AppSec (opcional)
appsec_keystring--Clave de API AppSec (opcional)

Configuración de Hosts ([[hosts]])

Entradas de host estáticas (también pueden gestionarse vía la interfaz de administración/API):

ClaveTipoRequeridoDescripción
hoststringNombre de dominio a coincidir
portintegerPuerto de escucha (generalmente 80 o 443)
remote_hoststringIP o nombre de host del backend ascendente
remote_portintegerPuerto del backend ascendente
sslbooleanNoUsar HTTPS hacia el ascendente (predeterminado: false)
guard_statusbooleanNoHabilitar protección WAF (predeterminado: true)

Ajustes del Clúster ([cluster])

Configuración del clúster multi-nodo. Consulta Modo Clúster para más detalles.

ClaveTipoPredeterminadoDescripción
enabledbooleanfalseHabilitar el modo clúster
node_idstring"" (auto)Identificador único del nodo. Se genera automáticamente si está vacío.
rolestring"auto"Rol del nodo: "auto", "main", o "worker"
listen_addrstring"0.0.0.0:16851"Dirección de escucha QUIC para comunicación entre nodos
seedsstring[][]Direcciones de nodos semilla para unirse al clúster

Criptografía del Clúster ([cluster.crypto])

ClaveTipoPredeterminadoDescripción
ca_certstring--Ruta al certificado CA (PEM)
ca_keystring--Ruta a la clave privada CA (solo nodo principal)
node_certstring--Ruta al certificado del nodo (PEM)
node_keystring--Ruta a la clave privada del nodo (PEM)
auto_generatebooleantrueGenerar automáticamente certificados en el primer inicio
ca_validity_daysinteger3650Validez del certificado CA (días)
node_validity_daysinteger365Validez del certificado del nodo (días)
renewal_before_daysinteger7Renovar automáticamente este número de días antes de la expiración

Sincronización del Clúster ([cluster.sync])

ClaveTipoPredeterminadoDescripción
rules_interval_secsinteger10Intervalo de verificación de versiones de reglas
config_interval_secsinteger30Intervalo de sincronización de configuración
events_batch_sizeinteger100Vaciar el lote de eventos al alcanzar este número
events_flush_interval_secsinteger5Vaciar eventos incluso si el lote no está lleno
stats_interval_secsinteger10Intervalo de reporte de estadísticas
events_queue_sizeinteger10000Tamaño de la cola de eventos (elimina los más antiguos si está llena)

Elección del Clúster ([cluster.election])

ClaveTipoPredeterminadoDescripción
timeout_min_msinteger150Tiempo de espera mínimo de elección (ms)
timeout_max_msinteger300Tiempo de espera máximo de elección (ms)
heartbeat_interval_msinteger50Intervalo de latido del principal a los trabajadores (ms)
phi_suspectfloat8.0Umbral de sospecha del phi accrual
phi_deadfloat12.0Umbral de muerte del phi accrual

Salud del Clúster ([cluster.health])

ClaveTipoPredeterminadoDescripción
check_interval_secsinteger5Frecuencia de verificación de salud
max_missed_heartbeatsinteger3Marcar al par como no saludable después de N latidos perdidos

Configuración Predeterminada Completa

Para referencia, consulta el archivo default.toml en el repositorio.

Próximos Pasos

Released under the Apache-2.0 License.