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

Configuración

PRX-WAF se configura a través de un archivo TOML pasado vía el indicador -c / --config. La ruta predeterminada es configs/default.toml.

bash
prx-waf -c /etc/prx-waf/config.toml run

Fuentes de Configuración

PRX-WAF usa dos capas de configuración:

FuenteÁmbitoDescripción
Archivo TOMLInicio del servidorPuertos del proxy, URL de la base de datos, caché, HTTP/3, seguridad, clúster
Base de datosTiempo de ejecuciónHosts, reglas, certificados, plugins, túneles, notificaciones

El archivo TOML contiene los ajustes necesarios en el momento del inicio (puertos, conexión a la base de datos, configuración del clúster). Los ajustes de tiempo de ejecución como hosts y reglas se almacenan en PostgreSQL y se gestionan vía la interfaz de administración o la API REST.

Estructura del Archivo de Configuración

El archivo de configuración TOML tiene las siguientes secciones:

toml
[proxy]          # Reverse proxy listener addresses
[api]            # Admin API listener address
[storage]        # PostgreSQL connection
[cache]          # Response cache settings
[http3]          # HTTP/3 QUIC settings
[security]       # Admin API security (IP allowlist, rate limit, CORS)
[rules]          # Rule engine settings (directory, hot-reload, sources)
[crowdsec]       # CrowdSec integration
[cluster]        # Cluster mode (optional)

Configuración Mínima

Una configuración mínima para desarrollo:

toml
[proxy]
listen_addr = "0.0.0.0:80"

[api]
listen_addr = "127.0.0.1:9527"

[storage]
database_url = "postgresql://prx_waf:[email protected]:5432/prx_waf"

Configuración de Producción

Una configuración de producción con todas las características de seguridad:

toml
[proxy]
listen_addr     = "0.0.0.0:80"
listen_addr_tls = "0.0.0.0:443"
worker_threads  = 4

[api]
listen_addr = "127.0.0.1:9527"

[storage]
database_url    = "postgresql://prx_waf:[email protected]:5432/prx_waf"
max_connections = 20

[cache]
enabled          = true
max_size_mb      = 512
default_ttl_secs = 120
max_ttl_secs     = 3600

[security]
admin_ip_allowlist     = ["10.0.0.0/8"]
max_request_body_bytes = 10485760
api_rate_limit_rps     = 100
cors_origins           = ["https://admin.example.com"]

[rules]
dir                    = "rules/"
hot_reload             = true
reload_debounce_ms     = 500
enable_builtin_owasp   = true
enable_builtin_bot     = true
enable_builtin_scanner = true

Configuración de Hosts

Los hosts pueden definirse en el archivo TOML para implementaciones estáticas:

toml
[[hosts]]
host        = "example.com"
port        = 80
remote_host = "127.0.0.1"
remote_port = 8080
ssl         = false
guard_status = true

TIP

Para entornos dinámicos, gestiona los hosts vía la interfaz de administración o la API REST en lugar del archivo TOML. Los hosts almacenados en la base de datos tienen precedencia sobre los hosts definidos en el TOML.

Migraciones de la Base de Datos

PRX-WAF incluye 8 archivos de migración que crean el esquema de base de datos requerido:

bash
# Run migrations
prx-waf -c configs/default.toml migrate

# Create default admin user
prx-waf -c configs/default.toml seed-admin

Las migraciones son idempotentes y seguras para ejecutar múltiples veces.

Entorno Docker

En implementaciones Docker, los valores de configuración se establecen típicamente en docker-compose.yml:

yaml
services:
  prx-waf:
    environment:
      - DATABASE_URL=postgresql://prx_waf:prx_waf@postgres:5432/prx_waf
    volumes:
      - ./configs/default.toml:/app/configs/default.toml

Próximos Pasos

Released under the Apache-2.0 License.