Astra linux postgresql kerberos

Содержание
  1. Astra Linux Special Edition x.7
  2. Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1.6
  3. Настройка для работы в домене (авторизация через Керберос)
  4. Настройка для работы с учетом мандатных привилегий
  5. Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1.5
  6. Совместимость с 1С
  7. Ввод Astra Linux Special Edition 1.6 в Active Directory с настройкой SSO в PostgreSQL.
  8. Вводные данные
  9. Разблокировка учетной записи ROOT
  10. Настройка сети на bd1
  11. Установим требуемые пакеты
  12. Настройка конфигурационных файлов для работы с доменом Active Directory.
  13. Исходные данные
  14. Регистрация службы базы данных на контроллере домена
  15. Настройка сервера базы данных
  16. Проверка
  17. Дальнейшие настройки
  18. Дополнительные параметры аутентификации в /etc/postgres/*/main/pg_hba.conf
  19. Правила сопоставления имен /etc/postgres/*/main/pg_ident.conf
  20. Где хранятся настройки аутентификации
  21. Настройка «по умолчанию» после установки postgresql
  22. Беспарольная аутентификация локальных подключений с помощью собственной базы данных пользователей
  23. Парольная аутентификация внешних подключений в БДП
  24. Аутентификация внешних подключений с использованием PAM

Astra Linux Special Edition x.7

Настройка PostgreSQL для работы в домене ALD (авторизация через Керберос) выполняется так же как и для Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1.6, отличие только в версии PostgreSQL (версия 11 вместо ранее использовавшейся версии 9.6):

keytab=»/etc/postgresql/11/main/keytab»
ald-admin service-add postgres/`hostname`
ald-admin sgroup-svc-add postgres/`hostname` —sgroup=mac
ald-client update-svc-keytab postgres/`hostname` —ktfile=»$keytab»
chown postgres «$keytab»
chmod 644 «$keytab»

krb_server_keyfile=/etc/postgresql/11/main/keytab
host all all gss include_realm=0
ac_ignore_socket_maclabel = false

Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1.6

Настройка для работы в домене (авторизация через Керберос)

Сценарий настройки PostgreSQL для работы в домене ALD (авторизация через Керберос)

keytab=»/etc/postgresql/9.6/main/keytab»
ald-admin service-add postgres/`hostname`
ald-admin sgroup-svc-add postgres/`hostname` —sgroup=mac
ald-client update-svc-keytab postgres/`hostname` —ktfile=»$keytab»
chown postgres «$keytab»
chmod 644 «$keytab»

В файле /etc/postgresql/9.6/main/postgresql.conf в строке указать расположение файла ключей, например:

krb_server_keyfile=/etc/postgresql/9.6/main/keytab

В файле /etc/postgresql/9.6/main/pg_hba.conf в строке host указать способ аутентификации gss и параметры аутентификации, например include_realm=0:

host all all gss include_realm=0

Настройка для работы с учетом мандатных привилегий

В файле /etc/postgresql/9.6/main/postgresql.conf значение параметра ac_ignore_socket_maclabel в установить в false .

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

ac_ignore_socket_maclabel = false

Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1.5

Совместимость с 1С

Необходимо установки пакета postgresql-contrib

Необходимо внести изменения в настройки конфигурационного файла PostgreSQL — расскоментировать строки и поменять значения на:

Источник

Ввод Astra Linux Special Edition 1.6 в Active Directory с настройкой SSO в PostgreSQL.

Настроим ОС Astra Linux SE 1.6 и введем в домен MS Active Directory . В процессе настроим SMABA, WINBIND и POSTGRESQL, а также настроим в POSTGRESQL SSO через GSSAPI.

Данная настройка проводилась с обновлением ОС Astra Linux SE 1.6 — 20191029SE16 . Процесс обновления ОС не описан в процессе конфигурации.

Читайте также:  Lib64 ld linux x86 64 so 2 no such file or directory

Вводные данные

Контроллеры домена Active Directory

Сервер c базой данных Postgresql

ОС – Astra Linux SE 1.6. Установлена без ALD и без режима киоска. Дополнительное ПО выбрано базовые средства, рабочий стол Fly, средства работы в сети, СУБД.

Разблокировка учетной записи ROOT

Для удобства настройки разблокируем учетную запись ROOT

Для безопасности по окончанию работ требуется заблокировать учетную запись ROOT!

Настройка сети на bd1

Приведем файл /etc/hosts к виду

Проверим правильность имени машины в /etc/hostname

Настроим статический IP-адрес, для этого внесем строки в файл /etc/network/interfaces

Для автоматической генерации файла /etc/resolv.conf установим пакет resolvconf.

Проверим, должен появиться интерфейс eth0 с назначенным нами адресом 192.168.0.100

Проверим доступность контроллеров домена Active Directory

Настроим синхронизацию времени с контроллерами домена, для этого в файле /etc/ntp.conf добавим в секцию «You do need to talk to an NTP server or two (or three)»

Установим требуемые пакеты

Сначала проверим установлены ли пакеты SAMBA, WINBIND, NTP и POSTGRESQL

Произведем до установку пакетов которые нам потребуются далее (потребуется диск с дистрибутивом ОС)

apt-get install nscd nslcd libpam-winbind libpam-krb5 libsasl2-modules-gssapi-mit krb5-user libnss-winbind

Чтобы установить следующий пакет потребуется диск разработчика

Настройка конфигурационных файлов для работы с доменом Active Directory.

Отредактируем конфигурационный файл Kerberos /etc/krb5.conf и приведем его к виду

Источник

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

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

  • имя компьютера 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 (см. тж. русский перевод)

Источник

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

Настройки аутентификации СУБД 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: создать базу данных не удалось: ОШИБКА: нет прав на создание базы данных

    Источник

Оцените статью
Adblock
detector