ਜਦੋਂ ਕਲਾਇੰਟ ਕੋਲ API ਜਾਂ CLI ਨਹੀਂ ਹੈ ਤਾਂ VPN ਲੌਗਇਨ ਸਵੈਚਾਲਿਤ ਕਰੋ
ਕਲਾਇੰਟ ਕੀ ਪੇਸ਼ ਕਰਦਾ ਹੈ ਉਸ ਦੇ ਆਧਾਰ ਤੇ ਸਕ੍ਰਿਪਟ ਦਾ ਰਾਹ ਚੁਣੋ: ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ ਦੀ ਮਲਕੀਅਤ ਵਾਲੀ ਪ੍ਰੋਫਾਈਲ, stdin ਤੋਂ ਭੇਤ ਪੜ੍ਹਨ ਵਾਲੀ ਵਿਕਰੇਤਾ CLI, ਜਾਂ ਆਖਰੀ ਉਪਾਅ ਵਜੋਂ GUI ਸਵੈਚਾਲਨ।
ਤਿੰਨ ਸਵਾਲ ਇਹ ਤੈਅ ਕਰਦੇ ਹਨ, ਅਤੇ ਸਿਰਫ਼ ਤਿੰਨ। ਕੀ ਕਲਾਇੰਟ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ ਵਿੱਚ ਅਜਿਹੀ ਕਨੈਕਸ਼ਨ ਐਂਟਰੀ ਬਣਾਉਂਦਾ ਹੈ ਜੋ ਰੀਬੂਟ ਤੋਂ ਬਾਅਦ ਵੀ ਰਹਿੰਦੀ ਹੈ? ਕੀ ਇਹ ਅਜਿਹੀ ਕਮਾਂਡ ਲਾਈਨ ਦਿੰਦਾ ਹੈ ਜੋ ਆਪਣੀ ਆਰਗਿਊਮੈਂਟ ਸੂਚੀ ਤੋਂ ਬਿਨਾਂ ਹੋਰ ਕਿਤੋਂ ਭੇਤ ਲੈ ਸਕਦੀ ਹੈ? ਕੀ ਇਸ ਦੀ ਪਛਾਣ ਦੀ ਮੰਗ ਕਿਸੇ ਇਨਸਾਨ ਨੂੰ ਬ੍ਰਾਊਜ਼ਰ ਪ੍ਰੋਂਪਟ ਦਾ ਜਵਾਬ ਦੇਣ ਲਈ ਮਜਬੂਰ ਕਰਦੀ ਹੈ? ਇਸੇ ਕ੍ਰਮ ਵਿੱਚ ਜਵਾਬ ਦਿਓ ਅਤੇ ਚੋਣ ਸਵਾਦ ਦਾ ਵਿਸ਼ਾ ਨਹੀਂ ਰਹਿੰਦੀ, ਕਿਉਂਕਿ ਨਿਰਧਾਰਿਤ ਕੰਮ ਤਿੰਨ ਜਵਾਬਾਂ ਵਿੱਚੋਂ ਸਭ ਤੋਂ ਕਮਜ਼ੋਰ ਜਿੰਨਾ ਮਨਜ਼ੂਰੀ ਦਿੰਦਾ ਹੈ ਉੱਨਾ ਹੀ ਹੈਡਲੈੱਸ ਹੋ ਸਕਦਾ ਹੈ।
ਕਲਾਇੰਟ ਨੂੰ ਤਿੰਨ ਸਕ੍ਰਿਪਟਯੋਗ ਪਰਤਾਂ ਨਾਲ ਮਿਲਾਓ
ਮੂਲ OS ਪ੍ਰੋਫਾਈਲ, ਵਿਕਰੇਤਾ CLI, ਸਿਰਫ਼-GUI ਕਲਾਇੰਟ ਅਤੇ ਬ੍ਰਾਊਜ਼ਰ-SSO ਕਲਾਇੰਟ ਨੂੰ ਚਾਰ ਵੱਖਰੇ ਤਰੀਕੇ ਚਾਹੀਦੇ ਹਨ। ਪਹਿਲੇ ਦੋ ਬਿਨਾਂ ਨਿਗਰਾਨੀ ਵਾਲੇ ਰੀਬੂਟ ਝੱਲਦੇ ਹਨ, ਅਤੇ ਬਿਨਾਂ ਨਿਗਰਾਨੀ ਵਾਲਾ ਰੀਬੂਟ ਹੀ ਪੂਰੀ ਗੱਲ ਹੈ। ਬਾਕੀ ਦੋ ਨੂੰ ਸਕ੍ਰਿਪਟ ਤੋਂ ਪਹਿਲਾਂ ਡਿਜ਼ਾਈਨ ਫ਼ੈਸਲਾ ਚਾਹੀਦਾ ਹੈ।
| What the client exposes | What to script | What still bites |
|---|---|---|
| OS-native connection entry | rasdial, scutil --nc, nmcli | Tunnel is up before DNS and routes settle |
| Vendor CLI reading stdin | CLI wrapped by the scheduler, secret from the credential store | Prompt text changes between releases |
| GUI only | Pinned version plus a state assertion | Locale and DPI break the click targets |
ਪਹਿਲਾ ਰਾਹ: ਪ੍ਰੋਫਾਈਲ ਪਹਿਲਾਂ ਹੀ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ ਦੀ ਮਲਕੀਅਤ ਵਿੱਚ ਹੈ
ਇਹ ਸਭ ਤੋਂ ਸਸਤਾ ਰਾਹ ਹੈ ਅਤੇ ਉਹੀ ਜਿਸ ਨੂੰ ਜ਼ਿਆਦਾਤਰ ਲੋਕ ਨਜ਼ਰਅੰਦਾਜ਼ ਕਰਦੇ ਹਨ। Windows ਵਿੱਚ rasdial "Office" ਜੁੜਦਾ ਹੈ ਅਤੇ rasdial "Office" /disconnect ਇਸ ਨੂੰ ਬੰਦ ਕਰਦਾ ਹੈ; rasphone -d "Office" ਉਸੇ ਐਂਟਰੀ ਨੂੰ ਡਾਇਲ-ਅੱਪ ਇੰਟਰਫ਼ੇਸ ਰਾਹੀਂ ਚਲਾਉਂਦਾ ਹੈ। macOS scutil --nc list ਨਾਲ ਸੰਭਾਲੀਆਂ ਸੇਵਾਵਾਂ ਦੀ ਸੂਚੀ ਬਣਾਉਂਦਾ ਹੈ ਅਤੇ scutil --nc start ਨਾਲ ਇੱਕ ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ। Linux ਕੰਮ NetworkManager ਨੂੰ ਦਿੰਦਾ ਹੈ।
rasdial "Office" user *
scutil --nc start "Office"
nmcli connection up id Office
nmcli -t -f GENERAL.STATE connection show Officeਇਹ ਇੰਟਰਫ਼ੇਸ ਸਿਰਫ਼ OS ਦੀ ਮਲਕੀਅਤ ਵਾਲੀਆਂ ਪ੍ਰੋਫਾਈਲਾਂ ਨੂੰ ਜਾਣਦੇ ਹਨ, ਇਸ ਲਈ ਕੋਈ ਵੀ ਤੀਜੀ ਧਿਰ ਦਾ ਕਲਾਇੰਟ ਨਹੀਂ ਚਲਾ ਸਕਦੇ। ਪ੍ਰੋਫਾਈਲ ਨਾ ਹੋਵੇ ਤਾਂ ਇੱਕ ਵਾਰ ਬਣਾਓ ਅਤੇ ਹਰ ਵਾਰ ਮੁੜ ਬਣਾਉਣ ਦੀ ਥਾਂ ਸਕ੍ਰਿਪਟ ਨੂੰ ਇਸ ਦੀ ਜਾਂਚ ਕਰਨ ਦਿਓ। ਸਕ੍ਰਿਪਟ ਨੂੰ idempotent ਬਣਾਓ: ਮੌਜੂਦਾ ਸਥਿਤੀ ਪੜ੍ਹੋ, ਸਿਰਫ਼ ਡਿਸਕਨੈਕਟ ਹੋਣ ਤੇ ਜੁੜੋ, ਅਤੇ ਫਿਰ ਉਹ ਨਿੱਜੀ ਨਾਮ ਜਾਂਚੋ ਜੋ ਕੰਮ ਨੂੰ ਸੱਚਮੁੱਚ ਚਾਹੀਦਾ ਹੈ।
ਦੂਜਾ ਰਾਹ: ਵਿਕਰੇਤਾ ਕਮਾਂਡ ਲਾਈਨ ਦਿੰਦਾ ਹੈ
ਕੁਝ ਕਲਾਇੰਟ ਲਪੇਟਣ ਲਈ ਕਾਫ਼ੀ ਕਮਾਂਡ ਲਾਈਨ ਦਿੰਦੇ ਹਨ: Cisco AnyConnect ਕੋਲ ਸਾਲਾਂ ਤੋਂ ਸਿਰਫ਼-ਕਨੈਕਸ਼ਨ ਸਹਾਇਕ ਹੈ, ਅਤੇ OpenConnect ਇੱਕੋ ਬਾਈਨਰੀ ਤੋਂ AnyConnect, GlobalProtect ਅਤੇ Pulse ਪ੍ਰੋਟੋਕੋਲ ਬੋਲਦਾ ਹੈ। ਮਹੱਤਵਪੂਰਨ ਮੰਗ ਫ਼ਲੈਗ ਸੂਚੀ ਨਹੀਂ, ਸਗੋਂ ਇਹ ਹੈ ਕਿ ਭੇਤ ਕਿੱਥੋਂ ਆਉਂਦਾ ਹੈ, ਕਿਉਂਕਿ ਆਰਗਿਊਮੈਂਟ ਸੂਚੀ ਵਿੱਚਲਾ ਪਾਸਵਰਡ ਪ੍ਰਕਿਰਿਆਵਾਂ ਦੀ ਸੂਚੀ ਬਣਾ ਸਕਣ ਵਾਲਾ ਕੋਈ ਵੀ ਪੜ੍ਹ ਸਕਦਾ ਹੈ।
printf '%s\n' "$VPN_PASS" | openconnect --protocol=anyconnect \
--user "$VPN_USER" --passwd-on-stdin vpn.example.comFortiClient ਅਤੇ ਕੁਝ GlobalProtect ਬਿਲਡਾਂ ਵਿੱਚ ਕੋਈ ਸਮਰਥਿਤ CLI ਨਹੀਂ ਹੈ, ਅਤੇ ਭਾਈਚਾਰਕ ਕਲਾਇੰਟ ਜਾਂ ਵਿਕਰੇਤਾ-ਲਾਇਸੰਸ ਵਾਲਾ ਬਦਲ ਖਰੀਦ ਦਾ ਫ਼ੈਸਲਾ ਹੈ, ਉਪਾਅ ਨਹੀਂ। CI ਵਿੱਚ ਸੇਵਾ ਖਾਤੇ ਨੂੰ ਉਸੇ ਬਾਈਨਰੀ ਤੇ ਹੱਕ ਦਿਓ, ਸ਼ੈੱਲ ਤੇ ਨਹੀਂ, ਤਾਂ ਜੋ ਇੰਜੈਕਟ ਕੀਤਾ ਆਰਗਿਊਮੈਂਟ root ਕਮਾਂਡ ਨਾ ਬਣ ਸਕੇ।
ਤੀਜਾ ਰਾਹ: GUI ਸਵੈਚਾਲਨ, ਅਤੇ ਇਹ ਆਖਰ ਵਿੱਚ ਕਿਉਂ
ਜਦੋਂ ਅਧਿਕਾਰਤ ਕਲਾਇੰਟ ਕੋਲ ਕੋਈ ਇੰਟਰਫ਼ੇਸ ਨਹੀਂ ਹੁੰਦਾ, ਸਕ੍ਰਿਪਟਾਂ ਵਿੰਡੋ ਸੁਨੇਹਿਆਂ ਜਾਂ SendKeys ਰਾਹੀਂ ਬਟਨ ਦਬਾਉਂਦੀਆਂ ਹਨ। ਇਹ ਸੰਸਕਰਣ ਅਤੇ ਭਾਸ਼ਾ ਪ੍ਰਤੀ ਨਾਜ਼ੁਕ ਹੈ, ਅੱਧ-ਜੁੜਿਆ ਸੈਸ਼ਨ ਛੱਡ ਸਕਦਾ ਹੈ, ਅਤੇ ਗਲਤ ਭਾਸ਼ਾ ਵਿੱਚ ਗੱਲਬਾਤ ਆਉਣ ਤੇ ਚੁੱਪਚਾਪ ਅਸਫਲ ਹੋ ਜਾਂਦਾ ਹੈ। ਇਹ ਰਾਹ ਲਓ ਤਾਂ ਕਲਾਇੰਟ ਸੰਸਕਰਣ ਪਿੰਨ ਕਰੋ, ਫਿਰ ਨਤੀਜੇ ਵਜੋਂ ਬਣੀ ਕਨੈਕਸ਼ਨ ਸਥਿਤੀ ਜਾਂਚੋ, ਅਤੇ ਸਕ੍ਰਿਪਟ ਦੇ ਕੋਲ ਦਸਤਾਵੇਜ਼ੀ ਮੈਨੁਅਲ ਬਦਲ ਰੱਖੋ।
ਕਲਾਇੰਟ ਦੀ ਪ੍ਰਕਿਰਿਆ ਮਾਰ ਕੇ ਜ਼ਬਰਦਸਤੀ ਡਿਸਕਨੈਕਟ ਕਰਨ ਲਈ ਵੀ ਇਹੀ ਸਾਵਧਾਨੀ ਲਾਗੂ ਹੁੰਦੀ ਹੈ। ਟਨਲ ਪ੍ਰਕਿਰਿਆ ਤੋਂ ਵੱਧ ਚਿਰ ਜੀਅ ਸਕਦੀ ਹੈ, ਜਾਂ ਕੋਈ ਸੁਪਰਵਾਈਜ਼ਰ ਇਸ ਨੂੰ ਮੁੜ ਸ਼ੁਰੂ ਕਰ ਸਕਦਾ ਹੈ, ਇਸ ਲਈ ਮਾਰ-ਕੇ-ਮੁੜ-ਸ਼ੁਰੂ ਕਰਨਾ ਵੀ ਭਰੋਸੇਯੋਗ ਰੀਸੈਟ ਨਹੀਂ।
ਟਨਲ ਉੱਠਣ ਤੋਂ ਬਾਅਦ ਕੀ ਟੁੱਟਦਾ ਹੈ
ਸਫਲ ਡਾਇਲ ਸਿਰਫ਼ ਪ੍ਰਮਾਣਿਕਤਾ ਸਾਬਤ ਕਰਦਾ ਹੈ, ਹੋਰ ਕੁਝ ਨਹੀਂ। ਜਿਸ ਸਰੋਤ ਲਈ ਕੰਮ ਮੌਜੂਦ ਹੈ ਉਸ ਨੂੰ ਇਸ ਦੇ ਆਪਣੇ ਪ੍ਰੋਟੋਕੋਲ ਅਤੇ ਛੋਟੀ ਸਮਾਂ-ਸੀਮਾ ਨਾਲ ਜਾਂਚੋ, ਅਤੇ ਅਸਫਲਤਾ ਸੁਨੇਹੇ ਵਿੱਚ ਪੜਾਅ ਦਾ ਨਾਮ ਦਿਓ। ਤੁਹਾਡੇ ਡੈਸਕਟਾਪ ਤੇ ਦਿਸਣ ਵਾਲੀਆਂ ਪ੍ਰੋਫਾਈਲਾਂ, ਸਰਟੀਫਿਕੇਟ ਅਤੇ ਸੰਭਾਲੇ ਕ੍ਰੈਡੈਂਸ਼ੀਅਲ ਸੇਵਾ ਸੈਸ਼ਨ ਲਈ ਅਦਿੱਖ ਹੋ ਸਕਦੇ ਹਨ, ਇਸ ਲਈ ਇਸ ਤੇ ਭਰੋਸਾ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਕੰਮ ਸ਼ੈਡਿਊਲਰ ਦੇ ਆਪਣੇ ਖਾਤੇ ਹੇਠ ਇੱਕ ਵਾਰ ਚਲਾਓ।
ਮੁੜ ਕੋਸ਼ਿਸ਼ਾਂ ਸੀਮਿਤ ਕਰੋ। ਰੱਦ ਕੀਤੇ ਕ੍ਰੈਡੈਂਸ਼ੀਅਲ ਦੁਹਰਾਉਣ ਵਾਲਾ ਲੂਪ ਖਾਤੇ ਲਾਕ ਕਰਦਾ ਹੈ, ਅਤੇ MFA ਪ੍ਰੋਂਪਟ ਦਾ ਜਵਾਬ ਹੈਡਲੈੱਸ ਕੰਮ ਨੂੰ ਰਜਿਸਟ੍ਰੇਸ਼ਨ ਡਿਜ਼ਾਈਨ ਬਿਨਾਂ ਨਹੀਂ ਦੇ ਸਕਦਾ; ਬ੍ਰਾਊਜ਼ਰ SSO ਪ੍ਰਵਾਹ ਵਿਰੁੱਧ ਸਕ੍ਰਿਪਟ ਕੀਤੀਆਂ ਮੁੜ-ਕੋਸ਼ਿਸ਼ਾਂ ਸਿਰਫ਼ ਕੋਸ਼ਿਸ਼ਾਂ ਸਾੜਦੀਆਂ ਹਨ। ਫਲੀਟ ਲਈ MDM ਰਾਹੀਂ ਪਹੁੰਚਾਇਆ VPN ਪੇਲੋਡ ਜਾਂ ਕਨਫਿਗਰੇਸ਼ਨ ਪ੍ਰੋਫਾਈਲ ਤਰਜੀਹ ਦਿਓ, ਜਿੱਥੇ ਪਲੇਟਫ਼ਾਰਮ ਕ੍ਰੈਡੈਂਸ਼ੀਅਲ ਦੇ ਜੀਵਨ-ਚੱਕਰ ਦਾ ਮਾਲਕ ਹੈ, ਅਤੇ ਜਿਹੜੇ ਕਲਾਇੰਟ ਇਸ ਤਰ੍ਹਾਂ ਪ੍ਰਬੰਧਿਤ ਨਹੀਂ ਹੋ ਸਕਦੇ ਉਨ੍ਹਾਂ ਲਈ ਸਕ੍ਰਿਪਟ ਰੱਖੋ।
ਐਗਜ਼ਿਟ ਕੋਡ ਅਤੇ ਪਹਿਲਾ ਅਸਫਲ ਸਰੋਤ ਲੌਗ ਕਰੋ, ਇਹ ਤੱਥ ਨਹੀਂ ਕਿ ਸਕ੍ਰਿਪਟ ਚੱਲੀ। ਉਹੀ ਇੱਕ ਲਾਈਨ ਸ਼ੈਡਿਊਲਰ ਚੇਤਾਵਨੀ ਨੂੰ ਪੰਜ ਮਿੰਟ ਦੇ ਨਿਦਾਨ ਵਿੱਚ ਬਦਲਦੀ ਹੈ।