Система безопасности PAM изнутри Иван Скляров Хакер, номер #086, стр. 086-112-3 [контрольные флаги] В Linux-PAM существует всего четыре флага контроля: 1. required. Если модуль выдал ошибку, то цепочка продолжит выполняться, но запрос будет отклонен. 2. requisite. Если произошла ошибка модуля, то цепочка немедленно заканчивается, и запрос отклоняется. 3. sufficient. Если модуль выполнился нормально, и никакой предыдущий модуль в цепочке не потерпел неудачу, то цепочка заканчивается, и принимается положительное решение о предоставлении доступа. В случае ошибки модуль игнорируется, и выполняется остальная часть цепочки. 4. optional. Модуль с этим флагом не критичен для аутентификации и используется как дополнительный, то есть модуль будет выполнен, но его результат игнорируется. В OpenPAM существует еще один флаг - binding, который по действию похож на sufficient, но в случае когда модуль выдает ошибку, запрос будет отклонен, хотя остальная часть цепочки выполнится (флаг sufficient игнорирует модуль в случае ошибки). [стандартные модули] В системе в обязательном порядке присутствует множество стандартных модулей PAM, которые администратор может использовать для построения цепочек. Список стандартных модулей можно увидеть с помощью команды: % find / -name pam_*.so Рассмотрим некоторые модули и заодно укажем тип, который они могут принимать: pam_access.so. Тип account. Предоставляет или запрещает доступ на основании файла /etc/security/access.conf. Строки этого файла имеют следующий формат: «права:пользователи:откуда», где: Права - знак «+» (разрешить) или знак «-» (запретить). Пользователи - ALL, имя пользователя или пользователь@узел, где узел соответствует имени локальной машины, иначе запись игнорируется. Откуда - одно или несколько имен файлов терминалов (без префикса /dev/), имена узлов, доменные имена (начинающиеся с точки), IP-адреса (с точкой на конце, например, 172.85.10.10.), ALL или LOCAL. Параметров данный модуль не имеет. pam_cracklib.so. Тип password. Проверяет пароли на стойкость. Имеет необязательные параметры: debug - заносит отладочную информацию в файл журнала; retry=N - число попыток ввода пароля, по исчерпанию которых возвращается ошибка (по умолчанию дается одна попытка); diffok=N - должно быть изменено минимум N символов при смене пароля; minlen=N - минимальный размер пароля; dcredit=N, ucredit=N, lcredit=N, ocredit=N - в пароле должно присутствовать минимум N цифр, строчных, прописных букв и других символов. pam_deny.so. Тип любой. Данный модуль на любой запрос отвечает PAM_AUTH_ERR. Бывает полезен для быстрого отключения сервиса (если добавить в начало цепочки) или для завершения цепочки sufficient модулей. pam_lastlog.so. Тип auth. Заносит в файлы utmp, utmpx, wtmp, wtmpx, lastlog и lastlogx сведения о том, когда и откуда пользователь вошел в систему. Имеет параметры: debug - записывать подробную информацию в syslog; nodate, noterm, nohost, silent - отбрасывать дату, имя терминала, имя хоста или все вместе; never - если пользователь первый раз входит в систему, то его приветствуют таким сообщением: «Добро пожаловать...». |