კონფიგურაცია
PRX-WAF -c / --config ნიშნის გავლით გადაცემული TOML ფაილით კონფიგურირდება. ნაგულისხმევი გზა: configs/default.toml.
prx-waf -c /etc/prx-waf/config.toml runკონფ-წყაროები
PRX-WAF კონფიგურაციის ორ ფენას იყენებს:
| წყარო | სფერო | აღწერა |
|---|---|---|
| TOML ფაილი | სერვერ-სტარტი | Proxy-პორტები, მონაცემთა ბაზ-URL, ქეში, HTTP/3, უსაფრთხოება, cluster |
| მონაცემთა ბაზა | Runtime | ჰოსტები, წესები, სერთიფიკატები, plugin-ები, tunnels, შეტყობინებები |
TOML ფაილი სტარტ-დროს საჭირო პარამეტრებს შეიცავს (პორტები, მონაცემ-ბაზ-კავშირი, cluster-კონფ). Runtime-პარამეტრები, ჰოსტები და წესები PostgreSQL-ში ინახება და ადმინ UI-ის ან REST API-ის გავლით იმართება.
კონფ-ფაილ-სტრუქტურა
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)მინიმალური კონფიგურაცია
განვითარებისთვის მინიმალური კონფიგურაცია:
[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"წარმოებ-კონფიგურაცია
ყველა უსაფრთხოებ-ფუნქციანი წარმოებ-კონფიგურაცია:
[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ჰოსტ-კონფიგურაცია
ჰოსტები TOML ფაილში სტატიკური განასახებებისთვის შეიძლება განისაზღვროს:
[[hosts]]
host = "example.com"
port = 80
remote_host = "127.0.0.1"
remote_port = 8080
ssl = false
guard_status = trueTIP
დინამიური გარემოებისთვის ჰოსტების TOML ფაილის ნაცვლად ადმინ UI-ის ან REST API-ის გავლით მართვა. მონაცემ-ბაზ-შენახული ჰოსტები TOML-განსაზღვრულ ჰოსტებს გადაფარავს.
მონაცემ-ბაზ-მიგრაციები
PRX-WAF 8 მიგრაციის ფაილს შეიცავს, რომლებიც საჭირო მონაცემ-ბაზ-სქემას ქმნის:
# Run migrations
prx-waf -c configs/default.toml migrate
# Create default admin user
prx-waf -c configs/default.toml seed-adminმიგრაციები იდემპოტენტია და მრავალჯერ გაშვება-უსაფრთხოა.
Docker-ის გარემო
Docker-განასახებებში კონფ-მნიშვნელობები ჩვეულებრივ docker-compose.yml-ში ყენდება:
services:
prx-waf:
environment:
- DATABASE_URL=postgresql://prx_waf:prx_waf@postgres:5432/prx_waf
volumes:
- ./configs/default.toml:/app/configs/default.tomlშემდეგი ნაბიჯები
- კონფიგურაციის ცნობარი -- ყოველი TOML გასაღები ტიპებითა და ნაგულისხმევებით
- ინსტალაცია -- საწყისი გამართვა და მონაცემ-ბაზ-მიგრაციები
- Cluster-ის რეჟიმი -- cluster-სპეციფიკური კონფიგურაცია