v3.7 — FW_MODE=strict|open|skip (совместимость с 3x-ui)
Совместимость защиты с 3x-ui: файрвол больше не обязан блокировать все порты. Спасибо @kewldan за PR #15!
🛡 protect.sh — режим файрвола FW_MODE=strict|open|skip
strict(дефолт, прежнее поведение) — блокировать все не перечисленные порты (Remnawave node: порты известны заранее). Ruleset побайтно прежний.open— не перечисленные порты не блокируются (3x-ui: inbound-порты создаются из панели динамически), при этом им достаются те же per-IP флуд-лимиты, что и перечисленным (conn-limit / SYN-rate / UDP-rate; сверх лимита — транзитный drop, не бан). Анти-скан автобан и node-port правила не ставятся («закрытых» портов нет).skip— nftables не трогается вообще (CrowdSec/ctguard — по своим флагам) + печатается инструкция, как закрыть порты вручную.- Интерактивный прогон спрашивает режим; автодетект 3x-ui сдвигает дефолт на
open+ громкий warn. Неинтерактивно дефолт прежний (strict) — существующие прогоны не меняются. FW_MODEперсистится вprotect.conf/protect.installed(ре-ран помнит выбор, ENV переопределяет).diagnose --jsonдополненfw_mode; осознанныйskip— info, а не WARN.- CI: DRY_RUN-прогоны open/skip на матрице дистрибутивов (реальный
nft -c), отказ на кривомFW_MODE; apply-smoke гоняет все три режима подset -u.
.minisig-подписи 6 модулей пересозданы на дерево релиза (NA_REQUIRE_SIG=1 работает с этим тегом).
Прод: пиньте тег — NA_REF=v3.7.