Безопасность панели
Что уже сделано
| Механизм | Детали |
|---|---|
| Защита входа от перебора | 5 попыток на пару «логин + IP», 20 с одного IP, 50 по логину, с эскалацией блокировки |
| Пароли | хешируются; пароль никогда не попадает в уведомления о неудачном входе |
| Журнал действий администратора | таблица admin_audit_log: кто, что, когда, IP, результат |
| Секреты в покое | секрет TOTP хранится зашифрованным (AES-256-GCM) |
| Нет внешних запросов | в собранном бандле нет обращений к сторонним сервисам: иконки, проверки версий и телеметрия убраны |
| Тела запросов не логируются | иначе в журнал попадали бы пароли, токены и секреты OAuth2 — фиксируются только метод, путь, результат, IP и время |
| Retention | автоматическая очистка персональных данных по срокам (см. Переменные окружения) |
Что логируется и что с этим происходит
| Что | Где | Срок по умолчанию | Содержит |
|---|---|---|---|
| Журнал действий админов | admin_audit_log | 30 дней | кто, что, когда, IP |
| Устройства пользователей | hwid_user_devices | 90 дней | HWID, ОС, user-agent, IP |
| Запросы подписки | user_subscription_request_history | 30 дней | IP, user-agent |
| История трафика | nodes_user_usage_history | 14 дней | без IP |
| Статистика нод | nodes_usage_history | 90 дней | без IP |
Автоочистка выключена по умолчанию: включите SERVICE_CLEAN_USAGE_HISTORY и
SERVICE_CLEAN_OLD_LOGS, если хотите, чтобы сроки соблюдались автоматически.
Ручная очистка
На странице Logs выберите источники и нажмите «Delete selected». Сервер
дополнительно требует явного подтверждения (confirm: true), поэтому вызвать
очистку в обход интерфейса нельзя.
Журнал действий администраторов доступен на странице Audit Log: фильтры по администратору и результату, пагинация.
Чек-лист администратора
-
APP_SECRETсохранён в надёжном месте (менеджер секретов, не в чате). - Файл
.envимеет права600и не попадает в бэкапы, доступные третьим лицам. - Панель доступна только по HTTPS, HTTP редиректит.
-
METRICS_PORTзакрыт наружу: метрики отдаются только на127.0.0.1. - Порт ноды
2222доступен только с IP панели. - Включён 2FA (TOTP) для администраторов.
- Ссылка на исходный код доступна пользователям (§13 AGPL).
- Пароль администратора хранится в менеджере паролей: требования жёсткие, но именно они защищают единственную точку входа.
SSH-терминал к нодам
Функция (Settings → Experimental) даёт командную строку на серверах нод. Приватный ключ хранится зашифрованным в браузере и на сервер не передаётся, но сам доступ очень широкий. Включайте, только если понимаете последствия, и выдавайте его минимальному числу администраторов.
Сообщить об уязвимости
Не открывайте публичный issue. Опишите проблему приватно через Security Advisories в репозитории.