Linux жүйесінде құпия сөз саясатын жасау

Тағы да сәлем! Жаңа курс тобында сабақтар ертең басталады «Linux әкімшісі», осыған байланысты біз тақырып бойынша пайдалы мақала жариялап отырмыз.

Linux жүйесінде құпия сөз саясатын жасау

Алдыңғы оқулықта біз сізге қалай пайдалану керектігін айттық pam_cracklibжүйелердегі құпия сөздерді күрделірек ету Қызыл қалпақ 6 немесе CentOS. Қызыл қалпақ 7 pam_pwquality ауыстырылды cracklib ретінде pam құпия сөздерді тексеруге арналған әдепкі модуль. Модуль pam_pwquality сонымен қатар Ubuntu және CentOS-та, сондай-ақ көптеген басқа операциялық жүйелерде қолдау көрсетіледі. Бұл модуль пайдаланушылардың құпия сөз күші стандарттарын қабылдауын қамтамасыз ету үшін құпия сөз саясаттарын жасауды жеңілдетеді.

Ұзақ уақыт бойы құпия сөздерге кең таралған тәсіл пайдаланушыны бас әріптерді, кіші әріптерді, сандарды немесе басқа белгілерді қолдануға мәжбүрлеу болды. Құпия сөздің күрделілігіне арналған бұл негізгі ережелер соңғы он жылда кеңінен насихатталды. Бұл жақсы тәжірибе ме, жоқ па деген сұрақ көп талқыланды. Мұндай күрделі шарттарды орнатуға қарсы негізгі аргумент пайдаланушылардың парольдерді қағаз бөліктеріне жазып алып, оларды қауіпсіз сақтауы болды.

Жақында күмән тудырған тағы бір саясат пайдаланушыларды әрбір x күн сайын құпия сөздерін өзгертуге мәжбүр етеді. Кейбір зерттеулер бұл қауіпсіздікке де зиянын тигізетінін көрсетті.

Осы пікірталастардың тақырыбына бір немесе басқа көзқарасты негіздейтін көптеген мақалалар жазылды. Бірақ бұл біз осы мақалада талқылайтын нәрсе емес. Бұл мақалада қауіпсіздік саясатын басқарудан гөрі құпия сөздің күрделілігін қалай дұрыс орнату керектігі туралы айтылады.

Құпиясөз саясаты параметрлері

Төменде құпия сөз саясаты опцияларын және әрқайсысының қысқаша сипаттамасын көресіз. Олардың көпшілігі модульдегі параметрлерге ұқсас cracklib. Бұл тәсіл бұрынғы жүйеден саясаттарды тасымалдауды жеңілдетеді.

  • difok – Жаңа құпия сөзіңіздегі ескі құпия сөзіңізде БОЛМАЙТЫН таңбалар саны. (Әдепкі 5)
  • минлен – Ең аз құпия сөз ұзындығы. (Әдепкі 9)
  • кредит – Бас әріптерді пайдалану үшін кредиттердің ең көп саны (егер параметр > 0 болса) немесе бас әріптердің ең аз қажетті саны (параметр < 0 болса). Әдепкі 1.
  • несие — Кіші әріптерді пайдалану үшін кредиттердің ең көп саны (параметр > 0 болса) немесе кіші әріптердің ең аз қажетті саны (параметр < 0 болса). Әдепкі 1.
  • кредит — Цифрларды пайдалану үшін кредиттердің максималды саны (егер параметр > 0 болса) немесе цифрлардың ең аз қажетті саны (параметр < 0 болса). Әдепкі 1.
  • кредиттеу — Басқа белгілерді пайдалану үшін кредиттердің максималды саны (егер параметр > 0 болса) немесе басқа таңбалардың ең аз қажетті саны (параметр < 0 болса). Әдепкі 1.
  • шағын сынып – Қажетті сыныптар санын орнатады. Кластарға жоғарыда аталған параметрлер кіреді (бас әріптер, кіші әріптер, сандар, басқа таңбалар). Әдепкі – 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 мультфильмі

Ақпарат көзі: www.habr.com

пікір қалдыру