Hoe het werkt en PAM configureert in Linux

Beveiliging bij het beheren van gebruikers in Linux-omgevingen is essentieel en we moeten altijd zoeken naar de beste beschikbare opties voor dit doel, zowel intern als extern.Een van de veiligste methoden om de beveiliging van Linux-systemen te vergroten, is door op een veel efficiëntere manier te beheren. manier waarop gebruikers worden geauthenticeerd in het systeem, kunnen alleen die gebruikers met de juiste inloggegevens toegang krijgen tot het systeem.

Voor dit geval hebben we een functionaliteit genaamd Linux-PAM (Pluggable Authentication Modules for Linux - Pluggable Authentication Modules for Linux) die is ontwikkeld als een set bibliotheken waarmee het voor de systeembeheerder mogelijk zal zijn om de manier te selecteren waarop applicaties authenticeren van gebruikers op het lokale netwerk.
Bij het compileren van een applicatie die compatibel is met PAM, kunnen we schakelen tussen de gebruikte authenticatiemechanismen.

Om dit concept een beetje beter te begrijpen, kunnen we de manier analyseren waarop gebruikers momenteel worden geverifieerd, allereerst wordt de identiteit van de gebruiker geverifieerd wanneer het aan de gebruiker toegewezen wachtwoord wordt ingevoerd, deze wachtwoorden worden opgeslagen in het / etc / passwd-bestand, vervolgens wordt het privilege gedefinieerd in de vorm van een persoonlijke gebruikersidentificatie, een UID genaamd, en is lidmaatschap van de beschikbare groepen, services en applicaties beschikbaar op basis van de persoonlijke en groepsidentiteit van elke gebruiker.

De PAM-bibliotheek wordt lokaal geconfigureerd in het systeembestand /etc/pam.conf of in een reeks bestanden in /etc/pam.d/ om een ​​gebruikersverzoek te verifiëren via de authenticatiemodules die alleen lokaal beschikbaar zijn.

De modules zijn beschikbaar in de directory / lib / security of / lib64 / security. De syntaxis van het /etc/pam.conf configuratiebestand bestaat uit een lijst met regels en elke regel bevindt zich op een enkele regel, maar kan worden uitgebreid met een regel die eindigt op `\ '. Opmerkingen worden voorafgegaan door '#'-tekens en lopen door tot het volgende einde van de geselecteerde regel.

Het formaat van elke regel is een verzameling tabs gescheiden door spaties, de eerste drie zijn niet hoofdlettergevoelig zoals deze:

 servicetype regelmodule-pad module-argumenten
De gebruikte parameters zijn:

DienstHet is de echte naam van de applicatie.
TypeHet is het type module / context / interface.
ControleVerwijst naar het gedrag van de PAM API in het geval dat de module de authenticatietaak niet kan uitvoeren
ModulepadHet is de absolute bestandsnaam of het relatieve pad van de PAM.
module-argumentenGeeft een door spaties gescheiden lijst van tokens aan om het gedrag van de module te regelen.

De syntaxis van elk bestand in /etc/pam.d/ is identiek en bestaat uit regels met de volgende structuur:

 type controle-vlag module module-argumenten
Een regeldefinitie (zonder moduleargumenten) die beschikbaar is in het bestand /etc/pam.d/sshd, die niet-root logins toestaat wanneer / etc / nologin beschikbaar is, is bijvoorbeeld:
 account vereist pam_nologin.so

1. Hoe PAM-besturingselementen en groepen op Linux te beheren


PAM-authenticatietaken zijn gecatalogiseerd in vier afzonderlijke beheergroepen, waarbij elk van deze groepen verschillende aspecten van het verzoek van een gebruiker voor een beperkte service beheert.

Een module wordt op de volgende manier aan een van deze typen beheergroepen gekoppeld:

rekeningDeze waarde biedt de diensten voor de verificatie van het account met aspecten zoals het verlopen van het wachtwoord van de gebruiker of als de gebruiker toegang krijgt tot de gevraagde dienst.
authenticatieMet deze waarde wordt een gebruiker geauthenticeerd en kunnen gebruikersreferenties worden geconfigureerd.
wachtwoordZe stellen gebruikers in staat om wachtwoorden bij te werken en zijn geïntegreerd met PAM-authenticatiemodules
sessieDeze is verantwoordelijk voor het beheer van de acties die aan het begin en aan het einde van een sessie worden uitgevoerd.

De PAM-objectbestanden bevinden zich in de volgende directory / lib / security / of / lib64 / security, afhankelijk van de gebruikte architectuur.

De controlevlaggen die in PAM worden ondersteund, zijn:

vereisteMet deze indicator geeft de storing onmiddellijk de controle terug aan de toepassing, wat de aard van de storing van de eerste module aangeeft.
vereistEr wordt aangegeven dat alle modules nodig zijn om libpam correct uit te voeren en succes terug te geven aan de applicatie
voldoendeDeze module leidt tot een onmiddellijke en correcte terugkeer van de applicatie, in dit geval wordt het falen van deze module genegeerd.
optioneelHet succes of falen van deze module wordt over het algemeen niet geregistreerd in deze indicator

Er zijn andere waarden zoals:

erbij betrekkenHet bevat alle regels van het type gebaseerd op het specifieke configuratiebestand als argument voor deze controle.
deelstapelenBevat alle regels van het opgegeven type uit het opgegeven configuratiebestand als argument voor dit specifieke besturingselement.

2. Hoe te controleren of een programma compatibel is met PAM in Linux


Om PAM in een applicatie te implementeren, moet deze specifiek zijn geschreven en gecompileerd om PAM te gebruiken, om te controleren of die applicatie compatibel is of niet, bijvoorbeeld SSH, zullen we het volgende uitvoeren:
 sudo ldd / usr / sbin / sshd | grep libpam.so

VERGROTEN

3. Hoe root-toegang via SSH te beperken met PAM op Linux


PAM kan worden gebruikt om rootgebruikerstoegang tot een systeem uit te schakelen via SSH en inlogprogramma's en dit helpt de beveiligingsopties van het systeem te vergroten.

Als we dit willen doen, zullen we de /lib/security/pam_listfile.so module gebruiken die ons de mogelijkheid geeft om de privileges van specifieke accounts te beperken.

Stap 1
Om deze actie uit te voeren, gaan we als volgt toegang krijgen tot het bestand /etc/pam.d/:

 sudo nano /etc/pam.d/sshd
OF
 sudo nano /etc/pam.d/login
Stap 2
Daar zien we het volgende:

VERGROTEN

Stap 3
Voor dit geval zullen we de volgende regels aan het einde toevoegen:

 auth vereist pam_listfile.so \ onerr = geslaagd item = gebruikerszin = bestand weigeren = / etc / ssh / geweigerde gebruikers

VERGROTEN

In dit geval zijn de volgende parameters toegevoegd:

autorisatieHet is het type module dat moet worden gebruikt
vereistHet is een controlevlag waarmee, als de module wordt gebruikt, deze moet worden doorgegeven of het algehele resultaat zal mislukken, ongeacht de status van andere modules.
pam_listfile.soHet is een module waarmee het op basis van een willekeurig bestand diensten mag weigeren of toestaan.
onerr = slagenHet is het argument van de module.
item = gebruikerHet is het argument van de module waarin wordt aangegeven wat er in het bestand staat en dat moet worden geverifieerd.
zin = ontkennenHet verwijst naar het argument van de module waarin de uit te voeren actie wordt gespecificeerd als deze in het bestand wordt gevonden, zo niet, dan wordt de tegenovergestelde actie gevraagd.
bestand = / etc / ssh / geweigerde gebruikersHet is het argument van de module waarin een bestand met één element per regel wordt gespecificeerd.

We slaan de wijzigingen op met de toetsen Ctrl + O en verlaten de editor met Ctrl + X.

Hierna moeten we het bestand / etc / ssh / geweigerde gebruikers maken en de root-gebruiker erin toevoegen en later de respectieve machtigingen toewijzen:

 sudo chmod 600 / etc / ssh / geweigerde gebruikers

4. Hoe PAM geavanceerd configureren op Linux


Een speciale waarde is de standaardwaarde in PAM, dus alle waarden worden niet expliciet vermeld, daarom komt de waardeN overeen met de retourcode van de functie die wordt aangeroepen in de module waarvoor de regel is gedefinieerd.
De actie heeft een aantal argumenten, zoals:

negerenAls deze actie wordt gebruikt met een stapel modules, genereert de retourstatus van de module geen retourcode vanuit de applicatie.
slechteGeeft aan dat de retourcode moet worden beschouwd als indicatief voor de storingen van de gebruikte module.
dood gaanHet vervult dezelfde functie als slecht, maar kan de stapel modules beëindigen en PAM keert onmiddellijk terug naar de applicatie.
OkeDeze waarde vertelt PAM dat de systeembeheerder deze retourcode direct zal gebruiken voor de retourcode van de volledige stapel modules.
klaarVervult dezelfde rol als Ok, maar kan de modulestapel beëindigen
N(een geheel getal zonder teken) - Gelijk aan ok, maar kan over de volgende N modules op de stapel springen.
ResettenDoor deze parameter te gebruiken, wordt het geheugen van de status van de modulestapel gewist en wordt opnieuw gestart met de volgende gestapelde module.

Elk van de PAM-basiswoorden, vereist; vereiste; voldoende en optioneel, een equivalente uitdrukking hebben in termen van de […]-syntaxis, waarmee het mogelijk zal zijn om complexere regels te schrijven, zoals:

vereist[succes = ok new_authtok_reqd = ok negeer = negeer standaard = slecht]
vereiste[succes = ok new_authtok_reqd = ok negeer = negeer standaard = sterven]
voldoende[succes = klaar new_authtok_reqd = klaar standaard = negeren]
optioneel[succes = ok new_authtok_reqd = ok standaard = negeren]

Stap 1
In CentOS 7 kunnen we bijvoorbeeld de regels van het PAM-bestand zien door het volgende uit te voeren:

 sudo nano /etc/pam.d/postlogin

VERGROTEN

Stap 2
Als we het bestand openen:

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

VERGROTEN

Om toegang te krijgen tot meer PAM-hulp kunnen we het volgende uitvoeren:

 man pam.d
Met PAM wordt het mogelijk om regels te maken of te bewerken voor een beter beheer van de authenticatieprocessen in Linux.

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave