Skip to content
Эта страница создана и переведена с помощью ИИ. Если вы заметили неточности, помогите нам улучшить её. Редактировать на GitHub

Справочник конфигурации

На этой странице описан каждый ключ конфигурации в TOML-файле PRX-WAF. Файл конфигурации по умолчанию: configs/default.toml.

Настройки прокси ([proxy])

Настройки, управляющие прослушивателем reverse proxy.

КлючТипПо умолчаниюОписание
listen_addrstring"0.0.0.0:80"Адрес прослушивания HTTP
listen_addr_tlsstring"0.0.0.0:443"Адрес прослушивания HTTPS
worker_threadsinteger | nullnull (количество CPU)Количество рабочих потоков прокси. Когда null, используется количество логических ядер CPU.

Настройки API ([api])

Настройки для API управления и Admin UI.

КлючТипПо умолчаниюОписание
listen_addrstring"127.0.0.1:9527"Адрес прослушивания Admin API + UI. В продакшене привяжите к 127.0.0.1 для ограничения доступа до localhost.

Настройки хранилища ([storage])

Подключение к базе данных PostgreSQL.

КлючТипПо умолчаниюОписание
database_urlstring"postgresql://prx_waf:[email protected]:5432/prx_waf"URL подключения PostgreSQL
max_connectionsinteger20Максимальное количество соединений с базой данных в пуле

Настройки кеша ([cache])

Конфигурация кеширования ответов с использованием in-memory LRU-кеша moka.

КлючТипПо умолчаниюОписание
enabledbooleantrueВключить кеширование ответов
max_size_mbinteger256Максимальный размер кеша в мегабайтах
default_ttl_secsinteger60Время жизни кешированных ответов по умолчанию (секунды)
max_ttl_secsinteger3600Максимальное ограничение TTL (секунды). Ответы не могут кешироваться дольше этого значения независимо от заголовков апстрима.

Настройки HTTP/3 ([http3])

HTTP/3 через QUIC (библиотека Quinn).

КлючТипПо умолчаниюОписание
enabledbooleanfalseВключить поддержку HTTP/3
listen_addrstring"0.0.0.0:443"Адрес прослушивания QUIC (UDP)
cert_pemstringПуть к TLS-сертификату (формат PEM)
key_pemstringПуть к приватному ключу TLS (формат PEM)

WARNING

HTTP/3 требует действующих TLS-сертификатов. При enabled = true оба поля cert_pem и key_pem должны быть установлены.

Настройки безопасности ([security])

Конфигурация безопасности Admin API и прокси.

КлючТипПо умолчаниюОписание
admin_ip_allowliststring[][]Список IP/CIDR, которым разрешён доступ к Admin API. Пустой означает разрешить всем.
max_request_body_bytesinteger10485760 (10 МБ)Максимальный размер тела запроса в байтах. Запросы, превышающие это значение, отклоняются с кодом 413.
api_rate_limit_rpsinteger0Ограничение скорости запросов к Admin API на IP (запросов в секунду). 0 означает отключено.
cors_originsstring[][]CORS разрешённые источники для Admin API. Пустой означает разрешить все источники.

Настройки правил ([rules])

Конфигурация движка правил.

КлючТипПо умолчаниюОписание
dirstring"rules/"Каталог, содержащий файлы правил
hot_reloadbooleantrueВключить наблюдение за файловой системой для автоматической перезагрузки правил
reload_debounce_msinteger500Окно подавления дребезга для событий изменения файлов (миллисекунды)
enable_builtin_owaspbooleantrueВключить встроенные правила OWASP CRS
enable_builtin_botbooleantrueВключить встроенные правила обнаружения ботов
enable_builtin_scannerbooleantrueВключить встроенные правила обнаружения сканеров

Источники правил ([[rules.sources]])

Настройка нескольких источников правил (локальные каталоги или удалённые URL):

КлючТипОбязательныйОписание
namestringДаИмя источника (например, "custom", "owasp-crs")
pathstringНетПуть к локальному каталогу
urlstringНетУдалённый URL для получения правил
formatstringДаФормат правил: "yaml", "json" или "modsec"
update_intervalintegerНетИнтервал автоматического обновления в секундах (только для удалённых источников)
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

Настройки CrowdSec ([crowdsec])

Интеграция с разведкой угроз CrowdSec.

КлючТипПо умолчаниюОписание
enabledbooleanfalseВключить интеграцию CrowdSec
modestring"bouncer"Режим интеграции: "bouncer", "appsec" или "both"
lapi_urlstring"http://127.0.0.1:8080"URL CrowdSec LAPI
api_keystring""API-ключ Bouncer
update_frequency_secsinteger10Интервал обновления кеша решений (секунды)
fallback_actionstring"allow"Действие при недоступности LAPI: "allow", "block" или "log"
appsec_endpointstringURL эндпоинта AppSec для HTTP-инспекции (необязательно)
appsec_keystringAPI-ключ AppSec (необязательно)

Конфигурация хостов ([[hosts]])

Статические записи хостов (могут также управляться через Admin UI/API):

КлючТипОбязательныйОписание
hoststringДаДоменное имя для сопоставления
portintegerДаПорт прослушивания (обычно 80 или 443)
remote_hoststringДаIP или hostname апстрим-бэкенда
remote_portintegerДаПорт апстрим-бэкенда
sslbooleanНетИспользовать HTTPS для апстрима (по умолчанию: false)
guard_statusbooleanНетВключить защиту WAF (по умолчанию: true)

Настройки кластера ([cluster])

Конфигурация многоузлового кластера. Подробнее см. в Кластерном режиме.

КлючТипПо умолчаниюОписание
enabledbooleanfalseВключить кластерный режим
node_idstring"" (авто)Уникальный идентификатор узла. Генерируется автоматически, если пустой.
rolestring"auto"Роль узла: "auto", "main" или "worker"
listen_addrstring"0.0.0.0:16851"Адрес прослушивания QUIC для межузловой коммуникации
seedsstring[][]Адреса seed-узлов для присоединения к кластеру

Криптография кластера ([cluster.crypto])

КлючТипПо умолчаниюОписание
ca_certstringПуть к CA-сертификату (PEM)
ca_keystringПуть к приватному ключу CA (только для главного узла)
node_certstringПуть к сертификату узла (PEM)
node_keystringПуть к приватному ключу узла (PEM)
auto_generatebooleantrueАвтоматически генерировать сертификаты при первом запуске
ca_validity_daysinteger3650Срок действия CA-сертификата (дни)
node_validity_daysinteger365Срок действия сертификата узла (дни)
renewal_before_daysinteger7Автоматически обновлять за столько дней до истечения

Синхронизация кластера ([cluster.sync])

КлючТипПо умолчаниюОписание
rules_interval_secsinteger10Интервал проверки версий правил
config_interval_secsinteger30Интервал синхронизации конфигурации
events_batch_sizeinteger100Сбрасывать пакет событий при достижении этого количества
events_flush_interval_secsinteger5Сбрасывать события даже если пакет не заполнен
stats_interval_secsinteger10Интервал отчётности по статистике
events_queue_sizeinteger10000Размер очереди событий (при заполнении удаляет старые)

Выборы кластера ([cluster.election])

КлючТипПо умолчаниюОписание
timeout_min_msinteger150Минимальный таймаут выборов (мс)
timeout_max_msinteger300Максимальный таймаут выборов (мс)
heartbeat_interval_msinteger50Интервал heartbeat от главного к рабочим (мс)
phi_suspectfloat8.0Порог подозрения детектора отказов Phi accrual
phi_deadfloat12.0Порог смерти детектора отказов Phi accrual

Здоровье кластера ([cluster.health])

КлючТипПо умолчаниюОписание
check_interval_secsinteger5Частота проверки здоровья
max_missed_heartbeatsinteger3Помечать пир как нездоровый после N пропусков

Полная конфигурация по умолчанию

Для справки см. файл default.toml в репозитории.

Следующие шаги

Released under the Apache-2.0 License.