Зөвхөн унтах дэгээ л VPN-ыг буцаахгүй
Тэгээр гардаг дэгээ нь скрипт ажилласныг л батална. Үүнийг сүлжээний дараа байрлуулж, зөв таних тэмдгийг ашиглаж, профайл тохирох эсэхийг шалгаарай.
Унтах дэгээнд дахин холбогдох командыг хийвэл асуудал шийдэгдсэн мэт харагдана. Зөвхөн сүлжээ үүссэний дараа дэгээ ажиллаж, клиентийн таньдаг таних тэмдгээр, клиентийн бодитоор хэрэгжүүлдэг замаар явах үед л шийдэгдэнэ. Сэрсний дараах алдааны ихэнх нь эдгээр гурвын нэг бөгөөд аль нь ч дэгээн дээр өөрөө алдаа болж харагдахгүй. Дэгээ ямар ч байсан амжилт буцаана.
Тэгээр гардаг скрипт нь туннель буцаж ирсэн эсэхийг танд юу ч хэлээгүй.
Дэгээ ажиллана, тэгээд?
#!/bin/sh
case "$1" in
pre)
vpn-client disconnect
;;
post)
vpn-client connect
;;
esac
Үйл явдал бүр дэгээг хоёр удаа дуудаж, шилжилтийн өмнө болон дараа нь фазын болон үйл явдлын нэрийг өгдөг. Энэ нь root-оор хамгийн бага орчинд ажилладаг тул үнэмлэхүй зам шаардлагатай бөгөөд ширээний сессийн хувьсагчийг хүлээх ёсгүй. Хоёр дуудлага хурдан буцаж ирэх нь скрипт ажилласныг л хэлнэ. Профайл дараа нь өссөн эсэх нь тусдаа ажиглалт бөгөөд логт өөрийн нотолгоо хэрэгтэй.
Фазын аргументыг дизайны нэг хэсэг гэж үзээрэй. pre фазад дахин холбогдох оролдлого нь машин бүх зүйлээ алдах гэж байх үед тохиолддог бөгөөд амжилттай болж чадахгүй.
Root, хамгийн бага орчин, буруу хэрэглэгч
Хэрэв клиент нэвтрэх токеныг хэрэглэгч тус бүрээр хадгалдаг бол дэгээг root-оор ажиллуулах нь түүнд танилцуулах юу ч үлдээхгүй. Төлөвийг дэгээний бодитоор ашигладаг таних тэмдгийн дор шалгаарай, ширээний терминалаас туршиж үзсэн таних тэмдгийн дор биш. Зарим бүтэц нь салгасны дараа интерфейсийг барьж байдаг демон үлдээдэг тул дахин холболт хуучирсан төлөвт орж, процессыг эхлээд цэвэрлэх нь буруу унтраалтын зардлаар сэргээдэг. Зөвхөн азтай замыг туршвал хоёр зан төлөвийн аль нь ч харагдахгүй.
Дэгээг үнэмлэхүй замаар бичиж, root-ийн эзэмшилд, гүйцэтгэх боломжтой байлгаж, юу хийснийг нь логлоорой. Тэр логгүй бол дараагийн шалгалт тэгээс эхэлнэ.
Автомат холболт нь VPN-ийн зам биш
NetworkManager хоёр идэвхжүүлэх механизм санал болгодог: профайл дээрх автомат холболтын туг, болон үндсэн профайл идэвхжих үед эхэлдэг хоёрдогч холболтууд. Дотоодын төхөөрөмжийн төрлүүд эхнийхийг хэрэгжүүлдэг; VPN нэмэлтүүд түүхэнд зөвхөн хоёрдахь хэрэгжүүлсэн тул OpenVPN профайл дээр автомат холболтыг тэмдэглэх нь огт үр дүнгүй байж болно. Хоёр шинж чанарыг шалгаад, дараа нь VPN-ыг Wi-Fi эсвэл Ethernet профайлын хоёрдогч болгон холбоорой.
[Unit] PartOf=NetworkManager.service Requires=NetworkManager-wait-online.service After=NetworkManager-wait-online.service
systemd нэгжээр удирдуулсан WireGuard интерфейсэд дэгээний оронд тэр нэмэлт файл хэрэгтэй бөгөөд сүлжээ онлайн болсны дараа эрэмбэлэгдэнэ.
Сүлжээг хүлээ, дээд хязгаартай
timer=1 while ! ping -c1 -n -w1 203.0.113.1 >/dev/null; do sleep 1; timer=$((timer+1)) [ $timer -ge 300 ] && exit 0 done nmcli connection up "work-vpn"
Сэрэх үед Wi-Fi дахин холбогдож байхад туннелийг шаардаж болох бөгөөд энэ нь аливаа тогтмол унталтыг таамаг болгоно. Хүрч болох хаягийг хүлээж, дараа нь профайлыг өргөж, хүлээлтийг хязгаарлаж, дэгээ сэрэх замыг хязгааргүй нээлттэй байлгахгүй байх ёстой. Тоон индексээс профайлын нэрийг илүүд үзэж, зөв профайл сүлжээнээс хамаарч өөрчлөгддөг бол эрүүл туннель сонголтоо урьдчилан файлд бичээрэй.
Дахин ачааллын шуурганаас ч сэргийлж, оролдлогыг тоолж, зогсоорой. Алдсан шалгалт бүрт хариу үйлдэл үзүүлдэг хянагч нэг тасалдлыг давталт болгоно.
Системийг нэг удаа унтрааж, дараа нь журналаас дэгээний өөрийн гаралтыг уншаарай. Энэ нь дарааллыг батлах цорын ганц тест юм.