Урт ажиллах хугацаа нь тухайн мөчид демон эзэмшиж байсан эрх мэдлээр эхлүүлэлт амжилттай болсныг л нотолно. Энд чухал алдаа дутагдал дараа нь ирдэг: шинэ клиент холбогдоно, хүчингүй болгох жагсаалт солигдоно, туслах скрипт файл бичих шаардлагатай болно. Эдгээр тус бүр нь эрхгүй бүртгэлээр хийгдэх шинэ нээлт бөгөөд өөрийн зөвшөөрлийн асуулт, өөрийн алдааны мэдэгдэлтэй. Гурван шийдвэр нь үргэлжлүүлэн ажиллах тохиргоог дараагийн үйл явдалд бүтэлгүйтэх тохиргооноос ялгана.

Эрт ачаалагдсаныг дараа нээгдэхээс ялга

Дескриптор бол нээлттэй файлын тайлбар дээрх бариул бөгөөд хандах горим нь тэр тайлбар үүсэх үед тогтоогдсон. Дараа нь процессын хэрэглэгчийг солих нь бариулыг хаахгүй, иймээс root-оор уншсан түлхүүрийн файл буурсны дараа ч ажиллана. Горим ч өөрчлөгдөхгүй: уншихаар нээсэн бариул бичих боломжтой болохгүй, бичих боломжтой бариул зөвхөн бүртгэл зам дээрх эрхээ алдсан учраас буцаагдахгүй. Эдгээр хоёр баримт эдгээр тайлан дахь гайхмаар зан төлөвийн ихэнхийг тайлбарлана.

Нөгөө хагас нь санамсаргүй. Демон гэрчилгээг шинжилж, шинжилсэн материалыг хадгалж, файлыг хааж болно; хэрэглээнд үлдэх нь өгөгдөл, нээлттэй файл биш. Тиймээс үргэлжилсэн урсгал нь дескриптор нээлттэй гэдгийг ч, замын нэр хүрэх боломжтой гэдгийг ч нотлохгүй. Энэ нь одоогийн сессэд шаардлагатай материалыг өмнө нь авсан гэдгийг л нотолно.

Дараагийн нээлт нь өөр гүйлгээ. Энэ нь одоогийн итгэмжлэл, одоогийн аюулгүй байдлын контекст, одоогийн холбох харагдац дор явагддаг тул эхлэх үед уншигдаж байсан зам дараагийн холболтод татгалзагдаж болно. Эргэлт нь урхи нэмдэг: ижил замын нэр дээр шинэ файл бичих нь одоо байгаа дескрипторыг хуучин объектод холбогдсон хэвээр үлдээдэг тул дахин ачаалах нь амжилттай мэт харагдаж болох боловч демон өмнөх агуулгыг ашигласaар байна. Эргэлт хүчин төгөлдөр болсон гэдэгт итгэхийн өмнө процессын барьж буй inode-г диск дээрхтэй харьцуул.

Гурван ажилтын уншилт ба тус бүр хэзээ болохыг нэрлэ

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

Гурвын аль нь ч эхлэх замд хамаарахгүй, иймээс долоо хоног эрүүл байсан сервер дараагийн холболтод бүтэлгүйтэж болно. Ангилал нь засварын эзнийг ч нэрлэнэ: эхний хоёр нь демоны бүртгэлийн дор тохиргоонд унших эрх, гурав дахь нь нарийн зорилготой бичих боломжтой газар.

Path reopened laterWhat triggers the openFirst sign when it fails
Client configuration fileA connection for that client identityOne client rejected while others connect
Revocation dataPeer authentication, including after replacementRevoked and valid peers both refused
Script or plugin temporary directoryA helper needs to create a fileThe helper exits with a path error

persist-key хүмүүсийн ихэнх нь таамаглаж байгаагаас илүү нарийн асуултад хариулдаг. Энэ нь баримтжуулсан SIGUSR1 ба ping-restart дахин тохируулгын үед түлхүүрийн файлыг нээлттэй байлгана, мөн CCD файл, хүчингүй болгох өгөгдөл, туслах гүйцэтгэх файл эсвэл процессын бүрэн дахин эхлүүлэлтэд юу ч хийдэггүй. Тэдгээр нь өөрийн нээлтийн замаар, тухайн үед ажиллаж буй аль ч бүртгэлийн дор явсаар байна.

Бүртгэл ба түүний бодитоор харж буй байдлыг баталгаажуул

unit файлд итгэхийн оронд ажиллаж буй демоноос ямар бүртгэл ашиглаж байгааг асууж, дараа нь хариуг unit-ийн тогтоосонтой харьцуул. Зөрүү нь хамгийн түрүүнд шийдэх зүйл, учир нь дараагийн эрх шалгалт бүр процесс бодитоор хэн болохынх нь хувьд явагдана. Дараа нь замыг бүрэлдэхүүн тус бүрээр туул; нэвтрэлтийг түвшин бүрт үнэлдэг тул нэвтэрч болохгүй хавтас доторх уншигдах файл уншигдахгүй хэвээр үлдэнэ. Эцсийн файлын горим нь эхний бус, сүүлийн асуулт.

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

ps -o user:12,pid,args -C openvpn
systemctl show -p User -p Group -p ProtectHome -p RootDirectory [email protected]
sudo -u openvpn namei -l /etc/openvpn/ccd/alice

Администраторын бүрхүүл дэх амжилттай уншилт тэдгээр нэгдсэн нөхцлийн алийг ч шалгахгүй. Шалгалтыг демоны бүртгэлээр, ижил нэрийн огторгуй ба элсэн хайрцагтай гүйцэтгэ, эсвэл үр дүн нь серверийг бус таны бүрхүүлийг дүрсэлж байна гэдгийг хүлээн зөвшөөр. Гурав дахь команд нь тэр туршилтын хямд хувилбар: энэ нь бүрэлдэхүүн бүрийн горимыг хэвлэж, демоны бүртгэл нэвтэрч чадахгүй эхний бүрэлдэхүүн дээр бүтэлгүйтдэг.

Ажилтын бичилтэд өөрийн хавтас өг

Уншилт нь жагсаалтын хагас л юм. Туслах скрипт төлөвийн файл үүсгэх шаардлагатай байж болно, нэмэлт өөрийн тохиргооны дэргэд төлөв бичих шаардлагатай байж болно, эдгээр бичилт нь тохиргооны модыг бичих боломжтой болгох замаар хамрагдахгүй. Тодорхой хавтаст түүний үүрэгт шаардлагатай бичих зөвшөөрлийг өг, тайлбарлаж болох эзэмшигч ба горимтой. Зөвхөн уншигддаг бүх зүйлд зөвхөн унших хандалтыг эрхэмлэ.

Хувийн түлхүүрийн зөвшөөрлийг бодлогын файлаас тусад нь байлга. Дахин тохируулгын дараа дахин уншигдах түлхүүрийн шаардлага нь холболт бүрт уншигддаг клиентийн файлаас өөр бөгөөд хоёуланд нэг сул горим өгөх нь асуудлын шаардахаас илүү хандалт өгнө. Нарийн өмчлөлтэй тусгай демоны бүртгэл өргөн бүлгээс хянахад хялбар. Түлхүүр дахин тохируулгыг давах шаардлагатай үед, persist-key хавтсыг өргөтгөхийн оронд дахин уншилтыг арилгана.

Дахин үүсгэж болох үйл явдлаас шийд

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

Зөөлөн дахин тохируулгын хувьд нэг дохио ба unit-ийн бүртгэл түлхүүр дахин уншигдсан эсэхийг харуулна. Дохиог илгээж, дараа нь unit-ийн бичсэн сүүлийн мөрүүдийг унш:

systemctl kill -s SIGUSR1 [email protected]
journalctl -u [email protected] -n 40 --no-pager

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

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