Как заблокировать пользователей после 5 неудачных попыток входа?
Я собрал несколько дистрибутивов / версий, как это сделать, но я не могу проверить это.
RHEL4 : добавив:
auth required /lib/security/$ISA/pam_tally.so no_magic_root
account required /lib/security/$ISA/pam_tally.so deny=5 reset no_magic_root
чтобы:
/etc/pam.d/system-auth
/etc/pam.d/login
/etc/pam.d/sshd
RHEL4 : ???
SLES9 : добавив:
auth required pam_tally.so no_magic_root
account required pam_tally.so deny=5 reset no_magic_root
чтобы:
/etc/pam.d/login
/etc/pam.d/sshd
SLES11 или SLES10 : добавив:
auth required pam_tally.so deny=5 onerr=fail per_user no_lock_time
чтобы:
/etc/pam.d/common-auth
И, добавив:
account required pam_tally.so
чтобы:
/etc/pam.d/common-account
ВОПРОС : Может ли кто-нибудь подтвердить, что это рабочий / хороший способ блокировки пользователей после 5 неудачных попыток входа? ИЛИ КАК ЭТО СДЕЛАТЬ?
пс:
/sbin/pam_tally --user USERNAME --reset
полезно сделать перед этим? Могу ли я заблокировать пользователя root с этим? Редактирование PAM - очень чувствительная вещь, потому что люди могут заблокировать себя от сервера (я имею в виду, например, пользователя root). Любые намеки при этом?
no_magic_root
Ответы:
Возможно, вы захотите взглянуть на fail2ban. Можно настроить блокировку учетной записи после заданного количества неудачных попыток, а затем разблокировку через заданный промежуток времени.
http://www.fail2ban.org/wiki/index.php/Downloads
Если вы действительно серьезно относитесь к использованию
pam_tally
, вы, вероятно, хотите использоватьpam_tally2
вместо этого. Должен быть установлен с любым текущим пакетом PAM. Вы можете сделать man pam_tally2, чтобы увидеть, как его использовать.Вот пример, чтобы вы начали. Добавьте следующее в начало раздела auth в файле pam
/etc/pam.d/password-auth
:В том же файле добавьте это в раздел аккаунта:
Приведенные выше параметры следующие:
file=/var/log/tallylog
- Файл журнала по умолчанию используется для сохранения количества входов в систему.deny=3
- Запретить доступ после 3 попыток и заблокировать пользователя.even_deny_root
- Политика также распространяется на пользователя root.unlock_time=1200
- 20 минут (60 секунд * 20 минут = 1200 секунд)Если вы не хотите блокировать root, замените even_deny_root на magic_root .
Это сомнительно, если вы хотите заблокировать учетную запись root. Вместо этого вы можете захотеть сделать что-то вроде этого, где корневая учетная запись может быть заблокирована, но только на более короткий срок, чем другие учетные записи:
Это блокирует учетную запись root только на одну минуту, все остальные - обычные 1200 секунд.
Пример файла журнала будет выглядеть следующим образом:
Вы можете узнать о заблокированных учетных записях, используя команду pam_tally2:
Вы можете разблокировать ограничение следующим образом:
Теперь аккаунт отображается в pam_tally2 примерно так:
Ссылки
источник
pam_tally2
сначала смутил меня, но я понял это после следующегоman pam_tally2
-приведенная выше формулировка немного сбивает с толку, потому что вы на самом деле только добавляете
pam_tally2.so
строку.так что вы можете отредактировать
/etc/pam.d/login
и добавить его ниже всех другихauth
строк:или, если у вас есть,
/etc/pam.d/system-auth
вы можете добавить его там.Никакой перезагрузки или перезагрузки какого-либо сервиса не требуется - он сразу становится активным для новых локальных входов в систему.
примечание: если вы хотите
pam_tally2
обратиться кsshd
другим удаленным службам, а также к ним, вам также необходимо добавить строку/etc/pam.d/sshd
и / или/etc/pam.d/password-auth
чтобы проверить работоспособность, сделайте неудачную попытку входа в систему с действительным пользователем, затем запустите
pam_tally2
например, для пользователя с именем
jacob
run:и он выведет что-то вроде:
если слишком много попыток входа в систему не удается и учетная запись заблокирована, вы можете вручную разблокировать учетную запись:
источник