Как работи и конфигурирайте PAM в Linux

Сигурността при управление на потребители в Linux среди е от съществено значение и винаги трябва да търсим най -добрите налични опции за тази цел, вътрешно или външно. Един от най -сигурните методи за повишаване на сигурността в Linux системите е да администрирате по много по -ефективен начин. начина, по който потребителите се удостоверяват в системата, това позволява само на тези потребители, които имат правилните идентификационни данни, да имат достъп до системата.

За този случай имаме функционалност, наречена Linux -PAM (Pluggable Authentication Modules for Linux - Pluggable Authentication Modules for Linux), която е разработена като набор от библиотеки, с които системният администратор ще може да избира начина, по който приложенията удостоверяване на потребители в локалната мрежа.
Когато съставяме приложение, съвместимо с PAM, можем да превключваме между използваните механизми за удостоверяване.

За да разберем тази концепция малко по -добре, можем да анализираме начина, по който потребителите в момента са удостоверени, преди всичко самоличността на потребителя се проверява при въвеждане на присвоената на потребителя парола, тези пароли се съхраняват във / etc / passwd файла, тогава привилегията се дефинира под формата на личен потребителски идентификатор, наречен UID, и членството в наличните групи, услуги и приложения са достъпни въз основа на личната и груповата идентичност на всеки потребител.

Библиотеката PAM се конфигурира локално в системния файл /etc/pam.conf или в поредица от файлове, намиращи се в /etc/pam.d/, за да удостовери потребителска заявка чрез модулите за удостоверяване, достъпни само локално.

Модулите са достъпни в директорията / lib / security или / lib64 / security. Синтаксисът на конфигурационния файл /etc/pam.conf се състои от списък с правила и всяко правило се намира на един ред, но може да бъде разширено с ред, завършващ „\“. Коментарите се предхождат от знаци „#“ и се простират до следващия край на избрания ред.

Форматът на всяко правило е колекция от раздели, разделени с интервали, първите три не са чувствителни към регистъра по следния начин:

 тип услуга контролен модул-път модул-аргументи
Използваните параметри са:

ОбслужванеТова е истинското име на приложението.
ТипТова е типът модул / контекст / интерфейс.
КонтролПозовава се на поведението на PAM API в случай, че модулът не може да изпълни задачата за удостоверяване
Пътят на модулаТова е абсолютното име на файла или относителния път на PAM.
модул-аргументиПоказва разделен с интервали списък на жетони с цел контролиране на поведението на модула.

Синтаксисът на всеки файл в /etc/pam.d/ е идентичен и се състои от редове със следната структура:

 въведете control-flag модул модул-аргументи
Например дефиниция на правило (без аргументи на модула), налична във файла /etc/pam.d/sshd, която не позволява влизане без root, когато /etc /nologin е налично, е:
 необходим акаунт pam_nologin.so

1. Как да управлявате PAM контроли и групи в Linux


Задачите за PAM удостоверяване са каталогизирани в четири отделни административни групи, всяка от които управлява различни аспекти на заявката на потребителя за ограничена услуга.

Модул е ​​свързан с един от тези типове групи за администриране по следния начин:

сметкаТази стойност предлага услугите за проверка на акаунта с аспекти като изтичане на паролата на потребителя или ако на потребителя е разрешен достъп до заявената услуга.
удостоверяванеС тази стойност потребителят се удостоверява и потребителските идентификационни данни могат да бъдат конфигурирани.
паролаТе позволяват на потребителите да актуализират пароли и са интегрирани с модули за удостоверяване на PAM
сесияТой отговаря за управлението на действията, извършени в началото и в края на сесията.

Обектните файлове на PAM се намират в следната директория / lib / security / или / lib64 / security в зависимост от използваната архитектура.

Контролните флагове, поддържани в PAM, са:

необходимС този индикатор повредата незабавно връща контрола на приложението, което показва естеството на повредата на първия модул.
задължителноПосочено е, че всички модули са необходими за правилното изпълнение на libpam и връщане на успеха на приложението
достатъчноТози модул води до незабавно и правилно връщане на приложението, в този случай повредата на този модул се игнорира.
по изборУспехът или неуспехът на този модул обикновено не се записва в този индикатор

Има и други стойности като:

включватТой включва всички редове от типа въз основа на конкретния конфигурационен файл като аргумент за тази контрола.
подстекаВключва всички редове от дадения тип от посочения конфигурационен файл като аргумент към този конкретен контрол.

2. Как да проверите дали програмата е съвместима с PAM в Linux


За да внедрим PAM в приложение, той трябва да е написан и компилиран специално за използване на PAM, за да проверим дали това приложение е съвместимо или не, например SSH, ще изпълним следното:
 sudo ldd / usr / sbin / sshd | grep libpam.so

Увеличете

3. Как да ограничите root достъп чрез SSH с PAM в Linux


PAM може да се използва за деактивиране на root потребителския достъп до система чрез SSH и програми за вход и това помага за увеличаване на опциите за сигурност на системата.

Ако искаме да направим това, ще използваме модула /lib/security/pam_listfile.so, който ни дава възможност да ограничим привилегиите на конкретни акаунти.

Етап 1
За да извършим това действие, ще имаме достъп до /etc/pam.d/ файла, както следва:

 sudo nano /etc/pam.d/sshd
ИЛИ
 sudo nano /etc/pam.d/login
Стъпка 2
Там ще видим следното:

Увеличете

Стъпка 3
За този случай ще добавим следните редове в края:

 auth изисква pam_listfile.so \ onerr = успешен елемент = потребителски разум = отказ на файл = / etc / ssh / отказани потребители

Увеличете

В този случай са добавени следните параметри:

автТова е типът модул, който да използвате
задължителноТова е контролен флаг, с който, ако модулът се използва, той трябва да бъде предаден или общият резултат ще се провали независимо от състоянието на други модули.
pam_listfile.soТова е модул, с който е разрешено да се отказват или разрешават услуги въз основа на произволен файл.
onerr = успехТова е аргументът на модула.
item = потребителТова е аргументът на модула, в който е посочено какво е изброено във файла и който трябва да бъде проверен.
смисъл = отричайТой се отнася до аргумента на модула, в който действието, което трябва да се извърши, е посочено, ако е намерено във файла, ако не, се иска обратното действие.
файл = / etc / ssh / отказани потребителиТова е аргументът на модула, в който е посочен файл, съдържащ по един елемент на ред.

Запазваме промените с помощта на клавишите Ctrl + O и излизаме от редактора с помощта на Ctrl + X.

След това трябва да създадем файла / etc / ssh / disabledusers и да добавим root потребителя в него и по -късно да присвоим съответните разрешения:

 sudo chmod 600 / etc / ssh / disabledusers

4. Как да разширено конфигурирате PAM в Linux


Специална стойност е стойността по подразбиране в PAM, така че всички стойности не се споменават изрично, следователно стойността N съответства на кода за връщане на функцията, извикана в модула, за който е дефиниран редът.
Действието има някои аргументи като:

игнорираВ случай на използване на това действие с куп модули, състоянието на връщане на модула не генерира код за връщане от приложението.
лошоПоказва, че кодът за връщане трябва да се разглежда като показателен за повредите на използвания модул.
умиратТой изпълнява същата функция като лошото, но е в състояние да прекрати стека от модули и PAM се връща незабавно към приложението.
добреТази стойност казва на PAM, че системният администратор ще използва този код за връщане директно към кода за връщане на пълния стек от модули.
СвършенИзпълнява същата роля като Ok, но може да прекрати стека на модулите
н(беззнаково цяло число) - Еквивалентно на ok, но може да прескочи следващите N модула в стека.
НулиранеИзползването на този параметър изчиства цялата памет на състоянието на стека на модула и се рестартира със следващия модул.

Всяка от базовите думи на PAM, задължителна; необходим; достатъчни и незадължителни, имат еквивалентен израз по отношение на синтаксиса […], с който ще бъде възможно да се напишат по -сложни правила като:

задължително[успех = добре new_authtok_reqd = ок игнориране = игнориране по подразбиране = лошо]
необходим[успех = добре new_authtok_reqd = ок игнориране = игнориране по подразбиране = умре]
достатъчно[успех = направено new_authtok_reqd = направено по подразбиране = игнориране]
по избор[успех = ок нов_authtok_reqd = ок по подразбиране = игнорирам]

Етап 1
Например, в CentOS 7 можем да видим правилата на PAM файла, като изпълним:

 sudo nano /etc/pam.d/postlogin

Увеличете

Стъпка 2
Ако имаме достъп до файла:

 sudo nano /etc/pam.d/smartcard-auth

Увеличете

За достъп до повече PAM помощ можем да изпълним:

 човек pam.d
С PAM ще бъде възможно да се създават или редактират правила за по -добро администриране на процесите за удостоверяване в Linux.

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave