systemd-ийн хатууруулалтыг OpenVPN-ийн user уналт дээр давхарлаж болохгүй
Хамгийн бага эрхтэй хоёр жор хамтдаа илүү чанга болохгүй. Хэн таних тэмдэг солихыг сонгоод, дараа нь эрх мэдлийг бүх амьдралын мөчлөгт хуваарил.
Хамт наасан хамгийн бага эрхтэй хоёр жор илүү чанга байршуулалт болохгүй. Нэг загвар нь демонд эрхтэйгээр эхэлж, эхлүүлэлтийн дараа эрхгүй бүртгэл рүү буухыг зөвшөөрдөг; нөгөө нь үйлчилгээний менежерт анхны заавраас эхлэн хязгаарлагдмал таних тэмдгээр ажиллуулахыг зөвшөөрдөг. Тус бүр дангаараа ажилладаг бөгөөд хослол нь хоёр ажлын аль нэгийг ч цэвэрхэн хийж чадахгүй үйлчилгээг ихэвчлэн бий болгодог. Үлдсэн хэсэг нь шийдвэрийг дарааллаар нь авч үзнэ.
Хоёр загвар, шилжилтийн нэг эзэн
Эхний загвар нь демонгийнх. Нийгэмлэгийн OpenVPN хувилбарын user ба group сонголтууд туннель, түлхүүрүүд тохируулагдсаны дараа таних тэмдгийг сольж, persist-key болон persist-tun нь тэдгээр нөөцийг дараа нь ч ашиглах боломжтой байлгана.
Хоёр дахь загвар нь үйлчилгээний менежерынх. systemd-ийн User= эсвэл Group= тохиргоо нь процесс ямар таних тэмдгээр эхлэхийг тодорхойлж, чадварын заавар нь юу эзэмшиж болохыг тодорхойлно. Загваруудын хооронд сонголт хийх нь аюулгүй байдлын асуудал болохоос өмнө багцлалтын асуудал бөгөөд багцын засварлагч аль хэдийн хариулсан. Таны ажил гурав дахь хувилбарыг зохиох биш, тэр хариултыг олох явдал юм.
Хоёулаа хууль ёсны. Алдаа нь тэдгээрийг нэг дизайны давхарга гэж үзэх явдал, учир нь хоёр дахь загвар нь эхнийхний таних тэмдгийн шилжилтийг процессод цаашид зөвшөөрөхгүй үйлдэл болгож чадна.
Таних тэмдэг хаана өөрчлөгдөхийг шийдээрэй
Хэрэв нэгж аль хэдийн тусгай бүртгэлээр эхэлдэг бол демонд өөр бүртгэл болох заавар нь хатууруулсан үйлчилгээ хэзээ ч хийх ёсгүй setuid шилжилтийг шаарддаг. Алдаа нь эхлэх үед зөвшөөрлийн алдаа болж харагддаг, тодорхой бодлогын мессеж биш. Энэ нь дутуу чадвар мэт уншигдана, энэ нь хүмүүсийг таних тэмдгийн асуулт руу биш, илүү өргөн хязгаарлалтын багц руу түлхдэг.
Ямар нэг зүйлийг засахаас өмнө суулгасан багц үнэхээр юу өгдөг, түүний drop-in хавтас ч гэсэн уншаарай. Зарим нэгж нь менежер аль хэдийн шийддэг тул демонгийн өөрийн уналтыг зориуд орхидог, зарим нь эхлүүлэлтийн дараах шилжилтэд тэдгээр сонголтод найдаг. Аль загварыг өвлөснөө мэдэхгүйгээр аль нэгийг нь хасах нь ажиллаж байсан үйлчилгээ эхлэхээ болих зам юм.
Сонгосон загварыг нэг мөрөнд бичээрэй: менежерийн эзэмшил эсвэл демонгийн эзэмшил. Дараагийн заавар бүр тэр өгүүлбэртэй нийцэх ёстой бөгөөд холимог нэгжийг буулт биш, алдаа гэж үзэх ёстой.
Чадвар бол хязгаар, бэлэг биш
Чадварын хязгаарлалтын багц нь процесс хамгийн ихдээ юу эзэмшиж болохыг хэлнэ. Энэ нь тааз бөгөөд тэнд чадвар жагсаах нь өөрөө юу ч өгөхгүй, тиймээс өгөөмөр хязгаарлалтын багцтай нэгж ч туннель үүсгэж чадахгүй байж болно.
Чадварыг үйлчилгээний эргэн тойрны багцад үнэхээр байрлуулдаг зүйл бол AmbientCapabilities=. systemd гүйцэтгэлийн лавлагаа хоёр зааврыг тус тусад нь баримтжуулдаг бөгөөд энэ ялгаа нь интернэт дэх чадварын тухай будлиантай зөвлөгөөний ихэнхийг тайлбарладаг.
Чадварыг бүтэлгүйтэж буй үйлдэл түүнийг тодорхойлсны дараа л нэмээрэй. Илүү өргөн хязгаарлалтын багц нь жинхэнэ шалтгааныг нууж, үйлчилгээг дизайны зорьсноос илүү эрхтэй үлдээдэг. Энэ нь нэгжийг хянахад ч хэцүү болгодог, учир нь тааз нь ажлыг дүрслэхээ больсон. Жинхэнэ алдаа засагдсаны дараа илүүдэл чадварыг хас.
Эрх мэдлийг амьдралын мөчлөгт хуваарил
Процесс үе шат бүрт юу хийх ёстойг жагсаа: эхлэл, тогтвортой байдал, дахин баталгаажуулалт, задалга. Интерфейс үүсгэх, зам өөрчлөх, хамгаалагдсан түлхүүр унших, туслах дуудах нь бүгд нэг мөчид эсвэл нэг шаардлагаар болдоггүй. Жагсаалтыг чадвараар нь эрэмбэлэхийн өмнө үе шатаар нь эрэмбэл.
Тогтвортой байдлын сонголтууд дахин хэлэлцээрийн туршид нөөцийг хадгалдаг бөгөөд хэзээ ч байгаагүй зөвшөөрөл өгдөггүй. Процесс эхлэх үед уншиж чадахгүй түлхүүр дараа ч уншигдахгүй хэвээр байна, тогтвортой байдлын тугнууд юу ч гэсэн. Тугнууд өмнө нь ажиллаж байсныг хадгалдаг.
Хамтын бус, тусгай бүртгэл ашиглаарай. OpenVPN-ийн хөгжүүлэгчид nobody бүртгэлийг ерөнхий жишээ болгон ашиглах зуршлаас сэрэмжлүүлдэг, учир нь хост дээрх бусад үйлчилгээнүүд аль хэдийн тэр бүртгэлээр ажиллаж байж болох бөгөөд таны бодож буй тусгаарлалт тэнд байхгүй.
Орон нутгийн ачааллыг өөрчилдөг онцлогууд, жишээ нь өгөгдлийн сувгийн буулгалт эсвэл өөрөөр холбогдсон бүтээц нь ямар үйлдэл шаардлагатайг шилжүүлж болно. Багц өөрчлөгдөхөд зурагтыг дахин хянаарай, зөвхөн ямар нэгэн зүйл эвдрэх үед биш.
Төлөвлөгөөг бичиж, сэргээх хандалтыг хадгал
Байршуулалтын бүртгэл нь менежер, эхлэх таних тэмдэг, зорьсон тогтвортой таних тэмдэг, мөн зөвшөөрөл бүрийг түүнийг шаарддаг үйлдлийн хамт нэрлэх ёстой. Тэр бүртгэл нь дараагийн өөрчлөлтийг туршилт бус, хянахуйц болгодог.
Засварлах үед консолын хандалтыг нээлттэй байлга, учир нь эхлэх үед бүтэлгүйтсэн нэгжийг алсаас засахад хэцүү. Өөрчлөлтийг дууссан гэж зарлахаас өмнө дахин эхлүүлэлт болон бүрэн дахин ачааллыг туршаарай. Дахин эхлүүлэлтийг давалгаасан нэгж сүлжээ босохоос өмнө ч бүтэлгүйтэж болно.
Амжилт бол ойлгогдсон хамгийн бага эрх мэдлийн амьдралын мөчлөг, харин root бус нэрээр санамсаргүй ажиллаж буй процесс биш.