Робота з PAM

Матеріал з Wiki TNEU
Перейти до: навігація, пошук

PAM

Pluggable Authentication Modules (PAM, Plug-in аутентифікації) - Це набір роздільних бібліотек, які дозволяють інтегрувати різні низькорівневі методи аутентифікації у вигляді єдиного високорівневого API. Це дозволяє надати єдині механізми для управління, вбудовування прикладних програм в процес аутентифікації. Є однією з частин стандартного механізму забезпечення безпеки UNIX-сістем.PAM була вперше запропонована Sun Microsystems в жовтні 1995 року. В якості автономної інфраструктури, PAM вперше з'явився в Linux PAM, розробленої в RedHat Linux 3.0.4 в серпні 1996 року. В даний час PAM підтримується в операційних системах AIX, DragonFly BSD, FreeBSD, HP-UX, Linux, Mac OS X, NetBSD і Solaris.


Реалізації PAM

Як згадувалося раніше, бібліотека PAM не є чимось новим. Сьогодні багато операційні системи використовують PAM для аутентифікації, включаючи Solaris, GNU / Linux, FreeBSD, NetBSD16, Mac OS X 17 і HP-UX18. У OpenVMS19 не реалізована підтримка PAM, але там використовується подібна концепція ACME, так само OpenBSD20 не використовує PAM, але існує можливість установки. NetBSD та FreeBSD використовують загальну версію PAM. У ранніх версіях FreeBSD використовувався Linux-PAM, але в більш старіших версіях (5.x і 6.x) використовується OpenPAM. OpenPAM був спроектований взявши все найкраще з реалізацій Linux-PAM і Solaris. Ця реалізація має обмежена кількість модулів при установці за замовчуванням, але величезне кількість додаткових модулів можна знайти в колекції портів 21. У світі Linux ситуація дещо складніша. Основні дистрибутиви Linux використовують PAM, в тому числі Novell / Suse 22, Red Hat23, Debian24, Ubuntu2. Мабуть, Slackware Linux є єдиним дистрибутиви який не підтримує PAM. Не у всіх дистрибутивах використовуються остання версія Linux-PAM.

Принцип роботи

В основі лежить ядро Linux-PAM (бібліотеки, що знаходяться в каталозі / Lib/), яке відповідає за завантаження необхідних модулів на підставі конфигураційних файлів. Загальна послідовність дій така: 1. Додаток, наприклад login, робить первинне звернення до Linux- PAM. 2. Ядро Linux-PAM знаходить відповідний конфігураційний файл в каталозі / etc / pam.d / (або звертається до файлу / etc / pam.conf) і завантажує з нього список модулів, необхідних для обслуговування запитів. 3. Після цього ядро Linux-PAM завантажує модулі в тому порядку, в якому вони перераховані в конфігураційному файлі. Не всі модулі потрібно завантажувати - це залежить від параметрів конфігурації. 4. Деякі модулі організують діалог з користувачем через викликаючий додаток. В ході діалогу зазвичай видається запрошення на введення різних параметрів, наприклад, пароль. Якщо надані користувачем дані підходить, управління повертається ядру Linux- PAM, яке викликає наступний модуль. Зрештою процедура аутентифікації закінчується успіхом або невдачею. У випадку невдачі видається узагальнене повідомлення про помилку, яке, як правило, не розкриває причину такого результату. Це свого роду захисна міра, щоб зловмисники, які намагаються зламати систему, не змогли дізнатися нічого зайвого. У той же час всі модулі оснащені засобами журнальної реєстрації, що дозволяє системним адміністраторам виявляти джерела проблем і спроби порушення прав доступу. Існує два конфігураційних параметра компіляції модулів PAM. Перший з них змушує модуль використовувати або файлу / etc / pam.conf, або групу файлів в каталозі / etc / pam.d /. Другий підключає обидва конфігураційних механізму, причому записи, знайдені в каталозі / etc / pam.d /, мають пріоритет над записами / etc / pam.conf. рекомендується дотримуватися саме першого варіанту, так як він реалізований в більшості дистрибутивів Linux. Формат файлу / etc / pam.conf і файлів каталогу / etc / pam.d / неодинаковий. У першому випадку мається початкове поле, що визначає тип служби, тобто додаток, якого стосується ця запис. Відповідно, поле типу служби в цих файлах відсутня. У каталозі / etc / pam.d / перераховані всі PAM-додатки, які використовуються користуються в системі. У всіх цих файлах рядка, починається з символу #, вважаються коментарями.

Особисті інструменти
Простори назв

Варіанти
Дії
Навігація
Інструменти