Cum funcționează și configurează PAM în Linux

Securitatea atunci când gestionăm utilizatorii în medii Linux este esențială și trebuie să căutăm întotdeauna cele mai bune opțiuni disponibile în acest scop, fie intern, fie extern. Una dintre cele mai sigure metode de creștere a securității în sistemele Linux este administrarea într-un mod mult mai eficient. Completează modul în care utilizatorii sunt autentificați în sistem, acest lucru permite accesul la sistem numai acelor utilizatori care au acreditări corecte.

Pentru acest caz avem o funcționalitate numită Linux-PAM (Pluggable Authentication Modules for Linux - Pluggable Authentication Modules for Linux) care a fost dezvoltată ca un set de biblioteci cu care va fi posibil ca administratorul de sistem să selecteze modul în care aplicațiile autentificați utilizatorii din rețeaua locală.
Când compilăm o aplicație compatibilă cu PAM, putem comuta între mecanismele de autentificare utilizate.

Pentru a înțelege acest concept puțin mai bine, putem analiza modul în care utilizatorii sunt autentificați în prezent, în primul rând identitatea utilizatorului este verificată atunci când este introdusă parola atribuită utilizatorului, aceste parole sunt stocate în fișierul / etc / passwd, atunci privilegiul este definit sub forma unui identificator de utilizator personal numit UID și apartenența la grupurile, serviciile și aplicațiile disponibile sunt disponibile pe baza identității personale și de grup a fiecărui utilizator.

Biblioteca PAM este configurată local în fișierul de sistem /etc/pam.conf sau într-o serie de fișiere situate în /etc/pam.d/ pentru a autentifica o cerere de utilizator prin modulele de autentificare disponibile numai local.

Modulele sunt disponibile în directorul / lib / security sau / lib64 / security. Sintaxa fișierului de configurare /etc/pam.conf este alcătuită dintr-o listă de reguli și fiecare regulă este situată pe o singură linie, dar poate fi extinsă cu o linie care se termină `\ '. Comentariile sunt precedate de semnele „#” și se extind la următorul capăt al liniei selectate.

Formatul fiecărei reguli este o colecție de file separate prin spații, primele trei nu sunt sensibile la majuscule și minuscule astfel:

 tip de serviciu control modul-cale modul-argumente
Parametrii utilizați sunt:

ServiciuEste numele real al aplicației.
TipEste tipul de modul / context / interfață.
ControlSe referă la comportamentul API-ului PAM în cazul în care modulul nu poate executa sarcina de autentificare
Calea modululuiEste numele fișierului absolut sau calea relativă a PAM.
argumente-modulIndică o listă separată de spațiu de jetoane în scopul controlului comportamentului modulului.

Sintaxa fiecărui fișier din /etc/pam.d/ este identică și constă din linii cu următoarea structură:

 tastați control-flag module module-arguments
De exemplu, o definiție de regulă (fără argumente de modul) disponibilă în fișierul /etc/pam.d/sshd, care nu permite conectări non-root atunci când este disponibil / etc / nologin este:
 cont necesar pam_nologin.so

1. Cum să gestionați comenzile și grupurile PAM pe Linux


Sarcinile de autentificare PAM sunt catalogate în patru grupuri de administrare separate, fiecare dintre aceste grupuri gestionând diferite aspecte ale cererii unui utilizator pentru un serviciu restricționat.

Un modul este asociat cu unul dintre aceste tipuri de grupuri de administrare în felul următor:

contAceastă valoare oferă serviciile pentru verificarea contului cu aspecte precum expirarea parolei utilizatorului sau dacă utilizatorului i se permite accesul la serviciul solicitat.
autentificareCu această valoare, un utilizator este autentificat și pot fi configurate acreditările utilizatorului.
parolaAcestea permit utilizatorilor să actualizeze parolele și sunt integrate cu module de autentificare PAM
sesiuneAceasta este însărcinată cu gestionarea acțiunilor desfășurate la începutul și la sfârșitul unei sesiuni.

Fișierele obiect PAM sunt situate în următorul director / lib / security / sau / lib64 / security, în funcție de arhitectura utilizată.

Semnalizatoarele de control acceptate în PAM sunt:

necesarCu acest indicator eșecul returnează instantaneu controlul aplicației, indicând natura eșecului primului modul.
necesarEste indicat faptul că toate modulele sunt necesare pentru ca libpam să fie executat corect și să returneze succesul aplicației
suficientAcest modul duce la o returnare imediată și corectă a aplicației, în acest caz eșecul acestui modul este ignorat.
opționalSuccesul sau eșecul acestui modul nu sunt în general înregistrate în acest indicator

Există și alte valori precum:

includeAcesta include toate liniile de tip bazate pe fișierul de configurare specific ca argument pentru acest control.
subpachetInclude toate liniile de tipul dat din fișierul de configurare specificat ca argument pentru acest control specific.

2. Cum să verificați dacă un program este compatibil cu PAM în Linux


Pentru a implementa PAM într-o aplicație, trebuie să fi fost scris și compilat special pentru a utiliza PAM, pentru a verifica dacă acea aplicație este sau nu compatibilă, de exemplu, SSH, vom executa următoarele:
 sudo ldd / usr / sbin / sshd | grep libpam.so

MARI

3. Cum se restricționează accesul root prin SSH cu PAM pe Linux


PAM poate fi utilizat pentru a dezactiva accesul utilizatorului root la un sistem prin intermediul programelor SSH și de conectare și acest lucru ajută la creșterea opțiunilor de securitate ale sistemului.

Dacă vrem să facem acest lucru, vom folosi modulul /lib/security/pam_listfile.so care ne oferă opțiunea de a limita privilegiile anumitor conturi.

Pasul 1
Pentru a efectua această acțiune, vom accesa fișierul /etc/pam.d/ după cum urmează:

 sudo nano /etc/pam.d/sshd
SAU
 sudo nano /etc/pam.d/login
Pasul 2
Acolo vom vedea următoarele:

MARI

Pasul 3
Pentru acest caz, vom adăuga următoarele linii la sfârșit:

 autentificare necesară pam_listfile.so \ onerr = succes item = user sense = refuz fișier = / etc / ssh / denusersers

MARI

În acest caz, au fost adăugați următorii parametri:

autentificareEste tipul de modul de utilizat
necesarEste un indicator de control cu ​​care, dacă este utilizat modulul, acesta trebuie trecut sau rezultatul general va eșua indiferent de starea altor module.
pam_listfile.soEste un modul cu ajutorul căruia este permis să refuze sau să permită servicii bazate pe un fișier arbitrar.
onerr = reușeșteEste argumentul modulului.
item = utilizatorEste argumentul modulului în care este indicat ceea ce este listat în fișier și care trebuie verificat.
sense = negaSe referă la argumentul modulului în care se specifică acțiunea care trebuie efectuată dacă se găsește în fișier, dacă nu, se solicită acțiunea opusă.
file = / etc / ssh / denususersEste argumentul modulului în care este specificat un fișier care conține un element pe linie.

Salvăm modificările folosind tastele Ctrl + O și ieșim din editor folosind Ctrl + X.

După aceasta, trebuie să creăm fișierul / etc / ssh / denusersers și să adăugăm utilizatorul root în acesta și să atribuim ulterior permisiunile respective:

 sudo chmod 600 / etc / ssh / denususers

4. Cum se configurează Advanced PAM pe Linux


O valoare specială este valoarea implicită în PAM, deci toate valorile nu sunt menționate în mod explicit, prin urmare, valoarea N corespunde codului de returnare a funcției invocate în modulul pentru care este definită linia.
Acțiunea are câteva argumente, cum ar fi:

ignoraÎn cazul utilizării acestei acțiuni cu un teanc de module, starea de returnare a modulului nu generează un cod de returnare din aplicație.
răuIndică faptul că codul de returnare trebuie considerat ca indicativ al defecțiunilor modulului utilizat.
a muriAcesta îndeplinește aceeași funcție ca și rău, dar este capabil să oprească stiva de module și PAM revine imediat la aplicație.
BineAceastă valoare îi spune lui PAM că administratorul de sistem va folosi acest cod de returnare direct la codul de returnare al stivei complete de module.
TerminatÎndeplinește același rol ca Ok, dar poate termina stiva de module
N(un întreg nesemnat) - Echivalent cu ok, dar poate sări peste următoarele N module din stivă.
ResetațiUtilizarea acestui parametru șterge toată memoria stării stivei de module și repornește cu următorul modul stivuit.

Fiecare dintre cuvintele de bază PAM, necesare; necesar; suficient și opțional, au o expresie echivalentă în ceea ce privește sintaxa […], cu care va fi posibil să scriem reguli mai complexe, cum ar fi:

necesar[succes = ok new_authtok_reqd = ok ignore = ignora implicit = rău]
necesar[succes = ok new_authtok_reqd = ok ignore = ignore default = die]
suficient[succes = făcut new_authtok_reqd = făcut implicit = ignoră]
opțional[succes = ok new_authtok_reqd = ok implicit = ignoră]

Pasul 1
De exemplu, în CentOS 7 putem vedea regulile fișierului PAM executând:

 sudo nano /etc/pam.d/postlogin

MARI

Pasul 2
Dacă accesăm fișierul:

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

MARI

Pentru a accesa mai mult ajutor PAM putem executa:

 om pam.d
Cu PAM va fi posibil să creați sau să editați reguli pentru o mai bună administrare a proceselor de autentificare în Linux.

wave wave wave wave wave