Хардинг финского VPS: SSH key-only (awg-fi), ufw 22+41624, fail2ban; панель переведена на ключ

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
dttb
2026-06-23 13:56:50 +03:00
parent 984ae0b008
commit b8bef27825
2 changed files with 14 additions and 6 deletions

View File

@@ -38,8 +38,15 @@ tags: [dttb, vpn, amnezia, awg, netbird, control-plane]
- **Вывод подтверждён в коде + вживую:** `get_clients()` читает `clientsTable` с сервера и доп. парсит `[Peer]` («pick up peers created via native Amnezia app»). Панель = центральное управление поверх app-установки, не конфликтует.
- ⚠️ root-пароль VPS хранится в `data.json` панели в открытом виде (так устроен SSH-доступ панели). При смене пароля VPS — обновить в карточке сервера (Servers → edit).
## Хардинг VPS сделан (2026-06-23)
- **SSH key-only:** ed25519 `~/.ssh/awg_fi_key` (Mac, алиас `ssh awg-fi`), pubkey в `/root/.ssh/authorized_keys`. Пароль по SSH отключён (`PasswordAuthentication no` в `00-hardening.conf` — перебивает cloud-init `50-cloud-init.conf`, читается первым). `PermitRootLogin prohibit-password`. Бэкап `/root/sshd_config.bak.*`.
- **Панель переведена на тот же ключ** (`/api/servers/0/edit` с `private_key`, пароль очищен; edit проверяет SSH до сохранения — не залочит). Проверено: `check 200` по ключу.
- **ufw:** наружу только `22/tcp` + `41624/udp`. (Docker публикует 41624 в обход ufw — это ок, порт нужен открытым; ufw защищает хостовые службы.)
- **fail2ban:** jail `sshd`, `backend=systemd` (на минимальной Ubuntu нет `/var/log/auth.log` → дефолтный backend падал).
- Грабля cloud-init: `/etc/ssh/sshd_config.d/50-cloud-init.conf` держал `PasswordAuthentication yes` — перебито `00-hardening.conf` + закомментировано sed'ом.
- Пароль `v_6hH9JuH_` остаётся валиден только для **веб-консоли HOSTKEY** (recovery).
## Дальше (TODO)
- [ ] VPS: SSH key-only, fw только VPN-порты, fail2ban (не повторить 2026-04-24).
- [ ] Резервный финский VPS: **переустановить ОС начисто** перед использованием, подцепить к панели.
- [ ] Решить failover (AWG сам не переключается): второй endpoint в конфигах клиентов либо переключение через панель/DNS.
- [ ] Проверить лимит трафика HOSTKEY (3 TB/мес) — под «все проекты» может быть тесно.