Some checks failed
Build and Deploy Docs / build-and-deploy (push) Has been cancelled
- Created logs/ structure (sessions, operations, incidents) - Added session-start/log/end scripts - Installed Git hooks for auto-logging commits/pushes - Added shell integration for zsh - Created CHANGELOG.md - Documented today's session (2026-01-10)
232 lines
7.5 KiB
Markdown
232 lines
7.5 KiB
Markdown
# 🔐 SECRETS ROTATION CHECKLIST — NODE1 Compromise
|
||
|
||
**Дата:** 2026-01-10
|
||
**Причина:** NODE1 (144.76.224.179) скомпрометований (Incidents #1-4)
|
||
**Статус:** ⏳ ПОТРЕБУЄ ВИКОНАННЯ
|
||
|
||
---
|
||
|
||
## ⚠️ ВАЖЛИВО
|
||
|
||
Всі секрети, які NODE1 коли-небудь бачив, **ВВАЖАТИ СКОМПРОМЕТОВАНИМИ**.
|
||
|
||
Навіть якщо malware зараз не активний — він міг exfiltrate дані раніше.
|
||
|
||
---
|
||
|
||
## 📋 TELEGRAM BOT TOKENS (9 ботів)
|
||
|
||
**Як ротувати:** Telegram → @BotFather → `/revoke` → `/token`
|
||
|
||
| # | Бот | Поточний токен | Статус |
|
||
|---|-----|----------------|--------|
|
||
| 1 | **DAARWIZZ** (@DAARWIZZBot) | `8323412397:AAFxaru-hHRl08A3T6TC02uHLvO5wAB0m3M` | ⬜ Ротувати |
|
||
| 2 | **Helion** (@HelionEnergyBot) | `8112062582:AAGI7tPFo4gvZ6bfbkFu9miq5GdAH2_LvcM` | ⬜ Ротувати |
|
||
| 3 | **GREENFOOD** | `7495165343:AAHpxY8w3iXevaQT2rfj97OHLauu9Iq8vYM` | ⬜ Ротувати |
|
||
| 4 | **CLAN** | `8516872152:AAGbjL6zCMOCqHgu9rcuagdhm0LEwYJFpKw` | ⬜ Ротувати |
|
||
| 5 | **DRUID** | `8145618489:AAGgR5KmPr9P1_ppSrFa_Gpq5yqf3vNJ5AQ` | ⬜ Ротувати |
|
||
| 6 | **EONARCH** | `7962391584:AAFYkelLRG3VR_Lxuu6pEGG76t4vZdANtz4` | ⬜ Ротувати |
|
||
| 7 | **SOUL** | `8041596416:AAGyHEjalPEH2TC0AOxfIQ2aZvFTFRanO0g` | ⬜ Ротувати |
|
||
| 8 | **YAROMIR** | `8128180674:AAGNZdG3LwECI4z_803smsuRHsK3nPdjMLY` | ⬜ Ротувати |
|
||
| 9 | **NUTRA** | `8517315428:AAEFSGG_XEIR0N6svGKSf0cf09_A9jV26zA` | ⬜ Ротувати |
|
||
|
||
**Процедура:**
|
||
```bash
|
||
# 1. Відкрити @BotFather в Telegram
|
||
# 2. /mybots → вибрати бота → API Token → Revoke current token
|
||
# 3. Скопіювати новий токен
|
||
# 4. Оновити в .env на НОВОМУ сервері
|
||
```
|
||
|
||
---
|
||
|
||
## 🔑 API KEYS
|
||
|
||
| Сервіс | Ключ | Дія |
|
||
|--------|------|-----|
|
||
| **DeepSeek** | `sk-5adf7a2b421349de90468517b41c4448` | ⬜ Ротувати в dashboard |
|
||
| **xAI/Grok** | (якщо є) | ⬜ Перевірити та ротувати |
|
||
| **OpenAI** | (якщо є) | ⬜ Перевірити та ротувати |
|
||
| **Anthropic** | (якщо є) | ⬜ Перевірити та ротувати |
|
||
|
||
**DeepSeek ротація:**
|
||
1. Зайти на https://platform.deepseek.com/
|
||
2. API Keys → Delete old → Create new
|
||
3. Оновити `DEEPSEEK_API_KEY` в .env
|
||
|
||
---
|
||
|
||
## 🗄️ DATABASE PASSWORDS
|
||
|
||
| База | Поточний пароль | Дія |
|
||
|------|-----------------|-----|
|
||
| **PostgreSQL** | `postgres` | ⬜ Змінити на складний |
|
||
| **Neo4j** | (перевірити .env) | ⬜ Змінити |
|
||
| **Redis** | (без паролю?) | ⬜ Додати пароль |
|
||
| **MinIO** | `WpyOnsTKHWzuq5CRKjslZ45kMilT0Gez` | ⬜ Ротувати |
|
||
|
||
**Генерація нового паролю:**
|
||
```bash
|
||
# Згенерувати безпечний пароль
|
||
openssl rand -base64 32
|
||
```
|
||
|
||
---
|
||
|
||
## 🔐 SSH KEYS
|
||
|
||
| Ключ | Розташування | Дія |
|
||
|------|--------------|-----|
|
||
| **NODE1 root key** | `/root/.ssh/` на NODE1 | ⬜ Видалити при rebuild |
|
||
| **Ваш SSH ключ** | `~/.ssh/id_ed25519` або `id_rsa` | ⬜ Перегенерувати |
|
||
| **GitHub deploy key** | GitHub repo settings | ⬜ Ротувати |
|
||
|
||
**Генерація нового SSH ключа (на MacBook):**
|
||
```bash
|
||
# Backup старого
|
||
mv ~/.ssh/id_ed25519 ~/.ssh/id_ed25519.compromised.backup
|
||
|
||
# Генерація нового
|
||
ssh-keygen -t ed25519 -C "admin@daarion.city" -f ~/.ssh/id_ed25519
|
||
|
||
# Додати в ssh-agent
|
||
ssh-add ~/.ssh/id_ed25519
|
||
|
||
# Скопіювати публічний ключ
|
||
cat ~/.ssh/id_ed25519.pub
|
||
# Додати в GitHub → Settings → SSH Keys
|
||
# Додати на новий NODE1 після rebuild
|
||
```
|
||
|
||
---
|
||
|
||
## 🌐 SSL/TLS CERTIFICATES
|
||
|
||
| Домен | Дія |
|
||
|-------|-----|
|
||
| `gateway.daarion.city` | ⬜ Перевипустити через certbot |
|
||
| `daarion.city` | ⬜ Перевірити |
|
||
|
||
**Certbot на новому сервері:**
|
||
```bash
|
||
certbot certonly --nginx -d gateway.daarion.city
|
||
```
|
||
|
||
---
|
||
|
||
## 🔧 JWT / SESSION SECRETS
|
||
|
||
| Секрет | Дія |
|
||
|--------|-----|
|
||
| JWT_SECRET | ⬜ Згенерувати новий |
|
||
| SESSION_SECRET | ⬜ Згенерувати новий |
|
||
| COOKIE_SECRET | ⬜ Згенерувати новий |
|
||
|
||
**Генерація:**
|
||
```bash
|
||
# JWT secret (256 bit)
|
||
openssl rand -hex 32
|
||
|
||
# Або base64
|
||
openssl rand -base64 32
|
||
```
|
||
|
||
---
|
||
|
||
## 📦 DOCKER / REGISTRY
|
||
|
||
| Елемент | Дія |
|
||
|---------|-----|
|
||
| Docker Hub credentials | ⬜ Перевірити чи використовувались |
|
||
| GHCR token | ⬜ Ротувати якщо є |
|
||
|
||
---
|
||
|
||
## ☁️ CLOUD CREDENTIALS
|
||
|
||
| Сервіс | Дія |
|
||
|--------|-----|
|
||
| Hetzner API token | ⬜ Ротувати в Robot |
|
||
| Cloudflare API key | ⬜ Ротувати якщо використовувався |
|
||
|
||
---
|
||
|
||
## ✅ CHECKLIST ПІСЛЯ REBUILD NODE1
|
||
|
||
```
|
||
[ ] 1. Rebuild NODE1 (fresh Ubuntu install)
|
||
[ ] 2. Новий SSH ключ додано на NODE1
|
||
[ ] 3. Всі Telegram токени ротовані
|
||
[ ] 4. DeepSeek API key ротований
|
||
[ ] 5. PostgreSQL пароль змінено
|
||
[ ] 6. MinIO пароль змінено
|
||
[ ] 7. JWT/Session secrets згенеровані
|
||
[ ] 8. SSL сертифікати перевипущені
|
||
[ ] 9. .env оновлено з новими секретами
|
||
[ ] 10. Webhooks перереєстровані
|
||
[ ] 11. Тести пройдені
|
||
[ ] 12. Моніторинг налаштований
|
||
```
|
||
|
||
---
|
||
|
||
## 🚀 ПОРЯДОК ДІЙ
|
||
|
||
### Фаза 1: Підготовка (до rebuild)
|
||
1. ⬜ Зберегти цей документ
|
||
2. ⬜ Зробити backup даних з NODE1 (PostgreSQL dump, etc.)
|
||
3. ⬜ Підготувати нові секрети заздалегідь
|
||
|
||
### Фаза 2: Rebuild NODE1
|
||
1. ⬜ Hetzner Robot → Rescue → Reinstall Ubuntu 24.04
|
||
2. ⬜ Базове налаштування (firewall, fail2ban, etc.)
|
||
3. ⬜ Встановити Docker, k3s
|
||
|
||
### Фаза 3: Ротація секретів
|
||
1. ⬜ Ротувати Telegram токени через @BotFather
|
||
2. ⬜ Ротувати API keys
|
||
3. ⬜ Створити новий .env з новими секретами
|
||
4. ⬜ Deploy на новий NODE1
|
||
|
||
### Фаза 4: Верифікація
|
||
1. ⬜ Перевірити всі боти працюють
|
||
2. ⬜ Перевірити API endpoints
|
||
3. ⬜ Запустити smoke tests
|
||
4. ⬜ Моніторинг CPU/мережі 24 години
|
||
|
||
---
|
||
|
||
## 📝 НОВІ СЕКРЕТИ (заповнити після ротації)
|
||
|
||
```bash
|
||
# Telegram Bots (НОВІ токени)
|
||
DAARWIZZ_TELEGRAM_BOT_TOKEN=<NEW_TOKEN>
|
||
HELION_TELEGRAM_BOT_TOKEN=<NEW_TOKEN>
|
||
GREENFOOD_TELEGRAM_BOT_TOKEN=<NEW_TOKEN>
|
||
CLAN_TELEGRAM_BOT_TOKEN=<NEW_TOKEN>
|
||
DRUID_TELEGRAM_BOT_TOKEN=<NEW_TOKEN>
|
||
EONARCH_TELEGRAM_BOT_TOKEN=<NEW_TOKEN>
|
||
SOUL_TELEGRAM_BOT_TOKEN=<NEW_TOKEN>
|
||
YAROMIR_TELEGRAM_BOT_TOKEN=<NEW_TOKEN>
|
||
NUTRA_TELEGRAM_BOT_TOKEN=<NEW_TOKEN>
|
||
|
||
# API Keys (НОВІ)
|
||
DEEPSEEK_API_KEY=<NEW_KEY>
|
||
|
||
# Database (НОВІ паролі)
|
||
POSTGRES_PASSWORD=<NEW_STRONG_PASSWORD>
|
||
MINIO_ROOT_PASSWORD=<NEW_STRONG_PASSWORD>
|
||
NEO4J_AUTH=neo4j/<NEW_STRONG_PASSWORD>
|
||
REDIS_PASSWORD=<NEW_STRONG_PASSWORD>
|
||
|
||
# JWT/Sessions (НОВІ)
|
||
JWT_SECRET=<GENERATED_SECRET>
|
||
SESSION_SECRET=<GENERATED_SECRET>
|
||
```
|
||
|
||
---
|
||
|
||
**Створено:** 2026-01-10
|
||
**Автор:** Security Triage Script
|
||
**Статус:** Очікує виконання після NODE1 rebuild
|