Pozdravljeni ponovno! Jutri se pričenja pouk v novi skupini tečaja , zato objavljamo koristen članek na to temo.

V prejšnjem priročniku smo razložili, kako uporabljati pam_cracklib, da otežimo gesla v sistemih ali CentOS. V Red Hat 7 je pam_pwquality nadomeščeno cracklib в качестве pam kot privzeti modul za preverjanje gesel. Modul pam_pwquality se prav tako podpira v Ubuntuju in CentOS-ju ter mnogih drugih operacijskih sistemih. Ta modul poenostavi ustvarjanje politik gesel, da se prepričate, da uporabniki upoštevajo vaše standarde zahtevnosti gesel.
Dolge časa je bil običajen pristop k geslom, da se uporabnike spodbudi, da uporabljajo velike in male črke, številke ali druge simbole. Ta osnovna pravila zahtevnosti gesel so se aktivno spodbujala v zadnjih desetih letih. Potekalo je mnogo razprav o tem, ali je to dobra praksa ali ne. Glavni argument proti postavljanju takšnih zahtevnih pogojev je bil, da uporabniki zapisujejo gesla na papirnate liste in jih shranjujejo na nezaščiten način.
Druga politika, ki je bila nedavno postavljena pod vprašaj, uporabnikom nalaga, da vsake x dni spremenijo svoja gesla. Uvedene so bile nekatere raziskave, ki so pokazale, da to prav tako škoduje varnosti.
O temi teh razprav je bilo napisanih veliko člankov, ki so zagovarjali eno ali drugo stališče. Vendar to ni tisto, o čemer bomo razpravljali v tem članku. Ta članek bo razložil, kako pravilno določiti zahtevnost gesla, ne pa kako upravljati s politiko varnosti.
Parametri politike gesel
Spodaj boste videli parametre politike gesel in kratek opis vsakega od njih. Mnogi od njih so podobni parametrom v modulu cracklib. Takšen pristop poenostavi prenos vaših politik iz starega sistema.
- difok – Število znakov v vašem novem geslu, ki NE smejo biti prisotni v vašem prejšnjem geslu. (Privzeto 5)
- minlen – Minimalna dolžina gesla. (Privzeto 9)
- ucredit – Največje število kreditov za uporabo velikih črk (če je parameter > 0), ali minimalno zahtevano število velikih črk (če je parameter < 0). Privzeto 1.
- lcredit — Maksimalno število kreditov za uporabo malih črk (če je parameter > 0), ali minimalno zahtevano število malih črk (če je parameter < 0). Privzeto 1.
- dcredit — Maksimalno število kreditov za uporabo številk (če je parameter > 0), ali minimalno zahtevano število številk (če je parameter < 0). Privzeto 1.
- ocredit — Maksimalno število kreditov za uporabo drugih znakov (če je parameter > 0), ali minimalno zahtevano število drugih znakov (če je parameter < 0). Privzeto 1.
- minclass – Določa število zahtevanih razredov. Razredi vključujejo zgoraj navedene parametre (velike črke, male črke, številke, drugi znaki). Privzeto 0.
- maxrepeat – Maksimalno število ponovitev znaka v geslu. Privzeto 0.
- maxclassrepeat — Maksimalno število zaporednih znakov v enem razredu. Privzeto 0.
- gecoscheck – Preveri, ali geslo vsebuje kakšne besede iz GECOS nizov uporabnika. (Informacije o uporabniku, npr. pravo ime, lokacija itd.) Privzeto 0 (izključeno).
- dictpath – Pot do cracklib slovarjev.
- badwords – Besede, ločene s presledki, ki so prepovedane v geslih (ime podjetja, beseda 'geslo' itd.).
Če se koncept kreditov zdi nenavaden, ni pomembno, to je povsem normalno. O tem bomo podrobneje govorili v naslednjih odsekih.
Konfiguracija politike gesel
Preden začnete urejati konfiguracijske datoteke, je dobra praksa, da vnaprej zapišete osnovno politiko gesel. Na primer, uporabljali bomo naslednja pravila zahtevnosti:
- Geslo mora imeti minimalno dolžino 15 znakov.
- V geslu se isti znak ne sme pojaviti več kot dvakrat.
- V geslu se razredi znakov lahko ponovijo do štirikrat.
- Geslo mora vsebovati znake iz vsakogar razreda.
- Novo geslo mora imeti 5 novih znakov v primerjavi s starim.
- Vključite preverjanje GECOS.
- Prepovejte besede 'password, pass, word, putorius'
Zdaj, ko smo opredelili politiko, lahko uredimo datoteko /etc/security/pwquality.conf, da okrepimo zahteve glede zahtevnosti gesla. Spodaj je primer datoteke z komentarji za boljše razumevanje.
# 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 putoriusKot ste opazili, so nekateri parametri v naši datoteki odvečni. Na primer, parameter minclass je pretirano, budući da već koristimo najmanje dva znaka iz klase, koristeći polja [u,l,d,o]credit. Naš popis riječi koje se ne mogu koristiti također je preopterećen, budući da smo zabranili ponavljanje bilo koje klase 4 puta (sve riječi na našem popisu napisane su malim slovima). Uključio sam ove postavke samo da bih demonstrirao kako ih koristiti za prilagodbu politike lozinki.
Čim kreirate svoju politiku, možete prisiliti korisnike da promijene svoje lozinke prilikom sljedećeg prijavljivanja u .
Još jedna čudna stvar koju ste možda primijetili jest da polja [u,l,d,o]credit sadrže negativan broj. To je zato što će brojevi veći ili jednaki 0 dati kredit za korištenje znaka u vašoj lozinci. Ako polje sadrži negativan broj, to znači da je potrebno određeno količstvo.
Što su krediti (credit)?
Nazivam ih kreditima jer to najbolje opisuje njihovu svrhu. Ako je vrijednost parametra veća od 0, dodajete broj 'kredita za znakove' koji je jednak 'x' dužini lozinke. Na primjer, ako su svi parametri (u,l,d,o)credit postavljeni na 1, a potrebna duljina lozinke je 6, tada će vam trebati 6 znakova za zadovoljenje zahtjeva za dužinu, jer svaki znak velikog slova, malog slova, broj ili drugi znak daju jedan kredit.
Ako postavite dcredit na 2, teoretski ćete moći koristiti lozinku duljine 9 znakova i dobiti 2 kredita za znakove za brojeve i tada duljina lozinke može biti već 10.
Pogledajte ovaj primjer. Postavio sam duljinu lozinke na 13, postavio sam dcredit na 2, a sve ostalo na 0.
$ pwscore
Thisistwelve
Provjera kvalitete lozinke nije prošla:
Lozinka je kraća od 13 znakova
$ pwscore
Th1sistwelve
18Moja prva provjera nije prošla jer je duljina lozinke bila manja od 13 znakova. Sljedeći put sam promijenio slovo “I” u broj “1” i dobio dva kredita za brojeve, što je izjednačilo lozinku na 13.
Testiranje lozinke
Package libpwquality osigurava funkcionalnost opisanu u članku. Također dolazi sa programom pwscore, koji je namijenjen provjeri lozinke na složenost. Koristili smo ga gore za provjeru kredita.
Orodje pwscore čita iz . Jednostavno pokrenite alat i upišite svoju lozinku, ispisat će pogrešku ili vrijednost od 0 do 100.
Pokazatelj kvalitete lozinke odnosi se na parametar minlen v konfiguracijski datoteki. Na splošno se kazalnik pod 50 obravnava kot „normalna geslo“, nad 50 pa kot „močna geslo“. Vsako geslo, ki prestane teste kakovosti (zlasti prisilno preverjanje cracklib) mora zdržati napade s slovarjem, geslo z kazalnikom nad 50 pa z nastavitvijo minlen privzeto celo brute force napadi.
Zaključek
Setup pwquality je to enostavno in preprosto v primerjavi z neprijetnostmi pri uporabi cracklib s neposrednim urejanjem datotek pam. V tem priročniku smo obravnavali vse, kar boste potrebovali pri nastavitev politik gesel v Red Hat 7, CentOS 7 in celo sistemih Ubuntu. Prav tako smo govorili o konceptu kreditov, o katerih redko pišejo podrobno, zato je ta tema pogosto ostala nejasna tistim, ki se s tem niso prej srečali.
Viri:
izvorna koda
Izvor: habr.com
