Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Особенности файловой системы Linux

Для организации и постоянного хранения информации на различных ее носителях ОС использует так называемую файловую систему.

Файловая система это методы и структуры данных, которые используются ОС для хранения файлов на диске или в его разделе.

У каждой ОС имеется своя файловая система, отличная от всех других. От надежности, эффективности и безопасности работы файловой системы во многом зависит качество функционирования ОС в целом.

В настоящее время во всех дистрибутивах ОС Linux для хранения информации активно используется файловая система ext2 (The Second Extended File System). Ext2 является файловой системой с богатыми функциональными возможностями, а тот факт, что ext2 была разработана специально для Linux, уже говорит о необходимости присутствия в ней средств контроля и безопасности.

Основные характеристики файловой системы ext2:максимальный объем файловой системы – 4 Тбайт; максимальная длина файла – 2 Гбайт; максимальная длина имени файла – 255 символов; присутствует поддержка трех ячеек времени изменения файла; также имеется возможность расширения файловой системы; присутствуют механизмы защиты информации и возможность изменять размер блока.

Права доступа

Рассмотрим ситуацию, когда пользователь А для хранения очень важных документов использует свой домашний каталог. Информация, хранящаяся в документах, является строго конфиденциальной, а по сему никто, кроме ее владельца, не должен получить к ней доступ. Пользователь В просто из любопытства, а может и со злобными намерениями, сделал попытку получить содержимое этих документов. Результатом попытки явилась ошибка с описанием ‘permission denied’ (‘доступ запрещен’). Появлением ошибки послужило отсутствие у пользователя B прав на чтение документов, принадлежащих пользователю А. Из приведенного примера можно сделать вывод, что права доступа позволяют ограничить доступ к определенной информации, или, проще говоря, оградить некоторую информацию от определенных пользователей.

Концепция файловой политики безопасности Linux строится на том, что любой файл системы имеет 3 категории владельцев: собственно владельца файла или, проще говоря, его создателя, какую-либо группу пользователей, в которую чаще всего входит владелец файла, и всех остальных. Таким образом, привилегированный пользователь или владелец файла, поскольку только он имеют возможность изменять права доступа, может построить политику файловой безопасности, определяя права отдельно для владельца файла, для группы пользователей и для всех остальных пользователей системы.

Права доступа к файлу или каталогу описываются тремя восьмеричными цифрами, самая левая из которых – права доступа владельца, средняя – права группы, правая – права доступа для всех остальных. Каждая из этих восьмеричных цифр представляет собой битовую маску из 3-х бит. Эти биты отвечают за право на чтение, запись и исполнение файла или каталога. Если бит установлен в 1 – операция разрешена, если в 0 – запрещена.

Для различных типов файлов значения прав доступа немного отличаются.

Право на чтение файла позволяет пользователю читать содержимое файла. Для каталога установка права на чтение позволяет читать файлы, находящиеся в этом каталоге.

Право на запись файла позволяет пользователю изменять его содержимое. Для каталога - создавать файлы внутри каталога.

Право на выполнение для файла позволяет запускать файл на выполнение в качестве программы. Для каталога установка этого права дает возможность пользователю входить в каталог и просматривать его содержимое.

Какие права доступа определены для каждого файла, можно узнать, набрав в терминале команду ls с ключом –l:

[root@app tmpdir]# ls –l

lrwxrwxrwx 1 root users 86 Фев 7 19:49 linkfile -> myfile

drwxr-xr-x 1 root users 4096 Фев 7 19:49 lnk

-rwxr----- 1 anotheruser users 97 Фев 7 19:48 myfile1

-rw-rw-r-- 1 root users 84 Фев 7 19:45 myfile2

 

В первой колонке представлены права доступа к файлу. Эта колонка содержит 10 символов. Первый из них слева говорит о том, к какому типу принадлежит файл, то есть является ли он файлом, каталогом, ссылкой и так далее. Далее слева направо представлены права доступа соответственно для владельца, для группы, и в конце – для всех остальных. Вторая колонка отображает количество жестких ссылок для этого файла. Третья указывает на имя владельца файла, четвертая – на имя группы-владельца, пятая колонка – размер файла, шестая – дата создания файла, седьмая - имя файла.

Как видно из примера, linkfile является символической ссылкой на файл myfile. Об этом говорит буква l в самой левой части колонки прав доступа. Для символических ссылок задание прав доступа возможно, но вряд ли имеет смысл. Дело в том, что символическая ссылка указывает на файл, который имеет свои права доступа, поэтому при доступе по символической ссылке проверяются права конечного файла. Файл lnk является каталогом, о чем говорит буква d в поле прав доступа. Поле владельца говорит о том, что владельцем каталога является пользователь root, а группа-владелец – users. Владелец имеет право на чтение файлов в каталоге, запись файлов и чтение содержимого каталога. Буква r (от слова Read) говорит о возможности для данного пользователя выполнять операции чтения файлов каталога, буква w (от слова Write) – о возможности записи файлов в каталог, последняя буква x (от слова eXecute) дает право на просмотр содержимого каталога. Пользователи, входящие в группу users, имеют право только на чтение файлов этого каталога и на получение его содержимого (буквы r и x), право на запись файлов в этот каталог у них отсутствует. Все остальные пользователи имеют те же права доступа, что и группа-владелец. Последние два файла myfile1 и myfile2 являются обычными файлами. Файл myfile2 имеет права чтения и записи для владельца (пользователя root) и группы users, все остальные имеют право только читать файл. Файл myfile1 имеет права на чтение, запись и выполнение для владельца, коим в данном случае является пользователь anotheruser. Группа users имеет право только на чтение этого файла, а все остальные пользователи вообще не могут выполнять какие-либо действия с этим файлом.

Изменение прав доступа к файлу осуществляется при помощи стандартной системной команды chmod. Права доступа при вызове команды могут задаваться как битовой маской в десятичном представлении, так и при помощи символов. Подробно использование этой команды описано на соответствующей man-странице.

Помимо прав доступа существуют так называемые модификаторы доступа. К модификаторам доступа относятся Sticky bit, SUID и SGID.

Sticky bit (S). Для файлов установка этого модификатора в современных дистрибутивах потеряла свое значение. Установка Sticky bit для каталога позволяет пользователю записывать файлы в этот каталог, но удалять из этого каталога он может только те файлы, владельцем которых он является, или в том случае, если ему явно заданы права записи.

SUID (s). Если файлу установлен модификатор доступа SUID и файл испол­няемый, то файл при запуске на выполнение получает не права пользова­теля, запустившего его, а права владельца файла. Такие приемы использу­ются для того, чтобы пользователь мог работать с некоторыми системными файлами, владельцем которых является привилегированный пользо­ватель. К примеру, для того, чтобы пользователь мог самостоятельно изме­нить свой пароль при помощи программы passwd, у этой программы, владельцем которой является пользователь root, должен быть установлен бит SUID, поскольку она работает с файлом shadow, модификацию которого имеет право производить только пользователь root.

SGID (s). Если файл имеет модификатор доступа SGID, то это анало­гично установке бита SUID, только вместо владельца файла используется группа, которой принадлежит файл. В случае установки SGID для каталога файлы, со­держащиеся в этом каталоге, будут иметь установки группы такие же, как у каталога.

[root@app mydir]# ls –l

-rwsr--r-x 1 anotheruser users 97 Фев 7 19:48 myfile1

 

В приведенном примере видно, что файл myfile1 имеет установленный бит SUID. При запуске файла любым пользователем системы (права на выполнение установлены для всех) файл будет выполнять действия от имени его владельца, в данном случае от имени пользователя anotheruser.

Модификаторы доступа при правильном использовании представляют очень мощное и гибкое средство. С другой стороны, неправильная настройка системы с использованием этих модификаторов может свести все действия по обеспечению безопасности к нулю. Особенно опасной представляется ситуация, когда тот же SUID установлен на исполняемый файл, принадлежащий привилегированному пользователю. При выполнении файла запустивший его пользователь получает право выполнять операции, доступные только пользователю root. Если даже файл не выполняет никаких системных операций и не работает с системными файлами, неправильное его использование может привести к очень неприятным последствиям.

Практическое применение рассмотренной информации приводится в приложении в примере 2.

Атрибуты файлов

В файловой структуре операционной системы всегда есть файлы, которые не должны изменяться в процессе функционирования системы, например, исполняемые файлы или файлы, которые должны быть откорректированы только однажды при настройке системы и не должны изменяться впоследствии, примером могут служить конфигурационные файлы. Есть и такие, которые могут быть дополнены, но не могут быть удалены или перезаписаны. Наличие средств, гарантирующих выполнение перечисленных условий, позволяет очень сильно повысить безопасность файловой системы, сохранив первоначальную целостность данных при различных типах атак.

Начиная с версии ядра 1.1, в файловой системе Linux помимо прав доступа присутствует поддержка расширенных атрибутов файлов. В последних версиях ядра 2.4 присутствует поддержка следующих атрибутов:

· Atime (A). Каждый раз, когда система обращается к файлу, происходит изменение ячейки времени последнего обращения к файлу. Установка атрибута atime позволяет избежать обновления времени последнего обращения и увеличить производительность файловой системы, особенно в тех случаях, когда обращения к файлам происходят очень часто. Однако, отсутствие времени последней модификации файла представляет угрозу изменения файла без последующей регистрации этого действия, что может угрожать безопасности.

· Sync (S). Установка атрибута sync позволяет сразу фиксировать все изменения, происходящие с файлом, на жестком диске синхронно с процессом, который осуществляет эти изменения. Это обеспечивает более безопасную работу, но может также снизить производительность из-за прямой постоянной записи на диск.

· Append (a). Этот атрибут позволяет открывать файл только с целью его дополнения. Усечение или перезапись файла запрещается. Для каталога установка этого атрибута означает, что удалять файлы, содержащиеся в этом каталоге, запрещено, хотя создание новых и модификация существующих возможны.

· Immutable (i). Файл с установленным атрибутом immutable не может подвергаться никаким изменениям вообще. Если установить этот атрибут для каталога, процессы смогут модифицировать файлы, находящиеся в нем, но не смогут создавать или удалять файлы. Для обеспечения безопасности имеет большое значение.

· No Dump (d). Установка атрибута no dump дает указание процессу, осуществляющему создание дампа, игнорировать этот файл и не включать его в создание резервной копии.

· Compress (c). Этот атрибут позволяет производить прозрачное сжатие файлов перед записью их на диск. При доступе к файлу он декомпрессируется и конечному процессу представляется уже в нормальном виде.

· Secure Deletion (s). Если этот атрибут установлен, то при удалении файла все блоки, в которых он располагался, заполняются нулями, то есть производится полное удаление файла, а не только его дескриптора.

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

Последние версии ядер, начиная с 2.4, игнорируют значения последних трех атрибутов: compress, secure deletion и undelete. Разработчики посчитали, что их дальнейшее использование не имеет смысла.

Для изменения и просмотра установленных атрибутов в стандартный системный пакет Linux входят две программы chattr и lsattr. Первая позволяет изменять атрибуты, добавлять или снимать их, вторая позволяет получить список установленных атрибутов. Пример работы программы lsattr показан ниже.

[root@app tmpdir]# lsattr myfile*

---i---------- myfile

----a--------- myfile1

 

В примере первый файл имеет установленный атрибут immutable, второй – атрибут atime. Подробно использование программ lsattr и chattr описывается в соответствующих man-руководствах.

При определенных условиях процессы, выполняемые от имени привилегированного пользователя, могут игнорировать эти атрибуты. С другой стороны, атрибуты ext2 учитываются некоторыми системными вызовами, такими как sys_open() для открытия файла или sys_truncate() для его отсечения, причем вне зависимости от идентификатора пользователя, вызываемого их процесса и прочих условий. Например, присутствие флага immutable в дескрипторе файла приводит к тому, что системные вызовы, касающиеся модификации файлов, просто перестают работать вне зависимости от других условий. Наличие данных атрибутов и специальных режимов работы ядра в Linux позволяет просто и эффективно укрощать абсолютные возможности, которыми обладает привилегированный пользователь. Цель комплексной настройки заключается в том, чтобы атрибуты накладывали ограничения для всех процессов независимо от их прав доступа и уровня привилегий. Они могут служить в качестве эффективной низкоуровневой защиты против атак на любой привилегированный процесс, в котором могут присутствовать какие-либо неизвестные уязвимости.

Однако, сама политика безопасности, построенная на установке атрибутов типа immutable и append, является только одной стороной монеты. Хотя эти атрибуты и предотвратят изменение защищенных ими файлов даже со стороны процессов, которые выполняются от имени привилегированного пользователя, в обычных обстоятельствах пользователь root все равно может убрать эти флаги и продолжить работу с файлами уже без этих атрибутов. Другими словами, ничто не мешает программе, исполняемой от имени пользователя root, перед началом работы выполнить проверку файла на наличие этих атрибутов и просто их отменить.

Дополняющим компонентом, или второй стороной монеты, можно считать специальные возможности ядер 2.4, позволяющие конфигурировать систему в режиме полной защиты файлов с атрибутами immutable и append до момента перезагрузки в однопользовательский режим. Для установки этих и множества других параметров ядра используется программа lcap (Linux Kernel Capabilities Bounding Set Editor).

Пример использования lcap

[root@app /]# lcap CAP_LINUX_IMMUTABLE

[root@app /]# lcap CAP_SYS_RAWIO

 

Первый вызов lcap с параметром CAP_LINUX_IMMUTABLE отменяет возможность у привилегированных процессов снимать флаги immutable и append. Второй вызов с параметром CAP_SYS_RAWIO запрещает низкоуровневый доступ к блочным устройствам, таким как диски, для предотвращения прямого доступа к файлам.

После того, как с помощью lcap был изменен какой-либо параметр ядра, его повторное изменение возможно только после перезагрузки системы. Эта особенность дает уверенность в том, что в системе не смогут незаметно производиться изменения без получения физического доступа и перезагрузки в однопользовательский режим.

Подробную документацию по программе lcap можно найти в соответствующих man-руководствах.

Практическое применение рассмотренной информации приводится в приложении в примере 3.

Механизм квот

Пожалуй, каждый администратор многопользовательской системы знаком с понятием «дисковой квоты». Попробуем разобраться, что же это такое, и какое отношение это понятие имеет к безопасности системы.

Дисковая квота – заранее определенное, фиксированное количество блоков дискового пространства и/или количество файловых дескрипторов, выделяемое каждому пользователю или группе пользователей для работы и хранения данных.

Использование дисковых квот позволяет ограничивать два аспекта дискового пространства: количество файловых дескрипторов, другими словами, количество файлов, которое может быть создано пользователем или группой пользователей, и часть от всего объема диска, которую может использовать пользователь или группа для хранения своих файлов. Идея состоит в том, чтобы определить для каждого пользователя или группы определенную часть от общего объема диска, чтобы ни при каких условиях пользователь не смог превысить тот объем используемой дисковой памяти, который ему выделен. Таким образом, устраняется проблема переполнения диска или нехватки дискового пространства для других пользователей и процессов.

Концепция разделения дискового пространства оперирует тремя понятиями: мягкое ограничение (soft limit), жесткое ограничение (hard limit) и период отсрочки (grace period).

Мягкое ограничение определяет максимальный размер дискового пространства, который может быть занят данными определенного пользователя или группы пользователей.

Жесткое ограничение работает, только если установлен период отсрочки grace period.

Если период отсрочки установлен в значение, отличное от нуля, то, когда занятый объем превышает объем мягкого ограничения, пользователю выдается сообщение, что его дисковое пространство на исходе. Если пользователь игнорирует это предупреждение и его дисковая квота продолжает превышать значение мягкого ограничения, то по истечении периода отсрочки дисковая квота считается исчерпанной. При этом обязательно должно быть установлено жесткое ограничение. Жесткое ограничение является абсолютным максимумом использования пространства файловой системы пользователем.

Управление механизмом квот осуществляет ядро операционной системы. В последних версиях Linux в стандартное ядро, идущее в дистрибутиве, поддержка квот включена по умолчанию. Если же производится сборка нового ядра, поддержку квот необходимо включить явно. Включение поддержки механизма квот осуществляется установкой параметра Quota Support (CONFIG_QUOTA) в разделе FileSystems при конфигурировании ядра до процесса сборки. Если такого параметра в ядре нет, это означает, что данная версия ядра не поддерживает механизм квот. В этом случае для поддержки квот на ядро необходимо наложить «заплатку» - специальное дополнение в стандартный код ядра. Заплатку можно загрузить с Интернета.

Поддержка квот распространяется на логический раздел диска и указывается при его монтировании. Для монтирования раздела используется файл /etc/fstab, в котором и задаются параметры, указывающие на использование квот. Это параметры usrquota и grpquota.

Для управления и настройки дисковых квот используется пакет quota. В современных дистрибутивах Linux этот пакет входит в стандартную поставку, но можно загрузить последнюю версию с Интернета.

На момент написания работы последней стабильной версией пакета quota была версия 3.11. Далее перечислены основные программы пакета quota-3.11, необходимые для настройки механизма квот:

quota – программа позволяет отображать текущее состояние механизма квот. По умолчанию отображается только квота пользователя, запустившего программу на выполнение. Эту программу может запускать любой пользователь системы.

convertquota – программа производит перевод файлов quota.user и quota.group в файлы aquota.user и aquota.group. Файлы quota.user и quota.group являются файлами пользовательских квот старого формата. Начиная с версии ядра 2.4.0, в Linux используется новый формат дисковых квот, который обладает, в отличие от старой версии, следующими преимуществами:

 - поддержка 32-битных идентификаторов пользователей (UID);

 - установка квоты для привилегированного пользователя;

 - установка дисковой квоты в байтах (в старой версии единицей дисковой квоты служил килобайт);

 - поддержка дисковой квоты для журналируемой файловой системы ReiserFS.

Для настройки новой версии механизма квот используются файлы aquota.user и aquota.group. Проще говоря, программа convertquota позволяет перевести файлы настройки квот из старого формата в новый, тем самым позволяя перейти к использованию новой версии с минимальной перенастройкой системы.

edquota – программа является редактором пользовательских квот. При вызове этой программы запускается текстовый редактор, установленный по умолчанию в системе. В этом редакторе можно сделать необходимые изменения в файле дисковой квоты.

qout – программа выводит статистику в килобайтах по пользовательским квотам для конкретной файловой системы. На момент написания работы программа quot, входящая в пакет версии 3.11, поддерживала только файловую системы XFS.

quotacheck – программа для проверки целостности дисковой квоты. При интенсивной работе механизма квот в файловой системе могут возникать различные неточности, связанные с использованием дискового пространства пользователей. Программа quotacheck проводит проверку файловой системы, определяя размер доступного и занятого пространства, производит построение таблицы текущего использования дискового пространства и сравнивает полученные данные с записями в файле дисковой квоты. Если имеются какие-то несоответствия, эти несоответствия устраняются путем исправления неверных значений в файлах дисковой квоты.

quotaon – программа для включения пользовательских квот на указанной файловой системе. До использования этой программы необходимо для требуемой файловой системы установить параметр usrquota и/или grpquota в файле /etc/fstab.

quotaoff – программа для выключения пользовательских квот на указанной файловой системе.

repquota – программа для вывода статистики по использованию дискового пространства для указанной файловой системы.

setquota – программа для редактирования пользовательских квот в режиме командной строки.

warnquota – программа для информирования пользователей о том, что их дисковое пространство на исходе. Информирование происходит путем посылки предупреждающего сообщения по электронной почте.

Более подробная информация о программах пакета quota может быть получена из соответствующих man-руководств.

Практическое применение рассмотренной информации приводится в приложении в примере 4.

Библиотека PAM

PAM (Pluggable Authentication Modules) – подгружаемые модули аутентификации. PAM является набором динамически подключаемых модулей, с помощью которых привилегированный пользователь может выбирать, как приложение должно осуществлять процесс аутентификации. Такая технология оказалась очень полезна, особенно при появлении различных методов аутентификации пользователя в системе. Эта технология имеет два основных преимущества. Первым преимуществом является модульность приложений, поддерживающих PAM. Это означает, что для приложения, поддерживающего PAM, появляется возможность изменить механизм аутентификации пользователей без перекомпиляции программы, как говорят «на ходу», достаточно изменить конфигурационный файл PAM. Второе преимущество использования PAM заключается в том, что администратор системы получает полную свободу в выборе схемы аутентификации для каждого отдельного приложения, причем эта схема может быть достаточно сложной и состоящей из нескольких этапов. Единственным неотъемлемым требованием для использования PAM является наличие изначально встроенных в приложение функций работы с библиотекой PAM. Сейчас практически все популярные программные продукты имеют встроенную поддержку PAM.


 

 

Рис. 2.3.1 Структурная схема взаимодействия приложения и библиотеки PAM


На рисунке 2.3.1 наглядно показано, как происходит взаимодействие некого приложения А с библиотекой PAM. Приложение взаимодействует с библиотекой PAM, причем приложению неизвестно, какие алгоритмы аутентификации используются при проверке подлинности пользователя. Все операции по аутентификации, то есть шифрование пароля и его проверку, производит библиотека PAM. Библиотека Linux-PAM (в середине рисунка) производит чтение параметров аутентификации приложения А из конфигурационного файла и загружает необходимые модули в память. Затем загруженные модули попадают в одну из четырех управляющих групп (расположенных в нижней части рисунка посередине) и помещаются туда в порядке появления их в конфигурационном файле (сначала модуль а в группу auth, за ним b и так далее). Эти модули при вызове библиотекой Linux-PAM выполняют различные задачи аутентификации для приложения А. Для передачи текстовой информации, запрашиваемой у пользователя, может быть использована встроенная функция обмена.

Все модули PAM по умолчанию располагаются в каталоге /lib/security, а конфигурационные файлы PAM – в каталоге /etc/pam.d. Имя каждого конфигурационного файла, расположенного в каталоге /etc/pam.d, совпадает с именем приложения, использующего его. Например, для программы login полный путь к конфигурационному файлу PAM будет иметь вид /etc/pam.d/login. Содержимое этого файла может иметь следующий вид:

#%PAM-1.0

auth required /lib/security/pam_securetty.so

auth required /lib/security/pam_stack.so service=system-auth

auth required /lib/security/pam_nologin.so

account required /lib/security/pam_stack.so service=system-auth

password required /lib/security/pam_stack.so service=system-auth

session required /lib/security/pam_stack.so service=system-auth

session required /lib/security/pam_limits.so

session optional /lib/security/pam_console.so

 

Каждая строчка файла означает, что для удачной аутентификации пользователь должен пройти через указанный модуль. Формат строки любого конфигурационного файла PAM имеет вид:

тип_модуля флаг_контроля путь_к_модулю параметры_модуля

 

Все модули библиотеки PAM по функциональному признаку делятся на четыре типа:

auth – этот тип модулей позволяет осуществлять два аспекта аутентификации. Во-первых, он выполняет саму аутентификацию, то есть устанавливает факт того, что пользователь действительно тот, за кого себя выдает. Это может быть запрос пароля или другие методы идентификации. Во-вторых, модуль может разрешить членство в группе (независимо от файла групп пользователей group) или определить другие привилегии, основываясь на информации о пользователе.

account – этот тип модулей выполняет функции, не связанные с аутентификацией напрямую. Обычно он используется для разрешения или запрещения доступа в зависимости от определенных условий, таких как время дня, количество пользователей, одновременно запросивших ресурс, различные параметры системы и так далее.

sessions – в основном этот тип используется для определения дополнительных действий, которые необходимо выполнить до или после предоставления сервиса пользователю. Сюда можно отнести протоколирование действий по открытию определенных файлов, монтирование каталогов, удаление временных файлов и так далее.

password – этот последний тип необходим для обновления опознавательного признака (например, того же самого пароля), который идентифицирует пользователя.

Наличие четырех управляющих типов говорит о том, что сама технология аутентификации с использованием библиотеки PAM способна предоставить не только «голый» способ установления подлинности пользователя, а еще и широкий спектр дополнительных возможностей по защите системы и предоставлению доступа к сервисам.

Флаг контроля определяет, как система будет себя вести при удачном или неудачном прохождении соответствующего модуля. Поскольку модули запускаются один за другим, то специальной расстановкой флагов можно определить значимость каждого из них. В качестве флагов могут быть использованы четыре ключевых слова:

required – этот флаг определяет, что для удачной аутентификации в целом необходимо успешное прохождение соответствующего модуля. Если при прохождении этого модуля система получила отказ, процесс аутентификации продолжается до тех пор, пока все модули не будут обработаны, и только потом выдается сообщение об ошибке.

requisite – эффект действия этого флага тот же, что и флага required, с одним различием: при получении отказа управление сразу возвращается приложению, прохождение остальных модулей не производится.

sufficient – весь процесс аутентификации считается успешным, если работа модуля с этим флагом была успешной и проверка на предшествующих модулях с флагом required не провалилась. Если работа модуля с этим флагом была неудачной, это не считается фатальной ошибкой.

optional – успешность модуля с этим флагом является необязательной и его использование не критично для аутентификации.

Путь к модулю содержит строку полного пути к модулю в файловой системе. Все модули хранятся в каталоге /lib/security, поэтому, например, путь к модулю pam_limits будет выглядеть как /lib/security/pam_limits.so.

Параметры модуля являются индивидуальным для каждого модуля и описываются в документации модуля.

Помимо основных конфигурационных файлов некоторые модули используют дополнительные файлы конфигурации, находящиеся в каталоге /etc/security. Каждый файл в этом каталоге предназначен для конкретной группы настроек:

time. conf – в этом файле можно ограничить время доступа пользователей с различных терминалов к различным сервисам. Эти настройки использует модуль pam_time, поэтому для вступления в силу временных ограничений необходимо добавить модуль pam_time в конфигурационный файл приложения, на которое должны распространяться эти ограничения.

pam_ env. conf – с помощью этого файла можно ограничить возможность изменения некоторых переменных среды пользователями. Этот файл используется модулем pam_env.

limits. conf – этот файл дает возможность ограничить размер core-файла, максимально допустимый размер файла, максимальное количество одновременно открытых файлов, запущенных процессов, количество одновременно открытых пользовательских сессий и так далее. Используется модулем pam_limits.

access. conf – с помощью этого файла можно определить различные параметры входа пользователя в систему, например, с каких компьютеров пользователь имеет доступ в систему. Этот конфигурационный файл используется модулем pam_access.

group. conf – в этом файле можно указать, к какой группе будет принадлежать процесс, запущенный пользователем в определенное время с определенного терминала. Файл читается модулями pam_time и pam_group.

console. perms – в этом файле имеется возможность указать права, назначаемые привилегированным пользователям при входе в систему и возвращаемые консоли при его выходе. Файл используется модулем pam_console.

Как уже неоднократно упоминалось, все модули располагаются в каталоге /lib/security. Кратко рассмотрим, какие модули входят в стандартный пакет PAM, и какие функции выполняет каждый из них:

 

Название модуля Тип модуля Описание
pam_ cracklib password Позволяет проверять пароль на стойкость, не является ли он, например, словом из словаря и т. д. В основном используется программами, задающими пароли. К полезным параметрам относятся: retry=N – задает количество попыток на исправление ошибки; diffok=N – определяет минимальное количество символов, которое должно быть изменено при смене пароля; minlen=N – задает минимальный размер пароля в символах; dcredit=N ucredit=N lcredit=N ocredit=N – задает минимальное количество цифр, строчных, прописных букв и других символов, которые должны присутствовать в пароле.
pam_deny любой Основное назначение этого модуля – запрет доступа при любых условиях.
pam_env auth Контролирует сохранность переменных среды. С помощью параметра conffile=S можно указать файл конфигурации, отличный от стандартного.
pam_ftp auth Предназначен для организации анонимного доступа. Получив в качестве имени пользователя последовательность ‘anonymous’, модуль в качестве пароля требует строку, похожую на почтовый адрес. К полезным параметрам относятся: users=XXX, XXX, … - разрешает анонимный вход для пользователей из этого списка; ignore – позволяет не обращать внимания, похож ли пароль на почтовый адрес.
pam_group auth Определяет группу-владельца процесса, запущенного аутентифицированным пользователем.
pam_lastlog auth Сообщает о месте и времени входа в систему. Для протоколирования используется файл wtmp, находящийся в каталоге /var/log. К полезным параметрам можно отнести: nodate noterm nohost silent – позволяют не выводить в сообщении дату, терминал, адрес машины или вообще ничего не записывать в файл; never – предоставляет возможность выдачи приветствия пользователя, впервые вошедшего в систему.
pam_limits session Позволяет задавать ограничения для пользователя на размер файлов, число одновременно открытых дескрипторов и т. д. Имеет параметр conf=S для указания альтернативного конфигурационного файла.
pam_listfile auth Предназначен для организации доступа на основе конфигурационных файлов наподобие /etc/ftpaccess. Возможные паарметры: onerr=succeed | fail – задает возвращаемое значение в случае неудачного поиска; sence=allow | deny – задает возвращаемое значение в случае удачного поиска; file=filename – позволяет указать имя файла со списком; item=user | tty | rhost | ruser | group | shell – определяет тип элементов в списке. Например, значение item=user означает, что в файле содержится список имен пользователей, имеющих возможность входа в систему.
pam_mail auth Позволяет уведомлять пользователя о вновь пришедшей почте. Полезные параметры: dir=S – указывает путь к каталогу почтовых очередей; noenv – отменяет установку переменной среды MAIL; close – разрешает уведомлять о новых письмах в почтовых ящиках пользователей с аннулированными бюджетами; nopen – запрещает вывод какой-либо почтовой информации для вновь заведенного бюджета.
pam_nologin auth Если файл /etc/nologin существует, в систему может войти только привилегированный пользователь root, остальным же при попытке входа выдается содержимое этого файла.
pam_permit любой Этот модуль дает доступ при любых условиях. Необдуманное использование этого модуля весьма опасно!
pam_ pwdb любой Замещает модули серии pam_unix. Этот модуль использует интерфейс библиотеки libpwdb, предназначенный для работы с пользовательскими базами данных, что повышает независимость системы аутентификации от способа хранения пользовательских данных. Полезные параметры: nullok – разрешает использование пустых паролей; md5 shadow bigcrypt – указывает используемые алгоритмы шифрования паролей.
pam_radius session Позволяет осуществлять аутентификацию через сервер RADIUS.
pam_rhosts_auth auth Механизм работы этого модуля основывается на анализе содержимого файлов hosts.equiv и.rhosts, используемых для аутентификации такими службами, как rlogin и rsh. Полезные параметры: no_hosts_equiv – позволяет игнорировать содержимое файла hosts.equiv; no_rhosts - позволяет игнорировать содержимое файла.rhosts; suppress – позволяет избежать запись малозначительных сообщений в системный журнал, в частности, при использовании флага sufficient.
pam_root_ok auth Позволяет организовать доступ привилегированного пользователя к сервису, минуя процедуру ввода пароля. Пользователь допускается к сервису, только если его системный идентификатор равен нулю (то есть привилегированный пользователь root).
pam_securetty auth Позволяет учитывать файл /etc/securetty. В файле /etc/securetty указаны терминалы, с которых привилегированный пользователь имеет доступ в систему.
pam_time account Накладывает временные ограничения на доступ в систему.
pam_warn auth, password Производит записи в системных журналах при определенных действиях.
pam_wheel auth Этот модуль позволяет получить права привилегированного пользователя только пользователям определенной группы. Полезные параметры: group=XXX – задает г
Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...