ಕ್ಲೈಂಟ್ನಲ್ಲಿ 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 ಪೇಲೋಡ್ ಅಥವಾ ಕಾನ್ಫಿಗರೇಶನ್ ಪ್ರೊಫೈಲ್ ಆರಿಸಿ, ಅಲ್ಲಿ ವೇದಿಕೆ ರುಜುವಾತುಗಳ ಜೀವನಚಕ್ರವನ್ನು ಹೊಂದಿದೆ, ಮತ್ತು ಹಾಗೆ ನಿರ್ವಹಿಸಲಾಗದ ಕ್ಲೈಂಟ್ಗಳಿಗೆ ಸ್ಕ್ರಿಪ್ಟ್ಗಳನ್ನು ಇಟ್ಟುಕೊಳ್ಳಿ.
ನಿರ್ಗಮನ ಕೋಡ್ ಮತ್ತು ಮೊದಲ ವಿಫಲ ಸಂಪನ್ಮೂಲವನ್ನು ದಾಖಲಿಸಿ, ಸ್ಕ್ರಿಪ್ಟ್ ಓಡಿತು ಎಂಬ ಅಂಶವನ್ನಲ್ಲ. ಆ ಒಂದೇ ಸಾಲು ಶೆಡ್ಯುಲರ್ ಎಚ್ಚರಿಕೆಯನ್ನು ಐದು ನಿಮಿಷದ ರೋಗನಿರ್ಣಯವಾಗಿ ಬದಲಿಸುತ್ತದೆ.