👥 Руководство по Linux PAM |

👥 Руководство по Linux PAM

Мануал

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

Linux-PAM – это аббревиатура Pluggable Authentication Modules, которая была разработана на основе дизайна Unix-PAM.

Она объединяет многочисленные низкоуровневые модули аутентификации с высокоуровневым API для обеспечения динамической аутентификации приложений.

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

Linux-PAM (также известный как “PAM”) часто поддерживается по умолчанию в современных вариантах Linux.

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

Вам не нужно постигать внутреннюю работу PAM.

PAM может существенно изменить безопасность вашей Linux-системы.

Неправильные настройки могут полностью или частично запретить доступ к вашей машине.

Интерфейсы Linux-PAM

Четыре различные группы управления решают задачи аутентификации PAM по отдельности.

Когда обычный пользователь запрашивает ограниченный сервис, эти группы обрабатывают различные части запроса.

  • Account: Этот модуль используется для определения того, является ли предоставленная учетная запись действительной в текущих обстоятельствах. В этой категории проверяется несколько факторов, включая срок действия учетной записи, время суток или наличие у пользователя авторизации на соответствующую услугу.
  • Authentication: В этом модуле личность пользователя подтверждается после проверки достоверности всей основной информации. Личность пользователя проверяется путем предоставления логина или любой другой части данных, которые должны быть известны только ему.
  • Password: модуль аутентификации должен работать в сотрудничестве с этим модулем, который помогает пользователю в обновлении паролей. Оба резона обеспечивают возможность применения надежных паролей.
  • Session: Этот модуль описывает действия, которые должны быть предприняты в начале и в конце сеансов, и он является не менее важным из модулей, составляющих порядок, с помощью которого общая стратегия PAM выполняет поставленную задачу. Сессия начинается, когда человек успешно прошел аутентификацию.

Как проверить программу Linux-PAM

Приложение или программа должны быть “PAM aware”, или специально собраны и скомпилированы для использования PAM.

Используйте команду “ldd”, чтобы узнать, была ли программа собрана с использованием библиотеки PAM, чтобы определить, является ли она “PAM-aware” или нет.

Когда выполняется команда “ldd /bin/su”, файл “libpam.so” выделяется во второй строке, поддерживающей запрос.

Проверка показана на скриншоте ниже:

Каталог /etc/pam.d/ содержит конфигурацию для LINUX-PAM.

Перейдите в каталог PAM, введя следующую команду в терминале вашей операционной системы Linux:

cd /etc/pam.d/

Предыдущий скрин показывает, что можно изучить содержимое, введя команду “ls” в каталоге PAM.

Как настроить программу Linux-PAM на Ubuntu

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

Результат обрабатывается PAM с помощью управляющих флагов.

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

Имеется четыре предварительно настроенных управляющих флага:

  • required: Чтобы аутентификация прошла успешно, ответ пакета должен быть успешным. Пользователь не будет предупрежден о неудачной попытке на этом этапе, пока все тесты пакета, использующие этот интерфейс, не завершат свою работу.
  • requisite: Согласно аргументам, если это сломается, то сломается и все остальное. PAM также будет завершен, и будет доставлено уведомление о неудаче.
  • sufficient: Если этот модуль работает успешно и все предыдущие необходимые модули также успешны, дальнейшие необходимые модули не вызываются.
  • optional: Указывает, что модуль не является существенным для того, чтобы запрос пользователя на обслуживание был успешным или неуспешным. Его значение учитывается только при отсутствии убедительных успехов или ошибок более ранних или более поздних модулей.
  • include: При совпадении параметра соответствия каждая строка файла конфигурации извлекается с помощью этого управляющего флага.

Просто введите следующую команду внутри каталога PAM:

vim sshd

Вы можете увидеть термины, которые мы описали ранее в следующем PAM-файле:

При написании основной конфигурации следует руководствоваться следующими общими рекомендациями:

  • Service: реальное имя программы
  • Type: интерфейс/контекст/тип модуля
  • Control-Flag: если модуль не выполнит свою задачу аутентификации, флаг управления определяет, как будет вести себя PAM-API
  • Module: Абсолютное или относительное имя пути к файлу PAM
  • Module-argument: Параметры модуля – это список маркеров, которые могут быть использованы для влияния на функциональность модуля

Если вы хотите предотвратить подключение пользователей root к любой системе по SSH, необходимо ограничить доступ к службе sshd.

Несколько модулей ограничивают доступ и предоставляют привилегии, но мы можем использовать невероятно адаптируемый и многофункциональный модуль /lib/security/pam listfile.so.

Перейдите в каталог /etc/pam.d/, откройте файл целевой службы и внесите необходимые изменения следующим образом:

sudo vim /etc/ssh/deniedusers

Ранее тип модуля был auth (или context).

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

Средства для разрешения или запрета сервисов на основе любого файла предоставляет модуль PAM listfile.so. onerr=succeed является аргументом модуля. item=user – аргумент модуля, описывающий содержимое файла, который необходимо проверить.

Опция модуля sense=deny указывает на действие, которое будет предпринято, если элемент находится в файле.

В противном случае запрашивается противоположное действие.

Файл с одним элементом в строке задается опцией модуля file=/etc/ssh/deniedusers.

После внесения необходимых разрешений сохраните изменения и закройте файл:

  sudo chmod 600 /etc/ssh/denieduser

После введения предыдущего правила PAM получит указание проверить файл /etc/ssh/deniedusers и запретить всем перечисленным пользователям использовать службы SSH и входа в систему.

Заключение

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

Он обладает большими возможностями, но он также довольно сложен для понимания и эксплуатации.

Для приложений и служб, работающих под Linux, PAM предлагает поддержку динамической аутентификации.

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

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

см. также:

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий