chroot ಬಿಡಬೇಕೇ ಅಥವಾ iproute2 ಅನ್ನು ಜೈಲಿಗೆ ನಕಲಿಸಬೇಕೇ?
ಅಪೂರ್ಣ ಜೈಲು ಬೂಟ್ ಸಮಯದಲ್ಲಿ ಅಲ್ಲ, ಪ್ರಾರಂಭವಾದ ನಂತರ ವಿಫಲವಾಗುತ್ತದೆ. ಕಠಿಣತೆಯನ್ನು ಸಡಿಲಿಸುವುದು ಮತ್ತು ಬೈನರಿ ಫೈಲ್ಗಳು ಹಾಗೂ ಗ್ರಂಥಾಲಯಗಳನ್ನು ಹೊಸ ಮೂಲಕ್ಕೆ ನಕಲಿಸುವುದರ ನಡುವೆ ಆಯ್ಕೆಮಾಡಿ.
ಸೇವೆ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ, ಕ್ಲೈಂಟ್ ಸೇರಿಕೊಳ್ಳುತ್ತದೆ, ಮತ್ತು ಸರ್ವರ್ ಬದಿಯಲ್ಲಿ ಎಂದೂ ಮಾರ್ಗ ಕಾಣಿಸುವುದಿಲ್ಲ. ಅಥವಾ ಡೀಮನ್ ಪ್ರಾರಂಭವಾಗಲು ನಿರಾಕರಿಸುತ್ತದೆ ಮತ್ತು ನಿರ್ವಹಿಸಲಾಗದ ಆದೇಶವನ್ನು ಹೆಸರಿಸುತ್ತದೆ. ಎರಡೂ ಫಲಿತಾಂಶಗಳು ಅದೇ ಮೂರು ಸಾಲುಗಳನ್ನು ಅನುಸರಿಸುತ್ತವೆ, ಅವು ಸಾಮಾನ್ಯವಾಗಿ ಕಠಿಣತೆಯ ಮಾರ್ಗದರ್ಶಿಯಿಂದ ಒಟ್ಟಿಗೆ ನಕಲಿಸಲ್ಪಡುತ್ತವೆ: ಅನಧಿಕೃತ ಖಾತೆಗೆ ಬದಲಾಗುವುದು, ಗುಂಪನ್ನು ಬಿಡುವುದು ಮತ್ತು ಫೈಲ್ ಸಿಸ್ಟಮ್ನ ಮೂಲವನ್ನು ಬದಲಿಸುವುದು. ಮೂರರಲ್ಲಿ ಒಂದು ಮಾತ್ರ ಫೈಲ್ಗಳನ್ನು ಮರೆಮಾಡುತ್ತದೆ, ಮತ್ತು ಅವುಗಳಲ್ಲಿ ಒಂದು ಮಾತ್ರ ರೂಟಿಂಗ್ ಕೋಷ್ಟಕವನ್ನು ಬದಲಿಸುವ ಅಧಿಕಾರವನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ. ಅವುಗಳನ್ನು ಬೇರ್ಪಡಿಸುವುದೇ ನಿಮಗೆ ನಿಜವಾಗಿ ಯಾವ ಸಾಲು ಬೇಕು ಎಂದು ತಿಳಿಯುವ ದಾರಿ.
ಜೈಲು ಏನನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ, ಡೀಮನ್ಗೆ ಇನ್ನೂ ಬೇಕಾಗಿರುವುದು
ಮೂಲದ ಬದಲಾವಣೆ ಪ್ರಾರಂಭದ ನಂತರ ಸಂಭವಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ ಡೀಮನ್ ಈಗಾಗಲೇ ತೆರೆದ ಎಲ್ಲವನ್ನೂ ಉಳಿಸಿಕೊಂಡು ನಂತರ ತೆರೆಯುತ್ತಿದ್ದ ಎಲ್ಲವನ್ನೂ ಕಳೆದುಕೊಳ್ಳುತ್ತದೆ. ಆ ಹಂತದ ನಂತರ ಸಂಪರ್ಕವು ಚಲಾಯಿಸುವ ಯಾವುದೇ ಸಹಾಯಕ ಹೊಸ ಮೂಲದ ಒಳಗೆ ಇರಬೇಕು, ಅದು ಲೋಡ್ ಮಾಡುವ ಹಂಚಿಕೆಯ ಗ್ರಂಥಾಲಯಗಳೊಂದಿಗೆ. ಸಂರಚನಾ ಫೈಲ್ ಮತ್ತು ಪ್ರಮಾಣಪತ್ರದಿಂದ ನಿರ್ಮಿಸಲಾದ ಜೈಲಿನಲ್ಲಿ ಎರಡೂ ಇರುವುದಿಲ್ಲ.
ಅನಧಿಕೃತ ಖಾತೆಗೆ ಬದಲಾಗುವುದು ಪ್ರತ್ಯೇಕ ನಿರ್ಬಂಧ. root ಬಿಟ್ಟ ಪ್ರಕ್ರಿಯೆ ಬೈನರಿ ನಿಖರವಾಗಿ ಅಲ್ಲೇ ಇದ್ದರೂ ಮಾರ್ಗಗಳನ್ನು ಬದಲಿಸಲು ಅಥವಾ ಇಂಟರ್ಫೇಸ್ ಮೇಲೆ ತರಲು ಸಾಧ್ಯವಾಗದಿರಬಹುದು, ಆದ್ದರಿಂದ ಎರಡೂ ವೈಫಲ್ಯಗಳನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ನಿರ್ಣಯಿಸಬೇಕು.
ಯಾವ ದುರಸ್ತಿ ಬೇಕು ಎಂಬುದನ್ನು ಮೂರು ಷರತ್ತುಗಳು ನಿರ್ಧರಿಸುತ್ತವೆ
ಮೊದಲ ಷರತ್ತು ನಿಮ್ಮ ಬಿಲ್ಡ್ ಮಾರ್ಗಗಳನ್ನು ಹೇಗೆ ಸ್ಥಾಪಿಸುತ್ತದೆ ಎಂಬುದು. ಹೊಸ OpenVPN ಆವೃತ್ತಿಗಳು ಇಂಟರ್ಫೇಸ್ ಮತ್ತು ರೂಟಿಂಗ್ ಕೋಷ್ಟಕವನ್ನು ಪ್ರಕ್ರಿಯೆಯ ಒಳಗೆ ಸಂರಚಿಸುತ್ತವೆ, ಹಳೆಯ ಪ್ಯಾಕೇಜ್ಗಳು ಮತ್ತು ಸ್ವಂತ ಸೆಟಪ್ಗಳು ಬಾಹ್ಯ ಉಪಕರಣಗಳು ಅಥವಾ up ಮತ್ತು down ಸ್ಕ್ರಿಪ್ಟ್ಗಳನ್ನು ಅವಲಂಬಿಸುತ್ತವೆ. ಲಾಗ್ ಆದೇಶವನ್ನು ಹೆಸರಿಸಿದರೆ ಬಾಹ್ಯ ಉಪಕರಣ ಒಳಗೊಂಡಿದೆ ಮತ್ತು ಜೈಲು ಅದನ್ನು ಮರೆಮಾಡುತ್ತಿದೆ. ಲಾಗ್ ಬದಲಾಗಿ ಅನುಮತಿ ದೋಷವನ್ನು ತೋರಿಸಿದರೆ ಸಮಸ್ಯೆ ಖಾತೆಯಲ್ಲಿದೆ.
ಎರಡನೆಯದು ನಿರ್ವಹಣೆ. ನಕಲಿಸಿದ ಬೈನರಿಗಳಿರುವ ಜೈಲನ್ನು ಅವನ್ನು ಒದಗಿಸುವ ಪ್ಯಾಕೇಜ್ ಅಪ್ಗ್ರೇಡ್ ಆದಾಗಲೆಲ್ಲಾ ಹೊಸದಾಗಿಸಬೇಕು, ಇಲ್ಲದಿದ್ದರೆ ಮೊದಲ ಅಪ್ಗ್ರೇಡ್ ಹಿಂದೆ ಮುರಿದ ಸುರಂಗವನ್ನು ಬಿಡುತ್ತದೆ. ಮೂರನೆಯದು ನಿರ್ದಿಷ್ಟ ನಿಯಂತ್ರಣಕ್ಕೆ ನಿಜವಾಗಿಯೂ chroot ಬೇಕೇ ಎಂಬುದು; ಅಗತ್ಯವು ವಾಸ್ತವವಾಗಿ ಸವಲತ್ತುಗಳ ವಿಭಜನೆಗೆ ಸಂಬಂಧಿಸಿದ್ದರೆ ಖಾತೆ ಬದಲಾವಣೆ ಒಂದೇ ಸಾಕಾಗಬಹುದು.
| Signal in the log | Other side of the boundary | Repair direction |
|---|---|---|
| Command not found after startup | Binary and its libraries absent inside the new root | Populate the jail, or drop the chroot line |
| Operation not permitted | Account lost the privilege to edit routes | Keep the account privileged, or pre-create routes elsewhere |
| No such device | Jail lacks the tun device node | Create the node inside, or open it before the root change |
ಕೆಲಸ ಮಾಡುವ ಜೈಲಿನಲ್ಲಿ ಏನಿರಬೇಕು
ಆದೇಶಗಳನ್ನು ಚಲಾಯಿಸುವ ಜೈಲಿಗೆ ಬೈನರಿ, ಅದು ಲಿಂಕ್ ಆಗುವ ಪ್ರತಿ ಗ್ರಂಥಾಲಯ ಮತ್ತು ಡೀಮನ್ ತಡವಾಗಿ ತೆರೆಯುವ ಯಾವುದೇ ಸಾಧನ ನೋಡ್ ಬೇಕು. ಭಾಗಗಳನ್ನು ನಕಲಿಸಿ ಮತ್ತು VPN ಇಲ್ಲದೆ ಪರೀಕ್ಷಿಸಿ:
ldd /usr/sbin/ip
chroot /etc/openvpn/jail /sbin/ip route show
chroot /etc/openvpn/jail /sbin/ip link set tun0 up
ಮೊದಲ ಆದೇಶ ಅವಲಂಬನೆಗಳನ್ನು ಪಟ್ಟಿ ಮಾಡುತ್ತದೆ, ಮತ್ತು ಜನರು ಬಿಟ್ಟುಬಿಡುವುದು ಅದನ್ನೇ. ಗ್ರಂಥಾಲಯ ಸಿಗದ ನಕಲಿಸಿದ ಬೈನರಿ ಕಾಣೆಯಾದ ಬೈನರಿಗಿಂತ ಬೇರೆ ಸಂದೇಶದೊಂದಿಗೆ ವಿಫಲವಾಗುತ್ತದೆ, ಮತ್ತು ಎರಡೂ ಕ್ಲೈಂಟ್ ಬದಿಯಿಂದ ಓದಿದಾಗ OpenVPN ದೋಷದಂತೆ ಕಾಣುತ್ತವೆ. ಜೈಲಿನ ಒಳಗೆ ಆದೇಶವನ್ನು ಕೈಯಿಂದ ಚಲಾಯಿಸುವುದು ಸೇವೆಯನ್ನು ಮರುಪ್ರಾರಂಭಿಸದೆ ದೋಷವನ್ನು ಪುನರುತ್ಪಾದಿಸುತ್ತದೆ.
ಸಂರಚನೆ, ಪ್ರಮಾಣಪತ್ರಗಳು ಮತ್ತು ಯಾವುದೇ CRL ಅನ್ನು ಸಹ ಜೈಲಿಗೆ ನಕಲಿಸಿ, ಏಕೆಂದರೆ ಡೀಮನ್ ಪ್ರಾರಂಭದ ನಂತರ ಮತ್ತೆ ಓದಲು ನಿರೀಕ್ಷಿಸುವ ಫೈಲ್ ಮೂಲ ಬದಲಾದ ನಂತರ ಸಿಗುವುದಿಲ್ಲ. ಏನನ್ನು ನಕಲಿಸಿದಿರಿ ಎಂದು ಬರೆದಿಡಿ, ಏಕೆಂದರೆ ನೆಟ್ವರ್ಕ್ ಪ್ಯಾಕೇಜ್ನ ಮುಂದಿನ ಅಪ್ಗ್ರೇಡ್ ಮೂಲಗಳನ್ನು ಬದಲಿಸಿ ಜೈಲನ್ನು ಹಳೆಯ ನಕಲಿನಲ್ಲಿ ಬಿಡುತ್ತದೆ.
ಬದಲಾಗಿ ಕಠಿಣತೆಯನ್ನು ಕಡಿಮೆ ಮಾಡಿ
ಜೈಲು ಕೇವಲ ಒಂದು ಮಾರ್ಗದರ್ಶಿ ಹಾಗೆ ಹೇಳಿದ್ದರಿಂದ ಇದ್ದರೆ, ಖಾತೆ ನಿರ್ಬಂಧಗಳನ್ನು ಉಳಿಸಿಕೊಂಡು ಆ ಒಂದು ಸಾಲನ್ನು ತೆಗೆದುಹಾಕುವುದು ಸಮರ್ಥನೀಯ ಫಲಿತಾಂಶ. ಡೀಮನ್ ತನ್ನ ಫೈಲ್ ಸಿಸ್ಟಮ್ ದೃಶ್ಯವನ್ನು ಉಳಿಸಿಕೊಂಡು ಸಮಸ್ಯೆಯನ್ನು ಕಳೆದುಕೊಳ್ಳುತ್ತದೆ, ಮತ್ತು ಸವಲತ್ತು ಕಡಿತ ದೀರ್ಘಕಾಲಿಕ ಪ್ರಕ್ರಿಯೆಯಿಂದ root ಅನ್ನು ಇನ್ನೂ ತೆಗೆದುಹಾಕುತ್ತದೆ.
ಏನು ಉಳಿಯುತ್ತದೆ ಮತ್ತು ಏಕೆ ಎಂದು ಬರೆಯಿರಿ. ಟಿಪ್ಪಣಿ ಇಲ್ಲದೆ ಸದ್ದಿಲ್ಲದೆ ನಿಯಂತ್ರಣವನ್ನು ಕಳೆದುಕೊಂಡ ಸಂರಚನೆ ಕಠಿಣತೆಯನ್ನು ಹೀಗೇ ಜಾರಿಸುತ್ತದೆ, ಮತ್ತು ಮುಂದಿನ ಪರಿಶೀಲನೆ ಸಾಲು ಏಕೆ ಮಾಯವಾಯಿತು ಎಂದು ಕೇಳುತ್ತದೆ.
ಆಯ್ಕೆ ಮಾಡುವ ಮೊದಲು ಮೂರು ಸಾಲುಗಳನ್ನು ವಿಭಜಿಸಿ
ಸಂರಚನೆಯನ್ನು ನಕಲಿಸಿ, ಮೂರೂ ನಿರ್ದೇಶನಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ ಮತ್ತು ಕ್ಲೈಂಟ್ ಸೇರಿಕೊಳ್ಳುತ್ತದೆ ಹಾಗೂ ನಿರೀಕ್ಷಿತ ಮಾರ್ಗಗಳು ಕಾಣಿಸುತ್ತವೆ ಎಂದು ಖಚಿತಪಡಿಸಿ. ನಂತರ ಖಾತೆ ಸಾಲುಗಳನ್ನು ಮಾತ್ರ ಮತ್ತೆ ಸಕ್ರಿಯಗೊಳಿಸಿ, ಮತ್ತು ನಂತರ chroot ಒಂಟಿಯಾಗಿ. ಸುರಂಗ ಮುರಿಯುವ ಹಂತ ಗಡಿಯನ್ನು ಸೂಚಿಸುತ್ತದೆ, ಮತ್ತು ಎಂದೂ ಕಾರಣವಾಗದ ಜೈಲನ್ನು ಮರುನಿರ್ಮಿಸುವುದನ್ನು ತಪ್ಪಿಸುತ್ತೀರಿ.
ಅದು ಮತ್ತೆ ರೂಟ್ ಮಾಡಿದಾಗ, ಹೆಚ್ಚಿನ ವಿವರಗಳೊಂದಿಗೆ ಒಂದು ಕ್ಲೈಂಟ್ ಅಧಿವೇಶನವನ್ನು ಚಲಾಯಿಸಿ ಮತ್ತು ಆದೇಶ ಅಥವಾ ವಿಫಲವಾದ ಅನುಮತಿಯನ್ನು ಹೆಸರಿಸುವ ಸಾಲನ್ನು ಓದಿ. ಆ ಸಾಲು ಕ್ಲೈಂಟ್ ಕೊನೆಯಲ್ಲಿ ವರದಿ ಮಾಡುವ ಟೈಮೌಟ್ಗಿಂತ ಹೆಚ್ಚು ಮೌಲ್ಯಯುತವಾಗಿದೆ.