Шифрование и секретность в Linux


Файл pgjdent conf



Файл pgjdent.conf

Если в хостовой записи указан метод аутентификации ident, PostgreSQL использует файл pgjdent.conf для отображения идентификационного имени пользователя на имя пользователя PostgreSQL. «Идентификационное имя пользователя» предоставляется службой identd (RFC 1413) и определяет имя системной учетной записи, инициировавшей подключение. В целом этот метод аутентификации аналогичен методу trust, но с ограничением доступа по идентификационному имени пользователя.

Как сказано в спецификации протокола ident, «Идентификационный протокол не предназначен для аутентификации или управления доступом». Он всего лишь является удобным средством идентификации в сетях, состоящих из защищенных, хорошо контролируемых компьютеров, и не обеспечивает надежной защиты при внешнем доступе. Дело в том, что демон identd всего лишь возвращает имя, описывающее текущего пользователя системы. Например, предоставление пользователю jworsl ey доступа из подсети IP-адресов создает серьезную угрозу для безопасности системы, поскольку любой пользователь компьютера, входящего в эту подсеть, сможет создать учетную запись jworsl еу и успешно пройти «аутентификацию».

Файл pgjdent.conf должен находиться в одном каталоге с файлом pg_hba.conf. Путь к этому каталогу определяется переменной среды PGDATA (например, /usr/local/ pgsql/data). Как и в случае с pg_hba.conf, внесение изменений в pgjdent.conf не требует перезапуска PostgreSQL.

Содержимое файла pgjdent.conf связывает идентификационные имена с именами пользователей PostgreSQL при помощи особых определений, называемых картами идентификации. Карты идентификации обычно применяются в системах, в которых системные имена пользователей не совпадают с именами пользователей PostgreSQL. Основные правила определения и использования карт идентификации перечислены ниже.

  • Каждая запись файла определяется в отдельной строке и связывает имя карты, идентификационное имя пользователя и имя пользователя PostgreSQL.
  • Файл pgjdent.conf может содержать несколько карт. Каждая группа строк, в которых указано общее имя карты, рассматривается как одна карта.
  • Типы подключений, относящихся к пользователям данной карты, определяются содержимым файла pg_hba.conf.

Отдельная запись файла pgjdent.conf состоит из трех полей: имени карты, идентификационного имени пользователя и преобразованного имени пользователя PostgreSQL:

HMfljopibi идентификационное_имя KKfl_PostgreSQL

Поля разделяются пробелами или символами табуляции.

  • имя_карты. Имя, используемое для ссылок на карту идентификации в файле pgjiba.conf.
  • идентификационное_имя. Идентификационное имя обычно совпадает с именем пользователя системы, подключающегося к базе данных. Предоставляется демоном identd, работающим в системе, пытающейся установить связь с сервером.
  • uмя_PostgreSQL. Имя пользователя PostgreSQL, соответствующее заданному идентификационному имени. Файл может содержать несколько строк с одинаковыми идентификационными именами, но разными именами PostgreSQL. Это позволяет сопоставить одной учетной записи системного пользователя несколько учетных записей пользователей PostgreSQL, относящихся к разным базам данных.

Допустим, на сервере базы данных booktown имеются учетные записи системных пользователей jdrake, jworsl ey и auditor, принадлежащие соответственно двум специалистам по сбыту и аудитору.

Для двух групп пользователей было бы логично создать пару карт идентификации. Предположим, рабочая станция отдела сбыта имеет IP-адрес 192.168.1.3 и ей необходим доступ только к базе данных booktown. Рабочая станция аудитора имеет IP-адрес 192.168.1.4 и требует доступа ко всем базам данных. Файл pgajiba.conf для такого сценария приведен в листинге 8.11.



Содержание раздела