Files
knowledge-base/projects/dttb/vpn-clients.md

82 lines
6.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
date: 2026-04-24
type: project
tags: [dttb, vpn, clients, happ, amneziavpn, reality]
---
# VPN-клиенты — Реестр выданных доступов
Учёт людей, которым выдан клиентский VPN (Happ / AmneziaVPN). Отдельно от [[netbird-inventory]] (инфра) и [[vps-swtest]] (WG-хаб объектов Знаменского).
## Серверы-выходы
| Сервер | IP / FQDN | Тип | Клиент | Инструкция |
|--------|-----------|-----|--------|------------|
| Finland 5870 | `78.17.4.225:9443` | VLESS Reality + XTLS Vision | Happ | [[../../snippets/happ-vpn-client-instruction]] |
| Finland 5870 (AmneziaWG) | `78.17.4.225` | AmneziaWG (если поднят) | AmneziaVPN | [[../../snippets/amnezia-vpn-client-instruction]] |
Подробности по Finland после инцидента: [[../../decisions/2026-04-24-finland-vps-malware-cleanup]]. SSH только по ключу.
## Клиенты
> Заполнять при каждой выдаче. Один клиент = одна строка; если человек пользуется на нескольких устройствах по одному UUID — перечислить через запятую. Если устройствам нужны разные UUID — отдельные строки с одним именем.
| # | Имя | Контакт | Устройства | Клиент-приложение | Сервер | UUID / ключ | Выдан | Истекает | Отозван | Заметки |
|---|-----|---------|------------|-------------------|--------|-------------|-------|----------|---------|---------|
| 1 | Ярослав | _уточнить_ | _уточнить_ | AmneziaVPN | Finland (AmneziaWG, предполож.) | `vpn://AAAIYXjanV…VC9O` — полный ключ в [[../../snippets/clients/yaroslav-amnezia-setup]] | 2026-04-24 | — | — | персональная инструкция [[../../snippets/clients/yaroslav-amnezia-setup]] |
Шаблон строки — в [[../../templates/vpn-client]].
## Процедуры
### Выдать клиенту
1. Сгенерировать/взять UUID клиента (для Reality можно использовать общий, если устройство доверенное; для разделения — свой UUID на каждого).
2. Сформировать ссылку:
- **Happ (VLESS Reality)** — `vless://…`, можно + QR-картинка (см. assets в `snippets/assets/`)
- **AmneziaVPN** — `vpn://…`, **QR не использовать** (конфиг слишком длинный → нечитаемый QR). Только ссылка через буфер обмена или `.vpn` файл.
3. Сделать персональный файл-инструкцию в `snippets/clients/<имя>-<тип>-setup.md` с готовым текстом-для-мессенджера (см. пример [[../../snippets/clients/yaroslav-amnezia-setup]]).
4. Отправить готовый текст. Универсальные шаблоны: [[../../snippets/happ-vpn-client-instruction]] / [[../../snippets/amnezia-vpn-client-instruction]].
5. Записать строку в таблицу выше: имя, контакт, устройства, дата, UUID.
6. При необходимости приложить [[../../snippets/apple-id-us-on-russia]] — если у клиента российский App Store без Happ/AmneziaVPN.
### Отозвать клиента
**Reality (XRay/Sing-box):**
- SSH на сервер → конфиг `/usr/local/etc/xray/config.json` или amnezia-xray контейнера
- Убрать UUID из `inbounds[].settings.clients[]`
- `systemctl reload xray` или `docker restart amnezia-xray`
- Отметить в таблице «Отозван: YYYY-MM-DD»
**AmneziaWG / WireGuard:**
- Убрать `[Peer]` блок из `wg0.conf`
- `wg syncconf wg0 <(wg-quick strip wg0)` — атомарно, без обрыва остальных
- Записать отзыв в таблицу
### Ротация ключей
- Раз в ~6 мес или при подозрении на утечку — новый UUID всем активным клиентам
- Массовую рассылку отправлять одним сообщением со ссылкой на новую версию инструкции
- Старый UUID удалить с сервера после подтверждения перехода (неделя окна)
### При потере QR клиентом
- QR-картинка — в `snippets/assets/vpn-<сервер>-YYYYMMDD.png`. Переотправить.
- Если QR сгенерирован только в голове — пересобрать из `vless://` строки через `qrencode -o file.png 'vless://…'`.
## Roadmap / Что ещё
- [ ] Завести второй резервный сервер-выход (не Finland) — сейчас единая точка отказа
- [ ] Скрипт `vpn-clients-health.sh` — дёргает активные UUID на сервере и сверяет с таблицей (находит осиротевшие/забытые)
- [ ] Telegram-уведомление когда новый клиент заходит впервые (вместо ручного подтверждения)
- [ ] Рассмотреть biling, если часть клиентов станет коммерческой — пока все бесплатно для родни/знакомых
- [ ] Ограничение по устройствам на UUID (в XRay это настраивается через `level`) — для чужих людей имеет смысл
## Ссылки
- [[../../snippets/happ-vpn-client-instruction]] — готовый текст для отправки (Happ, Finland Reality)
- [[../../snippets/amnezia-vpn-client-instruction]] — готовый текст для отправки (AmneziaVPN)
- [[../../snippets/apple-id-us-on-russia]] — если у клиента RU App Store без VPN-приложений
- [[../../decisions/2026-04-24-finland-vps-malware-cleanup]] — инцидент, режим доступа к серверу
- [[netbird-inventory]] — инвентарь Netbird-пиров (не путать)