PAM значительно упрощает работу администраторов и разработчиков, поскольку сам вносит изменения в файл исходного кода и требует минимального взаимодействия. Таким образом, PAM можно также определить как обобщенный интерфейс прикладного программирования для служб, связанных с аутентификацией. Вместо того, чтобы переписывать код, он модифицируется сам по себе.
Интерфейсы модуля Pam
Auth: Это модуль, который отвечает за аутентификацию; он проверяет пароль.
Счет: После того, как пользователь прошел аутентификацию с правильными учетными данными, раздел учетной записи проверяет действительность учетной записи, например, срок действия или ограничения времени входа в систему и т. Д.
Пароль: Используется только для смены пароля.
Сессия: Он управляет сеансами, содержит учетную запись активности пользователя, создание почтовых ящиков, создает домашний каталог пользователя и т. Д.
Руководство
- Чтобы проверить, использует ли ваше приложение LINUX-PAM или нет, используйте следующую команду в вашем терминале:
$ ldd / bin / suКак мы видим в строке 2 выходных данных, существует пометка.файл so, подтверждающий запрос.
- Конфигурация LINUX-PAM находится в каталоге / etc / pam.d /. Откройте терминал вашей операционной системы Linux и перейдите в каталог pam, набрав команду: $ cd / etc / pam.d /
Это каталог, содержащий другие службы, поддерживающие PAM. Можно
проверьте содержимое, выполнив команду $ ls внутри каталога pam, как показано на скриншоте выше.если вы не нашли sshd в качестве службы, поддерживающей PAM, вам необходимо установить сервер sshd.
SSH (или безопасная оболочка) - это зашифрованный сетевой инструмент, предназначенный для того, чтобы позволить компьютерам / пользователям разного типа безопасно входить в систему на разных компьютерах удаленно по сети. Вам необходимо установить пакет openssh-server, что вы можете сделать, выполнив следующую команду в своем терминале.
$ sudo apt-get install openssh-serverОн установит все файлы, а затем вы сможете повторно войти в каталог pam и проверить службы и увидеть, что sshd был добавлен.
- Затем введите следующую команду. VIM - это текстовый редактор, который открывает простые текстовые документы для просмотра и редактирования пользователем. $ vim sshd
Если вы хотите выйти из редактора vim и не можете этого сделать, нажмите клавишу Esc и двоеточие (:) одновременно, чтобы перейти в режим вставки. После двоеточия введите q и нажмите Enter. Здесь q означает бросить.
Вы можете прокрутить вниз и увидеть все модули, которые были описаны ранее, с такими терминами, как «требуется», «включить», «требуется» и т. Д. Что это?
Они называются контрольными флагами PAM. Давайте рассмотрим их детали, прежде чем углубляться в гораздо больше концепций услуг PAM.
Флаги управления PAM
- Обязательный: Должен пройти к успеху. Это необходимость, без которой нельзя обойтись.
- Реквизит: Должен пройти, иначе никакие другие модули не запускаются.
- Достаточный: В случае неудачи игнорируется. Если этот модуль передан, никакие другие флаги проверяться не будут.
- По желанию: Его часто игнорируют. Используется только тогда, когда в интерфейсе только один модуль.
- Включать: Он извлекает все строки из других файлов.
Теперь общее правило для написания основной конфигурации выглядит следующим образом: тип службы control-flag module module-arguments
- УСЛУГА: Это название приложения. Предположим, ваше приложение называется NUCUTA.
- ТИП: Это тип используемого модуля. Предположим, здесь используется модуль аутентификации.
- КОНТРОЛЬНЫЙ ФЛАГ: Это тип используемого управляющего флага, один из пяти типов, описанных ранее.
- МОДУЛЬ: Абсолютное имя файла или относительный путь к PAM.
- МОДУЛЬ-АРГУМЕНТЫ: Это отдельный список токенов для управления поведением модуля.
Предположим, вы хотите отключить доступ пользователя root к любой системе через SSH, вам необходимо ограничить доступ к службе sshd. Кроме того, к сервисам входа в систему должен быть контролируемый доступ.
Есть несколько модулей, которые ограничивают доступ и предоставляют привилегии, но мы можем использовать модуль / lib / security / pam_listfile.так который чрезвычайно гибкий и имеет множество функций и привилегий.
- Откройте и отредактируйте файл / приложение в редакторе vim для целевой службы, войдя в / etc / pam.d / каталог сначала.
В оба файла необходимо добавить следующее правило:
требуется авторизация pam_listfile.так что \ onerr = удачный элемент = пользовательское чувство = запретить файл = / etc / ssh / deniedusersГде auth - модуль аутентификации, требуется флаг управления, файл pam_listfile.поэтому модуль дает привилегии deny для файлов, onerr = successed - это аргумент модуля, item = user - еще один аргумент модуля, который определяет списки файлов и содержимое, которое он должен проверять, sense = deny - еще один аргумент модуля, который будет, если элемент найдено в файле и file = / etc / ssh / deniedusers, который указывает тип файла, который содержит только один элемент в строке.
- Затем создайте еще один файл / etc / ssh / deniedusers и добавьте root как имя в нем. Это можно сделать, выполнив команду: $ sudo vim / etc / ssh / deniedusers
- Затем сохраните изменения после добавления к нему корневого имени и закройте файл.
- Используйте команду chmod, чтобы изменить режим доступа к файлу. Синтаксис команды chmod:
Здесь ссылки используются для указания списка букв, указывающих, кому давать разрешение.
Например, здесь можно написать команду:
$ sudo chmod 600 / etc / ssh / deniedusersЭто работает простым способом. Вы указываете пользователей, которым запрещен доступ к вашему файлу, в файле / etc / ssh / deniedusers и устанавливаете режим доступа для файла с помощью команды chmod. С этого момента при попытке доступа к файлу из-за этого правила PAM будет отказывать всем пользователям, перечисленным в файле / etc / ssh / deniedusers, в любом доступе к файлу.
Заключение
PAM обеспечивает поддержку динамической аутентификации для приложений и служб в операционной системе Linux. В этом руководстве указывается ряд флагов, которые можно использовать для определения результата работы модуля. Это удобно и надежно. для пользователей, чем традиционный пароль, и механизм аутентификации имени пользователя, и поэтому PAM часто используется во многих защищенных системах.