Krijimi i një politike fjalëkalimi në Linux

Pershendetje perseri! Mësimet në grupin e kursit të ri fillojnë nesër "Administrator Linux", në lidhje me këtë, ne po publikojmë një artikull të dobishëm për këtë temë.

Krijimi i një politike fjalëkalimi në Linux

Në tutorialin e mëparshëm ju thamë se si ta përdorni pam_cracklibpër t'i bërë fjalëkalimet në sisteme më komplekse Kapela e Kuqe 6 ose CentOS. Në Red Hat 7 pam_pwquality zëvendësohet cracklib si pam moduli i paracaktuar për kontrollin e fjalëkalimeve. Moduli pam_pwquality gjithashtu mbështetet në Ubuntu dhe CentOS, si dhe shumë OS të tjerë. Ky modul e bën të lehtë krijimin e politikave të fjalëkalimit për të siguruar që përdoruesit të pranojnë standardet e fuqisë së fjalëkalimit tuaj.

Për një kohë të gjatë, qasja e zakonshme ndaj fjalëkalimeve ishte të detyronte përdoruesin të përdorte shkronja të mëdha, të vogla, numra ose simbole të tjera. Këto rregulla bazë për kompleksitetin e fjalëkalimit janë promovuar gjerësisht gjatë dhjetë viteve të fundit. Ka pasur shumë diskutime nëse kjo është praktikë e mirë apo jo. Argumenti kryesor kundër vendosjes së kushteve të tilla komplekse ishte që përdoruesit të shkruajnë fjalëkalimet në copa letre dhe t'i ruajnë ato në mënyrë të pasigurt.

Një politikë tjetër që është vënë në pikëpyetje së fundmi i detyron përdoruesit të ndryshojnë fjalëkalimet e tyre çdo x ditë. Ka pasur disa studime që kanë treguar se kjo është gjithashtu e dëmshme për sigurinë.

Për temën e këtyre diskutimeve janë shkruar shumë artikuj, të cilët vërtetojnë një këndvështrim apo një tjetër. Por kjo nuk është ajo që do të diskutojmë në këtë artikull. Ky artikull do të flasë se si të vendosni saktë kompleksitetin e fjalëkalimit në vend që të menaxhoni politikën e sigurisë.

Cilësimet e politikës së fjalëkalimit

Më poshtë do të shihni opsionet e politikës së fjalëkalimit dhe një përshkrim të shkurtër të secilit. Shumë prej tyre janë të ngjashëm me parametrat në modul cracklib. Kjo qasje e bën më të lehtë transferimin e politikave tuaja nga sistemi i vjetër.

  • difok – Numri i karaktereve në fjalëkalimin tuaj të ri që NUK duhet të jenë të pranishëm në fjalëkalimin tuaj të vjetër. (E parazgjedhur 5)
  • minlen – Gjatësia minimale e fjalëkalimit. (E parazgjedhur 9)
  • ukrediti – Numri maksimal i krediteve për përdorimin e shkronjave të mëdha (nëse parametri > 0), ose numri minimal i kërkuar i karaktereve të mëdha (nëse parametri < 0). Parazgjedhja është 1.
  • lkredi — Numri maksimal i krediteve për përdorimin e karaktereve të vogla (nëse parametri > 0), ose numri minimal i kërkuar i karaktereve të vogla (nëse parametri < 0). Parazgjedhja është 1.
  • dkredit — Numri maksimal i krediteve për përdorimin e shifrave (nëse parametri > 0), ose numri minimal i kërkuar i shifrave (nëse parametri < 0). Parazgjedhja është 1.
  • kreditimi — Numri maksimal i krediteve për përdorimin e simboleve të tjera (nëse parametri > 0), ose numri minimal i kërkuar i simboleve të tjera (nëse parametri < 0). Parazgjedhja është 1.
  • minklasë – Vendos numrin e klasave të kërkuara. Klasat përfshijnë parametrat e mësipërm (karaktere të mëdha, shkronja të vogla, numra, karaktere të tjera). Parazgjedhja është 0.
  • maxpërsërit – Numri maksimal i herëve që një karakter mund të përsëritet në një fjalëkalim. Parazgjedhja është 0.
  • maxclasspërsëritje — Numri maksimal i karaktereve të njëpasnjëshme në një klasë. Parazgjedhja është 0.
  • gecoscheck – Kontrollon nëse fjalëkalimi përmban ndonjë fjalë nga vargjet GECOS të përdoruesit. (Informacioni i përdoruesit, p.sh. emri i vërtetë, vendndodhja, etj.) Parazgjedhja është 0 (off).
  • rrugë diktimi – Le të shkojmë te fjalorët cracklib.
  • fjale te keqija – Fjalë të ndara në hapësirë ​​që janë të ndaluara në fjalëkalime (Emri i kompanisë, fjala “fjalëkalim” etj.).

Nëse koncepti i kredisë tingëllon i çuditshëm, është në rregull, është normale. Ne do të flasim më shumë për këtë në seksionet në vijim.

Konfigurimi i politikës së fjalëkalimit

Përpara se të filloni të redaktoni skedarët e konfigurimit, është një praktikë e mirë të shkruani paraprakisht një politikë bazë fjalëkalimi. Për shembull, ne do të përdorim rregullat e mëposhtme të vështirësisë:

  • Fjalëkalimi duhet të ketë një gjatësi minimale prej 15 karakteresh.
  • I njëjti karakter nuk duhet të përsëritet më shumë se dy herë në fjalëkalim.
  • Klasat e karaktereve mund të përsëriten deri në katër herë në një fjalëkalim.
  • Fjalëkalimi duhet të përmbajë karaktere nga çdo klasë.
  • Fjalëkalimi i ri duhet të ketë 5 karaktere të reja në krahasim me atë të vjetër.
  • Aktivizo kontrollin GECOS.
  • Ndaloni fjalët "fjalëkalim, kalim, fjalë, putorius"

Tani që kemi përcaktuar politikën, mund ta modifikojmë skedarin /etc/security/pwquality.confpër të rritur kërkesat e kompleksitetit të fjalëkalimit. Më poshtë është një skedar shembull me komente për ta kuptuar më mirë.

# 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

Siç mund ta keni vënë re, disa parametra në skedarin tonë janë të tepërt. Për shembull, parametri minclass është e tepërt pasi ne përdorim tashmë të paktën dy karaktere nga klasa duke përdorur fushat [u,l,d,o]credit. Lista jonë e fjalëve që nuk mund të përdoren është gjithashtu e tepërt, pasi ne kemi ndaluar përsëritjen e çdo klase 4 herë (të gjitha fjalët në listën tonë janë të shkruara me shkronja të vogla). Unë i kam përfshirë këto opsione vetëm për të demonstruar se si t'i përdorni ato për të konfiguruar politikën tuaj të fjalëkalimit.
Pasi të keni krijuar politikën tuaj, mund t'i detyroni përdoruesit të ndryshojnë fjalëkalimet e tyre herën tjetër që të identifikohen. sistemi.

Një tjetër gjë e çuditshme që mund të keni vënë re është se fushat [u,l,d,o]credit përmbajnë një numër negativ. Kjo është për shkak se numrat më të mëdhenj ose të barabartë me 0 do të japin kredi për përdorimin e karakterit në fjalëkalimin tuaj. Nëse fusha përmban një numër negativ, do të thotë që kërkohet një sasi e caktuar.

Çfarë janë kreditë?

Unë i quaj kredi sepse kjo e përcjell qëllimin e tyre sa më saktë. Nëse vlera e parametrit është më e madhe se 0, ju shtoni një numër "kreditash karakteresh" të barabartë me "x" në gjatësinë e fjalëkalimit. Për shembull, nëse të gjithë parametrat (u,l,d,o)credit vendoset në 1 dhe gjatësia e kërkuar e fjalëkalimit ishte 6, atëherë do t'ju duhen 6 karaktere për të plotësuar kërkesën për gjatësinë sepse çdo shkronja e madhe, e vogël, shifër ose karakter tjetër do t'ju japë një kredit.

Nëse instaloni dcredit në 2, ju mund të përdorni teorikisht një fjalëkalim me gjatësi 9 karaktere dhe të merrni 2 kredite karakteresh për numrat, dhe më pas gjatësia e fjalëkalimit mund të jetë tashmë 10.

Shikoni këtë shembull. Vendosa gjatësinë e fjalëkalimit në 13, vendosa dcredit në 2 dhe gjithçka tjetër në 0.

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

$ pwscore
 Th1sistwelve
 18

Kontrolli im i parë dështoi sepse fjalëkalimi ishte më pak se 13 karaktere. Herën tjetër që ndryshova shkronjën "I" në numrin "1" dhe mora dy kredite për numrat, gjë që e bëri fjalëkalimin të barabartë me 13.

Testimi i fjalëkalimit

paketë libpwquality ofron funksionalitetin e përshkruar në artikull. Ajo vjen edhe me një program pwscore, i cili është krijuar për të kontrolluar kompleksitetin e fjalëkalimit. Ne e përdorëm atë më lart për të kontrolluar kreditë.
Shërbim pwscore lexohet nga stdin. Thjesht ekzekutoni programin dhe shkruani fjalëkalimin tuaj, ai do të shfaqë një gabim ose një vlerë nga 0 në 100.

Rezultati i cilësisë së fjalëkalimit lidhet me parametrin minlen në skedarin e konfigurimit. Në përgjithësi, një pikë më pak se 50 konsiderohet një "fjalëkalim normal", dhe një pikë mbi të konsiderohet një "fjalëkalim i fortë". Çdo fjalëkalim që kalon kontrollet e cilësisë (veçanërisht verifikimi i detyruar cracklib) duhet të përballojë sulmet e fjalorit dhe një fjalëkalim me një rezultat mbi 50 me cilësimin minlen edhe si parazgjedhje brute force sulmet.

Përfundim

rregullim pwquality - është e lehtë dhe e thjeshtë në krahasim me shqetësimin e përdorimit cracklib me redaktim të drejtpërdrejtë të skedarëve pam. Në këtë udhëzues, ne kemi mbuluar gjithçka që ju nevojitet kur vendosni politikat e fjalëkalimit në sistemet Red Hat 7, CentOS 7 dhe madje edhe Ubuntu. Folëm edhe për konceptin e kredisë, për të cilin rrallëherë shkruhet në detaje, ndaj kjo temë shpeshherë mbetej e paqartë për ata që nuk e kishin hasur më parë.

Burimet:

pwquality man faqe
faqe njeriu pam_pwquality
faqe njeriu pwscore

Lidhje të dobishme:

Zgjedhja e fjalëkalimeve të sigurta - Bruce Schneier
Lorrie Faith Cranor diskuton studimet e saj të fjalëkalimeve në CMU
Filmi vizatimor famëkeq xkcd në Entropy

Burimi: www.habr.com

Shto një koment