Linux-ում գաղտնաբառի քաղաքականության ստեղծում

Կրկին ողջույն! Վաղվանից սկսվում են դասերը նոր կուրսային խմբում «Linux Administrator», այս կապակցությամբ հրապարակում ենք օգտակար հոդված թեմայի շուրջ։

Linux-ում գաղտնաբառի քաղաքականության ստեղծում

Նախորդ ձեռնարկում մենք ձեզ ասացինք, թե ինչպես օգտագործել pam_cracklibհամակարգերում գաղտնաբառերը ավելի բարդ դարձնելու համար Կարմիր գլխարկ 6 կամ CentOS. Կարմիր գլխարկով 7 pam_pwquality փոխարինված cracklib ինչպես pam գաղտնաբառերը ստուգելու լռելյայն մոդուլ: Մոդուլ pam_pwquality աջակցվում է նաև Ubuntu-ում և CentOS-ում, ինչպես նաև շատ այլ ՕՀ-ներում: Այս մոդուլը հեշտացնում է գաղտնաբառի քաղաքականություն ստեղծելը՝ ապահովելու համար, որ օգտվողներն ընդունում են ձեր գաղտնաբառի ուժի չափանիշները:

Երկար ժամանակ գաղտնաբառերի նկատմամբ տարածված մոտեցումն այն էր, որ օգտագործողին ստիպեն օգտագործել մեծատառ, փոքրատառ, թվեր կամ այլ նշաններ: Գաղտնաբառի բարդության այս հիմնական կանոնները լայնորեն տարածվել են վերջին տասը տարիների ընթացքում: Բազմաթիվ քննարկումներ են եղել, թե արդյոք սա լավ պրակտիկա է, թե ոչ: Նման բարդ պայմաններ սահմանելու դեմ հիմնական փաստարկն այն էր, որ օգտատերերը գաղտնաբառերը գրում են թղթի կտորների վրա և պահում դրանք անապահով:

Մեկ այլ քաղաքականություն, որը վերջերս կասկածի տակ է դրվել, ստիպում է օգտվողներին փոխել իրենց գաղտնաբառերը յուրաքանչյուր x օրը մեկ: Եղել են որոշ ուսումնասիրություններ, որոնք ցույց են տվել, որ դա նույնպես վնասակար է անվտանգության համար:

Այս քննարկումների թեմայով բազմաթիվ հոդվածներ են գրվել, որոնք հիմնավորում են այս կամ այն ​​տեսակետը։ Բայց սա այն չէ, ինչ մենք կքննարկենք այս հոդվածում: Այս հոդվածը կխոսի այն մասին, թե ինչպես ճիշտ սահմանել գաղտնաբառի բարդությունը, այլ ոչ թե կառավարել անվտանգության քաղաքականությունը:

Գաղտնաբառի քաղաքականության կարգավորումներ

Ստորև կտեսնեք գաղտնաբառի քաղաքականության ընտրանքները և յուրաքանչյուրի հակիրճ նկարագրությունը: Նրանցից շատերը նման են մոդուլի պարամետրերին cracklib. Այս մոտեցումը հեշտացնում է ձեր քաղաքականության տեղափոխումը հին համակարգից:

  • դիֆոկ – Ձեր նոր գաղտնաբառի նիշերի քանակը, որոնք ՉԻ կարելի առկա լինեն ձեր հին գաղտնաբառում: (կանխադրված 5)
  • մինել - Գաղտնաբառի նվազագույն երկարությունը: (կանխադրված 9)
  • ucredit – Մեծատառ նիշեր օգտագործելու միավորների առավելագույն քանակը (եթե պարամետրը > 0) կամ մեծատառ նիշերի նվազագույն պահանջվող թիվը (եթե պարամետրը < 0): Կանխադրվածը 1 է:
  • վարկ — Փոքրատառ նիշերի օգտագործման միավորների առավելագույն քանակը (եթե պարամետրը > 0) կամ փոքրատառ նիշերի նվազագույն պահանջվող թիվը (եթե պարամետրը < 0): Կանխադրվածը 1 է:
  • dcredit — Թվանշաններ օգտագործելու համար կրեդիտների առավելագույն քանակը (եթե պարամետրը > 0) կամ թվանշանների նվազագույն պահանջվող քանակը (եթե պարամետրը < 0): Կանխադրվածը 1 է:
  • վարկ — Այլ նշաններ օգտագործելու համար միավորների առավելագույն քանակը (եթե պարամետրը > 0) կամ այլ նշանների նվազագույն պահանջվող քանակը (եթե պարամետրը < 0): Կանխադրվածը 1 է:
  • minclass – Սահմանում է պահանջվող դասերի քանակը: Դասերը ներառում են վերը նշված պարամետրերը (մեծատառ, փոքրատառ, թվեր, այլ նիշեր): Կանխադրվածը 0 է:
  • առավելագույն կրկնել – Գաղտնաբառի մեջ նիշերի առավելագույն քանակը կարող է կրկնվել: Կանխադրվածը 0 է:
  • maxclassrepeat — Մեկ դասի հաջորդական նիշերի առավելագույն քանակը: Կանխադրվածը 0 է:
  • gecoscheck – Ստուգում է՝ արդյոք գաղտնաբառը պարունակում է որևէ բառ օգտագործողի GECOS տողերից: (Օգտվողի տվյալներ, այսինքն՝ իրական անունը, գտնվելու վայրը և այլն) Կանխադրվածը 0 է (անջատված):
  • թելադրանք – Եկեք գնանք cracklib բառարաններին:
  • վատ բառեր – Տարածքով առանձնացված բառեր, որոնք արգելված են գաղտնաբառերում (Ընկերության անվանումը, «գաղտնաբառ» բառը և այլն):

Եթե ​​վարկեր հասկացությունը տարօրինակ է հնչում, ոչինչ, նորմալ է: Այս մասին ավելի շատ կխոսենք հաջորդ բաժիններում:

Գաղտնաբառի քաղաքականության կազմաձևում

Նախքան կազմաձևման ֆայլերի խմբագրումը սկսելը, լավ պրակտիկա է նախապես գրել գաղտնաբառի հիմնական քաղաքականությունը: Օրինակ, մենք կօգտագործենք հետևյալ դժվարության կանոնները.

  • Գաղտնաբառը պետք է ունենա նվազագույնը 15 նիշ:
  • Նույն նիշը չպետք է կրկնվի ավելի քան երկու անգամ գաղտնաբառում:
  • Նիշերի դասերը գաղտնաբառով կարող են կրկնվել մինչև չորս անգամ:
  • Գաղտնաբառը պետք է պարունակի յուրաքանչյուր դասի նիշ:
  • Նոր գաղտնաբառը պետք է պարունակի 5 նոր նիշ՝ համեմատած հինի:
  • Միացնել GECOS ստուգումը:
  • Արգելեք «գաղտնաբառ, անցում, բառ, պուտորիուս» բառերը

Այժմ, երբ մենք մշակել ենք քաղաքականությունը, մենք կարող ենք խմբագրել ֆայլը /etc/security/pwquality.confգաղտնաբառի բարդության պահանջները բարձրացնելու համար: Ստորև բերված է մեկնաբանություններով ֆայլի օրինակ՝ ավելի լավ հասկանալու համար:

# 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

Ինչպես նկատել եք, մեր ֆայլի որոշ պարամետրեր ավելորդ են: Օրինակ, պարամետրը minclass ավելորդ է, քանի որ մենք արդեն օգտագործում ենք դասի առնվազն երկու նիշ՝ օգտագործելով դաշտերը [u,l,d,o]credit. Մեր բառերի ցանկը, որոնք չեն կարող օգտագործվել, նույնպես ավելորդ է, քանի որ մենք արգելել ենք ցանկացած դասի 4 անգամ կրկնել (մեր ցուցակի բոլոր բառերը գրված են փոքրատառերով): Ես ներառել եմ այս տարբերակները միայն ցույց տալու համար, թե ինչպես դրանք օգտագործել գաղտնաբառի քաղաքականությունը կարգավորելու համար:
Ձեր քաղաքականությունը ստեղծելուց հետո կարող եք ստիպել օգտատերերին փոխել իրենց գաղտնաբառերը հաջորդ անգամ մուտք գործելիս: համակարգ.

Մեկ այլ տարօրինակ բան, որ դուք կարող եք նկատել, այն է, որ դաշտերը [u,l,d,o]credit պարունակում է բացասական թիվ. Դա պայմանավորված է նրանով, որ 0-ից մեծ կամ հավասար թվերը կվայելեն ձեր գաղտնաբառի նիշն օգտագործելու համար: Եթե ​​դաշտը պարունակում է բացասական թիվ, նշանակում է որոշակի քանակություն է պահանջվում։

Ի՞նչ են վարկերը:

Ես դրանք անվանում եմ վարկեր, քանի որ դա հնարավորինս ճշգրիտ է փոխանցում նրանց նպատակը: Եթե ​​պարամետրի արժեքը 0-ից մեծ է, դուք գաղտնաբառի երկարությանը ավելացնում եք մի շարք «նիշերի միավորներ», որոնք հավասար են «x»-ին: Օրինակ, եթե բոլոր պարամետրերը (u,l,d,o)credit դրված է 1-ի և գաղտնաբառի պահանջվող երկարությունը 6-ն էր, այնուհետև ձեզ անհրաժեշտ կլինի 6 նիշ երկարության պահանջը բավարարելու համար, քանի որ յուրաքանչյուր մեծատառ, փոքրատառ, թվանշան կամ այլ նիշ ձեզ կտա մեկ բոնուս:

Եթե ​​տեղադրեք dcredit 2-ում տեսականորեն կարող եք օգտագործել 9 նիշ երկարությամբ գաղտնաբառ և ստանալ 2 նիշի միավոր թվերի համար, այնուհետև գաղտնաբառի երկարությունը արդեն կարող է լինել 10:

Նայեք այս օրինակին. Ես գաղտնաբառի երկարությունը սահմանել եմ 13, dcredit-ը՝ 2, մնացած ամեն ինչը՝ 0:

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

$ pwscore
 Th1sistwelve
 18

Իմ առաջին ստուգումը ձախողվեց, քանի որ գաղտնաբառը 13 նիշից պակաս էր: Հաջորդ անգամ ես փոխեցի «I» տառը «1» թվի և ստացա երկու միավոր թվերի համար, ինչը գաղտնաբառը դարձրեց 13:

Գաղտնաբառի փորձարկում

Փաթեթ libpwquality ապահովում է հոդվածում նկարագրված ֆունկցիոնալությունը: Այն նաև գալիս է ծրագրով pwscore, որը նախատեսված է գաղտնաբառի բարդությունը ստուգելու համար։ Մենք այն օգտագործել ենք վերևում՝ վարկերը ստուգելու համար:
Օգտակար pwscore -ից կարդում է stdin. Պարզապես գործարկեք կոմունալ ծրագիրը և գրեք ձեր գաղտնաբառը, այն կցուցադրի սխալ կամ արժեք 0-ից 100:

Գաղտնաբառի որակի գնահատականը կապված է պարամետրի հետ minlen կազմաձևման ֆայլում: Ընդհանուր առմամբ, 50-ից պակաս միավորը համարվում է «նորմալ գաղտնաբառ», իսկ դրանից բարձր միավորը՝ «ուժեղ գաղտնաբառ»: Ցանկացած գաղտնաբառ, որն անցնում է որակի ստուգում (հատկապես հարկադիր ստուգում cracklib) պետք է դիմանա բառարանային գրոհներին, և 50-ից բարձր գնահատական ​​ունեցող գաղտնաբառ՝ պարամետրով minlen նույնիսկ լռելյայն brute force հարձակումներ.

Ամփոփում

հարմարեցում pwquality - դա հեշտ է և պարզ՝ համեմատած օգտագործման անհարմարության հետ cracklib ֆայլի ուղղակի խմբագրմամբ pam. Այս ուղեցույցում մենք լուսաբանել ենք այն ամենը, ինչ ձեզ անհրաժեշտ կլինի Red Hat 7, CentOS 7 և նույնիսկ Ubuntu համակարգերում գաղտնաբառի քաղաքականություն սահմանելիս: Խոսեցինք նաև վարկ հասկացության մասին, որի մասին շատ հազվադեպ է գրվում մանրամասն, ուստի այս թեման հաճախ անհասկանալի էր մնում նրանց համար, ովքեր նախկինում չէին բախվել դրան։

Աղբյուրները

pwquality մարդ էջ
pam_pwquality մարդ էջ
pwscore մարդ էջ

Օգտակար հղումներ

Անվտանգ գաղտնաբառերի ընտրություն – Բրյուս Շնայեր
Լորի Ֆեյթ Քրենորը քննարկում է իր գաղտնաբառի ուսումնասիրությունները CMU-ում
Տխրահռչակ xkcd մուլտֆիլմը Entropy-ի վրա

Source: www.habr.com

Добавить комментарий