- добавлена секция host_firewall в конфиг и defaults\n- реализован host firewall reconcile в отдельной таблице\n- apply-firewall теперь делает host firewall + anti-torrent\n- убрана JSON-инспекция из full-table drift для anti-torrent\n- расширен status вывод drift по host firewall/anti-torrent
AWG2 Harness
AWG2 Harness — host-side multi-orchestrator на Rust для production-сервера с AmneziaWG/AWG 2.0.
Это не просто перенос bash-скриптов на Rust. Целевая система должна воспроизвести и затем постоянно удерживать всё состояние, которое сейчас создаёт Amnezia limits (old bash): discovery контейнера и интерфейса, список peers, per-peer traffic shaping в обе стороны, tc topology, ifb0, auto-healing после рестартов, диагностику, плановый reboot и swap setup, а также опциональный nftables anti-torrent guard через per-peer connection-count limit.
Сервер выделенный: Debian 13 amd64, SSH заранее настроен, рядом нет соседних сервисов, после установки Amnezia доставляется наш бинарь. Поэтому бинарь имеет право и обязан полностью управлять нужными правилами хоста и network namespace Amnezia, а не быть пассивной обёрткой, которая боится менять состояние системы. При этом он не форкает Amnezia и не меняет её продуктовую логику; он управляет инфраструктурным состоянием вокруг неё.
Текущий репозиторий:
AWG2_harness/
├── Amnezia limits (old bash)/ # production reference behavior
├── reboot_module/ # production auxiliary binary: awg2-reboot-scheduler
├── traffic_core/ # целевая зона для Rust traffic/orchestrator логики
└── docs/ # документация по миграции, архитектуре и эксплуатации
Production reboot path — внешний scheduler service awg2-reboot-scheduler.service.
Важно: Amnezia limits (old bash) используется как эталон production-поведения, а reboot_module ставится как второй production-бинарь.
Production deployment model
AWG2 Harness собирается на отдельной Debian 13 amd64 build-machine.
Production Amnezia-хост не должен требовать Rust, cargo, clippy, source tree и legacy bash-скрипты. На production-хост переносится готовый Debian-пакет и вручную подготовленный /etc/awg2-harness/config.toml.
Build machine:
./tools/build.sh --prepare-build-env --bootstrap-rust --yes
./tools/build.sh --package
sha256sum -c dist/SHA256SUMS
Копирование на production host:
scp dist/awg2-harness_*_amd64.deb root@vpn-host:/root/
scp config.toml root@vpn-host:/root/awg2-harness.config.toml
Production host:
apt install ./awg2-harness_*_amd64.deb
install -d -m 0755 /etc/awg2-harness
install -m 0644 /root/awg2-harness.config.toml /etc/awg2-harness/config.toml
awg2-harness validate-config --config /etc/awg2-harness/config.toml
awg2-harness validate-runtime --config /etc/awg2-harness/config.toml
awg2-harness apply-limits --config /etc/awg2-harness/config.toml
awg2-harness apply-firewall --config /etc/awg2-harness/config.toml
awg2-harness status --config /etc/awg2-harness/config.toml
systemctl enable --now awg2-harness.service
systemctl enable --now awg2-reboot-scheduler.service
В production запускаются оба сервиса: awg2-harness.service и awg2-reboot-scheduler.service.
Основная документация:
docs/MIGRATION.md— исправленная миграционная стратегия bash → Rust multi-orchestrator.docs/OLD_BASH_BEHAVIOR.md— зафиксированное поведение старой bash-системы по файлам.docs/IMPLEMENTATION_SPEC.md— целевая архитектура бинаря и state reconciliation.docs/CONFIGURATION.md— единыйconfig.tomlбез эксплуатационного мусора.docs/INSTALLATION.md— установка на Debian 13 amd64.docs/ACCEPTANCE_CHECKLIST.md— production checklist.docs/ANTI_TORRENT.md— простая анти-торрент защита через nftablesct count.