Zdravo opet! Nastava u novoj grupi kurseva počinje sutra
U prethodnom tutorijalu rekli smo vam kako da koristite pam_cracklib
kako bi lozinke na sistemima bile složenije pam_pwquality
zamijenjen cracklib
kao pam
zadani modul za provjeru lozinki. Modul pam_pwquality
takođe podržan na Ubuntu i CentOS-u, kao i na mnogim drugim OS-ovima. Ovaj modul olakšava kreiranje politika lozinki kako bi se osiguralo da korisnici prihvate vaše standarde jačine lozinke.
Dugo vremena je uobičajen pristup lozinkama bio prisiljavanje korisnika da koristi velika, mala slova, brojeve ili druge simbole. Ova osnovna pravila za složenost lozinki naširoko su promovirana u posljednjih deset godina. Bilo je dosta diskusija o tome da li je ovo dobra praksa ili ne. Glavni argument protiv postavljanja tako složenih uslova bio je da korisnici zapisuju lozinke na komade papira i pohranjuju ih nesigurno.
Još jedna politika koja je nedavno dovedena u pitanje tjera korisnike da mijenjaju svoje lozinke svakih x dana. Bilo je nekih studija koje su pokazale da je i to štetno za sigurnost.
Na temu ovih rasprava napisano je mnogo članaka, koji potkrepljuju jedno ili drugo gledište. Ali to nije ono o čemu ćemo raspravljati u ovom članku. Ovaj članak će govoriti o tome kako pravilno postaviti složenost lozinke umjesto da upravljate sigurnosnom politikom.
Postavke politike lozinke
Ispod ćete vidjeti opcije politike lozinki i kratak opis svake od njih. Mnogi od njih su slični parametrima u modulu cracklib
. Ovaj pristup olakšava prijenos vaših politika iz naslijeđenog sistema.
- Žao mi je – Broj znakova u vašoj novoj lozinki koji NE bi trebao biti prisutan u vašoj staroj lozinki. (Zadano 5)
- minlen – Minimalna dužina lozinke. (Zadano 9)
- ucredit – Maksimalni broj kredita za korištenje velikih slova (ako je parametar > 0), ili minimalni potreban broj velikih znakova (ako je parametar < 0). Podrazumevano je 1.
- lcredit — Maksimalni broj kredita za korištenje malih slova (ako je parametar > 0), ili minimalni potreban broj malih znakova (ako je parametar < 0). Podrazumevano je 1.
- kredit — Maksimalni broj kredita za korištenje cifara (ako je parametar > 0), ili minimalni potreban broj cifara (ako je parametar < 0). Podrazumevano je 1.
- on veruje — Maksimalni broj kredita za korištenje drugih simbola (ako je parametar > 0), ili minimalni potreban broj drugih simbola (ako je parametar < 0). Podrazumevano je 1.
- minclass – Postavlja broj potrebnih časova. Klase uključuju gore navedene parametre (velika slova, mala slova, brojeve, druge znakove). Podrazumevano je 0.
- maxrepeat – Maksimalan broj puta koji se znak može ponoviti u lozinki. Podrazumevano je 0.
- maxclassrepeat — Maksimalan broj uzastopnih znakova u jednoj klasi. Podrazumevano je 0.
- gecoscheck – Provjerava da li lozinka sadrži riječi iz korisničkih GECOS nizova. (Korisničke informacije, tj. pravo ime, lokacija, itd.) Podrazumevano je 0 (isključeno).
- dictpath – Idemo na cracklib rječnike.
- loše riječi – Riječi razdvojene razmakom koje su zabranjene u lozinkama (naziv kompanije, riječ „lozinka“ itd.).
Ako koncept kredita zvuči čudno, u redu je, normalno je. Više ćemo o tome govoriti u sljedećim odjeljcima.
Konfiguracija politike lozinke
Prije nego počnete uređivati konfiguracijske datoteke, dobra je praksa da unaprijed zapišete osnovnu politiku lozinke. Na primjer, koristit ćemo sljedeća pravila težine:
- Lozinka mora imati minimalnu dužinu od 15 znakova.
- Isti znak ne bi trebalo da se ponavlja više od dva puta u lozinki.
- Klase znakova mogu se ponoviti do četiri puta u lozinki.
- Lozinka mora sadržavati znakove iz svake klase.
- Nova lozinka mora imati 5 novih znakova u odnosu na staru.
- Omogućite provjeru GECOS-a.
- Zabraniti riječi "lozinka, propusnica, riječ, putorius"
Sada kada smo postavili politiku, možemo uređivati datoteku /etc/security/pwquality.conf
za povećanje zahtjeva za složenošću lozinki. Ispod je primjer datoteke s komentarima za bolje razumijevanje.
# 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
Kao što ste možda primijetili, neki parametri u našoj datoteci su suvišni. Na primjer, parametar minclass
je suvišno jer već koristimo najmanje dva znaka iz klase koristeći polja [u,l,d,o]credit
. Naša lista riječi koje se ne mogu koristiti je također suvišna, jer smo zabranili ponavljanje bilo koje klase 4 puta (sve riječi na našoj listi su napisane malim slovima). Uključio sam ove opcije samo da pokažem kako ih koristiti za konfiguriranje vaše politike lozinke.
Nakon što kreirate svoju politiku, možete natjerati korisnike da promijene svoje lozinke sljedeći put kada se prijave.
Još jedna čudna stvar koju ste možda primijetili je da su polja [u,l,d,o]credit
sadrže negativan broj. To je zato što će brojevi veći ili jednaki 0 dati zasluge za korištenje znaka u vašoj lozinki. Ako polje sadrži negativan broj, to znači da je potrebna određena količina.
Šta su krediti?
Zovem ih kreditima jer to što preciznije prenosi njihovu svrhu. Ako je vrijednost parametra veća od 0, dužini lozinke dodajete broj "kredita znakova" jednak "x". Na primjer, ako su svi parametri (u,l,d,o)credit
postavljeno na 1, a potrebna dužina lozinke je 6, tada će vam trebati 6 znakova da ispunite zahtjev za dužinu jer će vam svako veliko, malo slovo, cifra ili drugi znak dati jedan kredit.
Ako instalirate dcredit
na 2, teoretski biste mogli koristiti lozinku dugu 9 znakova i dobiti 2 znaka za brojeve, a tada bi dužina lozinke već mogla biti 10.
Pogledajte ovaj primjer. Postavio sam dužinu lozinke na 13, dcredit na 2, a sve ostalo na 0.
$ pwscore
Thisistwelve
Password quality check failed:
The password is shorter than 13 characters
$ pwscore
Th1sistwelve
18
Moja prva provjera nije uspjela jer je lozinka bila manja od 13 znakova. Sljedeći put sam promijenio slovo “I” u broj “1” i dobio dva kredita za brojeve, čime je lozinka bila jednaka 13.
Testiranje lozinke
Paket libpwquality
pruža funkcionalnost opisanu u članku. Takođe dolazi sa programom pwscore
, koji je dizajniran za provjeru složenosti lozinke. Koristili smo ga iznad za provjeru kredita.
Utility pwscore
čita iz
Ocjena kvalitete lozinke je povezana s parametrom minlen
u konfiguracionoj datoteci. Općenito, rezultat manji od 50 smatra se „normalnom lozinkom“, a rezultat iznad se smatra „jakom lozinkom“. Svaka lozinka koja prolazi provjere kvaliteta (posebno prisilna provjera cracklib
) mora izdržati napade rječnika i lozinku sa rezultatom iznad 50 sa postavkom minlen
čak i po defaultu brute force
napada.
zaključak
podešavanje pwquality
– lako je i jednostavno u poređenju sa neugodnošću upotrebe cracklib
sa direktnim uređivanjem fajlova pam
. U ovom vodiču pokrili smo sve što će vam trebati kada postavljate pravila lozinki na Red Hat 7, CentOS 7, pa čak i na Ubuntu sistemima. Razgovarali smo i o pojmu kredita, o kojem se rijetko piše detaljno, pa je ova tema često ostajala nejasna onima koji se s njom ranije nisu susreli.
Izvori:
Korisni linkovi:
izvor: www.habr.com