Astra linux postgresql аутентификация

Где хранятся настройки аутентификации

Настройки аутентификации СУБД PostgeSQL хранятся в файле /etc/postgresql///pg_hba.conf .
Где:

  • :
    • 14 — Astra Linux Special Edition x.7 с подключенным расширенным репозиторием;
    • 11 — Astra Linux Special Edition x.7;
    • 9.6 — Astra Linux Special Edition 1.6 или 8.1.

    Настройка «по умолчанию» после установки postgresql

    Часть настроек, рассматриваемая в настоящей статье, после установки выглядит так:

    local all postgres peer local all all peer host all all 0.0.0.0/0 md5

    Беспарольная аутентификация локальных подключений с помощью собственной базы данных пользователей

    Строка в конфигурационном файле /etc/postgresql///pg_hba.conf:

    Пояснение: по умолчанию подключение выполняется к локальной машине (localhost). При выполнении команды автоматически определено имя пользователя (текущий пользователь), и такое имя не найдено в собственной базе данных пользователей (далее — БДП).
    Итог выполнения команды: отказ в подключении.
    Для устранения отказа следует зарегистрировать пользователя в БДП;

    Пояснение: приведенная команда создает роль с именем, совпадающим с именем текущего пользователя (здесь и далее используется подстановка переменной окружения $USER, содержащей имя текущего пользователя).
    Имя роли, регистрируемое в БДП не обязательно должно совпадать с именем существующего пользователя ОС, но при работе с включенным МРД такие роли не смогут получить авторизацию, см. следующий пункт.
    Далее предполагается, что для текущего пользователя заведена роль с совпадающим именем;

    createdb <имя_БД>
    createdb: не удалось подключиться к базе template1: ВАЖНО: error obtaining MAC configuration for user «»

    Данная ошибка авторизации не возникает при отключенном МРД или если у пользователя уже есть явно заданная классификационная метка. Далее предполагается, что ошибка не возникает, т.е. метка существует (создана) и права доступа предоставлены.

    При включенном МРД для прохождения мандатной авторизации имя роли должно совпадать с именем пользователя ОС.

    Парольная аутентификация внешних подключений в БДП

    Строка в конфигурационном файле /etc/postgresql///pg_hba.conf:

    Пояснение: по умолчанию подключение выполняется к локальной машине (localhost), но в этом примере явно задана опция -h, указывающая адрес, к которому нужно подключаться, и это не локальное подключение. При выполнении команды автоматически определено имя пользователя (текущий пользователь), подключение определено как внешнее, и, в соответствии с правилом для внешних подключений, запрошен пароль, который должен быть задан в БДП. Так как пароль в БДП отсутствует — аутентификация невозможна.

    createdb -h
    Пароль:
    createdb: создать базу данных не удалось: ОШИБКА: нет прав на создание базы данных

    Аутентификация внешних подключений с использованием PAM

    Строка в конфигурационном файле /etc/postgresql///pg_hba.conf:

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

    createdb -h
    Пароль:
    Пароль:
    Пароль:
    createdb: не удалось подключиться к базе template1: ВАЖНО: пользователь «» не прошёл проверку подлинности (PAM)
    ВАЖНО: пользователь «» не прошёл проверку подлинности (PAM)

    Эта ошибка может возникать при неправильно введенном пароле или при ошибках в PAM-стеке, но в рассматриваемом примере причиной ошибки является невозможность проверки введенного пароля из-за отсутствия доступа к файлу /etc/shadow (при этом пароль трактуется как неверный). Для устранения ошибки предоставить служебному пользователю postgresql право чтения файла /etc/shadow:

    createdb -h
    Пароль:
    createdb: создать базу данных не удалось: ОШИБКА: нет прав на создание базы данных

    Источник

    Исходные данные

    Сервер базы данных располагается на отдельном компьютере:

    • имя компьютера db.astra.mta;
    • компьютер введен в домен;
    • компьютер имеет постоянный IP-адрес, например, 192.168.32.4.

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

    Регистрация службы базы данных на контроллере домена

    На контроллере домена нужно зарегистрировать службу базы данных. По умолчанию имя службы postgres, соответственно имя принципала Kerberos для службы, работающей узле db.astra.mta, будет postgres/db.astra.mta@ASTRA.MTA.Зарегистрировать службу можно либо через WEB-интерфейс администратора FreeIPA, либо получить на контроллере домена билет Kerberos администратора домена:

    Настройка сервера базы данных

    Указанные ниже операции выполняются на сервере базы данных.

      Установить СУБД PostgreSQL:

    В Astra Linux Special Edition x.7 конфигурационные файлы хранятся в каталоге /etc/postgresql/11.
    В Astra Linux Special Edition 1.6 и в Astra Linux Common Edition конфигурационные файлы хранятся в каталоге /etc/postgresql/9.6.

    1. Указать параметры использования сетевых интерфейсов, изменив значение параметра listen_address. Нужное значение этого параметра зависит от конкретного применения сервера, однако можно выбрать универсальный вариант «использовать все сетевые интерфейсы»:
    krb_server_keyfile = '/etc/postgresql/krb5.keytab'
    host all all 192.168.32.0/4 gss
    [ifp] allowed_uids = postgres

    Если значения для параметра allowed_uids уже заданы, то добавить имя postgres через запятую.

    Проверка

    Если все действия выполнены успешно, то получив билет Kerberos доменного пользователя ipauser@astra.mta:

    Указанное выше сообщение об ошибке выводится после успешного подключения к базе данных, и говорит о том, что пользователь аутентифицирован успешно, но база данных для этого пользователя не настроена. Обратите также внимание на то, что доменная часть имени пользователя в примере задается как имя области Kerberos (заглавными буквами). Дальнейшие возможности настройки см. ниже.

    Дальнейшие настройки

    В зависимости от поставленных задач могут быть выполнены дальнейшие настройки работы с именами пользователей.

    Дополнительные параметры аутентификации в /etc/postgres/*/main/pg_hba.conf

    Для метода аутентификации gss доступны следующие параметры конфигурации (подробности см. в документации PostgreSQL 9.6 и документации PostgreSQL 11 или в русском переводе документации):

      include_realm Когда этот параметр равен 0, из принципала аутентифицированного пользователя убирается область, и оставшееся имя проходит сопоставление имен Этот вариант не рекомендуется для применения и поддерживается только для обратной совместимости. Параметр небезопасен в окружениях с несколькими областями Kerberos, если только дополнительно не задается параметр krb_realm. Более предпочтительный вариант — оставить значение include_realm по умолчанию (1) и задать в файле /etc/postgres/*/main/pg_ident.conf явные правила сопоставления для преобразования имен принципалов в имена пользователей Postgres Pro.

      В файле /etc/postgresql/*/main/pg_hba.conf указать на необходимость использовать соответствие map1:

    # Имя соответствия Имя пользователя системы Имя пользователя СУБД map1 ipauser@astra.mta dbuser

    После выполнения указанных действий становится возможным подключение к СУБД с использованием пользователя БД из сессии доменного пользователя ipauser@astra.mta:

    Правила сопоставления имен /etc/postgres/*/main/pg_ident.conf

    Когда используется внешняя система аутентификации (GSSAPI) имя пользователя операционной системы, устанавливающего подключение, может не совпадать с именем целевого пользователя (роли) базы данных. В этом случае можно применить сопоставление имен пользователей, чтобы сменить имя пользователя операционной системы на имя пользователя БД. Чтобы задействовать сопоставление имен, укажите map=имя-сопоставления в поле параметров в pg_hba.conf. Этот параметр поддерживается для всех методов аутентификации, которые принимают внешние имена пользователей. Так как для разных подключений могут требоваться разные сопоставления, сопоставление определяется параметром имя-сопоставления в pg_hba.conf для каждого отдельного подключения. Подробности см. в документации PostgreSQL 9.6 и документации PostgreSQL 11 (см. тж. русский перевод)

    Источник

    Читайте также:  Astra linux ntp client
Оцените статью
Adblock
detector