Перейти к основному содержимому

auth_delay. Задержка в процессе проверки подлинности

В исходном дистрибутиве установлено по умолчанию: нет.

Связанные компоненты: отсутствуют.

Схема размещения: не используется.

В случае ошибки аутентификации модуль auth_delay на время останавливает сервер перед тем, как сообщить о проблеме. Задержка может усложнить подбор паролей к базам данных, но не будет препятствовать атакам, вызывающим «отказ в обслуживании», так как процессы, ожидающие сообщения об ошибке, занимают слоты подключения.

Для работы функции модуль нужно загрузить посредством параметра конфигурации shared_preload_libraries в postgresql.conf.

Параметр конфигурации auth_delay.milliseconds (int) соответствует периоду ожидания сообщения об ошибке (в миллисекундах). По умолчанию задан 0.

Доработка

Доработка не проводилась.

Ограничения

Ограничения отсутствуют.

Установка

Для включения функции библиотеки модуля $PGHOME/lib/auth_delay.so необходимо добавить или скорректировать в конфигурационном файле СУБД $PGDATA/postgresql.conf параметры:

  • shared_preload_libraries – добавить значение auth_delay;
  • auth_delay.milliseconds – установить продолжительность задержки в миллисекундах.

Пример:

shared_preload_libraries = 'auth_delay'
auth_delay.milliseconds = '500'

Настройка

Настройка длительности задержки выполняется при помощи параметра auth_delay.milliseconds, значение которого устанавливается в миллисекундах.

Пример для настройки задержки в 1 секунду:

auth_delay.milliseconds = '1000'

Использование модуля

В качестве примера установите время задержки 10 секунд:

auth_delay.milliseconds = '10000'

Примените параметры базы данных и проверьте текущее значение параметра:

test_db=> show auth_delay.milliseconds ;
auth_delay.milliseconds
-------------------------
10s
(1 row)

Выполните попытку подключения к базе данных с неверным паролем пользователя:

psql -d test_db -U alice
Password for user alice:

При вводе неверного пароля через 10 секунд будет получено сообщение об ошибке аутентификации:

psql: error: FATAL:  password authentication failed for user "alice"
FATAL: password authentication failed for user "alice"

В журнал СУБД сообщение о задержке не выводится.

Ссылки на документацию разработчика

Исходная документация PosgreSQL модуля auth_delay: https://www.postgresql.org/docs/current/auth-delay.html