Sikkerhet ved administrering av brukere i Linux -miljøer er avgjørende, og vi må alltid se etter de beste alternativene som er tilgjengelige for dette formålet, enten internt eller eksternt. En av de sikreste metodene for å øke sikkerheten i Linux -systemer er å administrere på en mye mer effektiv måte. Fullfører måten brukere blir autentisert i systemet, tillater dette bare de brukerne som har de riktige legitimasjonene, å ha tilgang til systemet.
I dette tilfellet har vi en funksjonalitet kalt Linux -PAM (Pluggable Authentication Modules for Linux - Pluggable Authentication Modules for Linux) som er utviklet som et sett med biblioteker som det vil være mulig for systemadministratoren å velge måten applikasjoner skal brukes på godkjenne brukere på det lokale nettverket.
Når vi kompilerer en applikasjon som er kompatibel med PAM, kan vi veksle mellom godkjenningsmekanismene som brukes.
For å forstå dette konseptet litt bedre, kan vi analysere måten brukerne for øyeblikket er autentisert på. Først og fremst bekreftes brukerens identitet når passordet som er tilordnet brukeren, legges inn, disse passordene lagres i filen / etc / passwd, deretter er privilegiet definert i form av en personlig brukeridentifikator kalt UID, og medlemskap i tilgjengelige grupper, tjenester og applikasjoner er tilgjengelig basert på den personlige og gruppeidentiteten til hver bruker.
PAM -biblioteket er konfigurert lokalt i systemfilen /etc/pam.conf eller i en serie filer som ligger i /etc/pam.d/ for å autentisere en brukerforespørsel gjennom modulene for godkjenning som bare er tilgjengelig lokalt.
Modulene er tilgjengelige i katalogen / lib / security eller / lib64 / security. Konfigurasjonsfilsyntaksen /etc/pam.conf består av en liste med regler, og hver regel er plassert på en enkelt linje, men kan utvides med en linje som slutter på \ \. Kommentarer går foran "#" -merker og strekker seg til neste ende av den valgte linjen.
Formatet til hver regel er en samling faner som er atskilt med mellomrom, de tre første er ikke store og små bokstaver:
tjenestetype kontrollmodul-banemodul-argumenterParametrene som brukes er:
ServiceDet er det virkelige navnet på applikasjonen.
TypeDet er typen modul / kontekst / grensesnitt.
KontrollRefererer til oppførselen til PAM API hvis modulen ikke kan utføre autentiseringsoppgaven
ModulbaneDet er det absolutte filnavnet eller den relative banen til PAM.
modul-argumenterIndikerer en mellomromsseparert liste over tokens for å kontrollere oppførselen til modulen.
Syntaksen for hver fil i /etc/pam.d/ er identisk og består av linjer med følgende struktur:
skriv inn kontroll-flagg modul-argumenterFor eksempel er en regeldefinisjon (uten modulargumenter) tilgjengelig i /etc/pam.d/sshd-filen, som ikke tillater ikke-root-pålogginger når /etc /nologin er tilgjengelig:
konto nødvendig pam_nologin.so
1. Hvordan administrere PAM -kontroller og grupper på Linux
PAM -autentiseringsoppgaver er katalogisert i fire separate administrasjonsgrupper, hver av disse gruppene administrerer forskjellige aspekter ved en brukers forespørsel om en begrenset tjeneste.
En modul er knyttet til en av disse typer administrasjonsgrupper på følgende måte:
regnskapDenne verdien tilbyr tjenestene for bekreftelse av kontoen med aspekter som utløp av brukerens passord eller hvis brukeren får tilgang til den forespurte tjenesten.
godkjenningMed denne verdien blir en bruker autentisert og brukerlegitimasjon kan konfigureres.
passordDe lar brukerne oppdatere passord og er integrert med PAM -godkjenningsmoduler
øktDette er ansvarlig for håndteringen av handlingene som ble utført i begynnelsen og på slutten av en økt.
PAM -objektfilene er plassert i følgende katalog / lib / security / eller / lib64 / security avhengig av arkitekturen som brukes.
Kontrollflaggene som støttes i PAM er:
nødvendigMed denne indikatoren returnerer feilen umiddelbart kontrollen til applikasjonen, noe som indikerer arten av feilen i den første modulen.
nødvendigDet er indikert at alle modulene er nødvendige for at libpam skal kunne utføres riktig og gi suksess til applikasjonen
tilstrekkeligDenne modulen fører til en umiddelbar og korrekt retur av applikasjonen, i dette tilfellet ignoreres feilen i denne modulen.
valgfriSuksessen eller fiaskoen til denne modulen er vanligvis ikke registrert i denne indikatoren
Det er andre verdier som:
inkludereDen inkluderer alle linjene av typen basert på den spesifikke konfigurasjonsfilen som et argument for denne kontrollen.
delstabelInkluderer alle linjer av den gitte typen fra den angitte konfigurasjonsfilen som et argument til denne spesifikke kontrollen.
2. Hvordan kontrollere at et program er kompatibelt med PAM i Linux
For å implementere PAM i et program må det ha blitt skrevet og kompilert spesielt for å bruke PAM, for å sjekke om programmet er kompatibelt eller ikke, for eksempel SSH, vil vi utføre følgende:
sudo ldd / usr / sbin / sshd | grep libpam.so
FORSTØRRE
3. Slik begrenser du root -tilgang via SSH med PAM på Linux
PAM kan brukes til å deaktivere rotbrukerens tilgang til et system gjennom SSH og påloggingsprogrammer, og dette bidrar til å øke sikkerhetsalternativene til systemet.
Hvis vi vil gjøre dette, vil vi bruke /lib/security/pam_listfile.so -modulen som gir oss muligheten til å begrense privilegiene til bestemte kontoer.
Trinn 1
For å utføre denne handlingen, får vi tilgang til filen /etc/pam.d/ som følger:
sudo nano /etc/pam.d/sshdELLER
sudo nano /etc/pam.d/loginSteg 2
Der vil vi se følgende:
FORSTØRRE
Trinn 3
I dette tilfellet vil vi legge til følgende linjer på slutten:
author kreves pam_listfile.so \ onerr = success item = user sense = nekte fil = / etc / ssh / nektbrukere
FORSTØRRE
I dette tilfellet er følgende parametere lagt til:
autDet er typen modul som skal brukes
nødvendigDet er et kontrollflagg som, hvis modulen brukes, må passeres, ellers vil det totale resultatet mislykkes uavhengig av statusen til andre moduler.
pam_listfile.soDet er en modul som det er tillatt å nekte eller tillate tjenester basert på en vilkårlig fil.
onerr = lykkesDet er argumentet til modulen.
element = brukerDet er argumentet til modulen der det er angitt hva som er oppført i filen, og som må bekreftes.
forstand = nekteDet refererer til argumentet til modulen der handlingen som skal utføres er spesifisert hvis den finnes i filen, hvis ikke, blir den motsatte handlingen forespurt.
file = / etc / ssh / denususersDet er argumentet til modulen der en fil som inneholder ett element per linje er spesifisert.
Vi lagrer endringene ved hjelp av Ctrl + O -tastene og avslutter editoren med Ctrl + X.
Etter dette må vi opprette filen / etc / ssh / denususers og legge til rotbrukeren i den og senere tildele de respektive tillatelsene:
sudo chmod 600 / etc / ssh / denususers
4. Hvordan avansere konfigurere PAM på Linux
En spesiell verdi er standardverdien i PAM, så alle verdier nevnes ikke eksplisitt, derfor tilsvarer verdienN returkoden for funksjonen som påkalles i modulen som linjen er definert for.
Handlingen har noen argumenter som:
overseHvis du bruker denne handlingen med en stabel moduler, genererer ikke modulens returstatus en returkode fra applikasjonen.
dårligIndikerer at returkoden skal betraktes som en indikasjon på feil i modulen som brukes.
døDen oppfyller samme funksjon som dårlig, men kan avslutte stabelen av moduler og PAM returnerer umiddelbart til applikasjonen.
greitDenne verdien forteller PAM at systemadministratoren vil bruke denne returkoden direkte til returkoden til hele modulbunken.
gjortOppfyller samme rolle som Ok, men kan avslutte modulbunken
N(et usignert heltall) - Tilsvarer ok, men kan hoppe over de neste N -modulene på bunken.
NullstilleVed bruk av denne parameteren slettes alt modulstabelstatusminne og starter på nytt med neste modul stablet.
Hvert av PAM -grunnordene kreves; nødvendig; tilstrekkelig og valgfritt, ha et ekvivalent uttrykk når det gjelder […] syntaksen, som det vil være mulig å skrive mer komplekse regler som:
nødvendig[suksess = ok new_authtok_reqd = ok ignorere = ignorere standard = dårlig]
nødvendig[suksess = ok new_authtok_reqd = ok ignorere = ignorere standard = dø]
tilstrekkelig[success = done new_authtok_reqd = done default = ignorere]
valgfri[suksess = ok new_authtok_reqd = ok standard = ignorere]
Trinn 1
For eksempel kan vi i CentOS 7 se reglene for PAM -filen ved å utføre:
sudo nano /etc/pam.d/postlogin
FORSTØRRE
Steg 2
Hvis vi får tilgang til filen:
sudo nano /etc/pam.d/smartcard-auth
FORSTØRRE
For å få tilgang til mer PAM -hjelp kan vi utføre:
mann pam.dMed PAM vil det være mulig å lage eller redigere regler for en bedre administrasjon av autentiseringsprosessene i Linux.