--- 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 HOSTKEY | `202.71.12.186:9443` | VLESS Reality + XTLS Vision | Happ | `ssh -J root@100.70.92.138 root@202.71.12.186` (`finland5870.com`, см. [[finland-hostkey-vps]]) | Подробности по 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]] | | 1 | Ярослав | _уточнить_ | _уточнить_ | Happ | Finland HOSTKEY | UUID `c22b6e34-ceca-4977-97a0-2b1e6b4035a7` — полная ссылка в [[../../snippets/clients/yaroslav-happ-setup]] | 2026-04-29 | — | — | альтернативный канал к AmneziaVPN | | 2 | Сергей (Знаменское) | _уточнить_ | _уточнить_ | Happ | Finland 5870 | UUID `4798936b-3df6-4e6f-8418-02d8cc9ba553` — полная ссылка в [[../../snippets/clients/sergey-znamenskoye-happ-setup]] | 2026-04-29 | — | — | управляющий объектами Знаменского, см. [[vps-swtest]] | Шаблон строки — в [[../../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-пиров (не путать)