Krijimi i politikave të fjalëkalimeve në Linux

Përshëndetje përsëri! Më në fund 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ë këtë temë.

Krijimi i politikave të fjalëkalimeve në Linux

Në tutorialin e kaluar ne folëm për atë se si të përdorim 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 moduli i paracaktuar për kontrollin e fjalëkalimeve. Moduli pam_pwquality mbështetet gjithashtu në Ubuntu dhe CentOS, si dhe në shumë sisteme të tjera operative. Ky modul lehtëson krijimin e politikave të fjalëkalimeve për të siguruar se përdoruesit i përmbushin standardet tuaja të kompleksitetit të fjalëkalimeve.

Për një kohë të gjatë, qasja e zakonshme ndaj fjalëkalimeve ka qenë të detyrosh përdoruesin të përdorë në to simbole të shkronjave të mëdha dhe të vogla, numra ose simbole të tjera. Këto rregulla bazë të kompleksitetit të fjalëkalimeve janë propaganduar aktivisht në dhjetë vitet e fundit. Ka pasur shumë diskutime se a është kjo një praktikë e mirë apo jo. Argumenti kryesor kundër vendosjes së këtyre kushteve të vështira ka qenë se përdoruesit i shkruajnë fjalëkalimet në letër dhe i ruajnë në mënyrë të pasigurt.

Një politikë tjetër, e cila së fundmi është vënë në pikëpyetje, deturon përdoruesit të ndërrrojnë fjalëkalimet e tyre çdo x ditë. Janë kryer disa studime që kanë treguar se kjo gjithashtu dëmton sigurinë.

Për këto diskutime janë shkruar shumë artikuj që mbrojnë këtë apo 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 caktimit të saktë të kompleksitetit të fjalëkalimeve, e jo për menaxhimin e politikave të sigurisë.

Opsionet e politikave të fjalëkalimeve

Më poshtë do të shihni opsionet e politikave të fjalëkalimeve dhe një përshkrim të shkurtër të secilit prej tyre. Shumë prej tyre janë të ngjashme me opsionet në modulin cracklib. Ky qasje e lehtëson bartjen e politikave tuaja nga sistemi i vjetër.

  • difok – Numri i simboleve në fjalëkalimin tuaj të ri që nuk duhet të jenë të pranishme në fjalëkalimin tuaj të vjetër. (Parazgjedhur 5)
  • minlen – Gjatësia minimale e fjalëkalimit. (Parazgjedhur 9)
  • ucredit – Numri maksimal i krediteve për përdorimin e simboleve me shkronja të mëdha (nëse parametri > 0), ose numri minimal i kërkuar i simboleve me shkronja të mëdha (nëse parametri < 0). Parazgjedhur 1.
  • lcredit — Numri maksimal i krediteve për përdorimin e karaktereve të poshtme (nëse parametri > 0), ose numri minimal i kërkuar i karaktereve të poshtme (nëse parametri < 0). Në përmbledhje, 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ë përmbledhje, 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ë përmbledhje, 1.
  • minclass – Vendos numrin e klasave të kërkuara. Klasat përfshijnë parametrat e mësipërm (karaktere të mëdha, të vogla, numra, simbole të tjera). Në përmbledhje, 0.
  • maxrepeat – Numri maksimal i përsëritjeve të një karakteri në fjalëkalim. Në përmbledhje, 0.
  • maxclassrepeat — Numri maksimal i karaktereve të njëpasnjëshme në një klasë. Në përmbledhje, 0.
  • gecoscheck – Kontrollon nëse fjalëkalimi përmban ndonjë fjalë nga rreshtat GECOS të përdoruesit. (Informacion mbi përdoruesin, pra emri i vërtetë, vendndodhja etj.) Në përmbledhje, 0 (ndryshuar).
  • dictpath – Rruga për në fjalorët cracklib.
  • badwords – Fjalë të ndara me hapësira, të cilat janë të ndaluara në fjalëkalime (Emri i kompanisë, fjala 'fjalëkalim', etj.).

Nëse koncepti i kredive duket i çuditshëm, nuk ka problem, është normale. Ne do të flasim më shumë rreth këtij problemi në kapitujt e ardhshëm.

Konfigurimi i politikës së fjalëkalimeve

Para se të filloni të redaktoni skedarët e konfigurimit, është praktikë e mirë të shkruani paraprakisht politikën bazë 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, 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ë.
  • Fjalëkalimi duhet të përmbajë karaktere nga secila klasë.
  • Fjalëkalimi i ri duhet të ketë 5 karaktere të reja krahasuar me të vjetrin.
  • Aktivizoni kontrollin GECOS.
  • Ndalo fjalët 'password, pass, word, putorius'.

Tani, sapo e kemi shpjeguar politikën, mund të redaktojmë skedarin /etc/security/pwquality.conf, për të forcuar kërkesat për kompleksitetin e fjalëkalimeve. Më poshtë është një shembull skedari me komente për një 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ç e keni vënë re, disa parametra në skedarin tonë janë të tepërt. Për shembull, parametri minclass është e tepërt, pasi ne tashmë po përdorim të paktën dy karaktere nga klasa, duke përdorur fushat [u,l,d,o]kredi. Lista jonë e fjalëve që nuk mund të përdoren gjithashtu është e tepërt, pasi ne kemi ndaluar përsëritjen e ndonjë klase 4 herë (të gjitha fjalët në listën tonë janë shkruar me shkronja të vogla). I përfshiva këta parametra vetëm për të demonstruar se si t'i përdorni ato për të rregulluar politikën e fjalëkalimeve.
Nuk ka rëndësi sa herë që krijoni politikën tuaj, ju mund të detyroni përdoruesit të ndryshojnë fjalëkalimet e tyre kur të hyjnë përsëri në sistem.

Një gjë tjetër 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ë japin kredi për përdorimin e karakterit në fjalëkalimin tuaj. Nëse fusha ka një numër negativ, kjo do të thotë se një sasi e caktuar është e nevojshme.

Çfarë janë kreditë?

Unë i quaj kredite, pasi kjo e përshkruan më saktë qëllimin e tyre. Nëse vlera e parametrave është më e madhe se 0, ju shtoni një numër "kreditesh për karaktere" të barabarta me "x" në gjatësi të fjalëkalimit. Për shembull, nëse të gjithë parametrat (u,l,d,o)kredi nëse vendosni 1, dhe është kërkuar një gjatësi fjalekalimi prej 6, atëherë do t'ju duhen 6 karaktere për të përmbushur kërkesën për gjatësi, sepse çdo karakter i shkronjave të mëdha, të vogla, numra ose simbol tjetër do t'ju japë një kredi.

Nëse vendosni dcredit në 2, teorikisht do të mund të përdorni një fjalekalim me gjatësi 9 karaktere dhe të merrni 2 kredi për karakteret për numrat dhe atëherë gjatësi e fjalekalimit mund të jetë 10.

Shikoni këtë shembull. Them gjatësi fjalekalimi 13, vendos 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 karaktere

$ pwscore
 Th1sistwelve
 18

Kontrolli im i parë dështoi, sepse gjatësi e fjalëkalimit ishin më pak se 13 karaktere. Herën tjetër e ndryshova shkronjën “I” në numrin “1” dhe mora dy kredi për numrat, e cila e barazoi fjalëkalimin në 13.

Testimi i fjalëkalimit

Paketa libpwquality ofron funksionalitetin e përshkruar në artikull. Po ashtu, vjen me programin pwscore, i cili është i destinuar për kontrollin e fjalëkalimit për kompleksitet. E kemi përdorur më lart, për të kontrolluar kredit.
Utilitari pwscore lexon nga stdin. Thjesht ekzekutoni utilitarin dhe shkruani fjalëkalimin tuaj, ai do të nxjerrë një gabim ose një vlerë nga 0 deri në 100.

Të dhënat për cilësinë e fjalëkalimit përputhen me parametrin minlen në skedarin e konfigurimit. Në përgjithësi, një rezultat më i vogël se 50 konsiderohet si "fjalëkalim normal", ndërsa mbi 50 si "fjalëkalim i fortë". Çdo fjalëkalim që kalon kontrollet e cilësisë (veçanërisht kontrollin e detyrueshëm cracklib) duhet të qëndrojë kundër sulmeve nga fjalorët, ndërsa një fjalëkalim me një rezultat mbi 50 me konfigurimin minlen në mënyrë default madje sulmet brute force .

Përfundimi

Konfigurimi pwquality është e lehtë dhe e thjeshtë krahasuar me shqetësimet në përdorimin cracklib me redaktim të drejtpërdrejtë të skedarëve pam. Në këtë udhëzues, ne do të shqyrtojmë gjithçka që ju nevojitet për të konfiguruar politikat e fjalëkalimeve në Red Hat 7, CentOS 7 dhe madje edhe në sistemet Ubuntu. Ne gjithashtu folëm për konceptin e krediteve, për të cilat shpesh shkruhet pak, kështu që kjo temë shpesh ka mbetur e paqartë për ata që nuk kanë hasur kurrë më parë.

Burimet:

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

Linke të dobishme:

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

Burimi: habr.com

Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS 🔥 Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS | ProHoster