--- title: Аутентификация в Postgres Pro с помощью Kerberos description: Используя протокол GSSAPI date: 2022-11-29T16:21:00+05:00 tags: [linux, postgres, krb5] --- ## Установка Kerberos и Postgres Pro Для начала, необходимо установить [Postgres Pro](/posts/postgres-pro-astra-se) и [Kerberos](/posts/linux-krb5). На машину с Postgres Pro Kerberos устанавливается также, как и на клиента. ## Конфигурация сервера Kerberos ### Добавление принципиала Postgres Pro ```shell kadmin.local addprinc addprinc postgres addprinc postgres/ q ``` ### Экспорт субъекта-службы ```shell ktutil add_entry -password -p postgres/@ -k 1 -e aes256-cts-hmac-sha1-96 wkt postgres.keytab q ``` ### Перенос субъекта-службы на сервер Postgres Pro Перенести keytab можно как угодно, главное, чтобы он находился в папке с конфигурационными файлами Postgres Pro. Я перенесу с помощью команды scp: ```shell scp postgres.keytab postgres@:/var/lib/pgpro/std-13/data/ ``` ## Конфигурация сервера Postgres Pro ### Включение ранее перенесённого keytab ```shell ktutil read_kt postgres.keytab q ``` ### Изменение конфигруационного файла Postgres Pro В файл `/var/lib/pgpro/std-*/data/postgresql.conf` необходимо добавить следующие строки: ```python krb_server_keyfile = 'postgres.keytab' listen_addresses = 'localhost, ' ``` ### Разрешение подключения В файл `/var/lib/pgpro/std-*/data/pg_hba.conf` необходимо добавить следующие строки: ```python hostgssenc all postgres localhost/32 gss include_realm=0 hostgssenc /32 gss include_realm=0 ``` ### Получение тикета от Kerberos ```shell kinit postgres ``` ## Конфигурация клиента ### Получение тикета от Kerberos ```shell kinit ``` ### Подключение к Postgres Pro ```shell psql -d -h -U ```