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