Хэрэглэгчийн роутер эсвэл NAS-ийн firmware нь ихэвчлэн эхлэх бүрт OpenVPN тохиргоог дахин бүтээдэг тул таны нэмсэн заавар яг дараагийн ачаалал хүртэл л үргэлжилнэ. Веб маягтад бичсэн түлхүүрүүдэд мөн адил хамаатай бөгөөд хадгалсан утга нь хадгалсны дараа гэмтсэн байдлаар буцаж ирж болно. Эдгээр шинж тэмдгийн аль нь ч өөрчлөлтийг татгалзсан гэсэн үг биш. Энэ нь засвар нь firmware-ийн гаралт гэж үздэг файлд орсон бөгөөд байнгын газар нь ачааллын дараалалд нэг алхам өмнө байгааг илтгэнэ.

Яагаад засварласан файл дахин үүсдэг вэ

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

Ачааллын дараалал юу, хэзээ бичдэгийг хараарай. Хариулт нь бараг үргэлж firmware-ийн init эсвэл автоматаар эхлүүлэх хавтас дахь скрипт байдаг.

Скрипт файлыг барьж байгаа газарт зааврыг оруулна уу

QTS төхөөрөмжүүд OpenVPN серверийн тохиргоог демоныг эхлүүлдэг init скриптийн дотор дахин үүсгэдэг тул засварыг тэнд хийх ёстой. Үүсгэсэн файлыг засахын оронд эхлүүлэх командын яг өмнө нэмэлтийг нэмнэ үү.

sed -i '/daemon_mgr/i echo client-config-dir clientconfig >>/etc/openvpn/server.conf' /etc/init.d/vpn_openvpn.sh
grep -c client-config-dir /etc/openvpn/server.conf

Мөрүүдийн дугаар бүтээц хооронд өөрчлөгддөг тул хөдлөхгүй команд дээр оруулгыг бэхлээрэй. init скрипт өөрөө ачааллын үед солигддог тул систем эхлэх бүрт өөрчлөлтийг firmware-ийн автомат эхлэлийн дэгээнээс дахин гаргах ёстой. Нэг дахин ачаалсны дараа үүсгэсэн файл дахь тохиолдлуудыг тоолоорой: нэг мөр нь нөхөөс ажилласныг, хоёр мөр нь дэгээ нэгээс олон удаа ажиллаж байгааг илтгэнэ. Давхар ажиллагааг тусад нь шалгаарай, учир нь энэ нь алга болсон өөрчлөлттэй ижил гэмтэл биш юм.

Escape хийсэн түлхүүрүүдийг хадгалсан маягтыг засна уу

Asus загварын хуудсууд дээр гэрчилгээ болон түлхүүрийн талбарууд escape хийсэн текстийг харуулдаг бөгөөд хамааралгүй тохируулгын дараа хадгалах нь тэдгээр объектыг дахин диск дээр бичиж болно. Код тайлагдсан хуулбараас ажиллаж, бүх засвар бэлэн болсны дараа нэг л удаа хадгална уу.

openssl dhparam -out dh2048.pem 2048
grep -n "BEGIN DH PARAMETERS" dh2048.pem

Шинэ параметрийн багцыг солихдоо шошго түлхүүрийн биеийг шаардвал зөвхөн base64 ачааг буулгаж, талбар бүрэн PEM блок хүлээж байгаа үед л хуягны мөрүүдийг үлдээнэ үү. Аль хэдийн escape хэлбэрээр хадгалагдсан хуудсыг сэргээх нь ихэвчлэн нөлөөлөгдсөн оруулгуудыг цэвэрлэж хэрэглэхийг хэлнэ, энэ нь firmware-д тэдгээрийг дахин бүтээх боломж олгоно. 2048 битээс дээш бүх зүйлийг ажлын станц дээр үүсгээрэй, учир нь роутерийн энтропийн нийлүүлэлт үйлдлийг удаан, заримдаа найдваргүй болгодог. Параметрийн файлыг үйлдвэрийн тохиргоо буцаасны дараа ч хүрч болох газарт хадгална уу.

Шинэчлэлтийн дараа дахин шалгана уу

Firmware-ийн шинэчлэлтүүд init скриптүүдийг сольж, автомат эхлэлийн хавтсыг устгаж болзошгүй тул нөхөөсийг дахин суулгаж, дахин шалгах шаардлагатай. Дахин үүсгэсэн файлыг хадгалсан хуулбартайгаа харьцуулж, заавар яг нэг удаа байгаа эсэхийг баталгаажуулна уу. Веб интерфэйс дээр харагдах утга нь демон үүнийг хүлээн авсан гэдгийн баталгаа биш, учир нь хуудас хадгалсан талбаруудыг уншдаг. Нөхөөсийн команд болон firmware-ийн хувилбарыг засвар үйлчилгээний тэмдэглэлд бичиж, дараагийн шинэчлэл тэдгээрийг цааш авч явах болно.

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

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