Hvordan det fungerer og konfigurerer PAM i Linux

Sikkerhed ved administration af brugere i Linux -miljøer er afgørende, og vi skal altid kigge efter de bedste muligheder til dette formål enten internt eller eksternt. En af de sikreste metoder til at øge sikkerheden i Linux -systemer er at administrere på en meget mere effektiv måde. Fuldender måde, hvorpå brugere godkendes i systemet, giver dette kun de brugere, der har de korrekte legitimationsoplysninger, adgang til systemet.

I dette tilfælde har vi en funktionalitet kaldet Linux -PAM (Pluggable Authentication Modules for Linux - Pluggable Authentication Modules for Linux), som er udviklet som et sæt biblioteker, som det vil være muligt for systemadministratoren at vælge den måde, applikationer skal bruges på godkende brugere på det lokale netværk.
Når vi kompilerer en applikation, der er kompatibel med PAM, er vi i stand til at skifte mellem de anvendte godkendelsesmekanismer.

For at forstå dette koncept lidt bedre kan vi analysere den måde, hvorpå brugere i øjeblikket er godkendt, først og fremmest verificeres brugerens identitet, når adgangskoden, der er tildelt brugeren, indtastes, disse adgangskoder gemmes i filen / etc / passwd, derefter er privilegiet defineret i form af et personligt bruger -id kaldet et UID, og ​​medlemskab i de tilgængelige grupper, tjenester og applikationer er tilgængeligt baseret på hver brugers personlige og gruppeidentitet.

PAM -biblioteket konfigureres lokalt i systemfilen /etc/pam.conf eller i en række filer placeret i /etc/pam.d/ for at godkende en brugeranmodning via modulerne for godkendelse, der kun er tilgængelig lokalt.

Modulerne er tilgængelige i biblioteket / lib / security eller / lib64 / security. Konfigurationsfilsyntaksen /etc/pam.conf består af en liste med regler, og hver regel er placeret på en enkelt linje, men kan udvides med en linje, der slutter '\'. Kommentarer indledes med '#' -mærker og strækker sig til den næste ende af den valgte linje.

Formatet for hver regel er en samling faner adskilt af mellemrum, de tre første er ikke store og små bogstaver som denne:

 servicetype kontrolmodul-sti-modul-argumenter
De anvendte parametre er:

ServiceDet er applikationens rigtige navn.
TypeDet er typen af ​​modul / kontekst / grænseflade.
StyringHenviser til adfærden for PAM API, hvis modulet ikke kan udføre godkendelsesopgaven
ModulstiDet er det absolutte filnavn eller den relative sti for PAM.
modul-argumenterAngiver en mellemrum adskilt liste over tokens med det formål at kontrollere modulets adfærd.

Syntaksen for hver fil i /etc/pam.d/ er identisk og består af linjer med følgende struktur:

 type kontrol-flag modul modul-argumenter
For eksempel er en regeldefinition (uden modulargumenter) tilgængelig i filen /etc/pam.d/sshd, som ikke tillader ikke-root-logins, når /etc /nologin er tilgængelig:
 konto påkrævet pam_nologin.so

1. Sådan administreres PAM -kontroller og grupper på Linux


PAM -godkendelsesopgaver katalogiseres i fire separate administrationsgrupper, hvor hver af disse grupper administrerer forskellige aspekter af en brugers anmodning om en begrænset service.

Et modul er knyttet til en af ​​disse typer administrationsgrupper på følgende måde:

kontoDenne værdi tilbyder tjenesterne til verifikation af kontoen med aspekter såsom udløb af brugerens adgangskode, eller hvis brugeren får adgang til den ønskede service.
GodkendelseMed denne værdi godkendes en bruger, og brugeroplysninger kan konfigureres.
adgangskodeDe giver brugerne mulighed for at opdatere adgangskoder og er integreret med PAM -godkendelsesmoduler
sessionDette er ansvarlig for styringen af ​​de handlinger, der udføres i begyndelsen og i slutningen af ​​en session.

PAM -objektfilerne er placeret i følgende bibliotek / lib / security / eller / lib64 / security afhængigt af den anvendte arkitektur.

De kontrolflag, der understøttes i PAM, er:

påkrævetMed denne indikator returnerer fejlen øjeblikkeligt kontrollen til applikationen, hvilket angiver arten af ​​fejl i det første modul.
påkrævetDet er angivet, at alle modulerne er nødvendige for, at libpam kan udføres korrekt og returnerer applikationen succes
tilstrækkeligDette modul fører til en øjeblikkelig og korrekt returnering af applikationen, i dette tilfælde ignoreres fejlen i dette modul.
valgfriDette moduls succes eller fiasko er generelt ikke registreret i denne indikator

Der er andre værdier som:

omfatteDet inkluderer alle linjerne af typen baseret på den specifikke konfigurationsfil som et argument for denne kontrol.
delstabelInkluderer alle linjer af den givne type fra den angivne konfigurationsfil som et argument til denne specifikke kontrol.

2. Sådan kontrolleres, at et program er kompatibelt med PAM i Linux


For at implementere PAM i et program skal det være skrevet og kompileret specifikt for at bruge PAM, for at kontrollere, om det program er kompatibelt eller ej, for eksempel SSH, vil vi udføre følgende:
 sudo ldd / usr / sbin / sshd | grep libpam.so

FORSTØRRE

3. Sådan begrænses root -adgang via SSH med PAM på Linux


PAM kan bruges til at deaktivere root -brugeradgang til et system via SSH og loginprogrammer, og dette hjælper med at øge systemets sikkerhedsmuligheder.

Hvis vi vil gøre dette, vil vi bruge modulet /lib/security/pam_listfile.so, som giver os mulighed for at begrænse privilegierne for bestemte konti.

Trin 1
For at udføre denne handling får vi adgang til filen /etc/pam.d/ som følger:

 sudo nano /etc/pam.d/sshd
ELLER
 sudo nano /etc/pam.d/login
Trin 2
Der vil vi se følgende:

FORSTØRRE

Trin 3
I dette tilfælde tilføjer vi følgende linjer i slutningen:

 autorisation kræves pam_listfile.so \ onerr = success item = user sense = benægte fil = / etc / ssh / fornyede brugere

FORSTØRRE

I dette tilfælde er følgende parametre tilføjet:

autDet er den type modul, der skal bruges
påkrævetDet er et kontrolflag, som, hvis modulet bruges, skal bestås, eller det samlede resultat vil mislykkes uanset status for andre moduler.
pam_listfile.soDet er et modul, som det er tilladt at nægte eller tillade tjenester baseret på en vilkårlig fil.
onerr = lykkesDet er modulets argument.
element = brugerDet er argumentet for modulet, hvor det er angivet, hvad der er angivet i filen, og som skal verificeres.
forstand = benægteDet refererer til argumentet for modulet, hvor den handling, der skal udføres, er specificeret, hvis den findes i filen, hvis ikke, anmodes den modsatte handling.
file = / etc / ssh / denususersDet er argumentet for modulet, hvor en fil, der indeholder et element pr. Linje, er angivet.

Vi gemmer ændringerne ved hjælp af Ctrl + O -tasterne og afslutter editoren med Ctrl + X.

Herefter skal vi oprette filen / etc / ssh / denuserers og tilføje rodbrugeren i den og senere tildele de respektive tilladelser:

 sudo chmod 600 / etc / ssh / denususers

4. Sådan avanceres konfiguration af PAM på Linux


En særlig værdi er standardværdien i PAM, så alle værdier nævnes ikke eksplicit, derfor svarer værdien N til returkoden for den funktion, der påberåbes i det modul, som linjen er defineret for.
Handlingen har nogle argumenter såsom:

ignorereI tilfælde af at bruge denne handling med en stak moduler, genererer modulets returstatus ikke en returkode fra applikationen.
dårligtAngiver, at returkoden skal betragtes som indikativ for fejl i det anvendte modul.
døDen opfylder den samme funktion som dårlig, men er i stand til at afslutte stakken af ​​moduler, og PAM vender straks tilbage til applikationen.
okayDenne værdi fortæller PAM, at systemadministratoren vil bruge denne returkode direkte til returkoden for den fulde stak moduler.
FærdigUdfylder den samme rolle som Ok, men kan afslutte modulstakken
N(et usigneret heltal) - Tilsvarer ok, men kan springe over de næste N -moduler på stakken.
NulstilVed brug af denne parameter ryddes al modulstackstatushukommelse og genstarter med det næste modul stablet.

Hvert af PAM -grundordene kræves; påkrævet; tilstrækkeligt og valgfrit, har et ækvivalent udtryk med hensyn til syntaxen […], hvormed det vil være muligt at skrive mere komplekse regler som:

påkrævet[succes = ok new_authtok_reqd = ok ignorer = ignorer standard = dårlig]
påkrævet[succes = ok new_authtok_reqd = ok ignorere = ignorere standard = dø]
tilstrækkelig[success = done new_authtok_reqd = done default = ignorere]
valgfri[succes = ok new_authtok_reqd = ok standard = ignorere]

Trin 1
For eksempel kan vi i CentOS 7 se reglerne for PAM -filen ved at udføre:

 sudo nano /etc/pam.d/postlogin

FORSTØRRE

Trin 2
Hvis vi får adgang til filen:

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

FORSTØRRE

For at få adgang til mere PAM -hjælp kan vi udføre:

 mand pam.d
Med PAM vil det være muligt at oprette eller redigere regler for en bedre administration af godkendelsesprocesserne i Linux.

wave wave wave wave wave