Одно нажатие, весь контроль: WireGuard VPN через Телеграм

RastaMastaki

Начинающий
Регистрация
Сообщения
15
Реакции
0

Идея​

С первых недель использования 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​

  1. Установите зависимости, выполнив следующую команду:
pip install --no-cache-dir -r requirements.txt
  1. Запустите бота с помощью следующей команды:
python3 main.py

Запуск через Docker​

Запустите бота в режиме Docker с помощью следующей команды:

docker-compose up -d

Управление через Telegram​

После запуска бота заходим в раздел администрирование и выбираем и нажимаем кнопку "Установка Wireguard", и ждем пока все установится. Здесь же можно сохранить настроенную конфигурацию и импортировать ее же как резервную копию
092d9409150f886acb1d7475daf3ca0e.png

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

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

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

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

Что может данный бот​

Данный проект нацелен на быстрое разворачивание VPN сети.
Функционал бота реализуемый на данный момент:

  • Доступ к боту ограниченному кругу лиц
  • Установка и настройка Wireguard сервера
  • Добавление/Удаление конфигураций пользователей
  • Сохранение и импорт конфигурации сервера
Функционал бота планируемый в реализации в будущем:

  • Оттачивание существующего функционала
  • Сохранение нескольких конфигураций
  • Импорт конфигураций из файла
  • Включение/Выключение конфигураций пользователей по таймеру
  • Управление несколькими VPN сетями одновременно
  • Объединение нескольких VPN сетей в одну
 

Frosting

Начинающий
Регистрация
Сообщения
9
Реакции
0
Услуги гаранта
1
РКН уже успешно тестировал блокировку Wireguard, так теперь это что явно не самый надёжный метод обхода блокировок
 

Kashenko

Начинающий
Регистрация
Сообщения
6
Реакции
0
Дак все тривиально, классический рабочий день, ни что не предвещало беды. Как у всех удаленщиков у кого дом ру, откинулся Any Connect, поднимается и падает минуты через 2 и так по кругу. Потом все прошло в какой-то момент)
 

BigMasters

Начинающий
Регистрация
Сообщения
13
Реакции
0
Немного не понял зачем устанавливать wireguard через бота? Установили бота, но не установили сам wireguard? В сосднем контейнере может сразу поднять.
 

darknes

Начинающий
Регистрация
Сообщения
7
Реакции
0
По заголовку подумал, что предлагается передавать трафик Wireguard через сообщения в телеграмме о_О
 

Megaserver

Начинающий
Регистрация
Сообщения
11
Реакции
0
Отличное решение, AdGuard только моросит иногда. А так в целом стабильно работает. Тут зависит от цели, если для себя и друзей, отличное решение. Там под WG индивидуальные конфиги, а под SS и xRay общие. Понятно что на них в принципе нет контроля сколько человек через один конфиг сидит без дополнительного вмешательства.
 
Сверху