Дагы бир жолу салам! Жаңы курс группасында сабактар эртең башталат
Мурунку окуу куралында биз кантип колдонуу керектигин айтканбыз pam_cracklib
системалардагы сырсөздөрдү татаалыраак кылуу pam_pwquality
алмаштырылган cracklib
катары pam
сырсөздөрдү текшерүү үчүн демейки модул. Модуль pam_pwquality
ошондой эле Ubuntu жана CentOS, ошондой эле көптөгөн башка ОСларда колдоого алынат. Бул модул колдонуучулар сиздин сырсөзүңүздүн күч стандарттарын кабыл алышын камсыз кылуу үчүн сырсөз саясатын түзүүнү жеңилдетет.
Узак убакыт бою сырсөздөрдүн жалпы ыкмасы колдонуучуну чоң, кичине тамгаларды, сандарды же башка символдорду колдонууга мажбурлоо болгон. Сырсөздүн татаалдыгы үчүн бул негизги эрежелер акыркы он жылдын ичинде кеңири жайылтылды. Бул жакшы практикабы же жокпу деген көп талкуулар болду. Мындай татаал шарттарды коюуга каршы негизги аргумент колдонуучулар паролдорду кагаз бетине жазып алып, кооптуу сактаганы болду.
Жакында суроо жараткан дагы бир саясат колдонуучуларды сырсөздөрүн ар бир x күн сайын алмаштырууга мажбурлайт. Бул да коопсуздукка зыян экенин көрсөткөн кээ бир изилдөөлөр бар.
Бул талкуулардын темасы боюнча тигил же бул көз карашты негиздеген көптөгөн макалалар жазылды. Бирок бул биз бул макалада талкуулай турган нерсе эмес. Бул макалада коопсуздук саясатын башкаруунун ордуна сырсөз татаалдыгын кантип туура орнотуу керектиги жөнүндө сөз болот.
Сырсөз саясатынын жөндөөлөрү
Төмөндө сиз сырсөз саясатынын параметрлерин жана ар биринин кыскача сүрөттөмөсүн көрөсүз. Алардын көбү модулдагы параметрлерге окшош cracklib
. Бул ыкма саясаттарыңызды эски тутумдан көчүрүүнү жеңилдетет.
- difok – Жаңы сырсөзүңүздө эски сырсөзүңүздө БОЛБОГОН символдордун саны. (Демейки 5)
- минлен – Минималдуу сырсөз узундугу. (Демейки 9)
- кредит – Чоң тамгаларды колдонуу үчүн кредиттердин максималдуу саны (эгер параметр > 0 болсо) же чоң тамгалардын минималдуу талап кылынган саны (эгерде параметр < 0 болсо). Демейки 1.
- кредит — Кичи тамгаларды колдонуу үчүн кредиттердин максималдуу саны (эгер параметр > 0 болсо), же кичине тамгалардын минималдуу талап кылынган саны (эгер параметр < 0 болсо). Демейки 1.
- dcredit — Сандарды колдонуу үчүн кредиттердин максималдуу саны (эгер параметр > 0 болсо) же цифралардын минималдуу талап кылынган саны (эгер параметр < 0 болсо). Демейки 1.
- кредит — Башка символдорду колдонуу үчүн кредиттердин максималдуу саны (эгер параметр > 0 болсо) же башка символдордун минималдуу талап кылынган саны (эгерде параметр < 0 болсо). Демейки 1.
- минкласс – Керектүү класстардын санын белгилейт. Класстар жогорудагы параметрлерди камтыйт (жогорку тамгалар, кичине тамгалар, сандар, башка символдор). Демейки 0.
- maxrepeat – Сырсөздө белгини канча жолу кайталаса болот. Демейки 0.
- maxclassrepeat — Бир класстагы ырааттуу символдордун максималдуу саны. Демейки 0.
- gecoscheck – Сырсөздө колдонуучунун GECOS саптарынан кандайдыр бир сөздөр бар же жок экенин текшерет. (Колдонуучунун маалыматы, б.а. чыныгы аты, жайгашкан жери, ж.б.) Демейки 0 (өчүрүү).
- dictpath - Келгиле 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
тартып окуйт
Сырсөздүн сапат упайы параметрге байланыштуу minlen
конфигурация файлында. Жалпысынан алганда, 50дөн аз балл "кадимки сырсөз", ал эми андан жогору балл "күчтүү сырсөз" болуп эсептелет. Сапатты текшерүүдөн өткөн ар кандай сырсөз (өзгөчө мажбурлап текшерүү cracklib
) сөздүк чабуулдарына туруштук бериши керек жана орнотуу менен 50 баллдан жогору болгон сырсөз minlen
демейки боюнча да brute force
кол салуулар.
жыйынтыктоо
тууралоо pwquality
- бул колдонуунун ыңгайсыздыгына салыштырмалуу жеңил жана жөнөкөй cracklib
түз файл түзөтүү менен pam
. Бул колдонмодо биз Red Hat 7, CentOS 7, жада калса Ubuntu системаларында сырсөз саясатын орнотууда сизге керек болгон нерселердин бардыгын карап чыктык. Биз ошондой эле сейрек майда-чүйдөсүнө чейин жазылган кредиттер түшүнүгү жөнүндө сөз кылдык, ошондуктан бул тема көп учурда аны менен жолукпагандар үчүн түшүнүксүз бойдон калууда.
булагы:
Пайдалуу шилтемелер:
Source: www.habr.com