Привет, Хабр!
Идея
С первых недель использования Wireguard у меня томилась идея сделать систему управления Wireguard , а также его установку максимально простой, хотя куда проще казалось бы.
Конечно сейчас уже есть проекты которые максимально упрощают установку Wireguard , тот-же wg-easy (https://github.com/wg-easy/wg-easy), но хотелось создать что-то свое, и вот руки дошли.
Используемый стек
С используемым инструментарием я определился практически сразу:
-
Python
-
Bash
-
Docker
-
Telegram
Как думаю уже понятно телеграмм бот написан на Python, c использованием библиотеки PyTelegramBotApi. Использовал эту библиотеку а не Aiogram потому-что уже был опыт работы с ней, да мощности асинхронности данному боту, по крайней мере в моей задумке не нужно. Все основные команды выполняются через bash скрипты, которые вызывает Python. И в итоге это все собирается через Docker.
Начало работы
Прежде чем начать использовать бота, необходимо добавить следующие параметры в файл `config.py`.
# config.py mainid = [] # ID пользователей, которые имеют доступ к боту api_tg = "" # API ключ Telegram
Свой id можно узнать у бота @get_myidbot, а APi ключ получить соответственно у @BotFather.
Запуск через Python
-
Установите зависимости, выполнив следующую команду:
pip install --no-cache-dir -r requirements.txt
-
Запустите бота с помощью следующей команды:
python3 main.py
Запуск через Docker
Запустите бота в режиме Docker с помощью следующей команды:
docker-compose up -d
Управление через Telegram
После запуска бота заходим в раздел администрирование и выбираем и нажимаем кнопку «Установка Wireguard», и ждем пока все установится. Здесь же можно сохранить настроенную конфигурацию и импортировать ее же как резервную копию

Затем можем перейти в панель управления и нажать кнопку «Конфиги», чтобы убедиться, что сервер Wireguard работает.

Чтобы добавить клиента, нажмем кнопку «Добавить конфиг», и введем имя для нового конфига. Бот выдаст QR-код, файл конфигурации и текст конфигурации.

Если потом нажать «Конфиги», то бот выдаст уже изменений конфигурационный файл сервера, конфиги клиентов, и ip адреса с названиями клиентов.

Для удаления конфига нажмем кнопку «Удалить конфиг», и в соответствии с инструкцией удалим нужный ненужный клиент

Что может данный бот
Данный проект нацелен на быстрое разворачивание VPN сети.
Функционал бота реализуемый на данный момент:
-
Доступ к боту ограниченному кругу лиц
-
Установка и настройка Wireguard сервера
-
Добавление/Удаление конфигураций пользователей
-
Сохранение и импорт конфигурации сервера
Функционал бота планируемый в реализации в будущем:
-
Оттачивание существующего функционала
-
Сохранение нескольких конфигураций
-
Импорт конфигураций из файла
-
Включение/Выключение конфигураций пользователей по таймеру
-
Управление несколькими VPN сетями одновременно
-
Объединение нескольких VPN сетей в одну
Заключение
Спасибо, что читаете мою первую статью! Оцените идею, дайте совет – вместе создадим идеальный инструмент для управления WireGuard.
ссылка на оригинал статьи https://habr.com/ru/articles/782050/
Добавить комментарий