Блокировка учетной записи с помощью pam_tally2 в RHEL6
Я использую pam_tally2 для блокировки учетных записей после 3 неудачных входов в систему для каждой политики, однако подключающийся пользователь не получает ошибку, указывающую на действие pam_tally2. (Через SSH.)
Я ожидаю увидеть с 4-й попытки:
Account locked due to 3 failed logins
Никакая комбинация обязательных или реквизитных или порядка в файле, кажется, не помогает. Это под Red Hat 6, и я использую /etc/pam.d/password-auth
, Блокировка работает должным образом, но пользователь не получает ошибку, описанную выше. Это вызывает много путаницы и разочарования, поскольку они не могут понять, почему аутентификация не проходит, если они уверены, что используют правильный пароль.
Внедрение следует Руководству NSA по безопасной конфигурации Red Hat Enterprise Linux 5. (стр.45) Я понимаю, что в PAM изменилось только то, что /etc/pam.d/sshd теперь включает /etc/pam.d/password-auth вместо system-auth.
Если ваша политика безопасности требует блокировки учетных записей после нескольких неправильных попыток входа в систему, используйте pam_tally2.so.
Чтобы принудительно заблокировать пароль, добавьте следующее в /etc/pam.d/system-auth. Сначала добавьте в начало строки авторизации:
auth required pam_tally2.so deny=5 onerr=fail unlock_time=900
Во-вторых, добавьте в начало строки счета:
account required pam_tally2.so
РЕДАКТИРОВАТЬ:
Я получаю сообщение об ошибке, сбрасывая pam_tally2 во время одной из попыток входа в систему.
user@localhost's password: (bad password)
Permission denied, please try again.
user@localhost's password: (bad password)
Permission denied, please try again.
(сбросить pam_tally2 из другой оболочки)
user@localhost's password: (good password)
Account locked due to ...
Account locked due to ...
Last login: ...
[user@localhost ~]$
2 ответа
Вам также нужно ChallengeResponseAuthentication yes
в /etc/ssh/sshd_config
,
Чтобы отобразить ошибку, pam
нужна функция разговора.
Эта опция указывает ssh предоставить более полную функцию диалога PAM, которая включает, помимо прочего, предоставление вывода и запрос произвольного ввода (вместо того, чтобы просто передать пароль sshd
).
Редактировать: вы хотите PasswordAuthentication no
чтобы убедиться, что ввод пароля всегда проходит через этот диалог PAM.
К сожалению, то, что вы ищете, недоступно. OpenSSH разрешает или запрещает только аутентификацию. Это не даст злоумышленнику или неуклюжему пользователю дополнительную информацию, и это стандартное поведение. PAM не знает о сетевой связи, которую использует OpenSSH, или о каком-либо другом поведении, специфичном для приложения. Это просто набор модулей для аутентификации.
В дополнение к этому, pam_tally2 не предоставляет никакой определенной пользователем директивы сообщения об ошибке, так что вы все равно можете полагаться только на то, что находится в вашем системном журнале.
Один из методов, который вы можете рассмотреть, - это изменение кодовой базы OpenSSH (не слишком сложно), но это выходит за рамки этого вопроса.