Линукс дээр нууц үгийн бодлогыг бий болгох

Дахин сайн уу! Шинэ курсын бүлгийн хичээл маргааш эхэлнэ "Linux администратор", үүнтэй холбогдуулан бид энэ сэдвээр хэрэгтэй нийтлэлийг нийтэлж байна.

Линукс дээр нууц үгийн бодлогыг бий болгох

Өмнөх зааварт бид хэрхэн ашиглах талаар хэлсэн pam_cracklibсистем дээрх нууц үгийг илүү төвөгтэй болгох Улаан малгай 6 эсвэл CentOS. Улаан малгайт 7 pam_pwquality сольсон cracklib зэрэг pam нууц үг шалгах үндсэн модуль. Модуль pam_pwquality Ubuntu болон CentOS болон бусад олон үйлдлийн системүүд дээр дэмжигддэг. Энэ модуль нь хэрэглэгчид таны нууц үгийн бат бөх байдлын стандартыг хүлээн зөвшөөрч байгаа эсэхийг баталгаажуулахын тулд нууц үгийн бодлогыг бий болгоход хялбар болгодог.

Удаан хугацааны туршид нууц үгийн нийтлэг арга бол хэрэглэгчийг том, жижиг үсэг, тоо эсвэл бусад тэмдэгтүүдийг ашиглахыг албадах явдал байв. Нууц үгийн нарийн төвөгтэй байдлын эдгээр үндсэн дүрмийг сүүлийн арван жилийн хугацаанд өргөнөөр сурталчилсан. Энэ нь сайн туршлага мөн үү, үгүй ​​юу гэдэг талаар нэлээд ярилцсан. Ийм нарийн төвөгтэй нөхцөлийг тогтоохын эсрэг гол үндэслэл нь хэрэглэгчид нууц үгээ цаасан дээр бичиж, найдвартай хадгалдаг явдал байв.

Саяхан эргэлзээтэй байгаа өөр нэг бодлого нь хэрэглэгчдийг х өдөр тутамд нууц үгээ солихыг шаарддаг. Энэ нь бас аюулгүй байдалд сөргөөр нөлөөлдөг гэсэн судалгаа бий.

Эдгээр хэлэлцүүлгийн сэдвээр олон нийтлэл бичсэн бөгөөд энэ нь аль нэг үзэл бодлыг нотолсон болно. Гэхдээ энэ нь бидний энэ нийтлэлд хэлэлцэх зүйл биш юм. Энэ нийтлэл нь аюулгүй байдлын бодлогыг удирдахаас илүү нууц үгийн нарийн төвөгтэй байдлыг хэрхэн зөв тохируулах талаар ярих болно.

Нууц үгийн бодлогын тохиргоо

Доор та нууц үгийн бодлогын сонголтууд болон тус бүрийн товч тайлбарыг харах болно. Тэдгээрийн ихэнх нь модулийн параметрүүдтэй төстэй байдаг cracklib. Энэ арга нь хуучин системээс бодлогоо шилжүүлэхэд хялбар болгодог.

  • намайг уучлаарай – Таны шинэ нууц үгэнд байх ёсгүй тэмдэгтүүдийн тоо. (Өгөгдмөл 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 шалгалтыг идэвхжүүлнэ үү.
  • "Нууц үг, нэвтрэх үг, үг, putorius" гэсэн үгсийг хориглох.

Одоо бид бодлогыг тодорхойлсон тул файлыг засах боломжтой /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-д нууц үг судлах талаар ярилцаж байна
Entropy-ийн тухай "The Infamous xkcd" хүүхэлдэйн кино

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх