nosuid VPN ಸಹಾಯಕವು root ಆಗುವುದನ್ನು ಏಕೆ ತಡೆಯುತ್ತದೆ
ಎನ್ಕ್ರಿಪ್ಟ್ ಆದ ಹೋಮ್ ಮತ್ತು nosuid ಮೌಂಟ್ ಬೇರೆ ಬೇರೆ ಗುಣಗಳು. ಸಹಾಯಕಕ್ಕೆ ವಿಶ್ವಾಸಾರ್ಹ ಸ್ಥಾಪನಾ ಮಾರ್ಗ ಮತ್ತು ಅದರ ಸವಲತ್ತು ಬಿಟ್ ಅನ್ನು ಗೌರವಿಸುವ ಪ್ರಾರಂಭ ಸಂದರ್ಭ ಬೇಕು.
ಡಿಸ್ಕ್ ಎನ್ಕ್ರಿಪ್ಷನ್ ಮತ್ತು nosuid ಮೌಂಟ್ ಒಂದೇ ಕಲ್ಪನೆಯ ರೂಪಾಂತರಗಳಂತೆ ಕೇಳಿಸುತ್ತವೆ, ಆದರೆ ಅವುಗಳಿಗೆ ಯಾವುದೇ ಸಂಬಂಧವಿಲ್ಲ. ಒಂದು ವಿಶ್ರಾಂತಿಯಲ್ಲಿರುವ ಡೇಟಾವನ್ನು ರಕ್ಷಿಸುತ್ತದೆ, ಇನ್ನೊಂದು ಪ್ರೋಗ್ರಾಂ ಪ್ರಾರಂಭವಾಗುವ ಕ್ಷಣದಲ್ಲಿ ಕರ್ನಲ್ ಸವಲತ್ತು ಬಿಟ್ ಅನ್ನು ಗೌರವಿಸುತ್ತದೆಯೇ ಎಂದು ನಿರ್ಧರಿಸುತ್ತದೆ. ತಾನು ನಿರೀಕ್ಷಿಸುವ ಗುರುತನ್ನು ತಲುಪದ ಸಹಾಯಕ ಎರಡನೆಯದರ ಬಗ್ಗೆ ದೂರು ನೀಡುತ್ತಿದೆ. ಮೊದಲನೆಯದೇ ಕಾರಣ ಎಂಬ ಊಹೆ ಜನರನ್ನು ಎಂದೂ ಕೆಟ್ಟುಹೋಗದ ಕ್ಲೈಂಟ್ಗಳನ್ನು ಮತ್ತೆ ಸ್ಥಾಪಿಸಲು ಕಳುಹಿಸುತ್ತದೆ.
ಎರಡು ಸಂಬಂಧವಿಲ್ಲದ ಗುಣಗಳು
ಡಿಸ್ಕ್ ಎನ್ಕ್ರಿಪ್ಷನ್ ಯಂತ್ರ ಆಫ್ ಇರುವಾಗ ಬ್ಲಾಕ್ಗಳನ್ನು ಯಾರು ಓದಬಹುದು ಎಂಬುದಕ್ಕೆ ಉತ್ತರಿಸುತ್ತದೆ. ಮೌಂಟ್ ಆಯ್ಕೆ ಯಾರಾದರೂ ಫೈಲ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿದಾಗ ಕರ್ನಲ್ ಅದರ ಮೋಡ್ ಬಿಟ್ಗಳೊಂದಿಗೆ ಏನು ಮಾಡುತ್ತದೆ ಎಂಬುದಕ್ಕೆ ಉತ್ತರಿಸುತ್ತದೆ. ಮೊದಲನೆಯದರಲ್ಲಿ ಯಾವುದೂ ಎರಡನೆಯದನ್ನು ಮಿತಿಗೊಳಿಸುವುದಿಲ್ಲ, ಮತ್ತು ಸಂಪೂರ್ಣ ಎನ್ಕ್ರಿಪ್ಟ್ ಆದ ಲ್ಯಾಪ್ಟಾಪ್ ಎಲ್ಲಾ ನಿರ್ಬಂಧಗಳೊಂದಿಗೆ ಫೈಲ್ ಸಿಸ್ಟಮ್ ಅನ್ನು ಮೌಂಟ್ ಮಾಡಬಹುದು.
ಎರಡನ್ನೂ ಒಂದೇ ಗುಣವಾಗಿ ಓದುವುದೇ ಎನ್ಕ್ರಿಪ್ಟ್ ಆದ ಹೋಮ್ root ಪ್ರವೇಶವನ್ನು ತಡೆಯುತ್ತದೆ ಎಂಬ ಸಿದ್ಧಾಂತವನ್ನು ಹುಟ್ಟಿಸುತ್ತದೆ. ಆ ಸಿದ್ಧಾಂತ ಉಳಿಯುವುದು ಎರಡು ಲಕ್ಷಣಗಳು ಒಂದೇ ಯಂತ್ರದಲ್ಲಿ ಕಾಣಿಸಿಕೊಳ್ಳುವುದರಿಂದ, ಅವುಗಳಿಗೆ ಒಂದೇ ಕಾರಣ ಇರುವುದರಿಂದ ಅಲ್ಲ.
ಪರಿವರ್ತನೆಯನ್ನು ನಿಜವಾಗಿ ಯಾವುದು ಅಡಗಿಸುತ್ತದೆ
execve ಉಲ್ಲೇಖವು set-user-ID ಹೊಂದಿರುವ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್ ಹೊಸ ಪ್ರಕ್ರಿಯೆಯ ಪರಿಣಾಮಕಾರಿ ಗುರುತನ್ನು ಫೈಲ್ನ ಮಾಲೀಕನದಕ್ಕೆ ಹೇಗೆ ಬದಲಾಯಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ವಿವರಿಸುತ್ತದೆ. ಅದೇ ಪುಟವು ಆ ಪರಿವರ್ತನೆಯನ್ನು ಅಡಗಿಸುವ ಷರತ್ತುಗಳನ್ನು ಮತ್ತು ಗುಂಪು ಗುರುತಿಸುವಿಕೆಗಳಿಗೆ ಸಮಾನವಾದವನ್ನು ಪಟ್ಟಿ ಮಾಡುತ್ತದೆ: no_new_privs ಸೆಟ್ಟಿಂಗ್, nosuid ಯೊಂದಿಗೆ ಮೌಂಟ್ ಆದ ಫೈಲ್ ಸಿಸ್ಟಮ್, ಮತ್ತು ಟ್ರೇಸ್ ಆಗುತ್ತಿರುವ ಪ್ರಕ್ರಿಯೆ. ಅದೇ ಷರತ್ತುಗಳಲ್ಲಿ ಫೈಲ್ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ. ಆ ನಾಲ್ಕು ನಿಯಮಗಳು ಈ ರೀತಿಯ ಬಹುತೇಕ ಎಲ್ಲಾ ವರದಿಗಳನ್ನು ಒಳಗೊಳ್ಳುತ್ತವೆ.
ಆ ಪಟ್ಟಿ ls ಮುದ್ರಿಸುವ ಮೋಡ್ ಎಂದಿಗೂ ಸಂಪೂರ್ಣ ಅಧಿಕಾರ ಕಥೆಯಲ್ಲ ಏಕೆ ಎಂದು ವಿವರಿಸುತ್ತದೆ. ಯಾವ ಷರತ್ತು ನಿರ್ದಿಷ್ಟ ವಿಫಲತೆಯ ಸಂದೇಶವನ್ನು ಉಂಟುಮಾಡಿತು ಎಂದು ಅದು ಹೇಳುವುದಿಲ್ಲ, ಮತ್ತು ಅಪ್ಲಿಕೇಶನ್ ಅದೇ ಪದಗಳಲ್ಲಿ ಸಂಬಂಧವಿಲ್ಲದ ರುಜುವಾತು ಕಾರ್ಯಾಚರಣೆಯನ್ನು ವರದಿ ಮಾಡುತ್ತಿರಬಹುದು. ತೀರ್ಮಾನಕ್ಕೆ ಬರುವ ಮೊದಲು ನಿಖರ ಪ್ರೋಗ್ರಾಂ, ಲಾಂಚರ್ ಮತ್ತು ದೋಷಗಳ ಕ್ರಮವನ್ನು ದಾಖಲಿಸಿ.
ಬೆಂಬಲಿತ ಪ್ಯಾಕೇಜ್ ಸ್ಥಾಪಿಸಿದ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್, ಅದರ ಮಾಲೀಕ, ಅದರ ನಿಜವಾದ ಮಾರ್ಗ ಮತ್ತು ಅದನ್ನು ಹೊಂದಿರುವ ಫೈಲ್ ಸಿಸ್ಟಮ್ನ ನೀತಿಯನ್ನು ಗುರುತಿಸಿ. ಡೌನ್ಲೋಡ್ ಫೋಲ್ಡರ್ನಲ್ಲಿರುವ ಪ್ರತಿ ಸ್ಥಾಪಿತ ಸಹಾಯಕವಲ್ಲ, ಅದರ ಮೋಡ್ ಏನೇ ಹೇಳಲಿ.
ಇದರ ಬಗ್ಗೆ ಏನು ಮಾಡಬಾರದು
ಪರಿಶೀಲಿಸದ ಬೈನರಿಗೆ set-user-ID ಬಿಟ್ಗಳನ್ನು ಹಾಕಿ ನಿರ್ಬಂಧ ಮಾಯವಾಗುವವರೆಗೆ ಅದನ್ನು ಅತ್ತಿಂದಿತ್ತ ಸಾಗಿಸುವುದು ದುರಸ್ತಿಯಲ್ಲ. ಅದು ನೀವು ಅರ್ಥಮಾಡಿಕೊಳ್ಳದ ನೀತಿಯನ್ನು ನೀವು ಆಡಿಟ್ ಮಾಡಲಾಗದ ಸವಲತ್ತಿನಿಂದ ಬದಲಾಯಿಸುತ್ತದೆ, ಮತ್ತು ಸಹಾಯಕಕ್ಕೆ ಅದೇ ತಂತ್ರವನ್ನು ಅನ್ವಯಿಸುವುದು ಪರಿಚಿತ ಹಂತ ಏರಿಕೆ ಮಾರ್ಗವಾಗಿದೆ. ಮೌಂಟ್ನಿಂದ nosuid ತೆಗೆಯುವುದು ಇನ್ನೂ ಕೆಟ್ಟದು, ಏಕೆಂದರೆ ಅದು ಆ ಫೈಲ್ ಸಿಸ್ಟಮ್ನ ಪ್ರತಿ ಪ್ರೋಗ್ರಾಂ ಮೇಲೂ ಪರಿಣಾಮ ಬೀರುತ್ತದೆ, ಒಂದರ ಮೇಲೆ ಮಾತ್ರವಲ್ಲ.
ಬೆಂಬಲಿತ ಮಾರ್ಗವೆಂದರೆ ನಿರ್ವಾಹಕರು ನಿರ್ವಹಿಸುವ ಕ್ಲೈಂಟ್ನ ದಾಖಲಿತ ಸಹಾಯಕ ಅಥವಾ ಸೇವಾ ಸ್ಥಾಪನೆ, ಅದು ಬೈನರಿಯನ್ನು ನೀತಿ ನಿರೀಕ್ಷಿಸುವ ಸ್ಥಳದಲ್ಲಿ ಇಡುತ್ತದೆ. ಹೀಗೆ ಎರಡರ ಬದಲು ಒಂದೇ ಸವಲತ್ತು ಕಾರ್ಯವಿಧಾನ ಉಳಿಯುತ್ತದೆ.
ನಿಜವಾದ ಪ್ರಾರಂಭ ಸಂದರ್ಭವನ್ನು ದೃಢೀಕರಿಸಿ
ಅಧಿಕೃತ ತಿದ್ದುಪಡಿಯ ನಂತರ ಸಹಾಯಕವನ್ನು root ಶೆಲ್ನಿಂದ ಅಲ್ಲ, ಉತ್ಪನ್ನವು ಅದನ್ನು ನಡೆಸುವ ರೀತಿಯಲ್ಲೇ ನಡೆಸಿ. root ಆಗಿ ಸಾಧನೆ ಸಾಮಾನ್ಯ ಬಳಕೆದಾರರು ತೆಗೆದುಕೊಳ್ಳುವ ಮಾರ್ಗದ ಬಗ್ಗೆ ಏನನ್ನೂ ಸಾಬೀತುಪಡಿಸುವುದಿಲ್ಲ, ಮತ್ತು ಈ ಎರಡು ಸಂದರ್ಭಗಳ ನಡುವಿನ ವ್ಯತ್ಯಾಸವೇ ವಿಫಲತೆಯ ವಿಷಯವಾಗಿತ್ತು.
ನಂತರ ಸಹಾಯಕವು ಇರುವ ನೆಟ್ವರ್ಕ್ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ದೃಢೀಕರಿಸಿ. ಪ್ರಾರಂಭವಾಗಿ ಆದರೆ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಲಾಗದ ಸಹಾಯಕ ಸಮಸ್ಯೆಯನ್ನು ಒಂದು ಹಂತ ಮುಂದಕ್ಕೆ ಸರಿಸಿದೆ, ಪರಿಹರಿಸಿಲ್ಲ.
findmnt -no TARGET,OPTIONS /home
getcap /usr/libexec/openvpn-helper 2>/dev/null; ls -l /usr/libexec/openvpn-helper
ಮೌಂಟ್ ಆಯ್ಕೆಗಳು ಮತ್ತು ಸಹಾಯಕದ ಮಾಲೀಕತ್ವವನ್ನು ಒಂದೇ ಟಿಪ್ಪಣಿಯಲ್ಲಿ ದಾಖಲಿಸಿ. ಇಲ್ಲದಿದ್ದರೆ ಇದನ್ನು ಡೀಬಗ್ ಮಾಡುವ ಮುಂದಿನ ವ್ಯಕ್ತಿ ಎನ್ಕ್ರಿಪ್ಷನ್ ಸಿದ್ಧಾಂತವನ್ನು ಮತ್ತೆ ಆರಂಭದಿಂದ ಪುನರಾವರ್ತಿಸುತ್ತಾನೆ.