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