Og igjen, hei! Allerede i morgen begynner undervisningen i den nye gruppen av kurset , derfor publiserer vi en nyttig artikkel om emnet.

I forrige opplÊring snakket vi om hvordan man bruker pam_cracklib, for Ä styrke passordene i systemene eller CentOS. I Red Hat 7 pam_pwquality erstatte cracklib som pam standardmodulen for passordkontroll. Modulen pam_pwquality stÞttes ogsÄ i Ubuntu og CentOS, samt mange andre operativsystemer. Denne modulen forenkler opprettingen av passordpolicyer for Ä sikre at brukerne fÞlger dine standarder for passordkompleksitet.
I lang tid har den vanlige tilnÊrmingen til passord vÊrt Ä tvinge brukeren til Ä bruke bÄde store og smÄ bokstaver, tall eller andre tegn. Disse grunnleggende kravene til passordkompleksitet har vÊrt aktivt promotert de siste ti Ärene. Det har vÊrt mange diskusjoner om hvorvidt dette er en god praksis eller ikke. Hovedargumentet mot Ä sette slike komplekse betingelser har vÊrt at brukerne skriver ned passordene pÄ papir og lagrer dem usikkert.
En annen politikk som nylig har blitt satt pÄ prÞve, tvinger brukerne til Ä endre passordene sine hver x dager. Det har blitt utfÞrt noen undersÞkelser som har vist at dette ogsÄ kan skade sikkerheten.
Det har blitt skrevet mange artikler om disse diskusjonene som har argumentert for den ene eller den andre siden. Men det er ikke det vi skal diskutere i denne artikkelen. Denne artikkelen vil handle om hvordan man korrekt setter krav til passordkompleksitet, ikke hvordan man styrer sikkerhetspolicy.
Passordpolicy parametere
Nedenfor vil du se passordpolicy parametere og en kort beskrivelse av hver av dem. Mange av dem ligner pÄ parameterne i modulen cracklib. Denne tilnÊrmingen forenkler overfÞringen av dine policyer fra det gamle systemet.
- difok â Antall tegn i ditt nye passord som IKKE skal vĂŠre til stede i ditt gamle passord. (Standard 5)
- minlen â Minimum lengde pĂ„ passordet. (Standard 9)
- ucredit â Maksimalt antall kreditter for bruk av store bokstaver (hvis parameteren > 0), eller minimum krevd antall store bokstaver (hvis parameteren < 0). Standard 1.
- lcredit â Maksimalt antall kreditter for bruk av smĂ„ bokstaver (hvis parameteren > 0), eller minimumsantall som kreves av smĂ„ bokstaver (hvis parameteren < 0). Som standard 1.
- dcredit â Maksimalt antall kreditter for bruk av tall (hvis parameteren > 0), eller minimumsantall som kreves av tall (hvis parameteren < 0). Som standard 1.
- ocredit â Maksimalt antall kreditter for bruk av andre tegn (hvis parameteren > 0), eller minimumsantall som kreves av andre tegn (hvis parameteren < 0). Som standard 1.
- minclass â Angir antall nĂždvendige klasser. Klassene inkluderer de ovennevnte parameterne (store bokstaver, smĂ„ bokstaver, tall, andre tegn). Som standard 0.
- maxrepeat â Maksimalt antall gjentakelser av et tegn i passordet. Som standard 0.
- maxclassrepeat â Maksimalt antall sammenhengende tegn i Ă©n klasse. Som standard 0.
- gecoscheck â Sjekker om passordet inneholder noen ord fra brukeren GECOS-strenger. (Informasjon om brukeren, dvs. fullstendig navn, beliggenhet osv.) Som standard 0 (deaktivert).
- dictpath â Sti til cracklib-ordbĂžker.
- badwords â Ord som er forbudt i passord (som firmanavn, ordet «passord» osv.).
Hvis bruken av kreditter hÞres merkelig ut, er det helt greit. Vi vil gÄ mer i dybden om dette i de kommende seksjonene.
Passordpolicy-konfigurasjon
FÞr vi begynner Ä redigere konfigurasjonsfiler, er det en god praksis Ä skrive ned grunnleggende passordpolicy pÄ forhÄnd. For eksempel, vi vil bruke fÞlgende kompleksitetsregler:
- Passordet mÄ ha en minimumslengde pÄ 15 tegn.
- I passordet skal ikke det samme tegnet gjentas mer enn to ganger.
- I passordet kan symbolklasser gjentas opptil fire ganger.
- Passordet mÄ inneholde tegn fra hver klasse.
- Det nye passordet mÄ ha 5 nye tegn sammenlignet med det gamle.
- Aktiver GECOS-sjekk.
- Forby ord som «password, pass, word, putorius»
NÄ, sÄ snart vi har lagt frem policyen, kan vi redigere filen /etc/security/pwquality.conf, for Ä styrke kravene til passordkompleksitet. Nedenfor er et eksempel pÄ en fil 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 putoriusSom du kanskje har lagt merke til, er noen parametere i filen vÄr overflÞdige. For eksempel parameteren minclass overflÞdig, siden vi allerede bruker minst to tegn fra klassen, ved Ä bruke feltene [u,l,d,o]credit. VÄr liste over ord som ikke kan brukes er ogsÄ overflÞdig, ettersom vi har forbudt gjentakelse av en hvilken som helst klasse 4 ganger (alle ord pÄ vÄr liste er skrevet med smÄ bokstaver). Jeg inkluderte disse alternativene bare for Ä vise hvordan man kan bruke dem til Ä tilpasse passordpolitikken.
NÄr du har opprettet din policy, kan du tvinge brukerne til Ä endre passordene sine ved neste innlogging til .
En annen merkelig ting du kanskje har lagt merke til, er at feltene [u,l,d,o]credit inneholder et negativt tall. Dette er fordi tall stĂžrre enn eller lik 0 gir kreditt for bruk av et tegn i passordet ditt. Hvis feltet inneholder et negativt tall, betyr det at det kreves et visst antall.
Hva er kreditter (credit)?
Jeg kaller dem kreditter, da dette mest nÞyaktig formidler deres formÄl. Hvis parameterverdien er stÞrre enn 0, legges det til et antall «kreditter per tegn» lik «x» til lengden pÄ passordet. For eksempel, hvis alle parameterne (u,l,d,o)credit er satt til 1, og den nÞdvendige passordlengden var 6, sÄ trenger du 6 tegn for Ä oppfylle lengdekravet, siden hvert caps, smÄ bokstaver, tall eller andre tegn gir deg en kreditt.
Hvis du setter dcredit til 2, kan du teoritisk bruke et passord som er 9 tegn langt og fÄ 2 kreditter for tallene, og lengden pÄ passordet kan da vÊre 10.
Se pÄ dette eksemplet. Jeg har satt passordlengden til 13, satt dcredit til 2, og alt annet til 0.
$ pwscore
Thisistwelve
Passordkvalitetssjekk feilet:
Passordet er kortere enn 13 tegn
$ pwscore
Th1sistwelve
18Min fĂžrste sjekk feilet, siden passordlengden var under 13 tegn. Neste gang endret jeg bokstaven âIâ til tallet â1â og fikk to kreditter for tall, noe som gjorde passordet lik 13.
Passordtesting
Pakken libpwquality tilbyr funksjonaliteten beskrevet i artikkelen. Det fÞlger ogsÄ med et program pwscore, som er ment for Ä sjekke passordets kompleksitet. Vi brukte det ovenfor for Ä sjekke kreditter.
VerktĂžy pwscore leser fra . Bare kjĂžr verktĂžyet og skriv inn passordet ditt, det vil gi en feil eller en verdi fra 0 til 100.
Kvaliteten pÄ passordet er relatert til parameteren minlen i konfigurasjonsfilen. Generelt vurderes en score under 50 som «normalt passord», mens over det betraktes som «sterkt passord». Et passord som bestÄr testen for kvalitet (spesielt den obligatoriske testen cracklib) mÄ motstÄ ordlisteangrep, og et passord med en score over 50 med standardinnstillingen minlen til og med brute force angrep.
Konklusjon
Konfigurasjon pwquality â det er enkelt og greit sammenlignet med ulempene ved Ă„ bruke cracklib direkte redigering av filer pam. I denne guiden har vi dekket alt du trenger for Ă„ konfigurere passordpolitikker i Red Hat 7, CentOS 7 og til og med Ubuntu-systemer. Vi har ogsĂ„ diskutert konseptet med kreditter, som sjelden blir skrevet om i detalj, sĂ„ dette emnet har ofte vĂŠrt uklart for de som ikke har stĂžtt pĂ„ det fĂžr.
Kilder:
Nyttige lenker:
Kilde: habr.com
