From fa234441483c90f4ea015d925a3041977f3e8d2c Mon Sep 17 00:00:00 2001 From: Ruslan Gilfanov Date: Sun, 21 Jun 2026 22:03:56 +0300 Subject: [PATCH] =?UTF-8?q?ru1:=20=D0=BF=D0=B0=D1=81=D0=BF=D0=BE=D1=80?= =?UTF-8?q?=D1=82=20RU=20entry-=D0=BD=D0=BE=D0=B4=D1=8B=20(85.198.109.86,?= =?UTF-8?q?=20VDSina)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AGENTS.md | 3 ++- servers/ru1.md | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 servers/ru1.md diff --git a/AGENTS.md b/AGENTS.md index f951cc3..af68a6d 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -4,6 +4,7 @@ ## Серверы - [`servers/de1.md`](servers/de1.md) — `ruzzy.dev` (213.136.74.247). Действующая прод-нода: прокси/VPN (telemt, AmneziaWG, OpenVPN), gitea, openclaw, боты. Источник для переноса. -- [`servers/fr1.md`](servers/fr1.md) — `fr1.ruzzy.dev` (161.97.93.252). Новая чистая нода (Ubuntu 24.04). +- [`servers/fr1.md`](servers/fr1.md) — `fr1.ruzzy.dev` (161.97.93.252). Новая чистая нода (Ubuntu 24.04). Мониторинг + gitea. +- [`servers/ru1.md`](servers/ru1.md) — `85.198.109.86` (VDSina, РФ). VPN entry-нода (OpenVPN ×2, AmneziaWG до de1, WireGuard клиентов, telemt), умный роутинг RU/зарубеж. Секреты (пароли, токены) в репозитории не хранятся — только на серверах. diff --git a/servers/ru1.md b/servers/ru1.md new file mode 100644 index 0000000..6b92079 --- /dev/null +++ b/servers/ru1.md @@ -0,0 +1,55 @@ +# ru1 — `85.198.109.86` (RU entry node) + +VPN entry-нода в РФ. Точка входа в топологии **RU↔DE**: умный роутинг (RU-трафик → напрямую, зарубежный → туннель AWG до de1). Полный runbook — `~/README.md` на сервере. +Секреты (MTProxy user-secrets, ключи WG) — только на сервере, не здесь. + +**Провайдер:** VDSina · РФ +**ОС:** Ubuntu 24.04.3 LTS · kernel 6.8.0-78 +**Ресурсы:** 1 vCPU / 1.9 GB RAM / 50 GB (swap 2 GB) — маленькая нода +**hostname:** `v2911854.hosted-by-vdsina.ru` + +## Доступ +- `ssh mik@85.198.109.86` (пользователь `mik`, вход по ключу), **passwordless sudo**. + +## Интерфейсы +- `ens3` — публичный `85.198.109.86/24` (RU интернет, default route via 85.198.109.1) +- `tun0` — OpenVPN #1 (умный роутинг) `192.168.255.1/24` +- `tun1` — OpenVPN #2 (RU-выход) `192.168.254.1/24` +- `wg0` — AmneziaWG туннель до de1 `10.8.1.4/32` +- `wg1` — WireGuard для клиентов `10.8.2.1/24` + +## Сервисы и порты +| Сервис | Порт | Описание | +|---|---|---| +| OpenVPN #1 | 1194/udp (`tun0`) | умный роутинг: RU→ens3, зарубеж→wg0→de1. Cfg `/etc/openvpn/server/openvpn.conf` | +| OpenVPN #2 | 1195/udp (`tun1`) | RU-выход (весь трафик через ens3, DNS Yandex). Cfg `/etc/openvpn/server/ruopenvpn.conf` | +| AmneziaWG `wg0` | (awg, `45451/udp`) | туннель до de1 (exit). `awg-quick@wg0`, cfg `/etc/amnezia/amneziawg/wg0.conf`, `Table=off` | +| WireGuard `wg1` | 51820/udp | VPN для клиентов (Docker `linuxserver/wireguard`), подсеть `10.8.2.0/24`, `~/wireguard/` | +| telemt (MTProxy) | 443 | FakeTLS под `ru.ruzzy.dev`, маска → nginx `127.0.0.1:4443`. API `9091`. Docker, `~/gost/` | +| nginx | 80, 4443 | маскировочный сайт `ru.ruzzy.dev` (Docker `nginx:alpine`) | + +Контейнеры: `telemt`, `wireguard`, `nginx` (docker compose в `~/gost` и `~/wireguard`). + +## Умный роутинг (tun0 и wg1) +- `ipset ru_ips` (~11400 подсетей, источник ipdeny.com). До routing decision (mangle PREROUTING): + - dst ∈ ru_ips → RETURN (без метки) → main table → ens3 (RU напрямую) + - иначе → MARK `0x64` → `ip rule fwmark 0x64 → table vpn (100)` → default dev wg0 → de1 +- Обновление списка: `~/smart-routing/update-ru-ips.sh`, cron вс 03:00. Восстановление при ребуте: `ipset-restore.service` (до `awg-quick@wg0`). +- tun1 — без умного роутинга (всегда RU/ens3). + +## AWG Watchdog +- `~/awg-watchdog.sh` в root-cron **каждые 3 мин**: если handshake `wg0` старше 5 мин → рестарт `awg-quick@wg0` + чистка дублей iptables. Лог `~/awg-watchdog.log`. (telemt зависит от wg0 — Telegram DC маршрутизируются через туннель до de1.) + +## Клиенты +- OpenVPN: `~/gen_client.sh --profile de|ru|both <имя>`, PKI `~/easy-rsa/pki`, профили `~/clients/`. CRL отключён. +- WireGuard: `~/wireguard/gen_client.sh <имя>` → `~/wireguard/clients/<имя>.conf` (горячее добавление). + +## Прочее в `~` +- `badvpn`, `gost`, `smart-routing`, `tun2socks.log`, `net-backup`, `works`, `telemt-build`, `cloudflared.deb`. + +## Живой статус (2026-06-21) +Все юниты active (`awg-quick@wg0`, оба `openvpn-server@`, `ipset-restore`), 3 контейнера up, `wg0` handshake свежий, ipset ru_ips = 11394. + +## ⚠️ Грабли (из README) +- `wg1.conf` обязан иметь `Table = off` — иначе wg-quick при рестарте сносит default route и сервер теряет SSH (восстановление: `ip route add default via 85.198.109.1 dev ens3`). +- Таблица маршрутизации — `vpn` (100), не `awg`.