Як змінюється затримка, яка виникає після введення неправильного пароля?


32

Після введення неправильного пароля в запиті для входу відбувається затримка приблизно на 3 секунди. Як я можу змінити це в системі Linux з PAM?


1
Я отримую необхідність затримки з точки зору безпеки, але затримка за замовчуванням є досить дратівливою
Майк Пеннінгтон

3
Це було цікаво; можливо, я напишу модуль, який дозволяє N спроб без затримки, а потім будь-яку кількість спроб з великою затримкою.
Шон Дж. Гофф

1
Замість нового модуля (запропоновано в моєму попередньому коментарі), я pam_unixз nodelayопцією і pam_tally2з deny=5 unlock_time=15; це дозволяє 5 негайних спроб, але забороняє доступ (навіть при вдалому паролі) протягом 15 секунд. Я все ще маю намір спробувати написати описану модель, але зараз це проект із заднім режимом, тому що це не було б підходящим, якщо ваш основний доступ до системи є мережевим, оскільки це робить атаку DOS тривіальною.
Шон Дж. Гоф

1
якщо вас турбує мережевий DoS від таймаутів, використовуйте fail2ban ... адже використовуйте його, навіть якщо ви вважаєте, що ви безпечні :-). Я використовую два дні заборони
Майк Пеннінгтон

Відповіді:


21

Я припускаю, що ви використовуєте Linux та пам. Затримка, ймовірно, викликана pam_faildelay.so. Перевірте конфігурацію пам’яті за /etc/pam.dдопомогою pam_faildelay, наприклад:

# Enforce a minimal delay in case of failure (in microseconds).
# (Replaces the `FAIL_DELAY' setting from login.defs)
# Note that other modules may require another minimal delay. (for example,
# to disable any delay, you should add the nodelay option to pam_unix)
auth       optional   pam_faildelay.so  delay=3000000

Для зміни часу відрегулюйте параметр затримки. Якщо ви хочете позбутися від затримки, ви можете видалити / прокоментувати повний рядок.

Іншим джерелом для затримки може бути pam_unix.so. Щоб вимкнути затримку, викликану pam_unix.soдодаванням nodelayпараметра, і необов'язково додати лінію, яка вимагає pam_faildelay.soдодати (змінну) затримку, наприклад:

auth       optional   pam_faildelay.so  delay=100000

2
Ніде не згадується про затримку /etc/pam.d/*. Найближче, що я бачу, це те, pam_tally.soщо дозволяє блокувати після деякої кількості спроб. Але я маю n /etc/login.defs, що може бути те, що мені потрібно.
Шон Дж. Гофф

@ ShawnJ.Goff pam_tally.soне викликає затримки, наскільки я знаю. Іншим джерелом для угоди може бути pam_unix.so- ви можете відключити її за допомогою nodelayопції - див. Linux.die.net/man/8/pam_unix для більш детальної інформації
Ulrich Dangel

1
Додавання цієї nodelayопції до pam_unix.soта додавання нового запису pam_faildelay.so delay=$some_numberдозволяє мені встановити все, що я хочу. Спасибі!
Шон Дж. Гофф

2
Запускаючи Fedora 23, мені довелося відключити pam_unix.soзатримку і почати використовувати цю, pam_faildelay.soяк каже @ ShawnJ.Goff. Однак у більшості pam.dконфігурацій написано " Цей файл генерується автоматично. Зміни користувача будуть знищені наступного разу, коли authconfig буде запущено. " Тож де я можу остаточно налаштувати затримку?
jozxyqk

11

Вам потрібно передати nodelayпараметр до auth pam_unix.so.

Залежно від того, як ви автентифікуєтесь, де вам потрібно встановити параметр. Однак у більшості дистрибутивів Linux є щось подібне, /etc/pam.d/system-authщо включено у всі різні файли.

Так, наприклад, у /etc/pam.d/system-authвас може бути рядок, який виглядає приблизно так:

auth            sufficient      pam_unix.so try_first_pass nullok

Це слід змінити на:

auth            sufficient      pam_unix.so try_first_pass nullok nodelay

pam_unix.soМодуль , що виконує аутентифікацію проти /etc/passwdі /etc/shadow. Якщо Youre використанням LDAP або який - або інший пароль бекенд, ви , ймовірно , все одно повинні бути установки nodelayна pam_unix.soтак це те , що управляє підказка (якщо pam_unix.soне в AUTH, він зазвичай просто передає пароль , отриманий він до наступного модуля).

Ви можете прочитати більше про це pam_unix.so, зробившиman pam_unix


На моїй системі system-authне існувало; це було /etc/common-auth. Спасибі!
Люк
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.