Объединение модулей pam_unix и pam cracklib типа password в стек

В этом подразделе мы проанализируем взаимодействие модулей pam_cracklib и pam_unix в листинге 5.6. Приведем еще раз соответствующий фрагмент файла /etc/ раш.d/passwd:

password required /lib/security/pam_cracklib.so retry=3

type=

password sufficient /lib/security/pam_unix.so use_authtok

Описание

Таблица 5.7. Аргументы модуля pam_cracklib

md5 shadow nis password required /lib/security/pam_deny.so

В первой записи вызывается модуль pam_cracklib, который отображает приглашение на ввод нового пароля (вспомните, что модуль pam_unix типа auth отвечает за ввод пользователем старого пароля для аутентификации). После того как пользователь ввел пароль, выдается просьба повторить пароль. По завершении этой процедуры модуль pam_cracklib проверяет, можно ли принять такой пароль. Если проверка прошла успешно, новый пароль передается модулю pam_unix, который вызывается с аргументом use_authtok, что означает прием нового пароля от предыдущего модуля. Полученный пароль записывается в соответствующую базу данных: в файл /etc/shadow (аргумент shadow) либо в базу данных главного сервера NIS (аргумент nis). Обратите внимание на то, что модулю pam_unix соответствует управляющий флаг sufficient. Это означает, что в случае успешного завершения следующий модуль стека не вызывается. Если же очередь дойдет до модуля pam_deny, пароль будет отвергнут.

В данном примере, как и в большинстве других, вместо стандартной функции crypt () используется алгоритм хеширования паролей MD5. Это существенно усложняет задачу утилитам типа Crack. Кроме того, появляется возможность потребовать более длинные пароли — 20, 30 символов и даже больше. В следующем примере (листинг 5.8) необходимая длйна пароля равна 20. Задается также аргумент type, чтобы привлечь внимание пользователей.

Листинг 5.8. Задание ограничения на длину пароля в файле /etc/раш. d/passwd

password required /lib/security/pam_cracklib.so minlen=20\

retry=3 type=SECRET password required /lib/security/pam_unix.so md5 use_authtok

Предупреждение

Внося подобные изменения, нужно поменять все аналогичные вызовы модулей pam_unix и pam_cracklib типа passwd. В Red Hat 7.2 это означает редактирование как минимум файлов chfn, chsh, login, rlogin, su и xdm в каталоге /etc/pam.d.

Теперь посмотрим, что произойдет, когда пользователь Мэри (тагу) попытается ввести новый пароль (листинг 5.9). Ей даются три попытки (аргумент retry=3 в листинге 5.8). На первый взгляд кажется, будто вводимые пароли вполне корректны. Но Мэри просто не знает об изменении модуля РАМ и вводит слишком короткие пароли. Когда администратор сообщает ей о том, что минимальная длина пароля составляет 20 символов, Мэри, естественно, делает круглые глаза ("Вы в своем уме?! Я никогда не запомню такой пароль!"). В таких ситуациях, конечно же, нужно составлять идентификационную фразу (листинг 5.10).

Листинг 5.9. Неудачная попытка сменить пароль $ passwd

Changing password for шагу (current) UNIX password: j3niKy New SECRET password: Rt!72g BAD PASSWORD: is too simple New SECRET password: 8хв$Н BAD PASSWORD: is too simple New SECRET password: P5-+yh BAD PASSWORD: is too simple?

New SECRET password: 8хв$Н

passwd: Authentication token manipulation error $

Листинг 5.10. Удачная смена пароля $ passwd

Changing password for тагу

(current) UNIX password: j3niKy

New SECRET password: I need a t%$3+ raise

Retype new SECRET password: I need a t%$3+ raise

passwd: all authentication tokens updated successfully $

Заметьте, что сообщение, отображаемое модулем pam_cracklib, выглядит немного не так, как обычно: "New SECRET password:" вместо "New UNIX password:". Это изменение не затрагивает сообщение (current) UNIX password:, выводимое модулем pam_unix, так как последний не поддерживает аргумент type.

Примечание

Пароли, показанные в листингах 5.9 и 5.10, не отображаются на экране. Они показаны здесь лишь для наглядности.

Отметим также, что 20-символьный (с учетом пробелов) пароль можно было сделать короче, так как по умолчанию аргументы "dcredit, ucredit, lcredit и ocredit равны единице каждый. В данном случае они позволяют укоротить пароль на четыре символа.


Ведете ли вы блог?

Да
Нет
Планирую


Результаты опроса

Новостной блок