Настройка параметров подключения к PostgreSQL для Менеджера управления

1. Введение

В составе zVirt используется СУБД PostgreSQL, доступ к которому настраивается при установке Менеджера в соответствии с общими рекомендациями.

При необходимости вы можете произвести дополнительную настройку параметров подключения, в соответствии с вашими требованиями.

Для этого необходимо внести изменения в файл /var/lib/pgsql/data/pg_hba.conf.

2. Параметры подключения

Структура файла /var/lib/pgsql/data/pg_hba.conf
TYPE  DATABASE  USER ADDRESS    METHOD [OPTIONS]
  • TYPE: Тип подключения, может быть local для Unix-сокетов или host для TCP/IP подключений. Для TCP/IP подключений также допустимо явное указание параметров шифрования:

    • hostssl - использовать SSL-шифрование.

    • hostnossl - не использовать SSL-шифрование.

    • hostgssenc - использовать GSSAPI-шифрование.

    • hostnogssenc - не использовать GSSAPI-шифрование.

  • DATABASE: Имя базы данных, к которой осуществляется подключение. Допустимо указание списка имен БД через запятую, а также использование ключевого слова all, указывающего на все БД.

  • USER: Имя пользователя базы данных, которое будет использоваться для подключения. Допустимо указание списка имен пользователей через запятую, а также использование ключевого слова all, указывающего на всех пользователей.

  • ADDRESS: Сетевой адрес или диапазон адресов, с которого разрешено подключение. Для локальных адресов используется 127.0.0.1/32 для IPv4 и ::1/128 для IPv6. Также допустимо использование имени компьютера, с которого осуществляется подключение (должно быть разрешимо в прямом и обратном направлении), а также ключевого слова all, указывающего на любые адреса.

  • METHOD: Метод аутентификации, который будет использоваться для подключения. Допустимы следующие значения:

    • trust - безусловное подключение. Этот метод позволяет тому, кто может подключиться к серверу с БД, войти под любым желаемым пользователем Postgres без введения пароля и без какой-либо другой аутентификации.

    • reject - отклонение подключения. Эта возможность полезна для «фильтрации» некоторых серверов группы, например, строка reject может отклонить попытку подключения одного компьютера, при этом следующая строка позволяет подключиться остальным компьютерам в той же сети.

    • scram-sha-256 - подключение с парольной аутентификацией, использующей SCRAM-SHA-256.

    • md5 - подключение с парольной аутентификацией, использующей SCRAM-SHA-256 или MD5.

    • password - подключение с парольной аутентификацией с открытым паролем.

    • gss - подключение с аутентификацией с использованием GSSAPI. Доступен только для TCP/IP подключений.

    • ident - получает имя пользователя операционной системы клиента, связываясь с сервером Ident, и проверяет, соответствует ли оно имени пользователя базы данных. Аутентификация ident может использоваться только для подключений по TCP/IP.

    • peer - получает имя пользователя операционной системы клиента из операционной системы и проверяет, соответствует ли оно имени пользователя запрашиваемой базы данных. Доступно только для локальных подключений.

    • ldap - аутентификация с использованием LDAP.

    • radius - аутентификация с использованием RADIUS.

    • cert - аутентификация с использованием SSL-сертификата.

  • OPTIONS: необязательное поле, которое может содержать параметры метода аутентификации в формате ключ=значение.

3. Обеспечение дополнительной безопасности

Для обеспечения дополнительной безопасности подключения к базе данных PostgreSQL, используемой Менеджером управления и его компонентами, необходимо правильно настроить файл /var/lib/pgsql/data/pg_hba.conf.

Приведенный ниже список параметров допустимо использовать только при размещении Менеджера управления, его БД (engine) и БД хранилища данных (ovirt_engine_history) на одной машине.

В случае раздельного размещения Менеджера управления и Grafana/DWH необходимо актуализировать параметры подключения.

local     all                     all                                                     peer (1)
host      ovirt_engine_history    ovirt_engine_history_grafana    127.0.0.1/32            md5 (2)
host      ovirt_engine_history    ovirt_engine_history_grafana    ::1/128                 md5 (3)
host      ovirt_engine_history    ovirt_engine_history            127.0.0.1/32            md5 (4)
host      ovirt_engine_history    ovirt_engine_history            ::1/128                 md5 (5)
host      engine                  engine                          127.0.0.1/32            md5 (6)
host      engine                  engine                          ::1/128            md5 (7)
1 Разрешено локальное подключение по UNIX-сокетам всем пользователям ко всем БД. Необходимо для интерактивного взаимодействия с СУБД
2 Подключение Grafana к БД хранилища данных c использованием loopback IPv4 адреса. Необходимо для работы Grafana.
3 Подключение Grafana к БД хранилища данных c использованием loopback IPv6 адреса. Необходимо для работы Grafana.
4 Подключение к БД хранилища данных c использованием loopback IPv4 адреса. Необходимо для работы DWH.
5 Подключение к БД хранилища данных c использованием loopback IPv6 адреса. Необходимо для работы DWH.
6 Подключение к БД Менеджера управления c использованием loopback IPv4 адреса. Необходимо для работы служб, взаимодействующих с базой данных engine, в .т.ч веб порталов и утилиты engine-backup.
7 Подключение к БД Менеджера управления c использованием loopback IPv6 адреса. Необходимо для работы служб, взаимодействующих с базой данных engine, в .т.ч веб порталов и утилиты engine-backup.

При описанной выше конфигурации сохраняется работоспособность компонентов Менеджера управления, при этом получение доступа извне невозможно.

4. Применение изменений

Настройка файла pg_hba.conf является критически важным шагом для обеспечения безопасности и правильного функционирования базы данных PostgreSQL и компонентов Менеджера управления. Убедитесь, что все параметры указаны корректно и соответствуют вашей среде и требованиям безопасности.

Перед внесением изменений в файл, рекомендуем сделать его резервную копию.

Например:

cp /var/lib/pgsql/data/pg_hba.conf ~

После внесения изменений в файл /var/lib/pgsql/data/pg_hba.conf, необходимо применения новую конфигурацию. Для этого:

  1. Подключитесь по SSH к Менеджеру управления и авторизуйтесь под пользователем root.

  2. Примените конфигурацию одним из следующих способов:

    Способ 1
    • Перезапустите службу postgresql:

      systemctl reload postgresql
    Способ 2
    • Смените пользователя на postgres:

      su - postgres
    • Примените конфигурацию

      pg_ctl reload

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

Для проверки подключения к базе данных:

Локальное подключение
  1. Подключитесь по SSH к Менеджеру управления и авторизуйтесь под пользователем root.

  2. Смените пользователя на postgres:

    su - postgres
  3. Выполните команду psql. Эта команда должна запустить интерактивную оболочку postgresql.

  4. Выйдите из интерактивной оболочки командой exit.

  5. Вернитесь в сессию root командой exit.

Работоспособность компонентов Менеджера
  1. На портале администрирования авторизуйтесь пользователем с административными правами.

  2. Перейдите на вкладку События. Проконтролируйте отсутствие системных ошибок за последний час с момента изменения конфигурации подключения к СУБД.

  3. Перейдите в портал мониторинга (Grafana) и убедитесь в наличии последних данных в любом разделе.