Замена OpenVPN (elink). Подсеть 10.9.0.0/21, обфускация на параметрах Jc/Jmin/Jmax/S1/S2/H1-H4.
AWG-сервер крутится на mirkwood.4gain.pro (94.25.50.91:51830/udp, public key tjEO3VdD0XGdoaXajG/vbgPGIRCOCH4lzGu2uadhFHE=). Все остальные хосты (включая firefly) — peer'ы.
На mirkwood работают два AWG-интерфейса (источник правды по mirkwood — направление WhiteBox):
awg1 — клиентский интерфейс с подсетью 10.9.0.0/21. Это общий пул: и forGain admin VPN (peers 191-198), и WhiteBox VPN-сервис (платные пользователи). Конфиг клиентов генерится автоматически из БД через awg-sync.timer. См. WhiteBox/amneziawg-stats.awg0 — отдельные inter-server туннели mirkwood ↔ exit-нод (nugush/syun/sakmara). Используются для NAT-исхода клиентского VPN-трафика и для проксирования api.telegram.org с mirkwood (РФ-блокировка). См. WhiteBox/ssl-tg-routing.forGain admin mesh (этот список):
mirkwood (AWG core, awg1 интерфейс)
94.25.50.91:51830
▲
┌──────────┬─────────────┴┬──────────┬─────┬──────┬─────┐
│ │ │ │ │ │ │
firefly annalium mhws nugush LoNGFW BGBill DPI
10.9.0.191 .192 .158 .199 .196 .197 .198
(forGain (VM- (mhws (forGain (LoPlus) (LoPlus)(LoPlus)
swarm) хра- work- zabbix-
нилка sta- proxy +
⚠ AWG tion, TG gw)
не агент)
поднят)
Mesh-адресация — общий пул 10.9.0.0/21. forGain admin peers — 10.9.0.191-192, 199, GosNIIGA workstation — 10.9.0.158 (mhws), LoPlus — 10.9.0.196-198. Регистрируются через awg1 на mirkwood. См. LoPlus AWG mesh.
⚠ Inter-peer forwarding на mirkwood не открыт по умолчанию — каждый разрешённый peer-to-peer маршрут добавляется в awg_forward chain (управляется WhiteBox UI/sync.timer). Например для nugush↔firefly и mhws↔firefly правила добавлены отдельно.
VM на proxmox (sarva, VMID 106) — хранилка LoPlus. AWG IP 10.9.0.192/32 зарезервирован, но тоннель ещё не поднят: kernel 6.12 (Stream 10) на момент 2026-04-30 несовместим с DKMS-модулем AmneziaWG (см. Kernel-совместимость). После решения совместимости — клиентский AWG-туннель к mirkwood, чтобы видеть остальные mesh-узлы.
С 2026-04-30 nugush также является peer'ом mesh awg1 (admin) — добавлен в awg1, чтобы zabbix-proxy и agent2 на nugush ходили до zabbix-server на firefly через mesh (Server=10.9.0.191), а не через публичный TCP 5.101.14.132:10051 (который страдал от RKN/DPI и фланнел: connection timed out → restored каждые 5–10 сек, item'ы web-checks устаревали на 20+ часов).
Помимо peer-роли в awg1 (admin), nugush сохраняет роль VPN exit-ноды для WhiteBox в отдельной схеме на awg3/awg0 (см. ниже).
С 2026-05-01 рабочая станция mhws.e2.4gain.pro — peer mesh awg1. AWG-интерфейс на самом mhws называется awg0 (локально). На mhws стоит только zabbix-agent2 7.0 (Go binary, минимум зависимостей) — пушит метрики на server 10.9.0.191. Zabbix-proxy 7.0 RPM несовместим с RED OS 8 (нужны старые libssl.so.1.1, libnetsnmp.so.35, libevent_core-2.1.so.6, libldap-2.4.so.2 — RED OS имеет .so.40, .so.7, libldap.so.2 из 2.5+). Сборка из исходников возможна, но не приоритет.
Хост в направлении GosNIIGA (e2-сегмент сети ГосНИИ ГА).
awg1)syun, sakmara — VPN exit-ноды для обхода РКН. Подключены к mirkwood через другие AWG-интерфейсы (awg0 на mirkwood, см. WhiteBox/inter-server-topology). Принимают клиентский трафик из awg1 через NAT. Это часть пользовательского WhiteBox VPN-сервиса.
nugush совмещает обе роли: и exit-нода (через свой awg3), и admin peer mesh (через свой awg1 к mirkwood).
На mirkwood (не firefly), на интерфейсе awg1:
ssh root@mirkwood.4gain.pro
awg set awg1 peer <pub_key_new_peer> preshared-key <psk_new> allowed-ips 10.9.0.<N>/32
awg-quick save awg1
Альтернатива — добавить запись в БД на mirkwood, и awg-sync.timer сгенерирует конфиг и применит сам.
sm2c-cloud-amneziawg. Установка через DKMS (модуль ядра) — поэтому критична kernel-совместимость.
| Платформа | Kernel | Статус |
|---|---|---|
| RHEL 9 / AlmaLinux 9 | 5.14 | работает |
| RHEL 8 / CentOS 8 | 4.18 | DKMS не собирается |
| CentOS Stream 10 | 6.12 | DKMS не собирается |
| Debian 13 | 6.12+ | не собирается |
В планах — собственный fork с патчем под 6.12. Пока — клиенты, у которых kernel ≠ 5.14, либо обновляются (i2p мигрирует на AlmaLinux 9), либо остаются на старой схеме.
Ключи генерируются ролью per-host. Хранятся на сервере и в ~/.ssh/secrets/... пользователя — не в wiki.
*.vpn.4gain.proНужен DNS-01 challenge (по 80/tcp от LE до VPN IP не достучаться). В плане — отдельный traefik-resolver на DigitalOcean DNS provider.
Changelog
awg_forward добавлено правило mhws↔firefly (вручную в WhiteBox UI) (claude/forGain)Server=10.9.0.191 через mesh — стабильно. Конфиг закреплён awg-quick save awg1 на mirkwood + systemd awg-quick@awg1 на nugush (claude/forGain)awg1 (mesh forGain+LoPlus + клиентский WhiteBox VPN, общий пул 10.9.0.0/21, генерация через awg-sync.timer из БД), awg0 (inter-server туннели до exit-нод). Регистрация peer'ов на awg1. annalium: VM-хранилка, AWG IP зарезервирован, тоннель не поднят (kernel 6.12 incompat) (claude/forGain)