Я хотел бы настроить количество раз, когда пользователю будет предложено ввести пароль (попытки аутентификации) для входа, прежде чем сеанс будет прерван. Поддерживает ли PAM этот случай, если да, можете ли вы помочь мне с необходимой для этого конфигурацией?
решение1
Для PAM существует модуль счетчика входов, который называетсяpam_tally
который можно использовать для ведения подсчета попыток входа в систему и блокировки дальнейших попыток, если определенное количество попыток входа в систему оказывается неудачным.
Пример:
В Debian можно добавить следующие строки, чтобы /etc/pam.d/common-auth
предоставить пользователям три попытки входа в систему, прежде чем учетная запись будет заблокирована:
auth required pam_tally.so onerr=fail deny=3 no_magic_root
Это no_magic_root
предотвращает блокировку пользователя root.
КакпетерфКак было отмечено, эта unlock_time
опция может использоваться для указания количества секунд, по истечении которых заблокированная учетная запись будет автоматически разблокирована. Установив эту опцию на 1
, т. е. заблокировав учетную запись на одну секунду, попытка входа может быть прервана после указанного количества попыток, при этом пользователь все еще может повторить попытку (почти) немедленно.
Добавление следующей строки /etc/pam.d/common-account
сбросит счетчик входов при успешном входе в систему:
account required pam_tally.so reset no_magic_root
В Fedora обе строки можно добавить в /etc/pam.d/system-auth
.
Доступ к заблокированной user
учетной записи можно восстановить с помощью прилагаемой pam_tally
утилиты следующим образом:
$ pam_tally --user user --reset=0
решение2
Если вы пытаетесь контролировать, сколько раз кто-то будет запрошен, а не сколько раз он может не пройти аутентификацию, у вас могут возникнуть проблемы с управлением этим через PAM. Например, у ssh есть своя собственная конфигурация для этого:
NumberOfPasswordPrompts
Specifies the number of password prompts before giving up. The
argument to this keyword must be an integer. The default is 3.