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

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Привет, Хабр!

Идея

С первых недель использования 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", и ждем пока все установится. Здесь же можно сохранить настроенную конфигурацию и импортировать ее же как резервную копию

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

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

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

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

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

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

  • Доступ к боту ограниченному кругу лиц

  • Установка и настройка Wireguard сервера

  • Добавление/Удаление конфигураций пользователей

  • Сохранение и импорт конфигурации сервера

Функционал бота планируемый в реализации в будущем:

  • Оттачивание существующего функционала

  • Сохранение нескольких конфигураций

  • Импорт конфигураций из файла

  • Включение/Выключение конфигураций пользователей по таймеру

  • Управление несколькими VPN сетями одновременно

  • Объединение нескольких VPN сетей в одну

Заключение

Ссылка на GitHub

Спасибо, что читаете мою первую статью! Оцените идею, дайте совет – вместе создадим идеальный инструмент для управления WireGuard.

Источник: https://habr.com/ru/articles/782050/


Интересные статьи

Интересные статьи

Разрабатывая вторую игру на Unity я решил замахнуться на кооперативный режим. Так как новая игра тоже выйдет на площадке Steam, сервисы стима уже интегрированны, а взнос за приложение уже уплачен, был...
В мире разработки программного обеспечения на разработчиков оказывается постоянное давление, принуждающее их писать код вне рабочего времени. Некоторые считают программирование своей страстью, др...
В 2019 году люди знакомятся с брендом, выбирают и, что самое главное, ПОКУПАЮТ через интернет. Сегодня практически у любого бизнеса есть свой сайт — от личных блогов, зарабатывающих на рекламе, до инт...
Запущенный в 2013 году на рынке, вроде бы и так не испытывающем дефицита в мессенджерах, «Телеграм» моментально начал менять правила игры, первым распознав, что рядовому юзеру хочется защиты прив...
Поиск объектов на изображениях? Имея обучающую выборку и минимальный набор знаний о нейросетях, любой студент сегодня может получить решение определенной точности. Однако большинство нейросетей, ...