OpenVPN ನ script-security ಹಂತಗಳು 0 ರಿಂದ 3, ಮತ್ತು ಪ್ರತಿಯೊಂದೂ ಏನನ್ನು ತೆರೆಯುತ್ತದೆ
ಪ್ರತಿ script-security ಹಂತವು ಪ್ರೊಫೈಲ್ ಏನನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದು ಎಂಬುದನ್ನು ವಿಸ್ತರಿಸುತ್ತದೆ: ಮೊದಲು ನಿರ್ವಾಹಕ ಸಹಾಯಕರು, ನಂತರ ಬಳಕೆದಾರ ಸ್ಕ್ರಿಪ್ಟ್ಗಳು, ನಂತರ ಪರಿಸರದಲ್ಲಿ ಪಾಸ್ವರ್ಡ್ಗಳು. ಸೂಚನೆಗಳನ್ನು ಓದಿ.
ಡೆಸ್ಕ್ಟಾಪ್ ಕ್ಲೈಂಟ್ಗೆ ಪ್ರೊಫೈಲ್ ಆಮದು ಮಾಡಿ, ಮತ್ತು ಮೊದಲ ವೈಫಲ್ಯವು ಸಾಮಾನ್ಯವಾಗಿ ಕ್ಲೈಂಟ್ ಪಾಲಿಸಲು ನಿರಾಕರಿಸುವ ಸಾಲು: ಅದು ಚಲಾಯಿಸದ ಸ್ಕ್ರಿಪ್ಟ್ ಕೊಕ್ಕೆ, ಅಥವಾ ತುಂಬಾ ಅನುಮತಿಸುವಂತೆ ಅದು ಪರಿಗಣಿಸುವ script-security ಮೌಲ್ಯ. ಸಂಖ್ಯೆಯನ್ನು ಹೆಚ್ಚಿಸಿದರೆ ಸಂವಾದ ಮಾಯವಾಗುತ್ತದೆ. ಆದರೆ ಅದು ಆ ಪ್ರೊಫೈಲ್ ನಿಮ್ಮ ಯಂತ್ರದಲ್ಲಿ ಏನನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದು ಎಂಬುದನ್ನೂ ವಿಸ್ತರಿಸುತ್ತದೆ, ಇದು ಕೇವಲ ಎಚ್ಚರಿಕೆಯನ್ನು ಮುಚ್ಚಲು ನೀಡುವ ವಿಚಿತ್ರ ವಿಷಯ. ಆಮದನ್ನು ಸೂಚನೆಯವರೆಗೆ ಅನುಸರಿಸಿ ಮತ್ತು ನಿರ್ಧಾರ ಸ್ಪಷ್ಟವಾಗುತ್ತದೆ.
ಆಮದು ಸಂವಾದದಿಂದ ಸೂಚನೆಯವರೆಗೆ
ಪ್ರೊಫೈಲ್ ಸೂಚನೆಗಳನ್ನು ಹೊಂದಿರುವ ಪಠ್ಯ ಫೈಲ್, ಮತ್ತು ಯಾವುದೇ ಸುರಂಗ ಇರುವ ಮೊದಲೇ ಕ್ಲೈಂಟ್ ಅವುಗಳನ್ನು ಓದುತ್ತದೆ. up, down ಅಥವಾ tls-verify ನಂತಹ ಸೂಚನೆ, OpenVPN ನಿರ್ದಿಷ್ಟ ಕ್ಷಣದಲ್ಲಿ ಚಲಾಯಿಸಬೇಕಾದ ಬಾಹ್ಯ ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಹೆಸರಿಸುತ್ತದೆ. OpenVPN ಅದನ್ನು ಚಲಾಯಿಸಲು ಸಿದ್ಧವಿದೆಯೇ ಎಂಬುದು script-security ಎಂಬ ಪ್ರತ್ಯೇಕ ಸೆಟ್ಟಿಂಗ್, ಮತ್ತು ಪ್ರೊಫೈಲ್ ಸಾಮಾನ್ಯವಾಗಿ ಅದನ್ನೂ ಹೊಂದಿಸುತ್ತದೆ.
ಆದ್ದರಿಂದ ಎಚ್ಚರಿಕೆ ಗೂಢಲಿಪೀಕರಣ ಅಥವಾ ಪ್ರಮಾಣಪತ್ರಗಳ ಬಗ್ಗೆ ಅಲ್ಲ. ಅದು ಸಂರಚನಾ ಫೈಲ್ ಕ್ಲೈಂಟ್ಗೆ ಹೋಸ್ಟ್ನಲ್ಲಿ ಏನನ್ನಾದರೂ ಕಾರ್ಯಗತಗೊಳಿಸಲು ಕೇಳುತ್ತದೆ, ಮತ್ತು ಕ್ಲೈಂಟ್ ತನ್ನ ಪ್ರಸ್ತುತ ಅನುಮತಿ ಮಟ್ಟವು ಆ ವಿನಂತಿಯನ್ನು ಅನುಮತಿಸುತ್ತದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸುತ್ತದೆ ಎಂಬುದರ ಬಗ್ಗೆ.
ಈ ಹಂತದಲ್ಲಿ ಎರಡು ವಿಭಿನ್ನ ವೈಫಲ್ಯಗಳು ಒಂದೇ ರೀತಿ ಕಾಣುತ್ತವೆ. ಕ್ಲೈಂಟ್ ನೀಡದ ಮಟ್ಟವನ್ನು ಕೇಳುವ ಪ್ರೊಫೈಲ್ ನಿರಾಕರಣೆ ಉಂಟುಮಾಡುತ್ತದೆ. ಕ್ಲೈಂಟ್ ನೀಡುವ ಮಟ್ಟವನ್ನು ಕೇಳುವ ಆದರೆ ಸ್ಕ್ರಿಪ್ಟ್ ಇಲ್ಲದ ಪ್ರೊಫೈಲ್ ಬದಲಾಗಿ ಚಾಲನೆಯ ಸಮಯದಲ್ಲಿ ವೈಫಲ್ಯ ಉಂಟುಮಾಡುತ್ತದೆ, ಮತ್ತು ಬೆಂಬಲದ ಥ್ರೆಡ್ಗಳಲ್ಲಿ ಎರಡನ್ನೂ ಗೊಂದಲ ಮಾಡಲಾಗುತ್ತದೆ. ಒಂದು ಅನುಮತಿಯ ಪ್ರಶ್ನೆ, ಇನ್ನೊಂದು ಪ್ಯಾಕೇಜಿಂಗ್ನ ಪ್ರಶ್ನೆ.
ಪ್ರತಿ ಹಂತವು ವಾಸ್ತವವಾಗಿ ಏನನ್ನು ತೆರೆಯುತ್ತದೆ
ಹಂತ 0 ಬಾಹ್ಯ ಪ್ರೋಗ್ರಾಂ ಕರೆಗಳನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ನಿಷೇಧಿಸುತ್ತದೆ, ಇದು ಸಹಾಯವಿಲ್ಲದೆ ತನ್ನ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ತಾನೇ ಸಂರಚಿಸುವ ಕ್ಲೈಂಟ್ಗೆ ಸುಸಂಗತ ಮತ್ತು ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ ಅನ್ನು ಕರೆಯುವ ಕ್ಲೈಂಟ್ಗೆ ಅಸಂಗತ. ಹಂತ 1, ಡೀಫಾಲ್ಟ್, ಇಂಟರ್ಫೇಸ್ ಮತ್ತು ಮಾರ್ಗ ಸಂರಚನೆಗೆ ಬೇಕಾದ ಒಳನಿರ್ಮಿತ ಕಾರ್ಯನಿರ್ವಾಹಕ ಫೈಲ್ಗಳನ್ನು ಅನುಮತಿಸುತ್ತದೆ. ಎರಡೂ ಹಂತಗಳು ಬಳಕೆದಾರರು ಒದಗಿಸಿದ ಯಾವುದನ್ನೂ ಚಲಾಯಿಸುವುದಿಲ್ಲ.
| Level | What OpenVPN may execute | What it exposes |
|---|---|---|
| 0 | No external programs at all | Interface and route setup must not depend on helpers |
| 1 (default) | Built-in helpers such as ip, ifconfig, route or netsh | Privileged commands the platform already ships |
| 2 | Built-in helpers plus user-defined scripts | Whatever the named script does with the client's privileges |
| 3 | Everything above, plus passwords in environment variables | Credentials visible to child processes and their logs |
ಹಂತ 2 ಆಸಕ್ತಿದಾಯಕ ಗಡಿ, ಏಕೆಂದರೆ ಅದು ಬಳಕೆದಾರ-ವ್ಯಾಖ್ಯಾನಿತ ಸ್ಕ್ರಿಪ್ಟ್ಗಳನ್ನು ಒಪ್ಪುತ್ತದೆ. ಆ ಕ್ಷಣದಿಂದ ಕ್ಲೈಂಟ್ನ ಸವಲತ್ತುಗಳು ನೀವು ಎಂದಿಗೂ ಓದದಿರಬಹುದಾದ ಕೋಡ್ಗೆ ಅನ್ವಯಿಸುತ್ತವೆ, ನೀವು ಆಯ್ಕೆ ಮಾಡದ ಕ್ಷಣಗಳಲ್ಲಿ ಕರೆಯಲಾಗುತ್ತದೆ, ಸಂಪರ್ಕ ವಿವರಗಳನ್ನು ಒಳಗೊಂಡ ಪರಿಸರದಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಹಂತ 3 ಮತ್ತಷ್ಟು ಮುಂದೆ ಹೋಗಿ ಪರಿಸರ ಚರಗಳ ಮೂಲಕ ಪಾಸ್ವರ್ಡ್ಗಳನ್ನು ರವಾನಿಸಲು ಅನುಮತಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ ಕೈಪಿಡಿ ಅದನ್ನು ಸಂಭಾವ್ಯವಾಗಿ ಅಸುರಕ್ಷಿತ ಎಂದು ವಿವರಿಸುತ್ತದೆ.
ಈ ಸಂಖ್ಯೆಗಳಲ್ಲಿ ಯಾವುದೂ ಶಕ್ತಿಯ ಸೆಟ್ಟಿಂಗ್ ಅಲ್ಲ. ಹಂತ 3 ರಲ್ಲಿರುವ ಪ್ರೊಫೈಲ್ಗೆ ಹಂತ 1 ಕ್ಕಿಂತ ಉತ್ತಮ ಗೂಢಲಿಪೀಕರಣವಿಲ್ಲ; ಅದು ಸರಳವಾಗಿ ದೊಡ್ಡ ಕಾರ್ಯಗತಗೊಳಿಸುವ ಮೇಲ್ಮೈಯನ್ನು ಹೊಂದಿದೆ, ಮತ್ತು ಸುರಂಗ ಒಂದೇ ಆಗಿದೆ.
ಪ್ರೊಫೈಲ್ ಯಾವುದಕ್ಕೆ ಅರ್ಹ ಎಂದು ನಿರ್ಧರಿಸಿ
ಸ್ಕ್ರಿಪ್ಟ್ಗೆ ಯಾವ ಹಂತ ಬೇಕು ಎಂದು ಕೇಳುವ ಮೊದಲು ಅದು ಯಾವುದಕ್ಕಾಗಿ ಎಂದು ಕೇಳಿ. DNS ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ತಳ್ಳುವ ಅಥವಾ ಸಂಪರ್ಕದ ನಂತರ ಮಾರ್ಗವನ್ನು ಸರಿಪಡಿಸುವ ಕೊಕ್ಕೆ ಏನನ್ನಾದರೂ ಚಲಾಯಿಸಲು ಕಾನೂನುಬದ್ಧ ಕಾರಣ. ತಾತ್ಕಾಲಿಕ ಫೋಲ್ಡರ್ನಲ್ಲಿ ಅಪರಿಚಿತ ಬೈನರಿ ಕರೆಯುವ ಕೊಕ್ಕೆ ನಿಲ್ಲಲು ಕಾರಣ.
ಸ್ಕ್ರಿಪ್ಟ್ನ ಮಾರ್ಗ ಸ್ಕ್ರಿಪ್ಟ್ನಷ್ಟೇ ಮುಖ್ಯ. ಸಾಪೇಕ್ಷ ಮಾರ್ಗವು ಕ್ಲೈಂಟ್ ಬಳಸುವ ಫೋಲ್ಡರ್ಗೆ ಸಂಬಂಧಿಸಿ ಪರಿಹರಿಸಲ್ಪಡುತ್ತದೆ, ಮತ್ತು ಬರೆಯಬಹುದಾದ ಫೋಲ್ಡರ್ ಒಮ್ಮೆಯ ಆಮದನ್ನು ಶಾಶ್ವತ ಕಾರ್ಯಗತಗೊಳಿಸುವ ಸ್ಥಳವಾಗಿ ಪರಿವರ್ತಿಸುತ್ತದೆ. ಬಳಕೆದಾರರು ಬದಲಾಯಿಸಲಾಗದ ಫೋಲ್ಡರ್ನಲ್ಲಿನ ಸಂಪೂರ್ಣ ಮಾರ್ಗಗಳು ಆದ್ಯತೆ ನೀಡಬೇಕಾದ ರೂಪ.
ಸ್ಕ್ರಿಪ್ಟ್ಗಳು ಕ್ಲೈಂಟ್ನ ಪರಿಸರವನ್ನೂ ಬಳುವಳಿಯಾಗಿ ಪಡೆಯುತ್ತವೆ, ಅಲ್ಲಿ ರುಜುವಾತುಗಳು ಮತ್ತು ಸಂಪರ್ಕ ಮೆಟಾಡೇಟಾ ಇರುತ್ತವೆ. ಈ ಬಳುವಳಿಯೇ ಹಂತ 3 ಅನ್ನು ತನ್ನ ಪರಿಸರವನ್ನು ಲಾಗ್ ಮಾಡುವ ಸ್ಕ್ರಿಪ್ಟ್ನೊಂದಿಗೆ ಅಪಾಯಕಾರಿಯಾಗಿಸುತ್ತದೆ, ಮತ್ತು ಸ್ಕ್ರಿಪ್ಟ್ಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದ ಕ್ಲೈಂಟ್ನಿಂದ ತೆಗೆದ ರೋಗನಿರ್ಣಯ ರಸದಾನವು ಟಿಕೆಟ್ನಲ್ಲಿ ಅಂಟಿಸುವ ಮೊದಲು ಎರಡನೇ ನೋಟಕ್ಕೆ ಅರ್ಹವಾಗಿದೆ. ಹಂಚಿಕೊಳ್ಳುವ ಮೊದಲು ಪರಿಸರವನ್ನು ತೆಗೆದುಹಾಕಿ.
grep -nE 'script-security|^up |^down |tls-verify' client.ovpnಒಂದು ವಿಷಯವನ್ನು ಬದಲಾಯಿಸಿ, ನಂತರ ಕಿತ್ತುಹಾಕುವಿಕೆಯನ್ನೂ ಗಮನಿಸಿ
ಪ್ರೊಫೈಲ್ಗೆ ನಿಜವಾಗಿಯೂ ಸ್ಕ್ರಿಪ್ಟ್ ಬೇಕಾದರೆ, ಹಂತವನ್ನು ಮಾತ್ರ ಮತ್ತು ಆ ಪ್ರೊಫೈಲ್ಗೆ ಮಾತ್ರ ಬದಲಾಯಿಸಿ. ಕ್ಲೈಂಟ್ ಅನ್ನು ಮುಂಭಾಗದಲ್ಲಿ ವಿವರವಾದ ಔಟ್ಪುಟ್ನೊಂದಿಗೆ ಚಲಾಯಿಸಿ, ಸೇವಾ ನಿರ್ವಾಹಕರು ಅವುಗಳನ್ನು ನುಂಗದಂತೆ ಸ್ಕ್ರಿಪ್ಟ್ನ ಸ್ವಂತ ದೋಷಗಳು ಕಾಣುತ್ತವೆ.
openvpn --config client.ovpn --script-security 2 --verb 3
ip route show default
ಸಂಪರ್ಕವಷ್ಟೇ ಅಲ್ಲ, ಇಡೀ ಜೀವನ ಚಕ್ರವನ್ನು ಪರೀಕ್ಷಿಸಿ. ವಿಫಲವಾಗುವ ಡೌನ್ ಕೊಕ್ಕೆ ಮಾರ್ಗಗಳನ್ನು ಸತ್ತ ಸುರಂಗದ ಕಡೆಗೆ ಬಿಡುತ್ತದೆ, ಇದು ಸಂಪರ್ಕಗೊಂಡಂತೆ ಕಾಣುವ ಆದರೆ ಎಲ್ಲಿಗೂ ತಲುಪದ ಯಂತ್ರವನ್ನು ಉಂಟುಮಾಡುತ್ತದೆ. ಬದಲಾವಣೆಯನ್ನು ಪೂರ್ಣ ಎಂದು ಘೋಷಿಸುವ ಮೊದಲು ಒಮ್ಮೆ ಮರುಸಂಪರ್ಕ ಮತ್ತು ಒಮ್ಮೆ ಸಂಪರ್ಕ ಕಡಿತಗೊಳಿಸಿ, ಮತ್ತು ಪ್ರತಿಯೊಂದರ ನಂತರ ರೂಟಿಂಗ್ ಕೋಷ್ಟಕವನ್ನು ಪರಿಶೀಲಿಸಿ.
ಮೂಲ ಪ್ರೊಫೈಲ್ನ ಪ್ರತಿಯನ್ನು ಇರಿಸಿಕೊಳ್ಳಿ. ವೇದಿಕೆಯ ಕ್ಲೈಂಟ್ ಅದೇ ಸ್ಕ್ರಿಪ್ಟಿಂಗ್ ಮಾದರಿಯನ್ನು ಜಾರಿಗೊಳಿಸದಿದ್ದರೆ, ಆಮದು ಯಶಸ್ವಿಯಾಗುವವರೆಗೆ ಸೂಚನೆಗಳನ್ನು ಅಳಿಸುವುದು ಸುರಂಗಕ್ಕೆ ಬೇಕಾಗಿದ್ದ DNS ಅಥವಾ ಮಾರ್ಗ ಏಕೀಕರಣವನ್ನು ತೆಗೆದುಹಾಕಬಹುದು, ಮತ್ತು ಪರಿಣಾಮವಾಗಿ ಸಂಪರ್ಕವು ಪರಿಪೂರ್ಣವಾಗಿ ದೃಢೀಕರಿಸುತ್ತದೆ ಆದರೆ ಏನನ್ನೂ ಪರಿಹರಿಸುವುದಿಲ್ಲ.
ದಾಖಲಿಸಬೇಕಾದ ನಿರ್ಧಾರ ಸಂಕುಚಿತವಾಗಿದೆ: ಯಾವ ಸ್ಕ್ರಿಪ್ಟ್, ಯಾವ ಮಾರ್ಗದಲ್ಲಿ, ಯಾವ ಹಂತದಲ್ಲಿ ಅನುಮತಿಸಲಾಗಿದೆ, ಯಾವ ಪ್ರೊಫೈಲ್ಗೆ. ಪ್ರೊಫೈಲ್ನಲ್ಲಿ ಉಳಿದದ್ದು ಬದಲಾಗದೆ ಇರುತ್ತದೆ, ಮತ್ತು ಇದು ವಿಮರ್ಶಕರು ಪರಿಶೀಲಿಸಬಹುದಾದ ವಾಕ್ಯ.