Безопасность
В панели управления: System › Admin › Console security (
/account), Admin users (/users); System › Settings › Customer logins (/settings/login).
Панель администратора
Двухфакторная аутентификация (TOTP)
Консоль доступна из Интернета, поэтому включите TOTP.
- Перейдите в System › Admin › Console security.
- В блоке Two-factor authentication (TOTP) нажмите Start setup.
- Отсканируйте QR-код в Google Authenticator, Authy, 1Password или Bitwarden и введите 6-значный код.
Разрешенные диапазоны IP для консоли
В блоке Allowed console IP ranges укажите по одному IP или CIDR (IPv4 или IPv6) на строку. Пустое значение разрешает доступ отовсюду. Вне этого диапазона блокируются и вход, и admin API.
Не заблокируйте собственный доступ
На странице показан ваш текущий IP-адрес: он обязательно должен входить в новый список. Используйте + Add my IP. Если доступ все же потерян, воспользуйтесь экстренным доступом с сервера.
Смена пароля
Заполните поля Current password, New password и Confirm new password. Используйте длинный уникальный пароль (от 12 символов; мастер установки требует не менее 12 символов для первого администратора).
Учетные записи и роли администраторов
Перейдите в System › Admin › Admin users и нажмите + Create account.
| Роль | Доступ |
|---|---|
admin | Полный доступ к admin API |
staff | Только чтение во всей системе |
user | Просмотр ресурсов одного клиента только для чтения |
Учетная запись root создается в мастере первоначальной настройки. Действия со строкой: Edit, Reset PW, Key, Delete. Пароли хранятся в виде хешей с солью; изменение или блокировка аккаунта сразу завершает его сессии.
Вход для клиентов
Перейдите в System › Settings › Customer logins.
| Настройка | Назначение |
|---|---|
| Google sign-in | Включите, затем укажите OAuth client ID и secret. Скопируйте Callback URL, показанный на странице, в раздел Google Cloud Console › APIs & Services › Credentials › OAuth client ID › Authorized redirect URIs. Нажмите Test configuration. |
| Вход через GitHub | Аналогично, в разделе GitHub › Settings › Developer settings › OAuth Apps › Authorization callback URL |
| Passkey | Вход по отпечатку пальца, PIN-коду или аппаратному ключу; включен по умолчанию. Passkey привязаны к домену; каждый домен реселлера работает независимо. Укажите старый домен в Legacy passkey Domain после ребрендинга, чтобы клиенты получили подсказку |
| Повторная аутентификация при добавлении способов входа | Запрашивать пароль повторно перед добавлением passkey или привязкой Google/GitHub (по умолчанию выключено) |
| Captcha | Cloudflare Turnstile или Google reCAPTCHA при регистрации: включите, выберите провайдера, укажите site key и secret key |
| Блокировка почтовых доменов | Один домен на строку (не более 2000). Совпадающие адреса отклоняются при регистрации с ошибкой email_domain_blocked |

Встроенные политики
| Политика | Значение |
|---|---|
| Пароль клиента | Не менее 10 символов, буквы и цифры |
| Сессия клиента | 30 дней; сессии «войти как клиент» длятся 1 час |
| Подтверждение e-mail | Обязательно перед созданием VM, если в настройках продаж включен параметр require e-mail verified |
| Защита от кардинга | Аккаунты с пополнением меньше минимального могут создавать лишь ограниченное число VM |
Усиление безопасности сервера
- Порт 3000 закрывается после первоначальной настройки и TLS; см. Установка.
- Служба работает от имени непривилегированного пользователя
nexcmpв изолированном окружении systemd. - Ключи API, платежные реквизиты и пароли SMTP хранятся в зашифрованном виде; мастер-ключ находится в
/var/lib/nexcmp/secrets— защищайте резервные копии. - Перед установкой релизы проверяются с помощью SHA-256 и подписи Ed25519.