Що таке PAM (Pluggable Authentication Modules) в Linux?


4

Що таке PAM (Pluggable Authentication Modules) в Linux? Я знаю, що він використовується для аутентифікації, але що це таке? Як це працює?

Я використовую CentOS 6.2.

Відповіді:


8

Коротко, PAM Модулі автентифікації, що підключаються .

Як випливає з назви, він використовує архітектуру стилю плагіна. PAM робить це так, що кожній програмі не потрібно реалізувати свій власний механізм аутентифікації. Замість цього він просто перевіряє стек PAM.

Оскільки PAM підключається, ви можете налаштувати стек аутентифікації, як вам подобається. Аутентифікація щодо LDAP, NIS, RADIUS, MySQL, Oracle, BerkelyDB, SQLite, RSA токенов, x509 сертифікатів, плоских файлів, одноразових паролів, двох факторів Google, фаз Місяця і т.д.

PAM також може ініціювати такі дії, як монтування файлових систем, створення каталогів, ведення журналу або будь-які інші дії, коли стек активований, завершується невдало або успішно.

PAM є автентифікаційним швейцарським армійським ножем, що дає нескінченну гнучкість для індивідуальної автентифікації в будь-якому випадку.

Без неї кожна програма повинна була б самостійно підтримувати всі ці можливості, і це був би сумний світ.


7

можливо, цей огляд дає вам все, що ви хочете знати, або хороший старт для ще більшого: http://www.linux-pam.org/Linux-PAM-html/sag-overview.html

Деякі цитати:

Linux-PAM займається чотирма окремими типами (управлінськими) завданнями. Це   є: аутентифікація управління; управління рахунками; сесії   управління; управління паролями.

    Here is a figure that describes the overall organization of Linux-PAM:

  +----------------+
  | application: X |
  +----------------+       /  +----------+     +================+
  | authentication-[---->--\--] Linux-   |--<--| PAM config file|
  |       +        [----<--/--]   PAM    |     |================|
  |[conversation()][--+    \  |          |     | X auth .. a.so |
  +----------------+  |    /  +-n--n-----+     | X auth .. b.so |
  |                |  |       __|  |           |           _____/
  |  service user  |  A      |     |           |____,-----'
  |                |  |      V     A
  +----------------+  +------|-----|---------+ -----+------+
                         +---u-----u----+    |      |      |
                         |   auth....   |--[ a ]--[ b ]--[ c ]
                         +--------------+
                         |   acct....   |--[ b ]--[ d ]
                         +--------------+
                         |   password   |--[ b ]--[ c ]
                         +--------------+
                         |   session    |--[ e ]--[ c ]
                         +--------------+

1
Це чудово пояснює. Ви можете перепрофілювати важливі частини.

ok, додав текст із посилання

Я використовую CentOS 6.2, всередині /etc/pam.d/ багато файлів, такі як login, sshd, passwd, reboot, vsftpd та багато іншого, моє питання - як налаштувати ці файли, для sshd я налаштував це і його працює нормально, для інших файлів, що я повинен робити ... я googled багато, але ніде точний відповідь ...
max

Можливо, ви могли б додати більш конкретні питання, що ви хотіли б зробити для вас первинного питання. Якщо його неспецифічна, @bahamat відповідь повинна бути тільки добре?

1
PAM не є запущеним демоном, а також серією викликів бібліотеки, які може зробити будь-який демон, коли він хоче аутентифікувати з'єднання.
Don Simon

5

PAM - це система, що допомагає програмам виконувати те, що я називаю "діяльність, пов'язану з аутентифікацією". Основними елементами PAM є бібліотека (libpam) і колекція модулів PAM, які є файлами бібліотеки (.so), що динамічно пов'язані з папкою / lib / security.

ПРИМІТКА

1.Backup всі дані та файли конфігурації PAM перед будь-якою зміною.

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

3. Правильно прочитайте синтаксис PAM.

Нижче наведені деякі приклади, будьте обережні при цьому.

Дозвольте будь-якому користувачеві користуватися су, щоб корітися без пароля.

Для цього відредагуйте файл /etc/pam.d/su і прокоментуйте будь-які рядки, що стосуються стека авторизації, замінивши їх на один рядок:

авторизації достатньо pam_permit.so

Щоб перевірити цей вхід як звичайний користувач, перевірте, чи можна тепер використовувати su - щоб перетворитися на root без надання пароля.

[raj@avi ~]$ su -
[root@avi ~]#

Вимкнути пряме ім'я користувача root

ПРИМІТКА: Перш ніж зробити це, переконайтеся, що у вас є принаймні один обліковий запис, який може використовувати su, щоб стати root, або ви вимкнете машину.

Щоб вимкнути вхід до коренів на віртуальних терміналах, відредагуйте файл / etc / pam / d / login і додайте запис.

auth потрібно pam_securetty.so

Цей модуль запобігає входу кореневого пристрою на термінальні пристрої, які не вказані в / etc / securetty.

tty1
#tty2
#tty3
tty4
tty5

Якщо ви коментуєте # tty2 і # tty3, то з віртуального терміналу tty2 і tty3 неможливо ввійти в систему як root.

Заборонити користувачам, що не є користувачами root, вимикати систему

Приймаючи в якості прикладу конфігурацію PAM команди halt, редагуйте файл /etc/pam.d/halt. подобається це

auth достатньо pam_rootok.so

auth потрібно pam_deny.so

Щоб перевірити цей логін як звичайний користувач і спробувати команду зупинити, ви отримаєте нижче помилку.

[test2@avi ~]$ halt
halt: Need to be root
[test2@avi ~]$

Це лише деякі приклади.

оригінал джерело


3
Схоже, ви скопіювали весь вміст цієї відповіді цього сайту . Якщо ви не маєте права копіювати цей вміст, наданий власником сайту, це в основному плагіат. Чи можете ви перефразувати свою відповідь своїми словами або принаймні правильно процитувати все, що ви не написали? Дякую.
slhck

1
Ні, його не потрібно видаляти; було б просто приємно додати посилання до джерела і спробувати не копіювати 1: 1 все . Можливо, ви можете просто перефразувати кілька уривків власними словами. Ви самі зробили скріншоти, чи не так? Вони, звичайно, приємно!
slhck
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.