Files
EvoBGP/docs/firewall.md
T
Denozordec 7b3f002e5f
CI / changes (push) Successful in 10s
CI / commitlint (push) Has been skipped
CI / openapi (push) Has been skipped
CI / web (push) Successful in 57s
CI / go (push) Successful in 1m11s
CI / bird2 (push) Successful in 15s
CI / release (push) Successful in 4m16s
feat(firewall): enhance firewall management with community selection and script handling
Added a community selection feature to the firewall rules management UI, allowing users to specify BGP communities for block/accept policies. Updated the backend to support reading firewall scripts from a specified directory, improving script management. Enhanced documentation to clarify the new community functionality and its implications for firewall rules. Additionally, introduced tests for the firewall script endpoints to ensure proper functionality.
2026-07-08 17:50:38 +07:00

2.1 KiB
Raw Permalink Blame History

Firewall blocklist

Подсистема синхронизации blocklist на произвольные Linux-серверы через bash-скрипт и HTTP API.

Авторизация

  1. EnrollPOST /v1/firewall/enroll с заголовком X-EvoBGP-Seed (значение EVOBGP_BUNDLE_SEED_HEX на CP). Клиент генерирует токен evobgp_fw_* локально.
  2. Approve — operator в Web UI (/firewall → Запросы).
  3. SyncGET /v1/firewall/blocklist с Authorization: Bearer <client_token>.

Политика block/accept

  • block — добавить префиксы выбранного BGP community в kernel blocklist.
  • accept — не блокировать префиксы этого community.
  • Community — правило применяется к префиксам с этим community_id в опубликованной revision; пустое значение («Все») — ко всем communities.
  • Default — accept (пустой blocklist без явных block).

Порядок: сначала per-server overrides клиента, затем tenant-default. Для каждого community берётся первое подходящее правило по приоритету.

Справочник communities: Web UI → Справочники, или модули с привязкой community к префиксам.

Установка на сервер

curl -fsSL https://<api>/v1/firewall/install.sh | \
  EVOBGP_CP_URL=https://<api> \
  EVOBGP_SEED=<bundle_seed_hex> \
  EVOBGP_CLIENT_NAME="web-01" \
  bash

Файлы: /etc/evobgp/firewall.conf, /usr/local/sbin/evobgp-firewall.sh, systemd timer evobgp-firewall.timer.

Failover через speaker

При EVOBGP_FIREWALL_FAILOVER_ENABLED=1 на speaker-agent CP реплицирует состояние через POST /v1/agent/firewall-replicate. Клиенты используют тот же DNS-домен.

См. также access.md, remote-speakers.md.