Параметры безопасности
В данном разделе представленные параметры относящиеся к настройке функциональностей блока безопасности.
Параметры аудита
В данном подразделе представлены параметры настройки функциональности «журналирование и аудит».
Основной параметр (pgaudit.log)
Настраиваемый параметр конфигурации pgaudit.log указывает, какие классы операторов, событий, функций и команд будут регистрироваться при ведении журнала аудита сессии. Возможные значения:
READ:SELECTиCOPY, если источник — отношение или запрос;WRITE:INSERT,UPDATE,DELETE,TRUNCATE, иCOPY, если цель — отношение;FUNCTION: вызовы функций и блокиDO;ROLE: операторы, связанные с ролями и привилегиями:GRANT,REVOKE,CREATE/ALTER/DROP ROLE;DDL: всеDDL, не входящие в классROLE;MISC: прочие команды, включаяDISCARD,FETCH,CHECKPOINT,VACUUM,SET;MISC_SET: прочие командыSET, включаяSET ROLE;CONNECTION: события, связанные с подключением к серверу. Существуют 4 типа таких событий:OPEN,CLOSED,FAILED,CHANGE USER. СобытиеFAILEDрегистрируется в случае неудачной попытки аутентификации по паролю и независимо от значенияpgaudit.log;PROTECTION: функции настройки механизма защиты от привилегированных пользователей;RECOVERY: события восстановления базы данных;INTEGRITY: события нарушения целостности объектов контроля;ACTION: события запуска/остановки базы данных с причиной остановки;PARAMETER: события изменения конфигурации системы управления базами данных;ALL: включить все вышеперечисленное.
Значение по умолчанию - ddl, role, connection, misc_set, protection.
Для применения измененного значения данного параметра необходимо перечитать конфигурацию. Для добавления новых классов событий необходимо включить параметр pgaudit.legal.
Можно включить несколько классов, перечислив их через запятую, или исключить определенные классы, поставив перед ними знак -. С примером можно ознакомиться в подразделе «Ведение журнала аудита сессии» раздела «Журналирование и аудит» документа «Руководство администратора».
Дополнительные параметры
Параметр | Описание | Тип | Значение |
|---|---|---|---|
| Включение/отключение расширенных возможностей аудита: запись логов аудита в отдельный файл, регистрация дополнительных событий аудита, использование нового формата событий аудита. Для активации указанных в таблице параметров аудита (и добавления в |
| Параметр может быть установлен в значения Значение по умолчанию - |
| Включение/отключение записи логов аудита в системный журнал при включенной записи в файл |
| По умолчанию - |
| Путь к каталогу для сохранения файлов аудита. Это может быть абсолютный путь или заданный относительно каталога данных ( |
| Значение по умолчанию - Файлы аудита будут созданы в каталоге |
| Используемый шаблон имен файлов для журналов событий |
| Шаблон может содержать спецпоследовательности, определяющие временную метку, которые начинаются со знака Значение по умолчанию |
| Максимальный размер файла CSV-журнала в килобайтах. При достижении установленного лимита для записи событий безопасности создается новый файл |
| Если параметр равен Значение по умолчанию |
| Максимальное время жизни файла журнала в минутах. По истечении этого времени создается новый файл для записи событий безопасности |
| Если параметр равен Значение по умолчанию - |
| Определяет, должны ли усекаться файлы журналов при переключении записи на уже существующий файл журнала. Параметр учитывается только при ротации по времени. В остальных случаях запись всегда продолжается в конец файла |
| Если значение параметра Значение по умолчанию - |
| Определяет права на файл аудита при создании и задается в восьмеричном виде |
| Значение по умолчанию - |
| Параметр включает или отключает обработку фатальных ошибок, которые могут возникнуть при работе с файлами аудита |
| Значение по умолчанию - |
| Указывает, должно ли быть включено ведение журнала сессии в том случае, если все отношения в операторе находятся в |
| Значение по умолчанию - |
| Указывает, будут ли сообщения журнала видны клиентскому процессу, такому как |
|
Значение по умолчанию - |
| Указывает уровень журналирования, который будет использоваться для записей журнала (смотрите «Уровни важности сообщений»). Обратите внимание, что значения Этот параметр используется для регрессионного тестирования, а также может быть полезен конечным пользователям для тестирования или других целей |
| Значение Значение по умолчанию - |
| Указывает, что ведение журнала аудита должно включать параметры, переданные вместе с оператором. При наличии параметров они будут включены в формате CSV после текста оператора |
| Значение по умолчанию - |
| Указывает, должно ли ведение журнала аудита сессии создавать отдельную запись журнала для каждого отношения ( |
| Значение по умолчанию - |
| Указывает, что журнал аудита должен включать количество строк, извлеченных или затронутых оператором. При включении ( |
| Значение по умолчанию - |
| Указывает, будет ли в журнал аудита включаться текст запроса и параметры (если это разрешено). В зависимости от требований журнал аудита может не нуждаться в этом, и это делает журналы менее подробными |
| Значение по умолчанию - |
| Указывает, будут ли текст и параметры оператора прикрепляться к первой записи в журнале для комбинации оператора и вложенных операторов или к каждой записи. Отключение этого параметра приведет к менее подробному ведению журнала, но может затруднить определение оператора, сгенерировавшего запись журнала, хотя пары оператора и вложенного оператора вместе с идентификатором процесса должно быть достаточно для идентификации текста оператора, записанного в предыдущей записи |
| Значение по умолчанию - |
| Указывает главную роль, используемую для ведения журнала аудита объектов. Можно определить несколько ролей аудита, закрепив их главной роли. Это позволяет нескольким группам отвечать за различные аспекты ведения журнала аудита |
| Значение по умолчанию отсутствует |
Префикс строки системного журнала
Для добавления других полей, необходимых для удовлетворения требований к системному журналу логов, используйте префикс строки log_line_prefix:
| Спецсимвол | Назначение | Только для пользовательского процесса |
|---|---|---|
%a | Имя приложения (application_name) | да |
%u | Имя пользователя | да |
%d | Имя базы данных | да |
%r | Имя удаленного узла или IP-адрес, а также номер порта | да |
%h | Имя удаленного узла или IP-адрес | да |
%p | Идентификатор процесса | нет |
%t | Штамп времени, без миллисекунд | нет |
%m | Штамп времени, с миллисекундами | нет |
%n | Штамп времени, с миллисекундами (в виде времени Unix) | нет |
%i | Тег команды: тип текущей команды в сессии | да |
%e | Код ошибки SQLSTATE | нет |
%c | Идентификатор сессии | нет |
%l | Номер строки журнала для каждой сессии или процесса. Начинается с единицы | нет |
%s | Штамп времени начала процесса | нет |
%v | Идентификатор виртуальной транзакции (backendID/localXID) | нет |
%x | Идентификатор транзакции (0 если не присвоен) | нет |
%q | Ничего не выводит. Непользовательские процессы останавливаются в этой точке. Игнорируется пользовательскими процессами | нет |
%% | Выводит % | нет |
Пример префикса строки журнала: %m %u %d [%p]: - включить вывод метки времени, имени пользователя, имени базы данных и идентификатора процесса для каждой записи журнала сообщений.
Параметры обфускации данных
Параметр | Значение по умолчанию | Описание |
|---|---|---|
|
| Алгоритм хеширования, применяемый методом псевдонимизации. |
|
| Флаг, допускающий обфускацию для атрибутов, входящих в ограничение целостности |
|
| Локаль инициализации таблиц подстановок, применяемых в методах фальсификации и псевдонимизации |
|
| Имя |
|
| Схема БД, используемая расширением обфускации данных и содержащая таблицы и функции подстановок |
|
| Схема БД, используемая для генерации анонимизированных данных |
|
| Выбор стратегии маскирования атрибутов, не имеющих метки |
|
| Признак использования функций маскирования, расположенных только в схемах с атрибутом |
| Отсутствует | Соль, используемая для метода псевдонимизации |
|
| Схема БД по умолчанию, содержащая исходные данные. В случае использования нескольких схем — каждая из них должна быть помечена атрибутом |
|
| Требования соответствия типа подстановочного значения типу исходного значения |
|
| Режим динамического маскирования |
Параметры парольных политик
В данном разделе более подробно описаны параметры механизма парольных политик.
| Параметр | Описание | Тип | POSIX шаблон | Значение по умолчанию | Аналог в pg_pp_policy |
|---|---|---|---|---|---|
password_policy.policy_enable | Включение/выключение парольной политики | boolean | on/off | on | policyenable |
password_policy.deny_default | Включение/выключение использования настроек из postgresql.conf | boolean | on/off | off | - |
password_policy.psql_encrypt_password | Засекречивание пароля при передаче от клиента к БД | boolean | on/off | - | - |
password_policy.deduplicate_ssl_no_ssl_fail_auth_attempts | Включение механизма исключения повторных попыток подключения psql | boolean | on/off | on | - |
password_policy.allow_hashed_password | Разрешить задание пароля в виде хеша | boolean | on/off | off | - |
Настройка хранения паролей
| Параметр | Описание | Тип | POSIX шаблон | Ограничение значения | Значение по умолчанию | Специальные значения параметров | Аналог в pg_pp_policy |
|---|---|---|---|---|---|---|---|
password_policy.reuse_time | Время в секундах, в течение которого старый пароль сохраняется, и попытка сменить пароль на совпадающий со старым заканчивается ошибкой | string | \d+ s | неотрицательное | 365 days | - | reusetime |
password_policy.in_history | Максимальное количество сохраненных старых паролей | integer | [0-1000] | 0-1000 | 4 | 0 – Проверка на совпадение пароля с ранее использованным не проводится (при условии reuse_time = 0) | inhistory |
Если задан параметр password_policy.reuse_time, то параметр password_policy.in_history не используется.
Время жизни пароля
| Параметр | Описание | Тип | POSIX шаблон | Ограничение значения | Значение по умолчанию | Специальные значения параметров | Аналог в pg_pp_policy |
|---|---|---|---|---|---|---|---|
password_policy.max_age | Время жизни пароля в секундах | string | \d+ s | неотрицательное | 0 | 0 – Проверка максимального времени жизни пароля не производится | maxage |
password_policy.min_age | Минимальное время между изменениями пароля | string | \d+ s | неотрицательное | 0 | 0 – Проверка максимального времени жизни пароля не производится | minage |
password_policy.grace_login_limit | Максимальное количество аутентификаций после истечения срока действия пароля | integer | [0-1000] | 0-1000 | 0 | - | graceloginlimit |
password_policy.grace_login_time_limit | Время, в течение которого пароль остается рабочим после окончания срока его действия | string | \d+ s | неотрицательное | 3 days | 0 – аутентификация не доступна по истечении времени жизни пароля | gracelogintimelimit |
password_policy.expire_warning | Время до истечения пароля, при котором выводится предупреждение | string | \d+ s | неотрицательное | 7 days | 0 – не выводит предупреждение | expirewarning |
Поведение при неудачной аутентификации
| Параметр | Описание | Тип | POSIX шаблон | Ограничение значения | Значение по умолчанию | Специальные значения параметров | Аналог в pg_pp_policy |
|---|---|---|---|---|---|---|---|
password_policy.lockout | Блокировка аккаунта при достижении максимума неверных попыток аутентификации | boolean | on/off | on/off | on | - | lockout |
password_policy.max_failure | Максимальное количество неверных попыток аутентификации | integer | [1-1000] | 1-1000 | 6 | - | maxfailure |
password_policy.failure_count_interval | Время, после которого количество неверных попыток сбрасывается | string | \d+ s | >= 0 | 0 | 0 – счетчик не обнуляется | failurecountinterval |
password_policy.lockout_duration | Время блокировки аккаунта | string | \d+ s | неотрицательное | 24 hours | 0 – блокировка пользователя по количеству неудачных аутентификаций бессрочна | lockoutduration |
Синтаксические проверки пароля
| Параметр | Описание | Тип | Ограничение значения | Значение по умолчанию | Специальные значения параметров | Аналог в pg_pp_policy |
|---|---|---|---|---|---|---|
password_policy.check_syntax | Включение синтаксической проверки пароля | boolean | on/off | on | – | checksyntax |
password_policy.alpha_numeric | Минимальное количество цифр в пароле | integer | 0-1000 | 3 | 0 – не проверять | alphanumeric |
password_policy.min_length | Минимальная длина пароля | integer | 0-1000 | 16 | 0 – не проверять | minlength |
password_policy.min_alpha_chars | Минимальное количество букв в пароле | integer | 0-1000 | 0 | 0 – не проверять | minalphachars |
password_policy.min_special_chars | Минимальное количество специальных символов | integer | 0-1000 | 0 | 0 – не проверять | minspecialchars |
password_policy.min_uppercase | Минимальное количество прописных букв | integer | 0-1000 | 1 | 0 – не проверять | minuppercase |
password_policy.min_lowercase | Минимальное количество строчных букв | integer | 0-1000 | 0 | 0 – не проверять | minlowercase |
password_policy.max_rpt_chars | Максимальное количество повторяющихся символов | integer | 0-1000 | 0 | 0 – не проверять | maxrptchars |
Проверка максимального времени неактивности пользователя
| Параметр | Описание | Тип | Ограничение значения | Значение по умолчанию | Специальные значения параметров | Аналог в pg_pp_policy |
|---|---|---|---|---|---|---|
password_policy.track_login | Запоминать ли время последней аутентификации | boolean | on/off | off | – | tracklogin |
password_policy.max_inactivity | Время последней аутентификации, после которого аккаунт блокируется | string | неотрицательное | 0 | 0 – функциональность отключена | maxinactivity |
Использование библиотеки zxcvbn
| Параметр | Описание | Тип | POSIX шаблон | Ограничение значения | Значение по умолчанию | Аналог в pg_pp_policy |
|---|---|---|---|---|---|---|
password_policy.use_password_strength_estimator | Включение использования библиотеки zxcvbn для оценки сложности пароля | boolean | on/off | on/off | on | usepasswordstrengthestimator |
password_policy.password_strength_estimator_score | Минимальная оценка сложности пароля | integer | [0-4] | 0-4 | 3 | passwordstrengthestimatorscore |
Использование пользовательской функции проверки пароля
| Параметр | Описание | Тип | POSIX шаблон | Значение по умолчанию | Аналог в pg_pp_policy |
|---|---|---|---|---|---|
password_policy.custom_function | Пользовательская функция проверки пароля | string | [\w\d]+ | - | customfunction |
Проверка вхождения пароля в черный список
| Параметр | Описание | Тип | Ограничение значения | Значение по умолчанию | Аналог в pg_pp_policy |
|---|---|---|---|---|---|
password_policy.illegal_values | Проверка, что пароль не входит в список часто используемых | boolean | on/off | on | illegalvalues |
Настройка кеширования
| Параметр | Описание | Тип | POSIX шаблон | Ограничение значения | Значение по умолчанию | Аналог в pg_pp_policy |
|---|---|---|---|---|---|---|
password_policy.pp_cache_dump_interval | Интервал сохранения данных кеша на диск | integer | \d+ | 1 - до максимального значения int в системе | 10 | - |
password_policy.pp_cache_init_size | Размер инициализированного кеша парольных политик | integer | \d+ | 1 - до максимального значения int в системе | 10 | - |
password_policy.pp_cache_soft_max_size | Предполагаемый максимальный размер кеша | integer | \d+ | 1 - до максимального значения int в системе | 60 | - |
password_policy.pp_cache_max_size | Ограничение сверху на размер кеша | integer | \d+ | 1 - до максимального значения int в системе | 1000 | - |
Параметры управления транспортными паролями
| Параметр | Описание | Тип | Значение по умолчанию | Аналог в pg_pp_policy |
|---|---|---|---|---|
password_policy.transport_password_mark_automatic | При значении true пароль становится транспортным автоматически при смене другим пользователем. При значении false пароль отмечается транспортным вручную | boolean | false | - |
transport_password_life_time | Определяет время жизни транспортного пароля | string | 0 | transportpasswordlifetime |
password_policy.is_temp_tuz_password | Определяет тип пароля (транспортный или нет) для указанных ТУЗ | boolean | true | - |
Параметр маскирования запросов
Маскирование запросов настраивается конфигурационным параметром masking_mode (тип enum), который может принимать три значения: full, disabled и off.
| Механизм отключен, маскирование запросов не производится, за исключением значений паролей и параметров функций, принимающих пароли, которые маскируются всегда |
| Механизм маскирования работает по всем обрабатываемым запросам |
| Полное отключение механизма маскирования |