chroot-оос татгалзах уу, эсвэл iproute2-ыг шоронд хуулах уу?
Бүрэн бус шорон ачаалах үед биш, эхэлсний дараа бүтэлгүйтдэг. Хатууруулалтыг суллах эсвэл хоёртын файлууд болон сангуудыг шинэ үндэс рүү хуулахын хооронд сонгоно уу.
Үйлчилгээ эхэлж, клиент холбогдож, серверийн талд зам хэзээ ч гарч ирэхгүй. Эсвэл демон эхлэхээс татгалзаж, гүйцэтгэж чадаагүй командыг нэрлэнэ. Хоёр үр дүн нь ихэвчлэн хатууруулалтын гарын авлагаас хамт хуулагддаг ижил гурван мөрөөр явагддаг: эрхгүй бүртгэл рүү шилжих, бүлгийг орхих, файлын системийн үндсийг өөрчлөх. Гурваас зөвхөн нэг нь файлыг нуудаг бөгөөд зөвхөн нэг нь чиглүүлэлтийн хүснэгтийг өөрчлөх эрхийг хасдаг. Тэдгээрийг салгаж үзэх нь яг аль мөр хэрэгтэйг мэдэх арга юм.
Шорон юу авч, демонд юу үлдэх хэрэгтэй
Үндэс солих нь эхэлсний дараа болдог тул демон аль хэдийн нээсэн бүхнээ хадгалж, дараа нээх байсан бүхнээ алддаг. Холболтын тэр цэгийн дараа ажиллуулах аливаа туслах нь өөрөө ачаалдаг хуваалцсан сангуудынхаа хамт шинэ үндэс дотор байх ёстой. Тохиргооны файл болон гэрчилгээнээс бүтсэн шоронд аль нь ч байхгүй.
Эрхгүй бүртгэл рүү шилжих нь тусдаа хязгаарлалт. root-оос татгалзсан процесс хоёртын файл яг тэнд байсан ч замыг өөрчилж, интерфейсийг өргөж чадахгүй байж болзошгүй тул хоёр эвдрэлийг тусад нь оношлох хэрэгтэй.
Ямар засвар хэрэгтэйг гурван нөхцөл шийднэ
Эхний нөхцөл нь таны бүтээц замуудыг хэрхэн суулгах явдал. Шинэ OpenVPN хувилбарууд интерфейс болон чиглүүлэлтийн хүснэгтийг процесс дотор тохируулдаг бол хуучин багцууд болон өөрийн тохиргоо нь гадаад хэрэгсэл эсвэл up болон down скриптэд найрдаг. Бүртгэл команд нэрлэвэл гадаад хэрэгсэл оролцож, шорон үүнийг нууж байна. Бүртгэл оронд нь зөвшөөрлийн алдаа харуулбал асуудал бүртгэлд байна.
Хоёр дахь нь засвар үйлчилгээ. Хуулсан хоёртын файлтай шороныг тэдгээрийг нийлүүлдэг багц шинэчлэгдэх бүрт сэргээх шаардлагатай, эс бөгөөс эхний шинэчлэл ард нь эвдэрсэн хонгил үлдээнэ. Гурав дахь нь тодорхой хяналт үнэхээр chroot шаарддаг эсэх; шаардлага нь үнэндээ эрхийн тусгаарлалтын тухай бол бүртгэл солих нь дангаараа хангалттай байж магадгүй.
| Signal in the log | Other side of the boundary | Repair direction |
|---|---|---|
| Command not found after startup | Binary and its libraries absent inside the new root | Populate the jail, or drop the chroot line |
| Operation not permitted | Account lost the privilege to edit routes | Keep the account privileged, or pre-create routes elsewhere |
| No such device | Jail lacks the tun device node | Create the node inside, or open it before the root change |
Ажилладаг шоронд юу байх ёстой
Команд гүйцэтгэдэг шоронд хоёртын файл, түүний холбогддог бүх сан, демоны оройтож нээдэг аливаа төхөөрөмжийн зангилаа хэрэгтэй. Хэсгүүдийг хуулж, VPN-гүйгээр туршаарай:
ldd /usr/sbin/ip
chroot /etc/openvpn/jail /sbin/ip route show
chroot /etc/openvpn/jail /sbin/ip link set tun0 up
Эхний команд хамаарлуудыг жагсаадаг бөгөөд хүмүүсийн алгасдаг нь яг энэ юм. Сан олдохгүй хуулсан хоёртын файл дутуу хоёртын файлаас өөр мессежээр бүтэлгүйтдэг бөгөөд хоёулаа клиентийн талаас уншихад OpenVPN-ийн эвдрэл мэт харагдана. Шорон дотор командыг гараар ажиллуулах нь үйлчилгээг дахин эхлүүлэхгүйгээр эвдрэлийг давтана.
Тохиргоо, гэрчилгээ болон аливаа CRL-ийг ч шоронд хуулаарай, учир нь демоны эхэлсний дараа дахин уншина гэж хүлээдэг файл үндэс өөрчлөгдсөний дараа олдохгүй. Юу хуулснаа тэмдэглээрэй, учир нь сүлжээний багцын дараагийн шинэчлэл эх хувилбарыг сольж, шороныг хуучин хуулбар дээр үлдээнэ.
Оронд нь хатууруулалтыг багасга
Шорон зөвхөн гарын авлага тэгж хэлсэн учраас оршин байгаа бол тэр нэг мөрийг устгаж, бүртгэлийн хязгаарлалтыг хадгалах нь хамгаалах боломжтой үр дүн юм. Демон файлын системийн харагдацаа хадгалж, асуудлаа алдана, эрх бууралт нь урт насалсан процессоос root-ыг орхин авдаг.
Юу үлдсэн, яагаад гэдгийг бичээрэй. Тэмдэглэлгүйгээр нэг хяналтыг чимээгүй алдсан тохиргоо бол хатууруулалт хэрхэн хазайдаг зам бөгөөд дараагийн аудит мөр яагаад алга болсныг асууна.
Сонгохын өмнө гурван мөрийг салга
Тохиргоог хуулж, гурван зааврыг бүгдийг нь идэвхгүй болгож, клиент холбогдож, хүлээгдэж буй замууд гарч ирэхийг баталгаажуул. Дараа нь зөвхөн бүртгэлийн мөрүүдийг дахин идэвхжүүлж, дараа нь зөвхөн chroot-ыг. Хонгил тасрах алхам хил хязгаарыг заана, ингэснээр хэзээ ч шалтгаан болж байгаагүй шороныг дахин барихаас зайлсхийнэ.
Дахин чиглүүлж эхлэхэд илүү дэлгэрэнгүй түвшинд нэг клиентийн сессийг ажиллуулж, команд эсвэл бүтэлгүйтсэн зөвшөөрлийг нэрлэсэн мөрийг уншаарай. Тэр мөр нь клиентийн эцэст мэдээлдэг хугацаанаас илүү үнэ цэнэтэй.