18c0693f

Реализация для Linux


Рассмотрим, как можно настроить системную политику в нашей Linux-системе в сравнении с использованием PassFilt.dll под Windows NT. Во-первых, у вас должна быть установлена библиотека cracklib (или libcrack). Эта библиотека проверки паролей, разработанная Алеком Маффетом, является частью установочного комплекта систем Debian, Mandrake, RedHat и SuSE. Для проверки пароля нам необходимо только изменить текст файла, содержащего конфигурацию PAM. Это может быть один из двух возможных файлов:

/etc/pam.conf

или

/etc/pam.d/passwd

Строки в файле /etc/pam.conf, которые относятся к изменению пароля, выглядят примерно так.

passwd password required /lib/security/pam_cracklib.so retry=3 passwd password required /lib/security/pam_unix.so nullok use_authtok

Они логически подразделяются на пять колонок. Первая колонка содержит имя службы - имя программы, на которую распространяются инструкции, прописанные в оставшихся колонках. Файл /etc/pam.d/passwd содержит только четыре колонки, поскольку имя определяет службу passwd. Принятый стиль конфигурации определяет порядок, когда каждое имя службы помещается в отдельный файл, вместо того чтобы использовать один файл для нескольких служб. Независимо от стиля конфигурирования, у службы может быть несколько строк описания. Это выглядит как stacking modules для службы. Ниже приведен пример файла /etc/pam.d/passwd со стеком модулей.

password required /lib/security/pam_cracklib.so retry=3 password required /lib/security/pam_unix.so nullok use_authtok

Первая колонка показывает тип модуля, которому соответствует строка. Строка может содержать один из четырех типов (нас интересует изменение модуля, который управляет изменением пароля).



Следующая колонка определяет control для службы, или описывает, как должно поддерживаться ее выполнение. Успешное выполнение означает, что служба выполнила функцию, например такую, как изменение пароля пользователя. Ошибка выполнения означает, что служба не передает корректные данные, такие как пароль пользователя. Ниже приводятся функции управления.



Следующая колонка содержит параметр module path для библиотеки аутентификации, которую следует использовать. Этот параметр должен содержать полное имя файла для библиотеки аутентификации. Мы будем использовать cracklib, поэтому убедитесь, что в этой колонке стоит pam_cracklib.so.

Последняя строка содержит аргументы, которые передаются библиотеке аутентификации. Возвращаясь к первому примеру с файлом /etc/pam.conf, мы видим, что модуль pam_cracklib.so должен успешно завершить свою работу с аргументом retry=3, в то время как пользователь меняет пароль с использованием программы passwd.

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