VPN клиентэд сүлжээг дахин тохируулахад онцгой эрхтэй тусламж хэрэгтэй бөгөөд энэ баримт эргэн тойрны бүх зүйлд хэт өргөн хэрэглэгддэг. Файлын хуваалцыг холбодог скриптэд root хэрэггүй, учир нь хуваалцал нь нэвтэрсэн хэрэглэгчийн сесс болон түүний нэвтрэх мэдээлэлд хамаарна. Холболтыг онцгой эрхийн замаас гаргах нь sudo дүрэм, root дэгээ, багцлагдсан програмын өөрчлөлтийн хэрэгцээг арилгана. Үлдэх зүйл бол нээлттэй үлддэг, нэг профайлыг хянаж, нэг оролдлого хийдэг жижиг applet юм.

Энэ яагаад хэрэглэгчийн сесст хамаарах вэ

Холбогдсон боть нь түүнийг холбосон сессийн шинж чанар юм. Өөр хэрэглэгчийн сесс түүнийг хардаггүй, root-д хамаарах холболт Finder-ийн үүсгэсэнээс өөрөөр ажилладаг. Холболтыг хэрэглэгчийн сесст үлдээх нь энэ семантикийг хадгална.

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

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

Эхлээд хуваалцал ажиллаж байгааг гараар батлаарай

Автоматжуулалт байхгүй маршрут, зөвшөөрөл эсвэл бүртгэлийг өгч чадахгүй. Ямар ч скрипт бичихээс өмнө VPN-д гараар холбогдож, хуваалцыг Finder-т нээгээрэй. Хэрэв тэр нь бүтэлгүй бол скрипт илүү будлиантайгаар бүтэлгүй болно.

Скриптийн ашиглах гурван утгыг тэмдэглээрэй: профайлын нэрийг Tunnelblick-ийн жагсаасан яг хэлбэрээр, хуваалцын URL болон холболтын дараа Finder-ийн харуулах ботын нэрийг. Ботын нэр чухал, учир нь байгаа холболтын шалгалт үүнийг ашигладаг, зөвхөн нэрэнд тулгуурласан шалгалт нь тав тухын хамгаалалт бөгөөд серверийн таних тэмдгийн баталгаа биш. Машинд өвөрмөц нэр хэрэглээрэй. Дараа нь сервер ер нь хариулж байгааг баталгаажуулаарай.

smbutil view //files.corp.example
osascript -e 'tell application "Tunnelblick" to get state of first configuration whose name is "Office"'
mount | grep -i smbfs

Эхний тушаал сервер хариулж байгааг, хоёр дахь нь профайлын нэр шийдэгдэж байгааг баталж, гурав дахь нь амжилттай холболт ямар байдгийг харуулна. Ямар нэг зүйлийг автоматжуулахаас өмнө гурвыг бүгдийг нь тэмдэглээрэй.

Профайлын төлөвийг Tunnelblick-ээс уншина уу

Tunnelblick өөрийн тохиргоо болон тэдгээрийн төлөвийг AppleScript-ээр ил гаргадаг бөгөөд энэ нь энэхүү загварт хэрэгтэй цорын ганц дэгээ юм. Чухал төлөв нь яг тэр профайлын хувьд мэдээлэгдэх мөр, програмын байгаа эсэх биш.

Асуулга нь дурдах зохистой үр дагавартай. Интервалаас богино дахин холболт анзааралгүй өнгөрч болох бөгөөд applet шилжилтийг огт хардаггүй. Энэ нь холболтын хамгаалалтад хүлээн зөвшөөрөгдөхүйц бөгөөд үйл явдал бүрт хариу үйлдэл үзүүлэх ёстой бүх зүйлд хүлээн зөвшөөрөхгүй. Хэрэв үйл явдлын нарийвчлал хэрэгтэй бол энэ нь буруу механизм бөгөөд богино таймер хэрэгтэй механизм биш. Интервалыг энэ буултыг харгалзан сонгоорой.

property attempted : false

on idle
    set profileName to "Office"
    set shareURL to "smb://files.corp.example/OfficeTeam"
    set volName to "OfficeTeam"
    tell application "Tunnelblick" to set vpnState to state of first configuration whose name is profileName
    if vpnState is not "CONNECTED" then
        set attempted to false
        return 20
    end if
    tell application "Finder" to set mounted to (exists disk volName)
    if (not mounted) and (not attempted) then
        set attempted to true
        try
            mount volume shareURL
        end try
    end if
    return 20
end idle

Үүнийг нээлттэй үлдэх сонголттой програмаар экспортлоод, дараа нь sudo-оор биш, нэвтэрсэн сесст ажиллуулаарай.

Нэг удаа холбоод, дараа нь оролдлогоо зогсоо

Оролдсон туг нь үүнийг нэвтрэх мэдээлэл таамагладаг давталт болохоос хамгаалдаг зүйл юм. applet оролдсоны дараа дахин оролдохын өмнө холболтын төлөв өөрчлөгдөхийг хүлээдэг.

Энэ зан үйл санаатай. Холболтыг татгалздаг хуваалцал нь ихэвчлэн шинэ оролдлого засах боломжгүй шалтгаанаар татгалздаг бөгөөд давтан оролдлого нэг хүсэлтийг тэдгээрийн урсгал болгодог. Профайл холбогдсон төлөвөөс гарахад туг дахин тохируулагддаг тул жинхэнэ дахин холболт яг нэг шинэ оролдлого өгдөг. applet-ээс гарах, дахин ажиллуулах нь мөн дахин тохируулдаг бөгөөд энэ нь гарын арга юм. Хоёр замын аль нь ч бүтэлгүйтлийг нуудаггүй; хоёулаа түүнийг Finder-т харагдахуйц үлдээдэг.

Скрипт ямар ч нууц үг агуулдаггүй бөгөөд тийм хэвээр байх ёстой. Холболтын үйлдлийг асуухыг зөвшөөрч, түлхүүрийн багцыг байгууллагын дэмждэг зүйлийг хийхийг зөвшөөрөөрэй. Нэвтрэх мэдээллийг URL-д шингээх нь тав тухын скриптийг эргүүлэх шаардлагатай нууц болгодог.

Туслах юу хийж чадахгүй вэ

Гурван хязгаарыг applet-ийн хажууд бичих нь зүйтэй. Тэр сүлжээний гэмтлийн дараа завгүй ботыг гаргаж чадахгүй, төлөв холбогдсон гэж хэлэх үед DNS болон сервер бэлэн байгааг баталж чадахгүй, дахин холболт бүрт хариу үйлдэл үзүүлдэггүй.

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

Хяналтгүй машин эсвэл удирддаг паркийн хувьд энэ загвар буруу хэлбэртэй. Ажлын ширээний applet-ийг онцгой эрхтэй үйлчилгээ болгон өргөтгөхийн оронд администраторт хамаарах холболтын бодлогыг хэрэглээрэй.

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