Crearea unei politici de parole în Linux

Buna din nou! Mâine încep cursurile din noua grupă de curs „Administrator Linux”, în acest sens, publicăm un articol util pe această temă.

Crearea unei politici de parole în Linux

În tutorialul anterior v-am spus cum să utilizați pam_cracklibpentru a face parolele pe sisteme mai complexe Red Hat 6 sau CentOS. În Red Hat 7 pam_pwquality înlocuit cracklib la fel de pam modul implicit pentru verificarea parolelor. Modul pam_pwquality acceptat și pe Ubuntu și CentOS, precum și pe multe alte sisteme de operare. Acest modul facilitează crearea politicilor de parole pentru a se asigura că utilizatorii acceptă standardele dvs. de putere a parolei.

Multă vreme, abordarea comună a parolelor a fost aceea de a forța utilizatorul să folosească litere mari, minuscule, numere sau alte simboluri. Aceste reguli de bază pentru complexitatea parolelor au fost promovate pe scară largă în ultimii zece ani. Au existat multe discuții despre dacă aceasta este o practică bună sau nu. Principalul argument împotriva stabilirii unor astfel de condiții complexe a fost acela că utilizatorii notează parolele pe bucăți de hârtie și le stochează în mod nesigur.

O altă politică care a fost pusă în discuție recent îi obligă pe utilizatori să-și schimbe parolele la fiecare x zile. Au existat unele studii care au arătat că acest lucru este și în detrimentul siguranței.

Pe tema acestor discuții au fost scrise multe articole, care fundamentează un punct de vedere sau altul. Dar nu despre asta vom discuta în acest articol. Acest articol va vorbi despre cum să setați corect complexitatea parolei, mai degrabă decât să gestionați politica de securitate.

Setări politici de parolă

Mai jos veți vedea opțiunile politicii de parole și o scurtă descriere a fiecăreia. Multe dintre ele sunt similare cu parametrii din modul cracklib. Această abordare facilitează portarea politicilor dvs. din sistemul moștenit.

  • difok – Numărul de caractere din noua parolă care NU ar trebui să fie prezente în vechea parolă. (Implicit 5)
  • minlen – Lungimea minimă a parolei. (implicit 9)
  • ucredit – Numărul maxim de credite pentru utilizarea caracterelor majuscule (dacă parametrul > 0) sau numărul minim necesar de caractere majuscule (dacă parametrul < 0). Implicit este 1.
  • lcredit — Numărul maxim de credite pentru utilizarea caracterelor minuscule (dacă parametrul > 0) sau numărul minim necesar de caractere minuscule (dacă parametrul < 0). Implicit este 1.
  • dcredit — Numărul maxim de credite pentru utilizarea cifrelor (dacă parametrul > 0) sau numărul minim necesar de cifre (dacă parametrul < 0). Implicit este 1.
  • ocredit — Numărul maxim de credite pentru utilizarea altor simboluri (dacă parametrul > 0) sau numărul minim necesar de alte simboluri (dacă parametrul < 0). Implicit este 1.
  • minclass – Setează numărul de clase necesare. Clasele includ parametrii de mai sus (caractere majuscule, caractere mici, numere, alte caractere). Implicit este 0.
  • maxrepeat – De câte ori un caracter poate fi repetat într-o parolă. Implicit este 0.
  • maxclassrepeat — Numărul maxim de caractere consecutive dintr-o clasă. Implicit este 0.
  • gecoscheck – Verifică dacă parola conține cuvinte din șirurile GECOS ale utilizatorului. (Informații despre utilizator, adică numele real, locația etc.) Implicit este 0 (dezactivat).
  • dictpath – Să mergem la dicționarele cracklib.
  • cuvinte rele – Cuvinte separate prin spații care sunt interzise în parole (numele companiei, cuvântul „parolă”, etc.).

Dacă conceptul de împrumuturi sună ciudat, e în regulă, este normal. Vom vorbi mai multe despre asta în secțiunile următoare.

Configurarea politicii de parolă

Înainte de a începe editarea fișierelor de configurare, este o practică bună să scrieți în prealabil o politică de bază privind parolele. De exemplu, vom folosi următoarele reguli de dificultate:

  • Parola trebuie să aibă o lungime minimă de 15 caractere.
  • Același caracter nu trebuie repetat de mai mult de două ori în parolă.
  • Clasele de caractere pot fi repetate de până la patru ori într-o parolă.
  • Parola trebuie să conțină caractere din fiecare clasă.
  • Noua parolă trebuie să aibă 5 caractere noi în comparație cu cea veche.
  • Activați verificarea GECOS.
  • Interziceți cuvintele „parolă, trecere, cuvânt, putorius”

Acum că am stabilit politica, putem edita fișierul /etc/security/pwquality.confpentru a crește cerințele de complexitate a parolei. Mai jos este un exemplu de fișier cu comentarii pentru o mai bună înțelegere.

# 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

După cum probabil ați observat, unii parametri din fișierul nostru sunt redundanți. De exemplu, parametrul minclass este redundant deoarece folosim deja cel puțin două caractere din clasă folosind câmpuri [u,l,d,o]credit. Lista noastră de cuvinte care nu pot fi folosite este, de asemenea, redundantă, deoarece am interzis repetarea oricărei clase de 4 ori (toate cuvintele din lista noastră sunt scrise cu litere mici). Am inclus aceste opțiuni doar pentru a demonstra cum să le utilizez pentru a configura politica de parole.
După ce v-ați creat politica, puteți forța utilizatorii să-și schimbe parolele data viitoare când se conectează. sistem.

Un alt lucru ciudat pe care poate l-ați observat este că câmpurile [u,l,d,o]credit conțin un număr negativ. Acest lucru se datorează faptului că numerele mai mari sau egale cu 0 vor da credit pentru utilizarea caracterului din parola dvs. Dacă câmpul conține un număr negativ, înseamnă că este necesară o anumită cantitate.

Ce sunt împrumuturile?

Le numesc împrumuturi pentru că asta le transmite scopul cât mai exact posibil. Dacă valoarea parametrului este mai mare decât 0, adăugați un număr de „credite de caractere” egal cu „x” la lungimea parolei. De exemplu, dacă toți parametrii (u,l,d,o)credit setată la 1 și lungimea necesară a parolei a fost de 6, atunci veți avea nevoie de 6 caractere pentru a satisface cerințele privind lungimea, deoarece fiecare literă mare, minusculă, cifră sau alt caracter vă va acorda un credit.

Daca instalezi dcredit la 2, teoretic ați putea folosi o parolă care are 9 caractere și obține credite de 2 caractere pentru numere, iar apoi lungimea parolei ar putea fi deja de 10.

Uită-te la acest exemplu. Am setat lungimea parolei la 13, am stabilit dcredit la 2 și orice altceva la 0.

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

$ pwscore
 Th1sistwelve
 18

Prima mea verificare a eșuat deoarece parola avea mai puțin de 13 caractere. Data viitoare am schimbat litera „I” cu numărul „1” și am primit două credite pentru numere, ceea ce a făcut ca parola să fie egală cu 13.

Testarea parolei

pachet libpwquality oferă funcționalitatea descrisă în articol. Vine si cu un program pwscore, care este conceput pentru a verifica complexitatea parolei. L-am folosit mai sus pentru a verifica împrumuturile.
Utilitate pwscore citeste din stdin. Doar rulați utilitarul și scrieți parola, va afișa o eroare sau o valoare de la 0 la 100.

Scorul de calitate al parolei este legat de parametru minlen în fișierul de configurare. În general, un scor mai mic de 50 este considerat o „parolă normală”, iar un scor peste acesta este considerat o „parolă puternică”. Orice parolă care trece verificările de calitate (în special verificarea forțată cracklib) trebuie să reziste atacurilor de dicționar și unei parole cu un scor peste 50 cu setarea minlen chiar și implicit brute force atacuri.

Concluzie

ajustare pwquality – este ușor și simplu în comparație cu inconvenientul de utilizare cracklib cu editare directă a fișierelor pam. În acest ghid, am acoperit tot ce aveți nevoie atunci când configurați politicile de parole pe Red Hat 7, CentOS 7 și chiar sistemele Ubuntu. Am vorbit și despre conceptul de împrumuturi, despre care se scrie rar în detaliu, așa că acest subiect a rămas adesea neclar pentru cei care nu l-au întâlnit anterior.

Surse:

pagina de manual pwquality
pagina de manual pam_pwquality
pagina de manual pwscore

Link-uri utile:

Alegerea parolelor sigure – Bruce Schneier
Lorrie Faith Cranor discută despre studiile ei de parole la CMU
Infamul desen animat xkcd despre Entropie

Sursa: www.habr.com

Adauga un comentariu