Avanpost CA : 1. Подготовка PostgreSQL

Назначение

На странице описана подготовка PostgreSQL для Avanpost CA.

Пример приведен для PostgreSQL 15 в РЕД ОС 8. Команды установки пакетов и расположение файлов могут отличаться в других поддерживаемых ОС.

Предварительные требования

  • PostgreSQL 15 или более новая поддерживаемая версия;

  • отдельный сервер СУБД либо локальная установка на сервере CA;

  • синхронизированное системное время;

  • настроенное разрешение DNS;

  • достаточное дисковое пространство;

  • доступ к резервному хранилищу;

  • TLS-сертификат PostgreSQL — если БД находится на отдельном сервере.

1. Установка PostgreSQL

Установите сервер PostgreSQL:

sudo dnf install postgresql15-server
Инициализируйте кластер:
sudo postgresql-15-setup initdb
Добавьте PostgreSQL в автозагрузку и запустите:
sudo systemctl enable --now postgresql-15.service
sudo systemctl status postgresql-15.service
Ожидаемый результат: служба имеет состояние active (running).

2. Настройка парольной аутентификации

В postgresql.conf установите:


password_encryption = 'scram-sha-256'
Расположение файла зависит от ОС. Получить фактический путь можно командой:
sudo -u postgres psql -Atc "show config_file"

3. Создание учетной записи и базы данных

Создайте отдельную непривилегированную роль:


sudo -u postgres createuser \
  --pwprompt \
  --no-superuser \
  --no-createdb \
  --no-createrole \
  avanpost_ca
Введите уникальный пароль из корпоративного средства управления секретами.

Создайте базу данных:


sudo -u postgres createdb \
  --owner=avanpost_ca \
  --encoding=UTF8 \
  avanpost_ca
Проверьте созданные объекты:

sudo -u postgres psql -c "\du avanpost_ca"
sudo -u postgres psql -c "\l+ avanpost_ca"

4. Настройка локального подключения

Если PostgreSQL установлен на сервере Avanpost CA, оставьте:


listen_addresses = 'localhost'
Добавьте в pg_hba.conf:
host    avanpost_ca    avanpost_ca    127.0.0.1/32    scram-sha-256
host    avanpost_ca    avanpost_ca    ::1/128         scram-sha-256
Не используйте маску /0: она разрешает подключения из всех IPv4-сетей.

5. Настройка удаленного подключения

Если PostgreSQL установлен на отдельном сервере, задайте в postgresql.conf только адрес закрытого интерфейса:


listen_addresses = '<DB_SERVER_IP>'
ssl = on
ssl_cert_file = '<POSTGRES_TLS_CERTIFICATE>'
ssl_key_file = '<POSTGRES_TLS_PRIVATE_KEY>'
Добавьте в pg_hba.conf разрешение только для сервера Avanpost CA:
hostssl    avanpost_ca    avanpost_ca    <CA_SERVER_IP>/32    scram-sha-256
Убедитесь, что закрытый ключ PostgreSQL имеет владельца postgres и ограниченные права:
sudo chown postgres:postgres <POSTGRES_TLS_PRIVATE_KEY>
sudo chmod 600 <POSTGRES_TLS_PRIVATE_KEY>
На межсетевом экране разрешите TCP 5432 только от серверов Avanpost CA.

6. Применение конфигурации

Проверьте расположение pg_hba.conf:


sudo -u postgres psql -Atc "show hba_file"
Перезапустите PostgreSQL:
sudo systemctl restart postgresql-15.service
sudo systemctl status postgresql-15.service
Проверьте журнал:
sudo journalctl -u postgresql-15.service -n 100 --no-pager

7. Проверка подключения

Для локальной БД:


psql "host=127.0.0.1 port=5432 dbname=avanpost_ca user=avanpost_ca sslmode=prefer"
Для удаленной БД:
psql "host=<DB_HOST> port=5432 dbname=avanpost_ca user=avanpost_ca sslmode=verify-full"
При использовании sslmode=verify-full клиент должен доверять центру сертификации, выпустившему TLS-сертификат PostgreSQL. Имя сервера БД должно присутствовать в SAN сертификата.

В интерактивной консоли выполните:


SELECT current_database(), current_user, version();
\q

8. Резервное копирование

До установки Avanpost CA настройте:

  • ежедневное резервное копирование БД;

  • хранение PostgreSQL WAL для восстановления на момент времени;

  • передачу копий на отдельный сервер;

  • мониторинг успешности резервного копирования;

  • периодическую проверку восстановления.

Минимальная проверка логического резервного копирования:


pg_dump \
  --host=<DB_HOST> \
  --username=avanpost_ca \
  --format=custom \
  --file=avanpost_ca_test.backup \
  avanpost_ca
Не храните пароль в командной строке или shell history. Используйте защищенный .pgpass либо средство управления секретами.

Критерии готовности

  • PostgreSQL запущен;

  • создана отдельная БД avanpost_ca;

  • создана роль avanpost_ca без административных полномочий;

  • подключение с сервера CA работает;

  • подключения из других сетей запрещены;

  • при удаленной БД используется TLS;

  • настроено резервное копирование;

  • выполнена тестовая операция восстановления.

Следующий шаг

Перейдите к странице «1.2.2. Установка Avanpost CA».

Обсуждение