VPN ಕ್ಲೈಂಟ್ ಸ್ಕ್ರಿಪ್ಟಿಂಗ್: ಪಾಸ್ವರ್ಡ್ಗೆ ಮೊದಲು ಪದರವನ್ನು ಆಯ್ಕೆಮಾಡಿ
ವಿಕ್ರೇತ CLI, rasdial, ಅಪ್ಲಿಕೇಶನ್ ಉದ್ದೇಶ ಅಥವಾ UI ಸ್ವಯಂಚಾಲನೆ ಪ್ರತಿಯೊಂದೂ ಬೇರೆ ರೀತಿಯಲ್ಲಿ ವಿಫಲವಾಗುತ್ತವೆ. ಪದರವನ್ನು ಆಯ್ಕೆಮಾಡಿ, ರಹಸ್ಯವನ್ನು argv ಹೊರಗೆ ಇರಿಸಿ, ಮತ್ತು ಸ್ಥಿತಿಗಾಗಿ ಕಾಯಿರಿ, ನಿರ್ಗಮನ ಸಂಕೇತಗಳಿಗಲ್ಲ.
ಸ್ಕ್ರಿಪ್ಟ್ಗಳು VPN ಕ್ಲೈಂಟ್ಗಳನ್ನು ಲೇಖಕರು ಆಯ್ಕೆಮಾಡಿದ ಪದರದಲ್ಲಿ ಪ್ರಾರಂಭಿಸುತ್ತವೆ, ಮತ್ತು ಆ ಪದರವು ಕೆಲಸಕ್ಕೆ ಬೇಕಾಗಿದ್ದ ಪದರವಾಗಿರುವುದು ಅಪರೂಪ. ವಿಕ್ರೇತನ ಆಜ್ಞಾ ಸಾಲು, ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಂನ ಡಯಲರ್ ಮತ್ತು ಮೊಬೈಲ್ ಅಪ್ಲಿಕೇಶನ್ ಉದ್ದೇಶ ಎಲ್ಲವೂ ಸಂಪರ್ಕದ ಜೀವನದ ವಿವಿಧ ಹಂತಗಳಲ್ಲಿ ಮರಳುತ್ತವೆ. ಅವು ರಹಸ್ಯವನ್ನೂ ಬೇರೆ ರೀತಿಯಲ್ಲಿ ನಿಭಾಯಿಸುತ್ತವೆ, ಮತ್ತು ಆ ವ್ಯತ್ಯಾಸವೇ ಪಾಸ್ವರ್ಡ್ ಯಂತ್ರದಲ್ಲಿನ ಪ್ರತಿ ಬಳಕೆದಾರರಿಗೂ ಕಾಣುತ್ತದೆಯೇ ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ. ಸ್ಕ್ರಿಪ್ಟ್ನ ಮೊದಲ ಸಾಲನ್ನು ಬರೆಯುವ ಮೊದಲು ಪದರವನ್ನು ಆಯ್ಕೆಮಾಡಿ.
ಪದರ 1: ವಿಕ್ರೇತನ ಆಜ್ಞಾ ಸಾಲು
ಹೆಚ್ಚಿನ ಡೆಸ್ಕ್ಟಾಪ್ ಕ್ಲೈಂಟ್ಗಳು ಪ್ರೊಫೈಲ್ ಹೆಸರು ಮತ್ತು, ಹೆಚ್ಚಾಗಿ, ಪಾಸ್ವರ್ಡ್ ತೆಗೆದುಕೊಳ್ಳುವ ಆಜ್ಞಾ ಸಾಲನ್ನು ಒದಗಿಸುತ್ತವೆ. Ciscoನ ಹಳೆಯ ಕ್ಲೈಂಟ್ ಬಳಕೆದಾರ ಮತ್ತು ಪಾಸ್ವರ್ಡ್ ಆರ್ಗ್ಯುಮೆಂಟ್ಗಳೊಂದಿಗೆ connect ಕ್ರಿಯಾಪದವನ್ನು ಸ್ವೀಕರಿಸುತ್ತಿತ್ತು; macOS ಒಳನಿರ್ಮಿತ ಸೇವೆಯನ್ನು networksetup ಮೂಲಕ ಒಡ್ಡುತ್ತದೆ; NetworkManager nmcliಗೆ ಪ್ರತಿಕ್ರಿಯಿಸುತ್ತದೆ. ಈ ಕರೆಗಳು ಆಜ್ಞೆ ಮುಗಿದಾಗ ಮರಳುತ್ತವೆ, ಅದು ಸುರಂಗ ಬಳಸಲು ಸಿದ್ಧವಾಗುವ ಕ್ಷಣವಲ್ಲ. ನೀವು ನಿಯೋಜಿಸುವ ಆವೃತ್ತಿಗೆ ವಿಕ್ರೇತನ ಸ್ವಂತ ದಾಖಲೆಗಳನ್ನು ಓದಿ, ಏಕೆಂದರೆ ಈ ಇಂಟರ್ಫೇಸ್ಗಳು ಬದಲಾಗುತ್ತವೆ ಮತ್ತು ಕೆಲವು ಸಂಪೂರ್ಣವಾಗಿ ತೆಗೆದುಹಾಕಲಾಗುತ್ತವೆ.
nmcli connection up "Work VPN"
networksetup -connectpppoeservice "Work VPN"
ಪ್ರಯೋಜನವೆಂದರೆ ವಿಕ್ರೇತನು ತನ್ನದೇ ಪ್ರೊಫೈಲ್ ಸಂಗ್ರಹವನ್ನು ತಿಳಿದಿರುತ್ತಾನೆ, ಆದ್ದರಿಂದ ಕರೆಯು GUI ಬಳಸುತ್ತಿದ್ದ ಅದೇ ಸಂರಚನೆಯನ್ನು ಬಳಸುತ್ತದೆ. ಅನಾನುಕೂಲವೆಂದರೆ ಪ್ರತಿ ವಿಕ್ರೇತನೂ ತನ್ನದೇ ಕ್ರಿಯಾಪದಗಳನ್ನು ಕಂಡುಕೊಳ್ಳುತ್ತಾನೆ, ಮತ್ತು ಒಂದು ಕ್ಲೈಂಟ್ಗೆ ಬರೆದ ಸ್ಕ್ರಿಪ್ಟ್ ಇನ್ನೊಂದಕ್ಕೆ ಹೋಗುವುದಿಲ್ಲ. ಕ್ಲೈಂಟ್ ಸ್ಥಿರವಾಗಿದ್ದು ಆವೃತ್ತಿ ಪಿನ್ ಆಗಿದ್ದಾಗ ಈ ಪದರವನ್ನು ಚಿಕ್ಕ ಮಾರ್ಗವೆಂದು ಪರಿಗಣಿಸಿ.
ಪದರ 2: ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಂನ ಸ್ವಂತ ಸೇವೆ
Windowsನಲ್ಲಿ ಡಯಲರ್ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಂನ ಭಾಗವಾಗಿದೆ, ಮತ್ತು ಅದು ವಿಕ್ರೇತನ ಪ್ರೊಫೈಲ್ ಸಂಗ್ರಹದ ಬದಲು ಫೋನ್ಬುಕ್ ನಮೂದಿಗೆ ವಿರುದ್ಧವಾಗಿ ಕೆಲಸ ಮಾಡುತ್ತದೆ. ಇದು ಕ್ಲೈಂಟ್ಗಳ ನಡುವೆ ಹೆಚ್ಚು ಸಾಗಿಸಬಲ್ಲದಾಗಿಸುತ್ತದೆ ಮತ್ತು ಸೇವಾ ಖಾತೆಯಿಂದ ಸ್ಕ್ರಿಪ್ಟ್ ಮಾಡಲು ಸುಲಭಗೊಳಿಸುತ್ತದೆ. ಸಂಪರ್ಕವು ಒಂದು ಕಡೆ ಇರಬಹುದು ಮತ್ತು ಇನ್ನೊಂದು ಕಡೆ ಇಲ್ಲದಿರಬಹುದು ಎಂದೂ ಇದರರ್ಥ, ಇದು ತಪ್ಪು ಪಟ್ಟಿಯಲ್ಲಿ ನೋಡುವವರನ್ನು ಗೊಂದಲಗೊಳಿಸುತ್ತದೆ.
rasdial "Work VPN" user pass
Get-VpnConnection -Name "Work VPN" | Select-Object ConnectionStatus
ನಮೂದನ್ನು ರಚಿಸಬೇಕಾದರೆ ಅಥವಾ ತೆಗೆದುಹಾಕಬೇಕಾದರೆ ಅದನ್ನು ಡಯಲ್ ಮಾಡುವ ಬದಲು PowerShell ಮೇಲ್ಮೈ ಬಳಸಿ. WMI ಮತ್ತು cmdlet ಪದರಗಳು ಅದೇ ವಸ್ತುಗಳನ್ನು ವಿವಿಧ ಹೆಸರುಗಳಲ್ಲಿ ಒಡ್ಡುತ್ತವೆ, ಮತ್ತು ತೆಗೆದುಹಾಕುವುದು ಸಂಪರ್ಕ ಕಡಿತದಿಂದ ಪ್ರತ್ಯೇಕ ಕಾರ್ಯಾಚರಣೆ. ಡಯಲ್ ಮಾತ್ರ ಮಾಡುವ ಸ್ಕ್ರಿಪ್ಟ್ ಸ್ಥಳಾಂತರದ ನಂತರ ಹಳೆಯ ನಮೂದುಗಳನ್ನು ಬಿಟ್ಟುಬಿಡುತ್ತದೆ. ಸ್ವಚ್ಛಗೊಳಿಸುವಿಕೆ ನಡೆಯುತ್ತದೆ ಎಂದು ಭರವಸೆ ನೀಡುವ ಮೊದಲು ನಿಮ್ಮ ಸ್ವಯಂಚಾಲನೆ ಯಾವ ಸಂಗ್ರಹಕ್ಕೆ ಬರೆಯುತ್ತದೆ ಎಂದು ಪರಿಶೀಲಿಸಿ.
Remove-VpnConnection -Name "Old VPN" -Force
Get-VpnConnection
macOSನಲ್ಲಿ ಸಮಾನವಾದದ್ದು ನೆಟ್ವರ್ಕ್ ಸೇವೆಗಳ ಪಟ್ಟಿ, ಅಲ್ಲಿ ಇರುವ ಸೇವೆ ಹೆಸರಿನಿಂದ ಸಂಪರ್ಕಗೊಳ್ಳುತ್ತದೆ, ಸ್ಥಳದಲ್ಲೇ ರಚಿಸಲ್ಪಡುವುದಿಲ್ಲ.
ರುಜುವಾತುಗಳು ಪ್ರತಿ ಪದರದಲ್ಲಿ ಸೋರುತ್ತವೆ, ಆದ್ದರಿಂದ ಚಾನಲ್ ಆಯ್ಕೆಮಾಡಿ
ಆಜ್ಞಾ ಸಾಲಿನಲ್ಲಿ ನೀವು ರವಾನಿಸುವ ಯಾವುದೇ ವಿಷಯ ಪ್ರತಿ ಸ್ಥಳೀಯ ಬಳಕೆದಾರರಿಗೂ ಪ್ರಕ್ರಿಯೆ ಕೋಷ್ಟಕದಲ್ಲಿ ಕಾಣುತ್ತದೆ, ಮತ್ತು ಸಾಮಾನ್ಯವಾಗಿ ಶೆಲ್ ಇತಿಹಾಸದಲ್ಲೂ ಉಳಿಯುತ್ತದೆ. OpenVPNನ ಬೆಂಬಲಿತ ಪರ್ಯಾಯವೆಂದರೆ ರಹಸ್ಯವನ್ನು ಫೈಲ್ನಿಂದ ಓದುವುದು --askpass ಜೊತೆಗೆ, ಮತ್ತು ಫೈಲ್ಗೆ ಅದರ ಮೇಲೆ ಇಡುವ ನಂಬಿಕೆಗೆ ಹೊಂದುವ ಅನುಮತಿಗಳು ಬೇಕು. ಹೆಸರಿಸಿದ ಪೈಪ್ ರಹಸ್ಯವನ್ನು ಡಿಸ್ಕ್ನಲ್ಲಿ ಬರೆಯುವುದನ್ನು ತಪ್ಪಿಸುತ್ತದೆ ಆದರೆ ಅದನ್ನು ತೆರೆಯಬಲ್ಲ ಯಾವುದೇ ಪ್ರಕ್ರಿಯೆಗೆ ಅಲ್ಲಿ ಬರೆಯಲು ಅವಕಾಶ ನೀಡುತ್ತದೆ. Windowsನಲ್ಲಿ ರಹಸ್ಯವನ್ನು ರುಜುವಾತು ನಿರ್ವಾಹಕದಲ್ಲಿ, ಅಥವಾ ಸೇವಾ ಖಾತೆ ಮಾತ್ರ ಓದಬಲ್ಲ ಫೈಲ್ನಲ್ಲಿ ಇರಿಸಿ, ಮತ್ತು ಬ್ಯಾಚ್ ಫೈಲ್ನಲ್ಲಿ ಎಂದಿಗೂ ಅಕ್ಷರಶಃ ಇಡಬೇಡಿ.
openvpn --config /etc/openvpn/work.conf --askpass /etc/openvpn/work.secret --auth-nocache --daemon
ls -l /etc/openvpn/work.secret
ಅದೇ ನಿಯಮ ಟೋಕನ್ಗಳು ಮತ್ತು ಒಮ್ಮೆ ಬಳಸುವ ಸಂಕೇತಗಳಿಗೂ ಅನ್ವಯಿಸುತ್ತದೆ: ಸ್ವಯಂಚಾಲನೆಗೆ ಅವು ಬೇಕಾದರೆ, ಸ್ವಯಂಚಾಲನೆಗೆ ಆಜ್ಞಾ ಸಾಲಿನ ಆರ್ಗ್ಯುಮೆಂಟ್ ಅಲ್ಲದ ಚಾನಲ್ ಬೇಕು. ಕಾರ್ಯವಿಧಾನ ಬದಲಿಸಿದಾಗ ರಹಸ್ಯವನ್ನು ತಿರುಗಿಸಿ, ಏಕೆಂದರೆ ಹಳೆಯ ಮೌಲ್ಯ ಎಲ್ಲೋ ಲಾಗ್ನಲ್ಲಿ ಬಿದ್ದಿದೆ. ಕೆಲಸ ಮಾಡಿ ಸೋರುವ ಸ್ಕ್ರಿಪ್ಟ್ ಕೆಲಸ ಮಾಡುವ ಸ್ಕ್ರಿಪ್ಟ್ ಅಲ್ಲ.
ಸ್ಥಿತಿಗಾಗಿ ಕಾಯಿರಿ, ನಂತರ ಒಬ್ಬನೇ ಮಾಲೀಕನ ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಿ
ಈ ಕರೆಗಳ ಪ್ರತಿಯೊಂದೂ ಸುರಂಗ ಸಿದ್ಧವಾಗುವ ಮೊದಲು ಮರಳುತ್ತದೆ, ಆದ್ದರಿಂದ ಕ್ಲೈಂಟ್ ಒಡ್ಡುವ ಸ್ಥಿತಿಯನ್ನು ಕೇಳಿ ಅಥವಾ ಅದರೊಳಗಿನ ಗಮ್ಯಸ್ಥಾನವನ್ನು ಸಮಯ ಮಿತಿಯೊಂದಿಗೆ ಪರೀಕ್ಷಿಸಿ. ಸಂಪರ್ಕ ಕರೆಯ ನಂತರ ತಕ್ಷಣ ಫೈಲ್ಗಳನ್ನು ನಕಲಿಸುವುದು ಅಥವಾ ಡೇಟಾಬೇಸ್ ಸಂಪರ್ಕ ತೆರೆಯುವುದು ಓಟ, ಮತ್ತು ಅದು ನೆಟ್ವರ್ಕ ವೈಫಲ್ಯದಂತೆ ಕಾಣುವ ರೀತಿಯಲ್ಲಿ ಮಧ್ಯೆ ಮಧ್ಯೆ ವಿಫಲವಾಗುತ್ತದೆ.
ip link show tun0
nmcli -t -f GENERAL.STATE connection show "Work VPN"
curl -sS --max-time 5 https://app.internal.example/health -o /dev/null
ಸಂಪರ್ಕ ಕಡಿತಕ್ಕೆ ವಿರುದ್ಧ ದಿಕ್ಕಿನಲ್ಲಿ ಅದೇ ಸಮಸ್ಯೆ: ಪ್ರಕ್ರಿಯೆ ಮಾರ್ಗಗಳು ಹೋಗುವ ಮೊದಲು ನಿರ್ಗಮಿಸಬಹುದು. ಕ್ಲೈಂಟ್ನ ಹುಕ್ಗಳು ಇರುವಲ್ಲಿ ಬಳಸಿ, ಉದಾಹರಣೆಗೆ OpenVPN ನ up ಮತ್ತು down ಸ್ಕ್ರಿಪ್ಟ್ಗಳು ಅಥವಾ systemd ಘಟಕದ ExecStartPost, ಏಕೆಂದರೆ ಅವು ನಿಜವಾಗಿ ನಿಮಗೆ ಮುಖ್ಯವಾದ ಹಂತದಲ್ಲಿ ಚಲಿಸುತ್ತವೆ. ಹುಕ್ಗಳು ಅವನ್ನು ಕರೆದವರ ಸವಲತ್ತುಗಳೊಂದಿಗೆ ಚಲಿಸುತ್ತವೆ, ಆದ್ದರಿಂದ ನೆಟ್ವರ್ಕ್ ಮರುಪ್ರಾರಂಭಿಸುವ ಹುಕ್ಗೆ ಊಹೆಯ ಬದಲು ಸ್ಪಷ್ಟ ನಿಯಮ ಬೇಕು. ಸಂಪರ್ಕದ ಇಡೀ ಜೀವಿತಾವಧಿಯಲ್ಲಿ ನಿಖರವಾಗಿ ಒಬ್ಬ ಮಾಲೀಕರನ್ನು ಇರಿಸಿ.
ಇಬ್ಬರು ಮೇಲ್ವಿಚಾರಕರು ಒಂದೇ ಪ್ರೊಫೈಲ್ ಪ್ರಾರಂಭಿಸಿ ನಿಲ್ಲಿಸಿದಾಗ, ಫಲಿತಾಂಶವು ಪೂರೈಕೆದಾರರ ಅಡಚಣೆಯಂತೆ ಓದುವ ಮರುಸಂಪರ್ಕ ಲೂಪ್. ಪದರ ದಾಖಲಾಗಿದ್ದಾಗ, ರಹಸ್ಯಕ್ಕೆ argv ಅಲ್ಲದ ಚಾನಲ್ ಇದ್ದಾಗ, ನಿರೀಕ್ಷಣಾ ಷರತ್ತು ಸಮಯ ಮಿತಿಯೊಂದಿಗೆ ಸ್ಥಿತಿ ಪರಿಶೀಲನೆಯಾಗಿದ್ದಾಗ, ಮತ್ತು ಒಂದು ಪ್ರಕ್ರಿಯೆ ಜೀವನ ಚಕ್ರವನ್ನು ಹೊಂದಿದ್ದಾಗ ರನ್ಬುಕ್ ಕೊನೆಗೊಳ್ಳುತ್ತದೆ.