Как известно, официально сервер Amnezia деплоится через мобильное приложение и также им управляется. Это максимально неудобный подход для управления инфраструктурой. Если для Wireguard существуют готовые решения с веб-интерфейсом, такие как wg-easy, то для амнезии такого решения нет. Более того, wg-easy имеет ряд недостатков, а именно, он управляет клиентами, но не самим сервером.
Поэтому я хочу поделиться свой новой разработкой — веб-приложение для управления сервером AmneziaWG: AmneziaWG Web UI. Разработка проекта ведется в Github, там же представлена вся документация.
Ключевые особенности приложения:
- контейнер с приложением можно запускать на любом порту;
- все управление awg серверами в отличие от easy-wg может осуществляться полностью из веб интерфейса — создание, запуск, остановка;
- можно создать любое количество awg серверов и клиентов для них через веб интерфейс и управлять ими независимо;
- докер контейнер деплоится как со включенным, так и в выключенным сервисом(ами) awg, а при перезапуске настройки серверов контейнера сохраняются;
- через веб интерфейс можно задавать все настройки сервера при его создании, в частности обфускацию;
- приложение по умолчанию защищенно базовой аутентификацией средствами nginx, однако, рекомендуется дополнительно защитить его другими средствами;
- фронт позволяет через веб-сокеты в режиме реального времени отслеживать как состояние сервера, так и клиентов.
Само приложение состоит из фронта и бэка. Бэк написан с использованием RESTful API, поэтому сервером также можно управлять напрямую через API запросы. Для работы awg служб используются официальное решение от Амнезии последней версии без модификаций (amneziawg-go:latest), которая использует стабильный awg v0.2.15 (на момент публикации). В дальнейшем есть планы пересобрать решение с нуля, используя amneziawg-linux-kernel-module.
Готовое решение распространяется в виде докер образа, доступного на Докерхабе, однако, вы можете его пересобрать под ваши нужды из докерфайла.
Надеюсь, что это решение поможет вам в вашей работе! Не забудьте ставить звездочки на Гитхабе, чтобы поддержать проект.
