Баталгаажуулагч шинэ зургаан оронтой кодыг харуулдаг ч VPN үүнийг татгалздаг, харин ижил кодыг өөрийн бүрхүүлээс шалгахад алдаагүй баталгааждаг. Энэ зөрүү бүх түүх юм. Бүртгэлийн нууцыг нээж чадахгүй PAM модуль буруу кодтой яг адил харагдах алдаа буцаадаг бөгөөд гэрийн лавлахуудыг нуудаг үйлчилгээний орчин үүний нийтлэг шалтгаан. Аливаа зөвшөөрлийг суллахаас өмнө гуравны алийн байдалд байгаагаа шийдээрэй.

Гурван бүтэлгүйтлийн аль нь вэ?

Эхнийх нь модуль огт уншиж чадахгүй нууц. Хоёр дахь нь уншиж чаддаг ч шинэчилж чадахгүй нууц. Гурав дахь нь үнэхээр буруу код бөгөөд ихэвчлэн цагийн хазайлт эсвэл дахин ашигласан утгаас болдог.

Нэг бүтэлгүй оролдлогын үйлчилгээний журнал болон системийн баталгаажуулалтын логыг уншиж тэдгээрийг ялгаад, дараа нь залгуур аль PAM үйлчилгээг ачаалж, тэр үйлчилгээ аль модулийн мөрийг ашиглаж байгааг баталгаажуулна уу. Ерөнхий баталгаажуулалтын алдааны мессеж тэдгээрийг ялгахгүй, амжилттай гар аргаар хийсэн туршилт ч ялгахгүй, учир нь таны бүрхүүл үйлчилгээний орчин биш юм.

Зөвхөн үйлчилгээ бүтэлгүйтэх үед нэгжийн файлын системийн харагдац нь ердийн буруутан юм.

systemctl show -p ProtectHome -p ProtectSystem -p ReadWritePaths [email protected]
ls -l /var/lib/vpn-otp/*/.google_authenticator 2>/dev/null | head -n 20

А хувилбар: нууцыг гэрээс гадагш зөөх

Үйлчилгээ /home-г нуух бөгөөд та тэр хамгаалалтыг хадгалахыг хүсвэл нууцыг түүнд харагдах газарт хадгал. Модуль secret= зам болон файлын үйлдлийг гүйцэтгэх user= бүртгэлийг хүлээн авдаг бөгөөд энэ нь төвлөрсөн агуулахад олон таних тэмдэгт үйлчлэх боломж олгоно.

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

auth required pam_google_authenticator.so secret=/var/lib/vpn-otp/${USER}/.google_authenticator user=vpn-otp

Түүнд итгэхээс өмнө гурван зүйлийг шалга: бүртгэл байгаа, модулийн ажлын процесс түүн рүү шилжиж чадна, файлууд хязгаарлагдмал горимтойгоор түүний эзэмшилд байна. user=-тай хамт ~ эсвэл гэрийн хувьсагчийн зам хэрэглэхгүй, замыг ажиллуулахын тулд модулийн эзэмшлийн шалгалтыг унтрааж болохгүй. Нууц үгийн шат болон стектийн үлдсэнийг бүрэн бүтэн байлга.

Б хувилбар: файлыг үлдээж зам нээх

Нууц хэрэглэгчийн гэрт үлдэх ёстой бол нэгжид хостын бүх гэрийг ил гаргахгүйгээр тэр нэг лавлахыг багтаасан харагдац хэрэгтэй. drop-in сэндбокслосон гэрийн доор нарийн хязгаарласан bind mount нэмж болно.

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

Хоёр хязгаарыг анзаарахад хялбар. Сэндбоксын нуусан лавлахын доор нэмсэн зөвхөн унших зам түүнийг ил гаргахгүй, учир нь эцэг лавлах нь байхгүй. Мөн модуль төлөвийг шинэчлэх шаардлагатай бол холболт бичигдэх боломжтой байх ёстой бөгөөд энэ нь дараагийн хувилбарыг тоглоомд оруулна. drop-in-г /usr/lib-ийн доорх багцлагдсан нэгжийг засварлахын оронд тусдаа файл болгон бич, багцын шинэчлэлт түүнийг чимээгүй хүчингүй болгохгүйн тулд.

В хувилбар: сэндбоксыг хадгалан төлөвийн бичлэгийг засах

Нууцыг унших нь баталгаажуулалтын зөвхөн тал. Модуль цагийн хазайлтын мэдээлэл, дахин тоглуулалтын хамгаалалт эсвэл тоолуурыг дахин бичиж болох бөгөөд унших шалгалтыг давсан файл бичих үед бүтэлгүйтэж болно.

Тэр алдаа нь энэ оролдлогт биш, дараагийн оролдлогт муу код мэт харагддаг тул цагийн хазайлттай андуурдаг.

Бүх гэрийг бичигдэх болгохын оронд түүнд өөрийн бичигдэх лавлах өгч нууцын замыг тэнд чиглүүл. Лавлахын эзэмшигч, файлын системийн сул зай, нэгж өөр газар бичихийг хязгаарлаж байгаа эсэхийг баталгаажуул. Дараа нь дараалан хоёр нэвтрэлтийг туршиж үз, учир нь хоёр дахь нь бичих замыг баталж, эхнийх нь зөвхөн уншсаныг батална.

Өөрөөрөө биш, үйлчилгээгээр шалга

Чухал бүх шалгалт нэгжийн сэндбокс дотор нэгжийн таних тэмдэгтэйгээр ажиллах ёстой.

root-оор амжилттай болсон команд файл байгаа гэдгийг л хэлнэ. Жинхэнэ үйлчилгээгээр нэвтрэх нь модуль нууцыг уншиж, ашиглаж, хэрэгтэй зүйлээ буцааж бичиж чадах эсэхийг хэлнэ.

Эцэст нь шаардлагыг бүрэн бүтэн байлга. Тэг нууц үгийн сонголт нэмэх, зөвхөн унших алдааг хүлээн авах эсвэл сэндбоксыг хасах нь бүгд бодлогыг өөрчилснөөр шинж тэмдгийг арилгана. Код үзүүлэх үүрэгтэй хэрэглэгчийг нууц хүрэхгүй үед ч татгалзах ёстой.

Холбоотой нийтлэлүүд