---
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 после инцидента
- Клиент: Александр, КП Бенелюкс (Истра)
