Izrada politike lozinki u Linuxu

Ponovno pozdrav svima! Već sutra počinju nastave u novoj grupi tečaja „Administrator Linuxa“, zbog toga objavljujemo koristan članak na tu temu.

Izrada politike lozinki u Linuxu

U prošlom vodiču govorili smo o tome kako koristiti pam_cracklib, kako bismo otežali lozinke u sustavima Red Hat 6 ili CentOS. U Red Hat 7 pam_pwquality zamijenila je cracklib kao pam modul po defaultu za provjeru lozinki. Modul pam_pwquality također se podržava u Ubuntuu i CentOS-u, kao i u mnogim drugim OS-ima. Ovaj modul olakšava izradu politika lozinki kako bi se osiguralo da korisnici prihvaćaju vaše standarde složenosti lozinki.

Dugo vremena običan pristup lozinkama bio je natjerati korisnika da ih koristi s velikim i malim slovima, brojkama ili drugim simbolima. Ova osnovna pravila složenosti lozinki aktivno se promoviraju posljednjih deset godina. Održane su mnoge rasprave o tome je li to dobra praksa ili nije. Glavni argument protiv postavljanja takvih složenih uvjeta bio je taj da korisnici pišu lozinke na papiriće i nesigurno ih pohranjuju.

Druga politika koja je nedavno dovedena u pitanje je da korisnici moraju mijenjati svoje lozinke svakih x dana. Provedena su neka istraživanja koja su pokazala da to također šteti sigurnosti.

Na temu ovih rasprava napisano je mnogo članaka koji su opravdavali ovu ili onu točku gledišta. No, to nije ono o čemu ćemo raspravljati u ovom članku. Ovaj članak će govoriti o tome kako ispravno postaviti složenost lozinke, a ne upravljati politikom sigurnosti.

Parametri politike lozinki

U nastavku ćete vidjeti parametre politike lozinki i kratko objašnjenje svakog od njih. Mnogi od njih su slični parametrima u modulu cracklib. Ovakav pristup olakšava prijenos vaših politika iz starog sustava.

  • difok – Broj znakova u vašoj novoj lozinci koji NE smiju biti prisutni u vašoj staroj lozinci. (Prema zadanim postavkama 5)
  • minlen – Minimalna duljina lozinke. (Prema zadanim postavkama 9)
  • ucredit – Maksimalni broj bodova za korištenje velikih slova (ako je parametar > 0), ili minimalni zahtjev za broj velikih slova (ako je parametar < 0). Prema zadanim postavkama 1.
  • lcredit — Maksimalan broj kredita za korištenje znakova malih slova (ako je parametar > 0), ili minimalni potrebni broj znakova malih slova (ako je parametar < 0). Po defaultu 1.
  • dcredit — Maksimalan broj kredita za korištenje brojeva (ako je parametar > 0), ili minimalni potrebni broj brojeva (ako je parametar < 0). Po defaultu 1.
  • ocredit — Maksimalan broj kredita za korištenje drugih znakova (ako je parametar > 0), ili minimalni potrebni broj drugih znakova (ako je parametar < 0). Po defaultu 1.
  • minclass – Postavlja broj potrebnih klasa. Klase uključuju gore navedene parametre (znakovi velikih slova, malih slova, brojevi, drugi znakovi). Po defaultu 0.
  • maxrepeat – Maksimalan broj ponavljanja znaka u lozinki. Po defaultu 0.
  • maxclassrepeat — Maksimalan broj uzastopnih znakova u jednoj klasi. Po defaultu 0.
  • gecoscheck – Provjerava sadrži li lozinka ikakve riječi iz GECOS stringa korisnika. (Informacije o korisniku, tj. pravo ime, lokacija itd.) Po defaultu 0 (isključeno).
  • dictpath – Putanja do cracklib riječi.
  • badwords – Riječi odvojene razmakom koje su zabranjene u lozinkama (ime tvrtke, riječ „lozinka“ itd.).

Ako pojam kredita zvuči čudno, nema veze, to je normalno. O tome ćemo detaljnije razgovarati u sljedećim poglavljima.

Konfiguracija politike lozinki

Prije nego počnete uređivati datoteke konfiguracije, dobra praksa je unaprijed zapisati osnovnu politiku lozinki. Na primjer, koristiti ćemo sljedeća pravila složenosti:

  • Lozinka mora imati minimalnu dužinu od 15 znakova.
  • U lozinci se isti znak ne smije ponavljati više od dva puta.
  • U lozinkama se klase znakova mogu ponavljati do četiri puta.
  • Lozinka mora sadržavati znakove iz svake klase.
  • Nova lozinka mora imati 5 novih znakova u odnosu na staru.
  • Uključiti provjeru GECOS.
  • Zabraniti riječi „password, pass, word, putorius“

Sada kada smo izložili politiku, možemo urediti datoteku /etc/security/pwquality.conf, kako bismo ojačali zahtjeve za složenost lozinke. U nastavku 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šan jer već koristimo barem dva znaka iz klase, koristeći polja [u,l,d,o]credit. Naš popis riječi koje ne smijemo koristiti također je suvišan jer smo zabranili ponavljanje bilo koje klase 4 puta (sve riječi na našem popisu napisane su malim slovima). Uključio sam ove opcije samo da pokažem kako ih koristiti za podešavanje politike lozinki.
Čim kreirate svoju politiku, možete prisiliti korisnike da promijene svoje lozinke pri sljedećem ulasku u sustav.

Još jedna čudna stvar koju ste možda primijetili je da polja [u,l,d,o]credit sadrže negativan broj. To je zato što će brojevi koji su 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 potrebna određena količina.

Što su krediti (credit)?

Zovem ih kreditima jer to najpreciznije opisuje njihovu svrhu. Ako je vrijednost parametra veća od 0, dodajete količinu „kreditnih znakova“ jednaku „x“ dužini lozinke. Na primjer, ako su svi parametri (u,l,d,o)credit postavljeni na 1, a potrebna duljina lozinke je 6, trebate 6 znakova da biste zadovoljili zahtjev duljine, jer svaki znak velikog, malog slova, broj ili drugi znak daje vam jedan kredit.

Ako postavite dcredit na 2, teorijski možete koristiti lozinku dužine 9 znakova i dobiti 2 kredita za simbole za brojeve, a tad duljina lozinke može biti 10.

Pogledajte ovaj primjer. Postavio sam duljinu lozinke na 13, postavio dcredit na 2, a sve ostalo na 0.

$ pwscore
 Thisistwelve
 Provjera kvalitete lozinke nije uspjela:
  Lozinka je kraća od 13 znakova

$ pwscore
 Th1sistwelve
 18

Moja 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 sa 13.

Testiranje lozinke

Pakets libpwquality osigurava funkcionalnost opisana u članku. Također dolazi s programom pwscore, koji je namijenjen provjeri lozinke na složenost. Koristili smo ga ranije za provjeru kredita.
Alat pwscore čita iz stdin. Jednostavno pokrenite alat i unesite svoju lozinku, on će dati grešku ili vrijednost od 0 do 100.

Indeks kvalitete lozinke odnosi se na parametar minlen u konfiguracijskoj datoteci. Općenito, rezultat manji od 50 smatra se „normalnom lozinkom“, a iznad – „jakom lozinkom“. Svaka lozinka koja prođe testove kvalitete (posebno obaveznu provjeru cracklib) trebala bi odoljeti napadima rječnika, a lozinka s rezultatom iznad 50 u postavkama minlen prema zadanim postavkama čak brute force napadima.

Zaključak

Podešavanje pwquality – to je lako i jednostavno u usporedbi s neugodnostima korištenja cracklib s izravnim uređivanjem datoteka pam. U ovom vodiču obradili smo sve što će vam trebati pri postavljanju politika lozinki u Red Hat 7, CentOS 7 i čak sustavima Ubuntu. Također smo razgovarali o konceptu bodova, o kojem se rijetko piše detaljno, pa je ova tema često ostajala nejasna onima koji se s njom ranije nisu susretali.

Izvori:

pwquality man stranica
pam_pwquality man stranica
pwscore man stranica

Korisne veze:

Odabir sigurnih lozinki – Bruce Schneier
Lorrie Faith Cranor raspravlja o svojim istraživanjima lozinki na CMU
Nezaboravni xkcd crtani film o Entropiji

Izvor: habr.com

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster