--- date: 2026-05-20 type: project tags: [benilux, credentials, secrets] --- # 🔐 Credentials — Бенелюкс > ⚠️ **КОНФИДЕНЦИАЛЬНО** — не распространять за пределы команды ## Cudy TR3000 (роутер Бенелюкса) | Параметр | Значение | |---|---| | Hostname | `Benelux` (DHCP отдаёт как `Benelyuks`) | | NetBird IP | `100.70.207.97` (`openwrt-benilux.netbird.cloud`) | | LAN IP | `192.168.1.1` | | WAN IP | `45.143.21.60` (Умные сети, gateway `45.143.21.254`) | | OpenWrt | 24.10.3 | | Логин | `root` | | Пароль | `fyGTO1ZsPUpPKUbhUcqM` | ### SSH **Только по ключу** (PasswordAuth отключён в dropbear с 2026-05-20). В `/etc/dropbear/authorized_keys` лежат: - `ai@mac-20260112` — основной ключ Mac Олега (`~/.ssh/id_ed25519`) - `claude-code@code-server` — recovery-ключ с LXC 132 code-server, на случай отказа Mac - `german-lxc@dttb.ru` — ключ ассистента **German** (LXC 141, NetBird `100.70.99.82`), добавлен 2026-06-18 через code-server (Mac→Cudy на тот момент был недоступен — peer blocked) ```bash # с Mac ssh -i ~/.ssh/id_ed25519 root@100.70.207.97 # с code-server (recovery) ssh root@100.70.207.97 # с German (ассистент) — алиас в /root/.ssh/config ssh cudy-benelux # = root@100.70.207.97 по /root/.ssh/id_ed25519 ``` ### LuCI (Web UI) Парольная авторизация остаётся (это штатный механизм OpenWrt). Доступ только из LAN и NetBird, не из интернета. - **Через NetBird**: https://100.70.207.97 (с Mac, openclaw, code-server и т.п.) - **Из LAN Бенелюкса**: https://192.168.1.1 - Логин: `root`, пароль: `fyGTO1ZsPUpPKUbhUcqM` SSL-сертификат самоподписанный — браузер ругнётся, "Advanced → Proceed". ### Failsafe / локальное восстановление Если SSH-ключи потеряются и LuCI недоступен — нужен физический доступ к роутеру: failsafe-mode через reset-кнопку при загрузке, IP `192.168.1.1` (статика на ноуте) → telnet/web. ## UniFi Cloud Key Gen2 Plus (UCK G2 Plus) — `Benelyuks` | Параметр | Значение | |---|---| | Hostname | `Benelyuks` | | LAN IP | `192.168.1.199` | | MAC | `70:a7:41:79:ef:29` | | Модель | UCK G2 Plus (kernel `3.18.44-ui-qcom`, Qualcomm SoC) | | Firmware | UnifiOS v5.0.12 | | Network app | v10.0.162 | | Logo | "Бенелюкс" | | Cloud | `unifi.ui.com` (требует Ubiquiti SSO) | | Adopted devices | USW-Pro-24-PoE, USW-Lite-16-PoE, USW-Lite-8-PoE, US-8-60W, U6-Pro21, ещё 2 на 70:a7:41:* | | SSH | `root / OL260380eg!@` (включён через UI Control Plane → 2026-06-05) | | Web UI | https://192.168.1.199 (только из LAN или через NetBird-туннель) | ### Как зайти через NetBird (для удалённого админства) С Mac, два терминала: ```bash # вкладка 1 (туннель в фоне, оставить висеть) ssh -L 8443:192.168.1.199:443 -i ~/.ssh/id_ed25519 root@100.70.207.97 -N # браузер open https://localhost:8443 ``` Для SSH на UCK — двухступенчатый туннель (ProxyJump через busybox-Cudy ломается по MTU): ```bash ssh -fN -L 19999:192.168.1.199:22 -i ~/.ssh/id_ed25519 root@100.70.207.97 ssh -p 19999 root@localhost # пароль OL260380eg!@ ``` ### Известная проблема: NTP не работает Провайдер «Умные сети» режет исходящий UDP/123 — UCK не может синхронизировать время через NTP-pool. После любого ребута часы остаются «вчерашними», cloud `unifi.ui.com` помечает консоль Offline (mutual-TLS keepalive отвергается как stale). **Workaround**: после каждого ребута заходить SSH и выставлять время руками: ```bash TARGET=$(date -u "+%Y-%m-%d %H:%M:%S") ssh -p 19999 root@localhost "date -u -s '$TARGET'; hwclock -w" ``` **Долгосрочный фикс** (не сделан): включить NTP-сервер на Cudy (он сам сходится через openwrt pool за счёт того что 0.openwrt.pool.ntp.org разрешён dnsmasq) и в Network → System → NTP на UCK прописать `192.168.1.1` вместо публичного пула. ### Известная проблема: правила firewall ломают fw4 после ребута В OpenWrt 24.10.3 / nftables v1.1.1 файлы в `/etc/nftables.d/*.nft` со старым синтаксисом (`chain xxx { type ... hook ... }`) **ломают весь fw4** — он не создаёт `forward`/`dstnat` chains, и LAN остаётся без интернета. См. [[../../decisions/2026-06-05-benelux-blackout-fw4-recovery]]. **Правило**: новые firewall-правила добавлять только через **UCI** (`uci add firewall rule/redirect/zone/forwarding`). Бот Алекс уже делает правильно — через `nft insert rule` runtime. ## Веб-доступ к сервисам коробки (через NPM Олега 10.0.0.195) KasmVNC-приложения на ZimaOS (VM 100 pve-147, `10.0.0.190`), опубликованы 2026-06-11: | URL | Backend | Защита | |---|---|---| | https://tg.umnybot.ru | 10.0.0.190:3000 (linuxserver-telegram) | Basic Auth | | https://rustdesk.umnybot.ru | 10.0.0.190:3005 (linuxserver-rustdesk) | Basic Auth | - **Basic Auth**: `alex` / `App5870w` (NPM Access List `umnybot-kasm`, id 1) — у самих KasmVNC-контейнеров своей авторизации НЕТ, без ACL наружу не выставлять - DNS: A-записи `tg`/`rustdesk` → `176.62.183.186` (Spaceweb) - LE-серты NPM id 121/122, до 2026-09-09, авто-renew - NPM самой коробки (LXC 101, `10.0.0.207:81`): `it5870@yandex.ru` / `1qaz!QAZ` — при переезде коробки к клиенту хосты продублировать туда ## Контекст - См. [[README]] — общая схема объекта (Cudy + Unifi-сегмент) - См. [[../../decisions/2026-05-20-benelux-compromise]] — история смены пароля и hardening после инцидента - Клиент: Александр, КП Бенелюкс (Истра)