# Настройки

> Системные настройки SecureBaseline Cloud - конфигурация политик хранения данных, параметров производительности, уровней логирования и уведомлений

Source: https://opennix.org/docs/haas/settings/


## Обзор

Страница Настройки позволяет администраторам настраивать общесистемные параметры, включая хранение данных, производительность и уровни логирования.

## Навигация

**Меню**: Система > Настройки

## Макет страницы

Одна карточка с центрированным содержимым (макс. ширина 800px), содержащая:

| Элемент управления | Расположение | Описание |
|--------------------|--------------|----------|
| Перезагрузить | Заголовок карточки | Перезагрузить настройки с сервера |
| Сохранить все | Заголовок карточки | Сохранить все измененные настройки |
| Форма | Тело карточки | Форма настроек с секциями |

Кнопка **Сохранить все** отключена до внесения изменений.

## Секции конфигурации

### Хранение данных

Управляет длительностью хранения данных в системе.

| Настройка | Поле | Диапазон | Описание |
|-----------|------|----------|----------|
| Дни хранения | retention_days | 7-365 | Дни хранения мягко удаленных записей |
| Дни хранения аудита | audit_retention_days | 7-365 | Дни хранения журналов аудита |

**Дни хранения**: При удалении записей они сначала мягко удаляются. После указанного количества дней они окончательно очищаются из базы данных.

**Дни хранения аудита**: Записи журнала аудита старше этого периода можно очистить с помощью кнопки Очистка на странице Журнал аудита.

### Производительность

Управляет производительностью системы и использованием ресурсов.

| Настройка | Поле | Диапазон | Описание |
|-----------|------|----------|----------|
| Лимит запросов (req/sec) | rate_limit_per_second | 10-1000 | Максимум API-запросов в секунду на клиента |
| Параллельность воркера | worker_concurrency | 1-50 | Количество параллельных заданий worker |
| Интервал автообновления | auto_refresh_interval | 5-60 | Секунды между автообновлениями UI |

**Лимит запросов**: Защищает API от перегрузки. Клиенты, превышающие этот лимит, получают ошибки HTTP 429 (Too Many Requests). Более высокие значения позволяют большую пропускную способность, но могут нагружать ресурсы сервера.

**Параллельность воркера**: Более высокие значения обрабатывают больше заданий одновременно, но используют больше CPU и памяти. Устанавливайте на основе мощности сервера и типичной нагрузки.

**Интервал автообновления**: Как часто UI автоматически обновляется при просмотре активных сканирований или заданий. Меньшие значения обеспечивают более реалтаймовые обновления, но увеличивают нагрузку на API.

### Логирование

Управляет поведением логирования приложения.

| Настройка | Поле | Диапазон | Описание |
|-----------|------|----------|----------|
| Уровень логирования | log_level | Выбор | Детализация логирования приложения |
| Макс. размер загрузки (MB) | max_upload_size_mb | 1-100 | Максимальный размер файлов для загрузки |

**Варианты уровня логирования**:

| Уровень | Описание | Применение |
|---------|----------|------------|
| debug | Подробный вывод включая детальную диагностику | Устранение неполадок |
| info | Обычные операционные сообщения | Продакшен |
| warn | Предупреждения, требующие внимания | Уменьшение шума |
| error | Только ошибки | Минимальное логирование |

**Макс. размер загрузки**: Ограничивает размер загружаемых файлов, таких как SSH-приватные ключи.

## Известные проблемы (Known Issues)

Раздел **Известные проблемы** позволяет исключать определенные правила CIS из расчета оценки соответствия и из скриптов исправления.

### Зачем нужны известные проблемы

- **False positives**: Правила, которые всегда показывают fail из-за особенностей среды
- **Неприменимые правила**: Правила, которые не актуальны для вашей инфраструктуры
- **Принятые риски**: Правила, которые намеренно не выполняются по бизнес-причинам
- **Временные исключения**: Правила, требующие исправления позже

### Таблица известных проблем

| Колонка | Описание |
|---------|----------|
| ID правила | Паттерн идентификатора правила CIS (поддерживает * для wildcard) |
| Описание | Причина добавления в список |
| Включено | Переключатель активации/деактивации |
| Действия | Кнопка удаления |

### Добавление известной проблемы

1. Нажмите **Добавить известную проблему**
2. Заполните поля:
   - **ID правила**: Точный ID или паттерн с wildcard (например, `xccdf_org.ssgproject.*audit*`)
   - **Описание**: Объяснение почему правило исключается
3. Нажмите **Добавить**

### Паттерны с wildcard

Поддерживается символ `*` для совпадения с частью ID:

| Паттерн | Совпадает с |
|---------|-------------|
| `xccdf_org.ssgproject.content_rule_audit_*` | Все правила аудита |
| `*_partition_*` | Все правила разделов |
| `xccdf_org.ssgproject.content_rule_file_*` | Все правила файлов |

### Влияние на систему

Когда правило в списке известных проблем:

1. **Скорректированная оценка**: Оценка соответствия пересчитывается без учета исключенных правил
2. **Скрипты исправления**: Исключенные правила не включаются в генерируемые Ansible playbook
3. **Отображение**: В таблице заданий исправления показывается:
   - Правил к исправлению: X (фактическое количество)
   - Исключено (Known Issues): Y

### Пример использования

Если правила аудита систематически fail из-за специфики вашей среды:

1. Добавьте паттерн `*audit*` с описанием "Audit rules not applicable in containerized environment"
2. Включите переключатель
3. Оценка соответствия будет скорректирована
4. Скрипты исправления не будут включать правила аудита

## Сохранение настроек

Настройки изменяются локально до явного сохранения:

1. Измените нужные настройки с помощью элементов управления формы
2. Кнопка **Сохранить все** становится активной
3. Нажмите кнопку **Сохранить все**
4. Каждая настройка сохраняется на сервер
5. Сообщение об успехе показывает количество сохраненных настроек
6. Настройки вступают в силу немедленно (некоторые могут требовать перезапуска сервиса)

## Перезагрузка настроек

Нажмите кнопку **Перезагрузить** для:
- Отмены несохраненных изменений
- Получения текущих значений с сервера
- Сброса формы к состоянию сервера

## Тема и язык

### Переключение темы

Переключатель темы доступен в основной навигации:

1. Нажмите иконку темы в панели навигации
2. Переключение между светлым и темным режимами
3. Предпочтение сохраняется в локальном хранилище браузера
4. Сохраняется между сессиями

### Выбор языка

1. Нажмите выпадающий список языка (EN/RU) в панели навигации
2. Выберите предпочтительный язык
3. Интерфейс обновляется немедленно
4. Предпочтение сохраняется в локальном хранилище

## Лучшие практики

### Хранение данных

- Устанавливайте хранение на основе требований комплаенса (PCI-DSS, HIPAA, GDPR)
- Более длительное хранение использует больше хранилища базы данных
- Учитывайте юридические/нормативные требования для вашей отрасли
- Хранение аудита обычно должно быть дольше (90+ дней)

### Настройка производительности

| Нагрузка | Лимит запросов | Параллельность воркера |
|----------|----------------|------------------------|
| Легкая (<100 хостов) | 100 | 3-5 |
| Средняя (100-500 хостов) | 200 | 5-10 |
| Тяжелая (>500 хостов) | 500+ | 10-20 |

Рекомендации:
- Увеличьте параллельность воркера для более быстрой обработки заданий
- Уменьшите если система показывает высокое использование CPU/памяти
- Мониторьте глубину очереди на странице Задания
- Балансируйте пропускную способность vs использование ресурсов

### Логирование

- Используйте **debug** только для устранения конкретных проблем
- Используйте **info** для нормальной работы в продакшене
- Используйте **warn** или **error** для уменьшения объема логов
- Убедитесь, что настроена ротация логов на уровне ОС

### Регулярный пересмотр

- Пересматривайте настройки ежеквартально или после изменений инфраструктуры
- Корректируйте на основе наблюдаемых паттернов использования
- Мониторьте метрики производительности системы
- Обновляйте хранение перед аудитами комплаенса

## Устранение неполадок

### Настройки не сохраняются

1. Проверьте сетевое подключение (инструменты разработчика браузера)
2. Убедитесь, что у пользователя есть права администратора
3. Проверьте консоль браузера на ошибки JavaScript
4. Попробуйте обновить страницу
5. Проверьте доступность API-сервера

### Проблемы с лимитом запросов

Если пользователи попадают под лимит (ошибки HTTP 429):
1. Проверьте текущую настройку лимита запросов
2. Временно увеличьте лимит запросов
3. Проверьте поведение клиента на избыточные запросы
4. Проверьте на автоматизированные скрипты или неправильно настроенные инструменты
5. Рассмотрите реализацию троттлинга на стороне клиента

### Производительность воркера

Если задания медленные или накапливаются:
1. Проверьте текущую настройку параллельности воркера
2. Увеличьте параллельность если сервер имеет мощность
3. Проверьте ресурсы сервера (CPU, RAM) на узкие места
4. Просмотрите глубину очереди заданий на странице Задания
5. Проверьте неудачные задания, которые могут требовать расследования
6. Проверьте сетевое подключение к управляемым хостам

### Проблемы логирования

Если логи слишком подробные или потребляют дисковое пространство:
1. Установите уровень логирования на **warn** или **error**
2. Проверьте настроенность ротации логов (logrotate)
3. Мониторьте дисковое пространство
4. Рассмотрите централизованное логирование (syslog, Loki)
5. Архивируйте старые логи перед удалением

## Справочник API

Настройками также можно управлять через API:

Получить все настройки:
```
GET /api/v1/settings
```

Обновить настройку:
```
PUT /api/v1/settings/{key}
Content-Type: application/json
{"value": "new_value"}
```

Известные проблемы:
```
GET /api/v1/known-issues
POST /api/v1/known-issues
DELETE /api/v1/known-issues/{id}
POST /api/v1/known-issues/{id}/toggle
```

## Связанные страницы

- [Журнал аудита](/docs/haas/audit-logs/) - Использует настройку audit_retention_days
- [Задания](/docs/haas/jobs/) - Использует настройку worker_concurrency
- [Сканирование соответствия](/docs/haas/compliance-scanning/) - Использует настройку auto_refresh_interval

## Функции безопасности

### Шифрование учетных данных

Все SSH-ключи и пароли в базе данных зашифрованы алгоритмом AES-256-GCM с использованием переменной окружения `ENCRYPTION_KEY`. Ключ генерируется автоматически при первом запуске.

- Шифрование прозрачное - данные шифруются при сохранении и расшифровываются при использовании
- Существующие данные в формате base64 автоматически мигрируются при запуске API
- Ключ шифрования - 64-символьная hex-строка (32 байта)

### Синхронизация ФСТЭК БДУ

Банк данных угроз ФСТЭК синхронизируется автоматически:

- **При запуске API** - начальная синхронизация
- **Каждые 24 часа** - периодическая фоновая синхронизация
- **Ручной запуск** - через API администратора: `POST /api/v1/admin/fstec-sync`
- **Проверка статуса** - `GET /api/v1/admin/fstec-sync/status`

### Синхронизация баз CVE

Базы CVE предзагружены в образ ВМ. Движок сканирования уязвимостей проверяет все 8 баз при запуске и синхронизирует отсутствующие автоматически.

Ручная синхронизация доступна через API: `POST /api/v1/admin/cve-sync`

