Зөөврийн гэрийн лавлахуудыг удирдахын тулд systemd-homed-ийг нэвтрүүлсэн

Ленарт Поттеринг танилцуулав (PDF) All Systems Go 2019 бага хурал дээр системийн менежер системийн шинэ бүрэлдэхүүн хэсэг - systemd-homed, хэрэглэгчийн гэрийн лавлахуудыг зөөврийн, системийн тохиргооноос тусдаа болгоход чиглэгдсэн. Төслийн гол санаа нь танигчийн синхрончлол, нууцлалын талаар санаа зовохгүйгээр өөр өөр системүүдийн хооронд дамжуулж болох хэрэглэгчийн өгөгдөлд бие даасан орчинг бий болгох явдал юм.

Гэрийн лавлах орчин нь өгөгдөл нь шифрлэгдсэн, суурилуулсан зургийн файл хэлбэрээр ирдэг. Хэрэглэгчийн итгэмжлэлүүд нь /etc/passwd болон /etc/shadow-ын оронд системийн тохиргооноос илүү гэрийн лавлахтай холбоотой байдаг. танилцуулга ~/.identity санд хадгалагдсан JSON форматаар. Профайл нь нэр, нууц үгийн хэш, шифрлэлтийн түлхүүр, квот, хуваарилагдсан нөөцийн талаарх мэдээлэл зэрэг хэрэглэгчийн ажилд шаардлагатай параметрүүдийг агуулдаг. Профайлыг гадаад Yubikey жетон дээр хадгалагдсан тоон гарын үсгээр баталгаажуулж болно.

Параметрүүд нь SSH түлхүүр, биометрийн баталгаажуулалтын өгөгдөл, зураг, имэйл, хаяг, цагийн бүс, хэл, процесс болон санах ойн хязгаарлалт, нэмэлт холболтын туг (nodev, noexec, nosuid), ашигласан хэрэглэгчийн IMAP/SMTP серверийн талаарх мэдээлэл зэрэг нэмэлт мэдээллийг агуулж болно. , эцэг эхийн хяналтыг идэвхжүүлэх тухай мэдээлэл, нөөц сонголт гэх мэт. Параметрүүдийг хүсэх, задлан шинжлэхэд API-г өгсөн Варлинк.

UID/GID хуваарилалт, боловсруулалт нь гэрийн лавлах холбогдсон дотоод систем бүр дээр динамикаар хийгддэг. Санал болгож буй системийг ашигласнаар хэрэглэгч өөрийн гэрийн лавлахыг, жишээлбэл, флаш диск дээр хадгалах, ямар ч компьютер дээр данс үүсгэхгүйгээр ажиллах орчинг авах боломжтой (гэрийн лавлахын дүрс бүхий файл байгаа эсэх). хэрэглэгчийн синтезд хүргэдэг).

Өгөгдлийн шифрлэлтэд LUKS2 дэд системийг ашиглахыг санал болгож байгаа боловч systemd-homed нь шифрлэгдээгүй лавлах, Btrfs, Fscrypt болон CIFS сүлжээний хуваалтуудыг ашиглах боломжийг олгодог. Зөөврийн лавлахуудыг удирдахын тулд homectl хэрэгслийг санал болгож байгаа бөгөөд энэ нь гэрийн лавлахуудын зургийг үүсгэх, идэвхжүүлэх, мөн хэмжээг нь өөрчлөх, нууц үг тохируулах боломжийг олгодог.

Системийн түвшинд ажлыг дараахь бүрэлдэхүүн хэсгүүдээр хангадаг.

  • systemd-homed.service - гэрийн лавлахыг удирдаж, JSON бичлэгийг шууд гэрийн лавлах зурагт оруулах;
  • pam_systemd - хэрэглэгч нэвтэрсэн үед JSON профайлаас параметрүүдийг боловсруулж, идэвхжүүлсэн сессийн контекстэд ашигладаг (гэрчлэлт хийх, орчны хувьсагчдыг тохируулах гэх мэт);
  • systemd-logind.service - хэрэглэгч нэвтрэх үед JSON профайлаас параметрүүдийг боловсруулж, нөөцийн удирдлагын янз бүрийн тохиргоог хэрэглэж, хязгаарлалт тогтоох;
  • nss-systemd - glibc-д зориулсан NSS модуль, JSON профайл дээр суурилсан сонгодог NSS бичлэгүүдийг нэгтгэж, UNIX хэрэглэгчийн боловсруулалтын API (/etc/password)-тай хойшлогдсон нийцтэй байдлыг хангадаг;
  • PID 1 - хэрэглэгчдийг динамикаар үүсгэж (нэгжээр DynamicUser удирдамжийг ашиглан нийлэгжүүлсэн) системийн бусад хэсэгт харагдахуйц болгодог;
  • systemd-userdbd.service - UNIX/glibc NSS акаунтуудыг JSON бүртгэл рүү хөрвүүлж, бүртгэлээс асуулга хийх, давталт хийх нэгдсэн Varlink API-ээр хангадаг.

Санал болгож буй системийн давуу талууд нь зөвхөн унших горимд /etc лавлахыг холбохдоо хэрэглэгчдийг удирдах чадвар, системүүдийн хооронд танигчийг (UID/GID) синхрончлох шаардлагагүй, хэрэглэгчийн тодорхой компьютерээс хараат бус байх, хэрэглэгчийн өгөгдлийг хаах зэрэг орно. унтах горимын үед шифрлэлт, орчин үеийн баталгаажуулалтын аргуудыг ашиглах. Systemd-homed-ийг 244 эсвэл 245 хувилбарт системийн үндсэн урсгалд оруулахаар төлөвлөж байна.

Жишээ JSON хэрэглэгчийн профайл:

"autoLogin": үнэн,
"холбоо": {
«15e19cd24e004b949ddaac60c74aa165» : {
"fileSystemType": "ext4"
«fileSystemUUID» : «758e88c8-5851-4a2a-b98f-e7474279c111»,
"gid": 60232,
"homeDirectory" : "/home/test",
"imagePath" : "/home/test.home",
"luksCipher": "aes",
"luksCipherMode": "xts-plain64",
«luksUUID» : «e63581ba-79fa-4226-b9de-1888393f7573»,
"luksVolumeKeySize": 32,
«partitionUUID» : «41f9ce04-c927-4b74-a981-c669f93eb4dc»,
"storage": "luks",
"uid": 60233
}
},
"disposition": "тогтмол",
"enforcePasswordPolicy": худал,
"lastChangeUSec": 1565951024279735,
"гишүүн" : [
"дугуй"
],
"давуу эрх": {
"hashedPassword" : [
«$6$WHBKvAFFT9jKPA4k$OPY4D5…/»
] },
"гарын үсэг" : [
{
"өгөгдөл" : "LU/HeVrPZSzi3M3J...==",
"key" : "——НИЙТИЙН ТҮЛХҮҮРИЙГ ЭХЛҮҮЛЭХ——\nMCowBQADK2VwAy…=\n——НИЙТИЙН ТҮЛХҮҮР-—\n"
}
],
"userName" : "туршилт",
"статус": {
«15e19cf24e004b949dfaac60c74aa165» : {
"goodAuthenticationCounter": 16,
"lastGoodAuthenticationUSec": 1566309343044322,
"rateLimitBeginUSec": 1566309342341723,
"rateLimitCount" : 1,
"state": "идэвхгүй",
"үйлчилгээ" : "io.systemd.Home",
"дискний хэмжээ": 161218667776,
"дискний тааз": 191371729408,
"diskFloor": 5242780,
"signedLocally": үнэн
}
}

Эх сурвалж: opennet.ru

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