.145 оказался занят чужим устройством (MAC ac:ba:c0:39:82:64): pve резолвил в контейнер, а NPM и NetBird-клиенты — в чужого → 502 на dash.dttb.ru. Перенесли на свободный .148 (проверено ARP), NPM forward_host обновлён, HOMEPAGE_ALLOWED_HOSTS поправлен. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
258 lines
16 KiB
Markdown
258 lines
16 KiB
Markdown
---
|
||
date: 2026-02-26
|
||
type: project
|
||
tags: [dttb]
|
||
---
|
||
|
||
# 🔐 Credentials — DTTB HomeLab
|
||
|
||
> ⚠️ **КОНФИДЕНЦИАЛЬНО** — не распространять за пределы команды
|
||
>
|
||
> Последнее обновление: 2026-03-03
|
||
|
||
---
|
||
|
||
## Proxmox VE (10.0.0.250)
|
||
|
||
| Параметр | Значение |
|
||
|----------|----------|
|
||
| URL | https://10.0.0.250:8006 / https://pve.dttb.ru |
|
||
| Логин | `root` |
|
||
| Пароль | `1qaz!QAZ` |
|
||
| Realm | PAM |
|
||
|
||
## Amnezia Web Panel (LXC 143)
|
||
|
||
| Параметр | Значение |
|
||
|----------|----------|
|
||
| Веб (LAN) | http://10.0.0.143:5000 |
|
||
| Веб (NetBird) | http://100.70.9.163:5000 (`amnezia-panel.netbird.cloud`) |
|
||
| Логин | `admin` |
|
||
| Пароль | `AmnPanel!2026-fi` (дефолт admin/admin сменён; pbkdf2_hmac-sha256) |
|
||
| Root LXC 143 | `root` / `1qaz!QAZ` (консоль/SSH через pve) |
|
||
| Данные | bind-mount `/opt/amnezia-panel/{data.json,tunnels_state.json}` |
|
||
| Назначение | Control-plane VPN-нод (AWG/WG/Xray/MTProxy), управляет серверами по SSH. Приватно, без NPM/публичного доступа. См. [[../../decisions/2026-06-23-amnezia-web-panel-lxc143]] |
|
||
|
||
## VPN-ноды (управляются панелью)
|
||
|
||
### HOSTKEY Finland — основной хаб (заказан 2026-06-23)
|
||
| Параметр | Значение |
|
||
|----------|----------|
|
||
| IP | `151.241.234.241` |
|
||
| SSH | **key-only** (пароль по SSH отключён): `ssh awg-fi` с Mac, ключ `~/.ssh/awg_fi_key` (ed25519). Панель LXC 143 ходит тем же ключом |
|
||
| Пароль root | `v_6hH9JuH_` — **только для веб-консоли HOSTKEY** (по SSH не работает) |
|
||
| ОС | Ubuntu 22.04.5 LTS · 2 vCPU / 3.9 GB / 60 GB NVMe · 3 TB трафик @1Gbps · `fi-vmv2-nano` |
|
||
| AmneziaWG | **AWG 2.0** · контейнер `amnezia-awg2` · UDP **41624** · subnet `10.8.1.0/24`. Управляется панелью (server_id 0) |
|
||
| Защита | ufw (наружу только 22/tcp + 41624/udp) · fail2ban (sshd, backend=systemd) · SSH key-only · root prohibit-password |
|
||
| Роль | Основной AmneziaWG-выход. Резерв — старый финский VPS (переустановить ОС перед использованием: был XorDDoS/RCE) |
|
||
|
||
## MikroTik Router (НИИКН — 192.168.1.1)
|
||
|
||
| Параметр | Значение |
|
||
|----------|----------|
|
||
| IP | 192.168.1.1 |
|
||
| Модель | hAP ac³ |
|
||
| Логин | `AI` |
|
||
| Пароль | `OL260380eg` |
|
||
| Версия | RouterOS 7.20.6 |
|
||
|
||
## Gitea (10.0.0.189:3000)
|
||
|
||
| Параметр | Значение |
|
||
|----------|----------|
|
||
| URL | http://10.0.0.189:3000 / http://git.dttb.ru |
|
||
| Логин | `oleg` |
|
||
| Пароль | `OL260380eg` |
|
||
| Git Remote | `http://oleg:OL260380eg@10.0.0.189:3000/oleg/knowledge-base.git` |
|
||
|
||
## Nginx Proxy Manager (LXC 103 — 10.0.0.195:81)
|
||
|
||
| Параметр | Значение |
|
||
|----------|----------|
|
||
| URL | http://10.0.0.195:81 / https://npm.dttb.ru |
|
||
| Email | `it5870@yandex.ru` |
|
||
| Пароль | `1qaz!QAZ` |
|
||
|
||
## RustDesk Server (LXC 116 — 10.0.0.244)
|
||
|
||
| Параметр | Значение |
|
||
|----------|----------|
|
||
| Web admin URL | https://remot.dttb.ru/_admin/ |
|
||
| Swagger | https://remot.dttb.ru/swagger/index.html |
|
||
| Логин | `admin` |
|
||
| Пароль | `1qaz!QAZ` *(сменён на стандартный 2026-04-29)* |
|
||
| Public key (для RustDesk2.toml) | `R0lA4r77hAGw6YRL1qG3JioVqQ0Q0fJfzkwlAGqR6jU=` |
|
||
| JWT key (config.yaml `jwt.key`) | `mrQPMJh6QBGp93aVqv14IG4R5g4zjxNRs3gLHtjJr4rqgGm164ciMVrQJDP2GIQh` |
|
||
| Бэкап ключей и БД | `/root/rustdesk-backup-20260428-1134/` (на LXC 116) |
|
||
| Rollback к OSS | `bash /root/rustdesk-rollback.sh` (на LXC 116) |
|
||
|
||
Сервер — `lejianwen-pro` 1.1.14 (`hbbs`/`hbbr` с `MUST_LOGIN=Y`) + `rustdesk-api` 2.7. Подробности: [[rustdesk]] и [[../../decisions/2026-04-28-rustdesk-lejianwen-pro-migration]].
|
||
|
||
CLI смены пароля admin (на LXC 116):
|
||
```bash
|
||
cd /var/lib/rustdesk-api && /usr/bin/rustdesk-api reset-admin-pwd <new-pw>
|
||
```
|
||
|
||
## Nextcloud AIO (VM 250 — 10.0.0.230:11001)
|
||
|
||
| Параметр | Значение |
|
||
|----------|----------|
|
||
| URL | https://dttb.ru |
|
||
| Версия | Nextcloud 32.0.6 (AIO) |
|
||
| Логин | `admin` |
|
||
| Пароль | `1qaz!QAZ` |
|
||
| WebDAV | `https://dttb.ru/remote.php/dav/files/admin/` |
|
||
| App password Mac sync | `~/.config/nextcloud-kb/app-password` (chmod 600) |
|
||
|
||
Подробности sync-схемы: [[../../decisions/2026-04-17-nextcloud-sync-schema|decision 2026-04-17]].
|
||
|
||
## ZimaOS NAS (VM 130 — 10.0.0.221)
|
||
|
||
| Параметр | Значение |
|
||
|----------|----------|
|
||
| Веб | http://10.0.0.221 (Caddy/ZimaOS-Gateway) |
|
||
| Логин | `dttb` |
|
||
| Пароль | `1qaz!QAZ` (восстановлен 2026-06-19 из md5-хеша в `user.db`) |
|
||
| SSH | ❌ выключен; Linux root **locked** (без пароля) |
|
||
| Shell | ttyd `http://10.0.0.221:7681` (просит login, нужен Linux-юзер) или offline-mount диска на Proxmox |
|
||
|
||
**Сброс веб-пароля offline** (если снова потеряется): `qm stop 130` → `losetup -fP /dev/pve/vm-130-disk-0` → смонтировать раздел p8 `casaos-data` → в `.casaos/db/user.db` (sqlite, табл. `o_users`) `UPDATE o_users SET password='<md5 нового>' WHERE username='dttb'` (хеш = **md5 без соли**) → umount + `losetup -d` + `lvchange -an pve/vm-130-disk-0` → `qm start 130`. ZimaOS immutable A/B: system = squashfs (RO), изменения в overlay (p7), данные/конфиги в casaos-data (p8).
|
||
|
||
## Spaceweb (DNS-хостинг: niikn.com, dttb.ru, itilegent.ru)
|
||
|
||
| Параметр | Значение |
|
||
|----------|----------|
|
||
| URL | https://vps.sweb.ru |
|
||
| Логин | `it5870yand` |
|
||
| Пароль | `1qaz!QAZ` |
|
||
| API | `https://api.sweb.ru/domains/dns` (JSON-RPC) |
|
||
| Домены | niikn.com, dttb.ru, itilegent.ru |
|
||
|
||
## Mailcow НИИКН (VM106 — 192.168.1.128)
|
||
|
||
| Параметр | Значение |
|
||
|----------|----------|
|
||
| URL | https://mail.niikn.com |
|
||
| Admin | `admin` / `1qaz!QAZ` |
|
||
| API Key | `niikn-mailcow-api-2026` |
|
||
| DBPASS | `8VcUSgpKEOoxNojIZBRJx0FzMxzm` |
|
||
| Ящик | `noreply@niikn.com` / `NiIkN-NoReply-2026!` |
|
||
|
||
## NPM НИИКН (LXC 102 — 192.168.1.22:81)
|
||
|
||
| Параметр | Значение |
|
||
|----------|----------|
|
||
| URL | http://192.168.1.22:81 |
|
||
| Email | `it5870@yandex.ru` |
|
||
| Пароль | `1qaz!QAZ` |
|
||
|
||
## German Hermes Dashboard (LXC 141)
|
||
|
||
| Параметр | Значение |
|
||
|----------|----------|
|
||
| URL | https://german.dttb.ru (NPM #40 → 10.0.0.141:9119) |
|
||
| Логин | `oleg` / `German-ecddc1edea-2026` |
|
||
| Механизм | `dashboard.basic_auth` в `/root/.hermes/config.yaml` (scrypt `password_hash` + `secret`, plaintext не хранится) |
|
||
| systemd | `hermes-dashboard.service` = `hermes dashboard --host 0.0.0.0 --port 9119 --skip-build --no-open` |
|
||
| ⚠️ Грабля | **БЕЗ `--insecure`!** `--insecure` отключает cookie-gate (включает легаси `_SESSION_TOKEN`) → login проходит, но всё внутри 401. Бинд `0.0.0.0` без `--insecure` = `auth_required=True` + принимает любой Host (для NPM-домена). См. [[../../decisions/2026-06-18-german-hermes-agent-deploy]] |
|
||
|
||
## authentik SSO/IdP (LXC 144)
|
||
|
||
| Параметр | Значение |
|
||
|----------|----------|
|
||
| URL | https://auth.dttb.ru (NPM #41 → 10.0.0.144:9000, LE cert id133) |
|
||
| LXC root | `10.0.0.144` — root / `Authentik!2026-dttb` (LAN only, без WAN SSH) |
|
||
| Admin панель | `akadmin` / `Auth0leg!2026-dttb` (bootstrap-пароль). **2FA обязательна** — при первом входе предложит TOTP/passkey |
|
||
| Email admin | `it5870@yandex.ru` |
|
||
| API-токен | `claude-bootstrap` = `z53t4jfarH69EBYuJJbY0olaak79Sf67W1EqVCCM6NVHXbQDAAuyXHfVP4VZ` (не истекает, минует login-flow — для управления/recovery) |
|
||
| Стек | `/opt/authentik/` — `.env` хранит `PG_PASS` и `AUTHENTIK_SECRET_KEY` (сгенерированы рандомом, бэкап только в `.env` контейнера) |
|
||
| OIDC Open WebUI | app `open-webui`, client_id `1G7PLkPUSCEK4EFyULcDbqBnADrRNnswXOHFOeEF`, secret `2vpQldlISZDGyQaTQeVZ070XkA879a0TaMCeYIPQaA0ln116sQqJNzj9AjSMjvTz4yFTXw89V0wGb5yMP1CfqVCE0UehcvI9RsgCtjrFaSp0lrDD1NCwp9SrDGtfcF2A` |
|
||
| OIDC Gitea | app `gitea`, client_id `AYl8jNZvJF7jh4c2nPhm1nRtD2XwkUK0DPwnvQ9e`, secret `UwsqG97S5REcuSgQLFQUHGp0JDKScR7fSIuIminNaZoVKca2JQzbb0PebePeBeaQhFKPjJOlu3kEmEEzod0oGtIArHKH492SnUBMO5aa5FgnAGjGzm9BB4RRYJo7wEMQ` |
|
||
| Recovery | сброс admin-пароля `ak change_password akadmin`; снять обяз. 2FA — PATCH стейджа `f3808685-…` `not_configured_action=skip` через API-токен. См. [[../../decisions/2026-06-26-authentik-sso-deploy]] |
|
||
|
||
## Homepage Dashboard (LXC 145)
|
||
|
||
| Параметр | Значение |
|
||
|----------|----------|
|
||
| URL | https://dash.dttb.ru (NPM #42 → 10.0.0.148:3000, LE cert id134) |
|
||
| Basic Auth | `oleg` / `OL260380eg` (NPM access-list id 5) |
|
||
| LAN/NetBird | http://10.0.0.148:3000 (без авторизации) |
|
||
| LXC root | `10.0.0.148` — root / `1qaz!QAZ` |
|
||
| Секреты виджетов | `/opt/homepage/.env` (chmod 600, не в git): `HOMEPAGE_VAR_*` |
|
||
| Proxmox widget | API-токен `homepage@pve!homepage` = `26a880fa-36de-4703-ae84-fbcd8965f480` (роль **PVEAuditor**, read-only) |
|
||
| Gitea widget | read-only PAT `homepage-dashboard` = `b91a8434eb93404dbfef0ddf7b2676d23cbbfaf0` |
|
||
| Nextcloud widget | admin + app-password `IDE19XghEprCQG9p8as9NrwxEfI6BoXXxWZv0kremJkoOXtKCmNxj61JC8SLjZFPnhnwp4cp` |
|
||
| NPM widget | it5870@yandex.ru / 1qaz!QAZ (как NPM) |
|
||
| authentik (отложен) | proxy provider pk 3 `dash-forward`, app slug `dash`, embedded outpost. См. [[../../decisions/2026-06-27-homepage-dashboard-lxc145]] |
|
||
|
||
## SSH-ключи и доступы
|
||
|
||
| Хост | Порт | Метод |
|
||
|------|------|-------|
|
||
| 10.0.0.250 (Proxmox) | 22 | root / `1qaz!QAZ` |
|
||
| VPS swtest.ru (`89.111.140.86` / `100.70.93.36`) | 22 | root / ключ `~/.ssh/vps_znam_key` (RSA). Алиас SSH: `ssh vps-znam` (через Netbird) или `ssh vps-znam-public`. Ключ развёрнут на Mac и openclaw LXC 137. Подробности: [vps-swtest.md](vps-swtest.md) |
|
||
|
||
## Apple ID (США)
|
||
|
||
| Параметр | Значение |
|
||
|----------|----------|
|
||
| Apple ID | `hbuggle819@icloud.com` |
|
||
| Пароль | `App5870w` |
|
||
| Регион | United States |
|
||
| 2FA trusted phone | номер Олега, заканчивается на `...70` (при входе выбирать его, код приходит к Олегу по SMS) |
|
||
| Назначение | скачивание приложений из US App Store (AmneziaVPN, Happ, Instagram и т.п.) для себя и клиентов |
|
||
| Инструкция для клиента | [snippets/apple-id-us-on-russia.md](../../snippets/apple-id-us-on-russia.md) |
|
||
|
||
⚠️ Входить **только в App Store → Медиа и покупки**, НЕ в iCloud (иначе риск смешения данных).
|
||
|
||
## Telegra.ph (для инструкций клиентам)
|
||
|
||
| Параметр | Значение |
|
||
|----------|----------|
|
||
| Account short_name | `dttb` |
|
||
| Author | `Oleg Batlaev` |
|
||
| Access token | `c38dcadb86e6edd7efc76496d9171d38beef6dc0f6a7ef2cd79bbae70e46` |
|
||
| Auth URL (вход в редактор) | https://edit.telegra.ph/auth/f1tfgzYpPpGlAr7cYHRzSeH59fYuNVB2V3fbCdypDc |
|
||
|
||
Назначение: публиковать подробные инструкции (VPN, онбординг) как Telegra.ph-страницы — Telegram рендерит их через Instant View, markdown не ломается. Создание страницы: `POST https://api.telegra.ph/createPage` с этим access_token. Редактирование: `POST https://api.telegra.ph/editPage` или через Auth URL в браузере.
|
||
|
||
**Скрипты в vault:**
|
||
- [snippets/telegraph-publish-client-instruction.py](../../snippets/telegraph-publish-client-instruction.py) — создаёт новую страницу из Python-кода (содержимое прописано в самом скрипте)
|
||
- [snippets/telegraph-md-to-page.py](../../snippets/telegraph-md-to-page.py) — **конвертер markdown → Telegraph Node**, редактирует `Nastrojka-VPN-04-24-2`. Поддерживает вложенные списки, inline code/links/bold/italic, защищает code-spans от italic-парсинга. Чтобы опубликовать новый md: поменять PATH/TITLE/источник файла в `main()`.
|
||
|
||
**Созданные страницы:**
|
||
- https://telegra.ph/Nastrojka-VPN-04-24-2 — VPN + US Apple ID для Ярослава (без ключа — ключ отдаётся отдельным сообщением)
|
||
|
||
## Netbird (netbird.io cloud)
|
||
|
||
| Параметр | Значение |
|
||
|----------|----------|
|
||
| API Token | `nbp_YTEmAVpS0hLhnTeJ09q3wYaC0AAXjN21NPvM` |
|
||
| API URL | `https://api.netbird.io` |
|
||
| SSO | `batlaew@yandex.ru` |
|
||
|
||
### Setup keys
|
||
|
||
| Назначение | Ключ | Группа | Истекает | Тип |
|
||
|------------|------|--------|----------|-----|
|
||
| **Claude-Diag** (временные подключения Claude для диагностики) — скрипт: [snippets/netbird-claude-install.ps1](../../snippets/netbird-claude-install.ps1) | `83301E74-6F86-4CBD-AF77-0C65730103CA` | Claude-Diag (`d7jra32fadhs73dmqv5g`) | 2026-05-21 | reusable, unlimited |
|
||
| Glavtorg | `5D1E3507-6F1C-41FC-B86F-05C60364A146` | Glavtorg | — | — |
|
||
| **SwarmClaw** (LXC 135, доступ агентов к 100.70.x) | `1558712D-03E8-41DF-B48F-C44DFD3BE31F` (reusable, полный — для переподключения/новых хостов в эту группу) | Claude-Diag (`d7jra32fadhs73dmqv5g`) | 2027-06-09 | reusable, unlimited | created 2026-06-09 via API. LXC 135 уже подключён (IP `100.70.95.183`, `swarmclaw.netbird.cloud`). |
|
||
| **German** (LXC 141, ассистент — доступ к 100.70.x) | `64DF527E-31F0-46E5-8E31-311325F9AEC5` | Claude-Diag (`d7jra32fadhs73dmqv5g`) | 2027-06-18 | reusable, unlimited | created 2026-06-18 via API (id `d8q4maqfadhs73aakqrg`). LXC 141 подключён: IP `100.70.99.82`, `german.netbird.cloud`. ⚠️ ставить через **apt-репозиторий** `pkgs.netbird.io` (`install.sh` редиректит на GitHub releases → таймаут из RU). Enroll с `--disable-dns` (свой resolv.conf 1.1.1.1). |
|
||
|
||
**Продление Claude-Diag ключа** (через API при истечении):
|
||
```bash
|
||
curl -s -X POST -H "Authorization: Token nbp_YTEmAVpS0hLhnTeJ09q3wYaC0AAXjN21NPvM" \
|
||
-H "Content-Type: application/json" \
|
||
-d '{"name":"Claude Diagnostic","type":"reusable","expires_in":2592000,"auto_groups":["d7jra32fadhs73dmqv5g"],"usage_limit":0,"ephemeral":false}' \
|
||
https://api.netbird.io/api/setup-keys
|
||
```
|
||
|
||
---
|
||
|
||
## Заметки
|
||
|
||
- Пароль `1qaz!QAZ` используется на Proxmox, NPM, Nextcloud
|
||
- Пароль `OL260380eg` используется на MikroTik и Gitea
|
||
- LXC 129 (Clawdbot) удалён ~апрель 2026. LXC 139 (yaroslav-assistant, тестовый openclaw для Ярослава, не использовался) удалён 2026-04-29 — backup md-конфигов в `projects/dttb/archive/lxc-139-yaroslav-assistant/`. Актуальные LXC по `pct list` на Proxmox: 132 code-server, 136 gitea, 137 openclaw, 138 vpn-proxy, 103 NPM, 113 VaultWarden, 114 LinkWarden, 115 watchyourlan, 116 rustdeskserver, 134 ZnamSecurityBot
|