diff --git a/decisions/2026-06-22-buzharovo-podkop.md b/decisions/2026-06-22-buzharovo-podkop.md new file mode 100644 index 0000000..a8ec499 --- /dev/null +++ b/decisions/2026-06-22-buzharovo-podkop.md @@ -0,0 +1,83 @@ +--- +date: 2026-06-22 +type: decision +tags: [buzharovo, podkop, openwrt, cudy, amneziawg, fakeip, telegram, netbird, network] +--- + +# Podkop для Бужарово — TR3000 во главе (обход блокировок, цель Telegram) + +## Контекст + +Нужен обход блокировок РКН на объекте Бужарово (стройрынок [[projects/buzharovo/README|Северный лес]]), +основная цель — рабочий **Telegram** на устройствах персонала. Объект — боевая розница: +[[projects/buzharovo/server1c|Server1C]] (`192.168.1.249`) + кассы `192.168.1.18`/`192.168.1.99` (ОФД-трафик). +Канонический стек обхода у Олега — [[snippets/podkop-reference|podkop + sing-box + AmneziaWG]] на роутерах Cudy. + +Олег рассматривал два пути: (1) Cudy с podkop перед текущим роутером; (2) OpenWrt на гипервизоре/Windows-сервере, как в [[projects/niikn/openwrt-bypass|НИИКН]]. + +## Разведка сети (что выяснили) + +Заходил на роутер `192.168.1.1` через Server1C (WinRM jump, `dttb/1qaz!QAZ`, plink по SSH). Ключевые находки: + +- **Грабля диагностики:** из Server1C НЕЛЬЗЯ зондировать Бужарово по `192.168.1.x` — подсеть **совпадает с НИИКН** (тоже `192.168.1.0/24`), и NetBird-маршрут (`wt0`) уводит туда. `Find-NetRoute` для `.1/.18/.50/.99` → ifIndex `wt0`. Поэтому «`.1` = RouterOS `ROSSSH`, admin/пустой пароль, порт 2000» и «`.50` = OpenWrt dropbear» — это **MikroTik и VM101 НИИКН через NetBird-утечку**, НЕ Бужарово. Реальные хосты Бужарово видны только по настоящим MAC в `arp -a`. +- **Доступ к настоящему роутеру** получен через L2: на Server1C добавил непостоянный host-route `New-NetRoute 192.168.1.1/32 -InterfaceIndex 12 -NextHop 0.0.0.0 -PolicyStore ActiveStore` → пакеты на `.1` пошли по локальному LAN (MAC `80:af:ca` = Cudy), интернет сервера не пострадал. Маршрут потом убран. +- **Роутер Бужарово = Cudy WR6500H** (Wi-Fi 7 / BE6500), сток на базе **OpenWrt 21.02** (vendor-LuCI Cudy `git-25.217`, fw 2.3.15 от 07.08.2025). Публичный WAN `185.13.47.2`: открыты **443 (LuCI), 3389 (RDP→Server1C), 53 (DNS)**; **SSH/22 закрыт и на WAN, и на LAN**. LuCI-логин Cudy хэширует пароль `sha256(pw+salt)` в браузере + самоподписанный серт → headless-вход не проходит (403 = схема, не «неверный пароль»). + +## Варианты + +1. **podkop на самом WR6500H** — ❌. Wi-Fi 7 mainline OpenWrt не поддерживает (vanilla-образа нет, рефлаш невозможен), на стоке 21.02 sing-box/AmneziaWG не встанут, SSH выключен. +2. **OpenWrt на гипервизоре / Hyper-V на Server1C** (как НИИКН) — ❌. У Бужарово нет ни выделенного Proxmox, ни управляемого роутера, на которых держится схема НИИКН. Server1C — боевой Win2012R2 без ИБП (24+ краша/день), вешать на него сеть нельзя. Плюс объект мигрируют на HomeLab. +3. **Отдельная Cudy TR3000 с podkop, параллельно (Вариант A)** — WR6500H остаётся шлюзом, на нём `route 198.18.0.0/15 → TR3000` + DHCP DNS = TR3000. Рабочий, без double-NAT, но требует доступа к залоченному WR6500H LuCI. +4. **Отдельная Cudy TR3000 во главе (Вариант B)** — ✅ TR3000 = шлюз (NAT+DHCP+DNS+podkop), WR6500H → точка доступа (bridge, Wi-Fi 7 остаётся). + +## Решение + +**Вариант B — Cudy TR3000 во главе.** Выбор Олега: подкоп на самом шлюзе — простейшая и крепкая FakeIP-схема (как Sergey/Benelux/Olivier), не нужен хэндоф маршрут+DNS и доступ к залоченному WR6500H, меньше точек коллизий. + +**Двойного NAT не будет при условии:** WR6500H перевести в **режим AP/bridge** (не router). Тогда единственный NAT — на TR3000, WR6500H лишь раздаёт Wi-Fi 7. + +```mermaid +flowchart LR + NET([🌐 Internet]) --> TR[Cudy TR3000 · ШЛЮЗ
podkop · DHCP · DNS
LAN 192.168.1.1 · awg0→FI/SG] + subgraph LAN["LAN 192.168.1.0/24 — адресацию сохраняем"] + AP[WR6500H · режим AP/bridge
Wi-Fi 7, без NAT] + S[Server1C .249] + K[Кассы .18 / .99 · ОФД] + end + TR --> LAN + S -. ОФД/1С/банки → напрямую .-> TR + classDef r fill:#3d2817,stroke:#d97757,color:#fff + class TR r +``` + +**Конфиг podkop (по канону [[snippets/podkop-reference]]):** +- Списки **точечно** `telegram` (+`meta`/`youtube` по нужде). ⛔ НЕ `russia_inside`/`russia_outside`. +- `connection_type=vpn`, `interface=awg0`, `disable_quic=1`, awg0 в firewall WAN-зоне. +- EXIT зарубежный (FI `78.17.4.225` или SG `202.71.12.186`), **новый AWG-peer** (свои ключи/IP, не переиспользовать НИИКН). +- **Безопасность для розницы:** точечные списки заворачивают в туннель ТОЛЬКО telegram-домены → кассы/ОФД/1С/банки идут напрямую (не через зарубежный выход). + +## План миграции (минимум простоя) + +1. TR3000 настроить на столе: LAN `192.168.1.1/24`, DHCP (статика касс/сервера сохранена), podkop как выше. +2. WR6500H → AP/bridge (DHCP off, патч-корд LAN-порт → TR3000), Wi-Fi 7 сохранить. +3. Перецепить WAN (2.5G-аплинк) из WR6500H в 2.5G-порт TR3000. **Если ISP биндит IP к MAC** — склонировать MAC WR6500H на WAN TR3000. +4. Проброс 3389 (RDP) НЕ восстанавливать — доступ к серверу только через NetBird. +5. Проверка: `nslookup telegram.org 127.0.0.42` → `198.18.x`; домен кассы/ОФД → реальный IP; `wg` handshake awg0 свежий. + +## Последствия / открытые вопросы + +- Нужна свободная **Cudy TR3000** (прошить vanilla OpenWrt — деплой Олега). Олег ставит готовый сервер, Claude даёт конфиг. +- Подтвердить EXIT (FI/SG) — под него поднять AWG-peer. +- Уточнить: публичный `185.13.47.2` статический и привязан ли к MAC роутера у провайдера. +- WR6500H оставить как AP (ради Wi-Fi 7) или снять. +- RDP 3389 — увести в NetBird (рекомендовано) или оставить публичный проброс. + +**Побочные проблемы (отдельно от podkop, но важные):** +- ⚠️ **Коллизия подсетей** Бужарово↔НИИКН (обе `192.168.1.0/24`) через NetBird на Server1C — мина для диагностики и будущей связки podkop/NetBird. Переадресовать один объект или сузить NetBird-маршруты. +- ⚠️ **WAN светит 443 (LuCI) и 3389 (RDP)** в интернет — закрыть, увести в NetBird. + +## Ссылки +- [[snippets/podkop-reference]] — канон podkop (списки, грабли, конфиг) +- [[projects/buzharovo/server1c]] · [[projects/buzharovo/README]] +- [[projects/niikn/openwrt-bypass]] — образец параллельной схемы (НИИКН) +- [[decisions/2026-05-29-niikn-diadoc-ozon-fix]] — урок про `russia_outside`