Opprette en passordpolicy i Linux

Hallo igjen! Undervisningen i den nye kursgruppen starter i morgen "Linux-administrator", i denne forbindelse publiserer vi en nyttig artikkel om emnet.

Opprette en passordpolicy i Linux

I den forrige opplæringen fortalte vi deg hvordan du bruker pam_cracklibå gjøre passord på systemer mer komplekse Red Hat 6 eller CentOS. I Red Hat 7 pam_pwquality erstattet cracklib som pam standardmodul for kontroll av passord. Modul pam_pwquality støttes også på Ubuntu og CentOS, samt mange andre operativsystemer. Denne modulen gjør det enkelt å lage passordpolicyer for å sikre at brukerne godtar passordstyrkestandardene dine.

I lang tid var den vanlige tilnærmingen til passord å tvinge brukeren til å bruke store, små bokstaver, tall eller andre symboler. Disse grunnleggende reglene for passordkompleksitet har blitt mye fremmet de siste ti årene. Det har vært mye diskusjon om dette er god praksis eller ikke. Hovedargumentet mot å sette så komplekse betingelser var at brukerne skriver ned passord på papirlapper og oppbevarer dem usikkert.

En annen policy som nylig har blitt stilt spørsmålstegn ved tvinger brukerne til å endre passordet hver x dag. Det har vært noen studier som har vist at dette også er skadelig for sikkerheten.

Det er skrevet mange artikler om temaet for disse diskusjonene, som underbygger et eller annet synspunkt. Men det er ikke dette vi skal diskutere i denne artikkelen. Denne artikkelen vil snakke om hvordan du stiller inn passordkompleksiteten riktig i stedet for å administrere sikkerhetspolicyen.

Innstillinger for passordpolicy

Nedenfor ser du alternativene for passordpolicy og en kort beskrivelse av hver. Mange av dem ligner på parameterne i modulen cracklib. Denne tilnærmingen gjør det enklere å overføre policyene dine fra det gamle systemet.

  • difok – Antall tegn i det nye passordet som IKKE skal være til stede i det gamle passordet. (Standard 5)
  • minlen – Minimum passordlengde. (Standard 9)
  • ukreditt – Maksimalt antall studiepoeng for bruk av store bokstaver (hvis parameter > 0), eller minimum nødvendig antall store tegn (hvis parameter < 0). Standard er 1.
  • lkreditt — Maksimalt antall kreditter for bruk av små bokstaver (hvis parameter > 0), eller minimum påkrevd antall små bokstaver (hvis parameter < 0). Standard er 1.
  • dkreditt — Maksimalt antall studiepoeng for bruk av sifre (hvis parameter > 0), eller minimum nødvendig antall sifre (hvis parameter < 0). Standard er 1.
  • okkreditt — Maksimalt antall studiepoeng for bruk av andre symboler (hvis parameter > 0), eller minimum nødvendig antall andre symboler (hvis parameter < 0). Standard er 1.
  • minklasse – Angir antall nødvendige klasser. Klasser inkluderer parametrene ovenfor (store bokstaver, små bokstaver, tall, andre tegn). Standard er 0.
  • maxrepeat – Maksimalt antall ganger et tegn kan gjentas i et passord. Standard er 0.
  • maxclassrepeat — Maksimalt antall påfølgende tegn i én klasse. Standard er 0.
  • gecoscheck – Sjekker om passordet inneholder noen ord fra brukerens GECOS-strenger. (Brukerinformasjon, dvs. ekte navn, plassering osv.) Standard er 0 (av).
  • diktbane – La oss gå til cracklib-ordbøker.
  • badwords – Mellomromseparerte ord som er forbudt i passord (firmanavn, ordet "passord" osv.).

Hvis konseptet med lån høres rart ut, er det greit, det er normalt. Vi vil snakke mer om dette i de følgende avsnittene.

Konfigurasjon av passordpolicy

Før du begynner å redigere konfigurasjonsfiler, er det en god praksis å skrive ned en grunnleggende passordpolicy på forhånd. For eksempel vil vi bruke følgende vanskelighetsgradsregler:

  • Passordet må ha en minimumslengde på 15 tegn.
  • Det samme tegnet skal ikke gjentas mer enn to ganger i passordet.
  • Karakterklasser kan gjentas opptil fire ganger i et passord.
  • Passordet må inneholde tegn fra hver klasse.
  • Det nye passordet må ha 5 nye tegn sammenlignet med det gamle.
  • Aktiver GECOS-sjekk.
  • Forby ordene "passord, pass, ord, putorius"

Nå som vi har lagt retningslinjene, kan vi redigere filen /etc/security/pwquality.conffor å øke kravene til passordkompleksitet. Nedenfor er en eksempelfil med kommentarer for bedre forståelse.

# Make sure 5 characters in new password are new compared to old password
difok = 5
# Set the minimum length acceptable for new passwords
minlen = 15
# Require at least 2 digits
dcredit = -2
# Require at least 2 upper case letters
ucredit = -2
# Require at least 2 lower case letters
lcredit = -2
# Require at least 2 special characters (non-alphanumeric)
ocredit = -2
# Require a character from every class (upper, lower, digit, other)
minclass = 4
# Only allow each character to be repeated twice, avoid things like LLL
maxrepeat = 2
# Only allow a class to be repeated 4 times
maxclassrepeat = 4
# Check user information (Real name, etc) to ensure it is not used in password
gecoscheck = 1
# Leave default dictionary path
dictpath =
# Forbid the following words in passwords
badwords = password pass word putorius

Som du kanskje har lagt merke til, er noen parametere i filen vår overflødige. For eksempel parameteren minclass er overflødig siden vi allerede bruker minst to tegn fra klassen som bruker felt [u,l,d,o]credit. Listen vår over ord som ikke kan brukes er også overflødig, siden vi har forbudt å gjenta noen klasse 4 ganger (alle ord i listen vår er skrevet med små bokstaver). Jeg har tatt med disse alternativene kun for å demonstrere hvordan du bruker dem til å konfigurere passordpolicyen din.
Når du har opprettet policyen din, kan du tvinge brukere til å endre passordene sine neste gang de logger på. system.

En annen merkelig ting du kanskje har lagt merke til er at jordene [u,l,d,o]credit inneholder et negativt tall. Dette er fordi tall større enn eller lik 0 vil gi kreditt for å bruke tegnet i passordet ditt. Hvis feltet inneholder et negativt tall, betyr det at det kreves et visst antall.

Hva er lån?

Jeg kaller dem lån fordi det formidler deres formål så nøyaktig som mulig. Hvis parameterverdien er større enn 0, legger du til et antall "karakterkreditter" lik "x" til passordlengden. For eksempel hvis alle parametere (u,l,d,o)credit satt til 1 og den nødvendige passordlengden var 6, så trenger du 6 tegn for å tilfredsstille lengdekravet fordi hver stor, liten bokstav, siffer eller annet tegn vil gi deg én kreditt.

Hvis du installerer dcredit ved 2 kan du teoretisk bruke et passord som er 9 tegn langt og få 2 karakterkreditter for tall, og da kan passordlengden allerede være 10.

Se på dette eksemplet. Jeg satte passordlengden til 13, setter dcredit til 2 og alt annet til 0.

$ pwscore
 Thisistwelve
 Password quality check failed:
  The password is shorter than 13 characters

$ pwscore
 Th1sistwelve
 18

Min første sjekk mislyktes fordi passordet var mindre enn 13 tegn langt. Neste gang endret jeg bokstaven "I" til tallet "1" og fikk to kreditter for tallene, noe som gjorde at passordet ble lik 13.

Passordtesting

pakke libpwquality gir funksjonaliteten beskrevet i artikkelen. Det følger også med et program pwscore, som er laget for å sjekke passordkompleksiteten. Vi brukte det ovenfor for å sjekke lån.
Nytte pwscore leser fra stdin. Bare kjør verktøyet og skriv passordet ditt, det vil vise en feil eller en verdi fra 0 til 100.

Passordets kvalitetspoeng er relatert til parameteren minlen i konfigurasjonsfilen. Generelt regnes en poengsum på mindre enn 50 som et "normalt passord", og en poengsum over det anses som et "sterkt passord". Ethvert passord som består kvalitetskontroller (spesielt tvungen bekreftelse cracklib) må tåle ordbokangrep, og et passord med en score over 50 med innstillingen minlen selv som standard brute force angrep.

Konklusjon

justering pwquality – det er enkelt og enkelt sammenlignet med uleiligheten med bruk cracklib med direkte filredigering pam. I denne veiledningen har vi dekket alt du trenger når du setter opp passordpolicyer på Red Hat 7, CentOS 7 og til og med Ubuntu-systemer. Vi snakket også om konseptet med lån, som det sjelden er skrevet om i detalj, så dette emnet forble ofte uklart for de som ikke tidligere hadde vært borti det.

Kilder:

pwquality mannside
pam_pwquality mannside
pwscore mannside

Nyttige lenker:

Velge sikre passord – Bruce Schneier
Lorrie Faith Cranor diskuterer passordstudiene sine ved CMU
Den beryktede xkcd-tegneserien om Entropy

Kilde: www.habr.com

Legg til en kommentar