Hur det fungerar och konfigurerar PAM i Linux

Säkerhet vid hantering av användare i Linux -miljöer är viktigt och vi måste alltid leta efter de bästa alternativen som är tillgängliga för detta ändamål antingen internt eller externt. En av de säkraste metoderna för att öka säkerheten i Linux -system är att administrera på ett mycket mer effektivt sätt. Kompletterar så att användare autentiseras i systemet, tillåter detta endast de användare som har rätt referenser att få åtkomst till systemet.

I det här fallet har vi en funktionalitet som kallas Linux -PAM (Pluggable Authentication Modules for Linux - Pluggable Authentication Modules for Linux) som har utvecklats som en uppsättning bibliotek med vilka det kommer att vara möjligt för systemadministratören att välja det sätt på vilket applikationer autentisera användare i det lokala nätverket.
När vi sammanställer en applikation som är kompatibel med PAM kan vi växla mellan de autentiseringsmekanismer som används.

För att förstå detta koncept lite bättre kan vi analysera hur användare för närvarande autentiseras, först och främst verifieras användarens identitet när lösenordet som tilldelats användaren anges, dessa lösenord lagras i filen / etc / passwd, då definieras privilegiet i form av en personlig användaridentifierare som kallas ett UID och medlemskap i tillgängliga grupper, tjänster och applikationer är tillgängliga baserat på varje användares personliga och gruppidentitet.

PAM -biblioteket konfigureras lokalt i systemfilen /etc/pam.conf eller i en serie filer som finns i /etc/pam.d/ för att autentisera en användarförfrågan genom modulerna för autentisering endast tillgängliga lokalt.

Modulerna finns i katalogen / lib / security eller / lib64 / security. Konfigurationsfilsyntaxen /etc/pam.conf består av en lista med regler, och varje regel finns på en enda rad, men kan utökas med en rad som slutar med \ \. Kommentarer föregås av "#" -märken och sträcker sig till nästa ände av den valda raden.

Formatet för varje regel är en samling flikar åtskilda av mellanslag, de tre första är inte skiftlägeskänsliga så här:

 tjänsttyp kontrollmodul-sökvägsmodul-argument
De parametrar som används är:

ServiceDet är applikationens riktiga namn.
TypDet är typen av modul / kontext / gränssnitt.
KontrolleraAvser beteendet hos PAM API om modulen inte kan köra autentiseringsuppgif.webpten
ModulvägDet är PAM: s absoluta filnamn eller relativa sökväg.
modul-argumentIndikerar en mellanseparerad lista över tokens för att styra beteendet hos modulen.

Syntaxen för varje fil i /etc/pam.d/ är identisk och består av rader med följande struktur:

 typ kontroll-flagg modul modul-argument
Till exempel är en regeldefinition (utan modulargument) tillgänglig i filen /etc/pam.d/sshd, som inte tillåter icke-root-inloggningar när /etc /nologin är tillgänglig:
 konto krävs pam_nologin.so

1. Så här hanterar du PAM -kontroller och grupper på Linux


PAM -autentiseringsuppgif.webpter katalogiseras i fyra separata administrationsgrupper, var och en av dessa grupper hanterar olika aspekter av en användares begäran om en begränsad tjänst.

En modul är associerad med en av dessa typer av administrationsgrupper på följande sätt:

kontoDetta värde erbjuder tjänsterna för verifiering av kontot med aspekter som utgången av användarens lösenord eller om användaren får åtkomst till den begärda tjänsten.
autentiseringMed detta värde autentiseras en användare och användaruppgif.webpter kan konfigureras.
LösenordDe tillåter användare att uppdatera lösenord och är integrerade med PAM -autentiseringsmoduler
sessionDetta ansvarar för att hantera de åtgärder som utförs i början och i slutet av en session.

PAM -objektfilerna finns i följande katalog / lib / security / eller / lib64 / security beroende på vilken arkitektur som används.

De kontrollflaggor som stöds i PAM är:

erforderligMed denna indikator returnerar felet omedelbart kontrollen till applikationen, vilket indikerar typen av fel i den första modulen.
nödvändigDet indikeras att alla moduler är nödvändiga för att libpam ska kunna köras korrekt och återställa applikationen
tillräckligDenna modul leder till en omedelbar och korrekt retur av applikationen, i detta fall ignoreras misslyckandet i denna modul.
frivilligFramgången eller misslyckandet för den här modulen registreras i allmänhet inte i denna indikator

Det finns andra värden som:

omfattaDen innehåller alla rader av typen baserat på den specifika konfigurationsfilen som ett argument för denna kontroll.
delstackInkluderar alla rader av den givna typen från den angivna konfigurationsfilen som ett argument till denna specifika kontroll.

2. Hur man kontrollerar att ett program är kompatibelt med PAM i Linux


För att implementera PAM i en applikation måste den ha skrivits och sammanställts specifikt för att använda PAM, för att kontrollera om den applikationen är kompatibel eller inte, till exempel SSH, kommer vi att utföra följande:
 sudo ldd / usr / sbin / sshd | grep libpam.so

FÖRSTORA

3. Hur man begränsar rotåtkomst via SSH med PAM på Linux


PAM kan användas för att inaktivera root -användares åtkomst till ett system via SSH och inloggningsprogram och detta hjälper till att öka systemets säkerhetsalternativ.

Om vi ​​vill göra detta använder vi modulen /lib/security/pam_listfile.so som ger oss möjlighet att begränsa privilegierna för specifika konton.

Steg 1
För att utföra denna åtgärd kommer vi att komma åt filen /etc/pam.d/ enligt följande:

 sudo nano /etc/pam.d/sshd
ELLER
 sudo nano /etc/pam.d/login
Steg 2
Där kommer vi att se följande:

FÖRSTORA

Steg 3
I det här fallet kommer vi att lägga till följande rader i slutet:

 auth krävs pam_listfile.so \ onerr = success item = user sense = neka fil = / etc / ssh / denuserade

FÖRSTORA

I det här fallet har följande parametrar lagts till:

autDet är den typ av modul som ska användas
nödvändigDet är en kontrollflagga som, om modulen används, måste vara godkänd eller att det övergripande resultatet misslyckas oavsett status för andra moduler.
pam_listfile.soDet är en modul med vilken det är tillåtet att neka eller tillåta tjänster baserade på en godtycklig fil.
onerr = lyckasDet är modulens argument.
objekt = användareDet är argumentet för modulen där det anges vad som anges i filen och som måste verifieras.
förnuft = förnekaDet hänvisar till argumentet för modulen där åtgärden som ska utföras specificeras om den finns i filen, om inte, begärs motsatt åtgärd.
file = / etc / ssh / denususersDet är argumentet för modulen där en fil som innehåller ett element per rad specificeras.

Vi sparar ändringarna med Ctrl + O -tangenterna och lämnar redigeraren med Ctrl + X.

Efter detta måste vi skapa filen / etc / ssh / denususers och lägga till rotanvändaren i den och senare tilldela respektive behörighet:

 sudo chmod 600 / etc / ssh / denususers

4. Hur man avancerar konfigurerar PAM på Linux


Ett särskilt värde är standardvärdet i PAM, så alla värden nämns inte uttryckligen, därför motsvarar värdet N returkoden för den funktion som åberopas i modulen för vilken raden är definierad.
Handlingen har några argument som:

strunta iOm du använder denna åtgärd med en stapel moduler genererar inte modulens returstatus en returkod från programmet.
dåligIndikerar att returkoden ska betraktas som en indikation på fel i den använda modulen.
döDen uppfyller samma funktion som dålig, men kan avsluta stacken av moduler och PAM återgår omedelbart till applikationen.
OkejDet här värdet talar om för PAM att systemadministratören kommer att använda denna returkod direkt till returkoden för hela modulbunten.
GjortUppfyller samma roll som Ok, men kan avsluta modulstacken
N(ett osignerat heltal) - Motsvarar ok, men kan hoppa över nästa N -moduler på stacken.
ÅterställaMed denna parameter rensas allt modulstackstatusminne och startas om med nästa modul staplad.

Var och en av PAM -basorden, krävs; erforderlig; tillräckligt och valfritt, ha ett likvärdigt uttryck när det gäller […] syntaxen, med vilken det blir möjligt att skriva mer komplexa regler som:

nödvändig[framgång = ok new_authtok_reqd = ok ignorera = ignorera standard = dåligt]
erforderlig[framgång = ok new_authtok_reqd = ok ignorera = ignorera standard = dö]
tillräcklig[success = done new_authtok_reqd = done default = ignorera]
frivillig[framgång = ok new_authtok_reqd = ok standard = ignorera]

Steg 1
Till exempel kan vi i CentOS 7 se reglerna för PAM -filen genom att köra:

 sudo nano /etc/pam.d/postlogin

FÖRSTORA

Steg 2
Om vi ​​kommer åt filen:

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

FÖRSTORA

För att få tillgång till mer PAM -hjälp kan vi utföra:

 man pam.d
Med PAM blir det möjligt att skapa eller redigera regler för en bättre administration av autentiseringsprocesserna i Linux.

wave wave wave wave wave