Files
infra/servers/ru1.md
2026-06-21 23:12:36 +03:00

61 lines
4.8 KiB
Markdown
Raw Permalink 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.
# 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 туннель `10.8.1.4/32`**с 2026-06-21 endpoint переключён на `fr1` (161.97.93.252:36360)** (был de1). Ключи/PSK те же, менялся только Endpoint в `/etc/amnezia/amneziawg/wg0.conf`. Откат: вернуть IP на `213.136.74.247`.
- `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` (горячее добавление).
## Мониторинг
- Агент `~/monitoring-agent` (node-exporter + cadvisor, **host-network** → видит ens3/wg0/wg1/tun0/tun1) → Prometheus `fr1`, instance `ru1`.
- **openvpn-exporter** (kumina, host-net :9176) — per-client метрики обоих OpenVPN (status-файлы `/run/openvpn-server/status-openvpn.log` + `/var/log/openvpn-ru-status.log`). Дашборд Grafana «OpenVPN — клиенты».
- Порты 9100/8080/9176 закрыты `iptables INPUT DROP ! -s 161.97.93.252` (только fr1, сохранено netfilter-persistent). Скрейп по публичному IP.
## Прочее в `~`
- `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`.