Подробный гайд: Архитектура и размещение БД PostgreSQL в Secret Net Studio
Подготовка архитектуры и правильное расположение базы данных (БД) — один из самых критичных этапов внедрения Secret Net Studio (SNS). От этого зависит быстродействие системы, возможность масштабирования и стабильность работы.
В Secret Net Studio в качестве основной СУБД используется PostgreSQL. Она хранит конфигурацию, политики, метаданные инцидентов, информацию об агентах и пользователях.
Примечание:
Не путайте её с базой данных Сервера поиска на базе Elasticsearch/OpenSearch, которая хранит полнотекстовые индексы и тела документов.
Ниже представлен подробный гайд по вариантам расположения БД, требованиям иbest practices.
1. Варианты архитектуры размещения БД
Выбор схемы зависит от количества защищаемых рабочих станций/серверов (агентов) и требований к отказоустойчивости.
Вариант А: Единый сервер (All-in-One)
Все компоненты SNS (Сервер управления, БД PostgreSQL, Сервер поиска) устанавливаются на один физический или виртуальный сервер.
- Для чего подходит: Тестовые среды, малый бизнес (до 300–500 агентов).
- Плюсы: Простота развертывания, нет задержек сети между компонентами.
- Минусы: Высокая конкуренция за ресурсы (CPU, RAM, Disk I/O). При падении сервера останавливается вся система.
Вариант Б: Распределенная архитектура (Выделенный сервер БД)
Сервер управления и Сервер поиска находятся на своих серверах, а PostgreSQL вынесена на отдельную выделенную машину.
- Для чего подходит: Средний и крупный бизнес (от 500 до 5000+ агентов). Рекомендуемый вариант для продакшена.
- Плюсы: Изоляция нагрузок. БД не страдает от нехватки памяти, когда Сервер поиска индексирует большие объемы данных. Легче масштабировать.
- Минусы: Требуется настройка сети, появляются требования к пропускной способности канала между Сервером управления и БД.
Вариант В: Кластер БД (High Availability)
Использование кластера PostgreSQL (например, на базе Patroni или штатных механизмов SNS, если поддерживается вашей версией).
- Для чего подходит: Критичные инфраструктуры, предприятия с жесткими требованиями к SLA и отказоустойчивости.
- Плюсы: Отсутствие единой точки отказа (SPOF) для базы данных.
- Минусы: Сложность администрирования, требуются лицензии на соответствующие компоненты (если используются проприетарные кластерные решения).
2. Аппаратные требования к серверу БД
Если вы выбираете Вариант Б (Выделенный сервер), к его ресурсам предъявляются строгие требования:
Дисковая подсистема (Критично!):
- Обязательно SSD (или NVMe). Использование HDD для БД DLP-системы категорически не рекомендуется из-за огромного количества операций случайного чтения/записи (IOPS).
- Идеальная схема: Разнести по разным физическим дискам/томам: 1) ОС, 2) Данные БД (
pgdata), 3) WAL-журналы (Write-Ahead Logs). Это кратно повысит скорость записи.
Оперативная память (RAM):
- Минимум: 16 ГБ (для малых инсталляций).
- Рекомендуется: 32–64 ГБ и более. PostgreSQL отлично кэширует данные в RAM. Чем больше памяти, тем меньше обращений к диску.
Процессор (CPU):
- Чем больше ядер, тем лучше. PostgreSQL умеет распараллеливать выполнение сложных запросов. Рекомендуется от 8 до 16+ ядер (vCPU).
3. Сетевые требования и безопасность
1. Порт:
Сервер БД должен слушать порт TCP 5432.
2. Сеть:
Сервер управления и Сервер БД должны находиться в одной локальной сети (или соединены каналом с задержкой < 1-2 мс и высокой пропускной способностью). Не размещайте БД в другом городе или за медленным WAN-каналом.
3. Безопасность:
- Ограничьте доступ к порту 5432 на уровне firewall/iptables. Разрешите подключения только с IP-адреса Сервера управления SNS.
- Обязательно смените стандартный пароль для пользователя
postgresи создайте отдельного пользователя для SNS с правами только на нужную БД.
4. Пошаговый алгоритм развертывания (для распределенной схемы)
Примечание:
Интерфейс установщика может немного отличаться в зависимости от версии SNS (7.x или 8.x), но логика сохраняется.
Шаг 1: Подготовка сервера БД
- Установите поддерживаемую ОС (Astra Linux, Alt Linux, РОСА, Ubuntu и т.д. — согласно листу совместимости вашей версии SNS).
- Установите PostgreSQL нужной версии (обычно установщик SNS сам предлагает установить нужную версию, либо она ставится из репозиториев ОС).
3. Настройте postgresql.conf и pg_hba.conf:
- В
postgresql.confукажитеlisten_addresses = '*'(или конкретный IP). - В
pg_hba.confразрешите подключение с IP Сервера управления SNS (метод аутентификацииmd5илиscram-sha-256).
4. Перезапустите службу PostgreSQL.
Шаг 2: Установка Сервера управления SNS
- Запустите инсталлятор Secret Net Studio на сервере управления.
- На этапе выбора типа базы данных выберите «Удаленная база данных» (или «Существующая СУБД»).
3. Введите параметры подключения:
- IP-адрес сервера БД.
- Порт (5432).
- Логин и пароль суперпользователя PostgreSQL (для создания структуры БД).
- Имя создаваемой базы данных (по умолчанию обычно
snsилиsecret_net).
4. Продолжите установку. Инсталлятор создаст структуру таблиц, индексы и базовые данные.
5. Миграция БД на другой сервер (если система уже работает)
Если вам потребовалось перенести БД с единого сервера на выделенный:
- Остановите службы SNS на Сервере управления (
systemctl stop sns-serverили через панель управления).
2. Сделайте дамп БД на старом сервере:
pg_dump -U postgres -Fc -Z9 -f sns_backup.dump имя_базы_sns
3. Перенесите дамп на новый сервер БД.
4. Восстановите дамп на новом сервере:
pg_restore -U postgres -d имя_базы_sns -Fc sns_backup.dump
- Обновите конфигурацию SNS на Сервере управления. Обычно это делается через файл конфигурации БД (например,
/opt/SecretNetStudio/config/db_config.iniили аналогичный, зависит от версии) или через повторный запуск инсталлятора в режиме изменения конфигурации. Укажите новый IP.
- Запустите службы SNS и проверьте доступность консоли.
6. Best Practices (Рекомендации от эксперта)
При эксплуатации БД для Secret Net Studio обратите внимание на следующие нюансы:
1. Контроль размера БД:
Таблица с событиями (инцидентами) растет очень быстро. Обязательно настройте в консоли SNS Политики архивации и очистки (Retention Policy). Удаляйте или переносите в архив события старше 30/60/90 дней, иначе БД разрастется до сотен гигабайт, что убьет производительность.
2. Регулярное бэкапирование:
Не надейтесь только на снапшоты виртуальных машин. Настройте автоматический дамп БД через cron (например, каждую ночь) с выгрузкой файлов на внешнее файловое хранилище (NFS/SMB/Backup Server).
3. Автоанализ (Autovacuum):
Убедитесь, что в postgresql.conf включен и правильно настроен autovacuum. DLP-система генерирует много операций UPDATE и DELETE, без вакуума таблицы "разбухнут" мёртвыми кортежами.
4. Мониторинг:
Подключите метрики PostgreSQL к вашей системе мониторинга (Zabbix, Prometheus). Следите за параметрами: количество активных подключений, размер БД, время отклика, наличие долгих транзакций.
Информация предоставлена в ознакомительных целях. Применение описанных настроек в системах, должно осуществляться только после согласования с ответственными за информационную безопасность и в соответствии с требованиями ФСТЭК, ФСБ и иных уполномоченных органов.