Files
mypointvpn/README.md
T

10 KiB
Raw Blame History

My Point VPN

Intro

Предоставляет интерфейс чат бота в телеграмм посредством которого позволяет разворачивать 3x-ui на своем сервере и выпускать ключи.

Базово конфигурируется 3x-ui на создание vless подключений с tls+reality маскировкой трафика. Настраивается dns, подписка и базовая безопасность сервера. Пользователь может прикрутить прокси на выход или включить cf_warp прокси. По каждому серверу дает базовую статистику у ручки управления.

Если вам нужен приватный доступ в интернет, передайте сервер боту и он настроит вам его. Выглядит это так: пользователь заводит аккаунт хостинг провайдера, арендует сервер, ему выдают ip и пароль root, он передает их боту, оный настраивает сервер, теперь пользователь может выпускать ключи vless и подключаться к интернету безопасно и приватно.

  • статистика сервера:
    • сколько трафика пропустил
    • сколько пользователей
    • можно добавить пользователя
  • статистика по пользователю:
    • онлайн?
    • сколько трафика пропустил
    • можно удалить пользователя

Серверу можно настроить:

  • прокси на выходе (cf или свои)
  • домен (можно спрятать за cf, сертификат получим у certbot)

Интерфейс чата

Переход в главное меню должен быть реализован кнопкой в клавиатуре. /start и кнопка "главное меню" должны выполняться одним методом.

Сейчас у пользователя нет данных и это его первое сообщение, поэтому система показывает ему сообщение заглушку.

---> 
/start
<---
привет. выбери действие
[ФАК][добавить сервер][помощь]

Пользователь нажимает на кнопку добавления сервера и переходит в меню добавления сервера.

Меню добавления сервера
--->
добавить сервер
<---
Сервер: -
Домен: -
Cloudflare: -
Прокси: -
[домен][cloudflare][прокси]
[отмена][установить][сервер]
--->
сервер
<---
отправь данные для подключения к серверу
`ip:root_password`
[отмена]

После получения данных выполняется процесс настройки сервера. Этот процесс занимает время, поэтому выполняется в фоне.

--->
127.0.0.1:toor
<---
Сервер: 127.0.0.1 - $(uname -a)
Домен: -
Cloudflare: -
Прокси: -
[домен][cloudflare][прокси]
[отмена][установить][сервер]
--->
cloudflare
<---
Если вы спрятали домен за клаудом, то нужно включить опцию тут.
[включить][отмена]
--->
включить
<---
Сервер: 127.0.0.1 - $(uname -a)
Домен: -
Cloudflare: Да
Прокси: -
[домен][cloudflare][прокси]
[отмена][установить][сервер]
--->
прокси
<---
Можно указать свои или включить cf_warp.
[cf_warp][отмена][удалить]
--->
http://127.0.0.1:9050
<---
Сервер: 127.0.0.1 - $(uname -a)
Домен: -
Cloudflare: Да
Прокси: 127.0.0.1:9050
[домен][cloudflare][прокси]
[отмена][установить][сервер]
--->
установить
<---
Запускаю установку сервера. Отправлю уведомление когда все будет готово.

А по окончании генерируется уведомление.

--->
<---
сервер ip - проименован как `NAME`, готов к работе.
[меню сервера]
Меню

Пользователь опять отправляет /start это нормально, так он получает главное меню с перечислением его серверов.

--->
/start
<---
server_name	0Mb/0Mb	0/0
[ФАК][добавить сервер][помощь][управление сервером]

Чтобы перейти к управлению сервером нужно вот такой квест пройти, надо все эти id в копируемый pre сунуть.

--->
управление сервером
<---
Пришлите server_name
[отмена]
Меню управления сервером
--->
меню сервера
<---
Сервер: NAME
Состояние: активен
Ключи: 0/0
Домен: -
Прокси: -
[Вернуть][Переустановить]
[Домен][Прокси][Cloudflare]
[Клиенты]

Ключи отображаются онлайн/оффлайн.

Возврат сервера связан с отключением его от платформы. Доступы к серверу изымаются, ставится новый пароль рута, а данные остаются как есть. Просто отдаем сервер назад.

--->
Вернуть
<---
Сервер будет освобожден из-под моего контроля, 
будет установлен случайный пароль рута,
мои доступы будут убраны, данные на сервере сохранены.
Будет отправлено уведомление с новым паролем. Продолжить?
[Да][Нет]

Возможно потребуется переустановка после сброса сервера. Бывает такое когда это нужно. Обычно после сброса сервера задается новый пароль.

--->
Переустановить
<---
Будет произведена повторная установка всех компонентов.
Вызывайте эту функцию, только после того, как в панеле управления 
сервером в аккаунте хостинг провайдера вызовите переустановку сервера.
Если уверены, то пришлите новый пароль сервера.
[Отмена][Использовать старый]

Меню управления доменом. После установки выпускаются ссл сертификаты, а если домена нет, то сертификат выпускаем на ip.

--->
Домен
<---
Сейчас установлен: -
Доменное имя лучше подходит для маскировки вашей точки доступа.
[установить][отключить]

Прокси полезно ставить. Есть 2 варианта, когда пользователь покупает прокси и задает их тут, или когда активирует cf_warp.

--->
Прокси
<---
Сейчас установлено: -
Позволяют маскировать ip адрес вашей точки доступа от сайтов, 
которые посещаются.

X -> Cloudflare <> MyPoint <> PROXY <- Web

X через домен видит ip от cloudflare, а web сайты видят ip прокси, 
это позволяет вашей точке доступа оставаться инкогнито. 

[установить][отключить]
--->
установить
<---
пришли прокси в формате `protocol://username:password@host:port` или нажми кнопку.
[cloudflare warp][отмена]

Еще одна полезная возможность это скрытие ip за cloudflare. И для этого тоже будет меню.

--->
Cloudflare
<---
Сейчас активировано: Нет
Позволяет защитить ip адрес вашей точки доступа от клиентов, 
которые к ней подключаются.

X -> Cloudflare <> MyPoint <> PROXY <- Web

[установить][отключить]
Меню управления клиентами
--->
Клиенты
<---
id	0/0Mb	On
[добавить][удалить][получить ключ]
--->
удалить
<---
Чтобы удалить клиента пришлите его id
[отмена]
--->
добавить
<---
если хотите, можете сами установить id
[сгенерируй]

Далее пользователь либо отправляет текст, который будет использован как id для нового клиента, либо сгенерирует новый уникальный id и вернет ключ.

Настройка сервера

Чтобы сервера были в безопасности их следует правильно настроить. От пользователя ожидается на вход девственный сервер с только что установленной операционной системой.

  1. Конфигурирование ssh
  2. Смена пароля рута
  3. Конфигурирование nftables
  4. Обновление операционной системы
  5. Установка 3x-ui
  6. Выпуск сертификата
  7. Настройка vless+tls+reality
  8. Настройка прокси

Функционал бота

Модель данных