A biztonsági mentés előtt VPN-t igénylő szkriptek gyakran közvetlenül indítják az openvpnt. Ez elhagyja a profilt, a DNS-t és az útvonalkezelést, amelyet a Tunnelblick már irányít. A támogatott út a Tunnelblick saját AppleScript-interfésze, amely connect, state és disconnect kéréseket fogad el egy nevesített konfigurációhoz. Használja ezt, és hagyja az alkalmazást felelősnek.

Az alkalmazással beszéljen, ne az openvpnnel

A Tunnelblick birtokolja az OpenVPN-profilt, a motor kiválasztását, a szkripteket, valamint a DNS- és útvonal-integrációt. Egy külön openvpn bináris más indítási elrendezés, nem rövidítés ugyanahhoz a kapcsolathoz.

Az alkalmazás szkriptinterfészének hívása érintetlenül tartja ezt a tulajdont, és minden kérést áttekinthetővé tesz.

Az itteni példák azt feltételezik, hogy a Tunnelblick az Applications mappában van, egy működő konfiguráció neve HQ, és a parancsok a bejelentkezett Mac-felhasználó munkamenetében futnak. Módosítsa a nevet a pontos konfigurációra, amellyel rendelkezik.

Pontosan egy nevesített profilt indítson

A connect kérés megnevezi a konfigurációt. Ez nem kérés arra, hogy a legutóbb kiválaszthoz csatlakozzon.

Futtassa abban a felhasználói munkamenetben, amely a konfigurációt birtokolja:

osascript -e 'tell application "/Applications/Tunnelblick.app" to connect "HQ"'

Menjen végig a szokásos bejelentkezési kéréseken. A macOS kérdezheti, hogy a hívó alkalmazás vezérelheti-e a Tunnelblicket; jóváhagyás előtt ellenőrizze, melyik alkalmazás és melyik cél. Az automatizálás, amely átkattint ezen a párbeszéden, értelmetlenné teszi a párbeszédet.

A connect kérés visszatér, mielőtt az alagút felállna

A Tunnelblick szkriptútmutatója egyértelmű: a connect visszatér, mielőtt a kapcsolat befejeződik. A nulla kilépési állapot azt jelenti, hogy a kérés elfogadva, nem azt, hogy a forgalom folyik.

Olvassa ki külön az állapotot:

osascript -e 'tell application "/Applications/Tunnelblick.app" to get state of first configuration where name = "HQ"'

A CONNECTED egy kapcsolatállapot-eredmény. Még nem bizonyítja, hogy a feladatához szükséges privát erőforrás elérhető, ezért ezt külön ellenőrizze, mielőtt függő munkát indít.

A szkriptinterfész más vezérlői szélesebb műveleteket fednek le, és nem szükségesek, ha csak egy profil változik.

Várjon határidővel, majd hiúsuljon meg

A végtelen lekérdezés az, amitől egy szkript egész éjjel lóg, és blokkolja a következő futást. Adjon a várakozásnak határidőt, rövid intervallumot és egyértelmű hibaeredményt. A CONNECTED kivételével minden állapotot késznek nem tekintsen, az átmenetieket is beleértve. Naplózza az utoljára látott állapotot, hogy a hiba magától elmagyarázza magát.

Egy korlátozott ciklus így néz ki:

for i in $(seq 1 30); do
  state=$(osascript -e 'tell application "/Applications/Tunnelblick.app" to get state of first configuration where name = "HQ"')
  if [ "$state" = "CONNECTED" ]; then exit 0; fi
  sleep 1
done
echo "tunnel did not reach CONNECTED" >&2
exit 1

A harminc másodperc példa, nem általános időtúllépés. A határidőt abból a hitelesítési útból válassza, amelyet a profil valóban használ, és tartsa a munkafolyamat feljegyzésében.

Ellenőrizze az állapotot, és név szerint bontsa a kapcsolatot

Ugyanazon profil leállításához hívja a disconnectet ugyanazzal a névvel. Ez szűkén tartja a kérést, és békén hagyja a többi konfigurációt.

osascript -e 'tell application "/Applications/Tunnelblick.app" to disconnect "HQ"'

Tartsa a profil nevét és a vezérlőt együtt a munkafolyamat feljegyzésében, a várt hitelesítési és befejezési ellenőrzésekkel együtt. Ez a feljegyzés teszi a parancsot hat hónappal később is áttekinthetővé.

A számítógéppel való indítási viselkedés más mód. Használja a Tunnelblick dokumentált indítási lehetőségét és az általa várt hitelesítőadat-beállítást. A bejelentkezett asztali munkamenetben futtatott parancs és a géppel együtt induló szolgáltatás nem oszt közös kontextust. Ne feltételezze, hogy a bejelentkezés alatt működő szkript a rendszerindításkor is futni fog. Tesztelje az indítási utat külön, ugyanazzal a határidővel és naplózással.

Kapcsolódó cikkek