Назначение
На странице описана подготовка 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».