91 lines
4.8 KiB
Markdown
91 lines
4.8 KiB
Markdown
|
|
# Montana VPN
|
|||
|
|
|
|||
|
|
Self-hosted Reality-based VPN endpoint. Запускается рядом с узлом Montana либо отдельно. Не зависит от узла, не использует консенсус Montana — это отдельный слой.
|
|||
|
|
|
|||
|
|
Реализован по образцу production-эндпоинта в Финляндии (`montana-finland`, `91.132.142.42`).
|
|||
|
|
|
|||
|
|
## Что внутри
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
montana-vpn/
|
|||
|
|
├── README.md — этот файл
|
|||
|
|
├── install.sh — установка одной командой на чистый VPS
|
|||
|
|
├── config-template/
|
|||
|
|
│ ├── xray-config.json.template — xray Reality config с {{плейсхолдерами}}
|
|||
|
|
│ ├── nginx-decoy.conf — :80 камуфляж (active-probing defense)
|
|||
|
|
│ ├── decoy-index.html — "It works!" страница
|
|||
|
|
│ ├── xray.service — systemd unit
|
|||
|
|
│ ├── xray.service.d/
|
|||
|
|
│ │ └── 10-donot_touch_single_conf.conf — xray installer drop-in
|
|||
|
|
│ └── sysctl-bbr.conf — fq_codel + BBR (anti-bufferbloat)
|
|||
|
|
└── docs/
|
|||
|
|
├── architecture.md — как именно собрана Helsinki, детально
|
|||
|
|
├── threat-model.md — что закрывает Reality + decoy, что нет
|
|||
|
|
├── operator-guide.md — пошаговый развёртывание + обслуживание
|
|||
|
|
└── client-config.md — формат VLESS URL + настройка клиентов
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Быстрый старт (оператор)
|
|||
|
|
|
|||
|
|
На чистом Ubuntu 24.04 / Debian 12 / Fedora / Alpine VPS:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
git clone https://github.com/montana-protocol/montana.git /opt/montana
|
|||
|
|
cd /opt/montana
|
|||
|
|
sudo bash Протокол/Код/montana-vpn/install.sh
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
В конце скрипт выведет `vless://...` URL — это всё что клиент импортирует в свой Hiddify/v2rayN/Streisand.
|
|||
|
|
|
|||
|
|
## Установка вместе с узлом Montana
|
|||
|
|
|
|||
|
|
Один VPS — узел Montana + VPN рядом, два независимых systemd-сервиса:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
sudo bash Протокол/Код/scripts/install-vps-full.sh
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Поднимет:
|
|||
|
|
- `montana-node.service` — узел консенсуса (singleton, без сетевого слоя M6)
|
|||
|
|
- `xray.service` — VPN endpoint
|
|||
|
|
- `nginx.service` — :80 decoy
|
|||
|
|
|
|||
|
|
Узел и VPN **не зависят** друг от друга. Можно остановить любой, второй продолжит работать.
|
|||
|
|
|
|||
|
|
## Только VPN (без узла Montana)
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
sudo bash Протокол/Код/montana-vpn/install.sh
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Только узел Montana (без VPN)
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
sudo bash Протокол/Код/scripts/install-vps.sh
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Что использует Montana VPN
|
|||
|
|
|
|||
|
|
- **xray-core** v26+ (xtls/xray-core, MIT) — VLESS + Reality + xtls-rprx-vision
|
|||
|
|
- **nginx** 1.24+ — :80 decoy
|
|||
|
|
- **ufw** — default deny + allow 22/80/443
|
|||
|
|
- **systemd** hardening — `User=nobody`, `NoNewPrivileges`, `CapabilityBoundingSet`
|
|||
|
|
|
|||
|
|
Всё компоненты open-source, audit-trail известны, активно поддерживаются.
|
|||
|
|
|
|||
|
|
## Юрисдикция
|
|||
|
|
|
|||
|
|
VPN-узел берёт характеристики юрисдикции хостера. Helsinki-референс — Финляндия (нейтральная, нет mass-surveillance законов). Список нейтральных юрисдикций с провайдерами в `docs/operator-guide.md` шаг 0.
|
|||
|
|
|
|||
|
|
## Связь с протоколом Montana
|
|||
|
|
|
|||
|
|
**Никакой структурной зависимости.** VPN не использует консенсус, ключи Montana, identity-файл узла, mt-account, AccountTable, ничего из протокольного слоя.
|
|||
|
|
|
|||
|
|
Они **сосуществуют** на одном хосте если оператор хочет и хостить узел, и иметь exit-эндпоинт. Это удобно (один VPS, две функции), но не обязательно.
|
|||
|
|
|
|||
|
|
После M6 (когда у узла появится сетевой слой) **возможно** будет опциональная маршрутизация трафика узла через тот же Reality-эндпоинт — но это будущее, сейчас не предусмотрено.
|
|||
|
|
|
|||
|
|
## License
|
|||
|
|
|
|||
|
|
Конфиги, скрипты и документация в этом каталоге — публичное достояние (CC0 / Unlicense). Используемые компоненты (xray, nginx) — каждый под своей лицензией (MIT / BSD-2-Clause).
|