Krijimi i politikave së fjalëkalimeve në Linux

Përshëndetje sërish! Nesër fillojnë mësimet në grupin e ri të kursit "Administrator Linux", dhe për këtë arsye po publikojmë një artikull të dobishëm në lidhje me temën.

Krijimi i politikave së fjalëkalimeve në Linux

Në tutorialin e kaluar ne bëmë përshkrimin e mënyrës se si të përdorni pam_cracklib, për të komplikuar fjalëkalimet në sistemet Red Hat 6 ose CentOS. Në Red Hat 7 pam_pwquality zëvendësoi cracklib si pam si moduli i paracaktuar për kontrollin e fjalëkalimeve. Moduli pam_pwquality po ashtu mbështetet në Ubuntu dhe CentOS, si dhe në shumëOS të tjera. Ky modul e lehtëson krijimin e politikave të fjalëkalimeve, për të siguruar që përdoruesit të pranojnë standardet tuaja të vështirësisë së fjalëkalimit.

Për një kohë të gjatë, qasja e zakonshme ndaj fjalëkalimeve ka qenë të detyrojmë përdoruesin të përfshijë në to shkronja të mëdha dhe të vogla, numra ose simbole të tjera. Këto rregulla bazike për vështirësinë e fjalëkalimeve janë promovuar aktivisht gjatë dhjetë viteve të fundit. Ka pasur shumë diskutime mbi qëndrueshmërinë e kësaj praktike. Argumenti kryesor kundër vendosjes së kushteve kaq të rrepta ka qenë se përdoruesit i shkruajnë fjalëkalimet në letra dhe i ruajnë në mënyrë të pasigurt.

Një politikë tjetër, e cila së fundmi është vënë nën dyshim, detyron përdoruesit të ndryshojnë fjalëkalimet e tyre çdo x ditë. Janë bërë disa hulumtime që tregojnë se kjo gjithashtu dëmton sigurinë.

Mbi këto diskutime janë shkruar shumë artikuj, të cilët mbrojnë këtë ose atë pikëpamje. Por, kjo nuk është ajo që do të diskutojmë në këtë artikull. Ky artikull do të flasë për mënyrën e duhur për të vendosur vështirësinë e fjalëkalimit, e jo për menaxhimin e politikës së sigurisë.

Parametrat e politikës së fjalëkalimeve

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

  • difok – Numri i karaktereve në fjalëkalimin tuaj të ri, të cilat NUK duhet të jenë të pranishme në fjalëkalimin tuaj të vjetër. (Me parazgjedhje 5)
  • minlen – Gjatesia minimale e fjalëkalimit. (Me parazgjedhje 9)
  • ucredit – Numri maksimal i krediteve për përdorimin e karaktereve të mëdha (nëse parametri > 0), ose numri minimal i kërkuar i karaktereve të mëdha (nëse parametri < 0). Me parazgjedhje 1.
  • lcredit — Numri maksimal i krediteve për përdorimin e karaktereve të shkronjave të vogla (nëse parametri > 0), ose numri minimal i kërkuar i karaktereve të shkronjave të vogla (nëse parametri < 0). Në parazgjedhje 1.
  • dcredit — Numri maksimal i krediteve për përdorimin e numrave (nëse parametri > 0), ose numri minimal i kërkuar i numrave (nëse parametri < 0). Në parazgjedhje 1.
  • ocredit — 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). Në parazgjedhje 1.
  • minclass – Vendos numrin e klasave të kërkuara. Klasat përfshijnë parametrat e lartpërmendur (simbolet e shkronjave të mëdha, të vogla, numrat dhe simbolet e tjera). Në parazgjedhje 0.
  • maxrepeat – Numri maksimal i përsëritjeve të një simulation në fjalëkalim. Në parazgjedhje 0.
  • maxclassrepeat — Numri maksimal i simboleve të njëjta në një klasë. Në parazgjedhje 0.
  • gecoscheck – Kontrollon nëse fjalëkalimi përmban ndonjë fjalë nga rreshtat GECOS të përdoruesit. (Informacion mbi përdoruesin, si emri i vërtetë, vendndodhja, etj.) Në parazgjedhje 0 (e çaktivizuar).
  • dictpath – Rruga drejt fjalorëve cracklib.
  • badwords – Fjalë të ndara me hapësirë që ndalohen në fjalëkalime (Emri i kompanisë, fjala "fjalëkalim", etj.).

Nëse koncepti i krediteve duket i çuditshëm, asgjë frike, është normale. Ne do të flasim në detaje rreth këtij në seksionet e mëposhtme.

Konfigurationsi i politikës së fjalëkalimit

Para se të filloni të redaktoni skedarët e konfigurimit, është një praktike e mirë të shkruani paraprakisht politikën themelore të fjalëkalimeve. Për shembull, ne do të përdorim rregullat e mëposhtme të kompleksitetit:

  • Fjalëkalimi duhet të ketë një gjatësi minimale prej 15 karakteresh.
  • Në fjalëkalim, një simbol i njëjtë nuk duhet të përsëritet më shumë se dy herë.
  • Në fjalëkalim, klasat e simboleve mund të përsëriten deri në katër herë.
  • Fjalëkalimi duhet të përmbajë karaktere nga çdo klasë.
  • Fjalëkalimi i ri duhet të ketë 5 simbole të reja krahasuar me të vjetrin.
  • Aktivizoni kontrollin GECOS.
  • Ndaloni fjalët "password, pass, word, putorius".

Tani, pasi kemi përshkruar politikën, mund të redaktojmë skedarin /etc/security/pwquality.conf, për të forcuar kërkesat për kompleksitetin e fjalëkalimit. Më poshtë është një shembull i skedarit me komente për kuptim më të 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 të keni vënë re, disa parametra në skedarin tonë janë të tepërt. Për shembull, parametri minclass është tepër, sepse ne tashmë po përdorim të paktën dy simbole nga klasa, duke përdorur fushat [u,l,d,o] kredi. Lista jonë e fjalëve që nuk mund të përdoren është gjithashtu tepër, sepse ne ndaluam përsëritjen e ndonjë klase 4 herë (të gjitha fjalët në listën tonë janë shkruar me letra të vogla). I kam përfshirë këto parametra vetëm për të demonstruar se si t'i përdorni ato për të konfiguruar politikën e fjalëkalimeve.
Sa herë që krijoni politikën tuaj, mund të detyroni përdoruesit të ndryshojnë fjalëkalimet e tyre në hyrjen e tyre të ardhshme në sisteminë.

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

Çfarë janë kreditë (credit)?

I quaj kredita, sepse kjo e përcjell më saktë qëllimin e tyre. Nëse vlera e parametrave është më e madhe se 0, ju shtoni sasinë e «kreditëve për simbole» të barabartë me «x» në gjatësi të fjalëkalimit. Për shembull, nëse të gjitha parametrat (u,l,d,o) kredi janë vendosur në 1, dhe gjatësi e kërkuar e fjalëkalimit ishte 6, atëherë ju nevojiten 6 simbole për të përmbushur kërkesën e gjatësi, sepse çdo simbol nga shkronjat e mëdha, shkronjat e vogla, numrat ose simbolet e tjera do t'ju japin një kredi.

Nëse e vendosni dcredit në 2, ju teorikisht mund të përdorni një fjalëkalim me gjatësi 9 simboresh dhe të merrni 2 kredi për simbole për numrat dhe kështu gjatësi e fjalëkalimit mund të jetë 10.

Shikoni këtë shembull. E vendosa gjatësi fjalëkalimi 13, vendosa dcredit në 2, dhe gjithçka tjetër në 0.

$ pwscore
Thisistwelve
Kontrolli i cilësisë së fjalëkalimit dështoi:
Fjalëkalimi është më i shkurtër se 13 simbole

$ pwscore
Th1sistwelve
18

Kontrolli im i parë dështoi, sepse gjatësi e fjalëkalimit ishte më pak se 13 simbole. Herën tjetër e kam ndryshuar shkronjën “I” në numrin “1” dhe kam marrë dy kredi për numra, që bëri që fjalëkalimi të ishte 13.

Testimi i fjalëkalimit

Paketa libpwquality siguron funksionalitetin e përshkruar në artikull. Gjithashtu, me të vjen programi pwscore, i cili është i destinuar për të kontrolluar fjalëkalimin për kompleksitetin. Ne e përdorëm atë më lart për të kontrolluar kreditë.
Mjeti pwscore lexon nga stdin. Thjesht запускайте утилиту dhe shkruani fjalëkalimin tuaj, ajo do t'ju japë një gabim ose një vlerë nga 0 në 100.

Shkalla e cilësisë së fjalëkalimit përputhet me parametrin minlen në skedarin e konfigurimit. Në përgjithësi, një tregues më i vogël se 50 konsiderohet si "fjalëkalim normal", ndërsa një tregues mbi 50 si "fjalëkalim i fortë". Çdo fjalëkalim që kalon testet e cilësisë (nga të cilat kontrolli i detyrueshëm) cracklib) duhet të përballojë sulmet nga fjalëkaluar, dhe një fjalëkalim me një tregues mbi 50 me cilësimin minlen në parazgjedhje edhe sulme .

Përfundim

Configuration pwquality - është e lehtë dhe e thjeshtë krahasuar me shqetësimet e përdorimit cracklib me redaktim direkt të skedarëve pam. Në këtë udhëzues ne shqyrtuam gjithçka që ju nevojitet për të konfiguruar politikat e fjalëkalimeve në Red Hat 7, CentOS 7 dhe madje edhe sistemet Ubuntu. Gjithashtu, folëm për konceptin e krediteve, për të cilin rrallë shkruhen në detaje, kështu që ky temë shpesh ka mbetur e paqartë për ata që nuk kanë hasur më parë në të.

Burimet:

faqja e njeriut pwquality
faqja e njeriut pam_pwquality
faqja e njeriut pwscore

Linqe të dobishme:

Zgjedhja e Fjalëkalimeve të Sigurta – Bruce Schneier
Lorrie Faith Cranor diskuton studimet e saj mbi fjalëkalimet në CMU
Karikatura e famshme xkcd mbi Entropinë

Burimi: habr.com

Blini hosting të besueshëm për faqe interneti me mbrojtje nga DDoS, serverë VPS VDS 🔥 Blini hosting të besueshëm për faqe interneti me mbrojtje nga DDoS, serverë VPS VDS | ProHoster