OpenVPN ನಲ್ಲಿ persist-tun ಮತ್ತು persist-key ವಾಸ್ತವವಾಗಿ ಏನನ್ನು ಉಳಿಸಿಕೊಳ್ಳುತ್ತವೆ
ಎರಡೂ ಆಯ್ಕೆಗಳು ಜೀವಂತ ಪ್ರಕ್ರಿಯೆಯ ಒಳಗಿನ ಮೃದು ಮರುಪ್ರಾರಂಭವನ್ನು ಒಳಗೊಳ್ಳುತ್ತವೆ. ಅವು ನಿಲ್ಲಿಸಿದ ನಂತರ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಉಳಿಸಿಕೊಳ್ಳುವುದಿಲ್ಲ, ಮತ್ತು ಅವು ಸಂಚಾರವನ್ನು ತಡೆಯುವ ನೀತಿಯಲ್ಲ.
ಸೇವೆಯನ್ನು ನಿಲ್ಲಿಸುವುದರಿಂದ persist-tun ಸೆಟ್ ಆಗಿದ್ದರೂ ಇಂಟರ್ಫೇಸ್ ತೆಗೆದುಹಾಕಲ್ಪಡುತ್ತದೆ. ಇದು ಆಯ್ಕೆಯು ದಾಖಲಿಸಿದಂತೆ ಕೆಲಸ ಮಾಡುತ್ತಿದೆ, ವಿಫಲವಲ್ಲ. ಆಯ್ಕೆಯು ಚಾಲನೆಯಲ್ಲಿರುವ ಪ್ರಕ್ರಿಯೆಯ ಒಳಗಿನ ಒಂದು ಮರುಪ್ರಾರಂಭದ ಮಾರ್ಗವನ್ನು ವಿವರಿಸುತ್ತದೆ, ಮತ್ತು systemctl stop ಆ ಮಾರ್ಗವಲ್ಲ.
ಎರಡು ಹೆಸರುಗಳನ್ನು ಒಟ್ಟಿಗೆ ಓದಿ ಮತ್ತು ವಿನ್ಯಾಸ ಸ್ಪಷ್ಟವಾಗುತ್ತದೆ. ಒಂದು ಡಿಸ್ಕ್ರಿಪ್ಟರ್ ಇಟ್ಟುಕೊಳ್ಳುತ್ತದೆ, ಇನ್ನೊಂದು ಕೀ ವಸ್ತುವನ್ನು ಇಟ್ಟುಕೊಳ್ಳುತ್ತದೆ, ಮತ್ತು ಎರಡೂ ಸವಲತ್ತುಗಳನ್ನು ಬಿಟ್ಟ ನಂತರ ಏನಾಗುತ್ತದೆ ಎಂಬುದರಿಂದ ಅಸ್ತಿತ್ವದಲ್ಲಿವೆ.
ಎರಡು ಸಂಪನ್ಮೂಲಗಳು ಮತ್ತು ಅವು ಸೇರಿದ ಮರುಹೊಂದಿಕೆ
OpenVPN ಎರಡು ಸಾಮಾನ್ಯ ಸಂದರ್ಭಗಳಲ್ಲಿ ತನ್ನದೇ ಮರುಪ್ರಾರಂಭವನ್ನು ಸೂಚಿಸುತ್ತದೆ. ಸ್ಪಷ್ಟ SIGUSR1 ಅದನ್ನು ಮಾಡುತ್ತದೆ, ಮತ್ತು ಸತ್ತ ಸಹಚರರಿಂದ ಪ್ರಚೋದಿಸಲ್ಪಟ್ಟ ping-restart ಅದೇ ರೀತಿ ಮಾಡುತ್ತದೆ. ಎರಡೂ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಜೀವಂತವಾಗಿ ಬಿಟ್ಟು ಸಂಪರ್ಕ ಸಂರಚನೆಯನ್ನು ಮತ್ತೆ ಚಲಾಯಿಸುತ್ತವೆ, ಮತ್ತು ಅಲ್ಲಿಯೇ ಆಯ್ಕೆಗಳು ತಮ್ಮ ಸ್ಥಾನವನ್ನು ಗಳಿಸುತ್ತವೆ.
| Event | TUN/TAP device | Key and auth files | Addresses and routes | up/down hooks |
|---|---|---|---|---|
Soft reset, from SIGUSR1 or from a ping-restart the daemon sends itself | survives only with persist-tun | survive only with persist-key | survive with the device, otherwise rebuilt | run again only when restart hooks are enabled |
Configuration reload, SIGHUP | recreated | re-read from disk | rebuilt once the device returns | run again |
| Service stop | lost | re-read at the next start | removed | run at the next start |
ಈ ಎರಡು ಆಯ್ಕೆಗಳು ಬದಲಿಸುವುದು ಮೃದು-ಮರುಹೊಂದಿಕೆ ಸಾಲನ್ನು ಮಾತ್ರ, ಮತ್ತು ಅವು ತಪ್ಪಿಸಿಕೊಳ್ಳುವ ಕೆಲಸವು ನಿರತ ಲಿಂಕ್ನಲ್ಲಿ ದುಬಾರಿ ಭಾಗವಾಗಿದೆ. ಸಾಧನವನ್ನು ಮತ್ತೆ ತೆರೆಯುವುದು ಅದಕ್ಕೆ ಜೋಡಿಸಲಾದ ವಿಳಾಸಗಳು ಮತ್ತು ಮಾರ್ಗಗಳನ್ನು ಒಡೆಯುತ್ತದೆ, ಮತ್ತು ಅವುಗಳನ್ನು ಮತ್ತೆ ನಿರ್ಮಿಸುವುದು ಮರುಹೊಂದಿಕೆ ಪ್ರಾರಂಭವಾದಾಗ ದಾರಿಯಲ್ಲಿದ್ದ ಪ್ಯಾಕೆಟ್ಗಳನ್ನು ಬೀಳಿಸಬಹುದು. ನಿಲ್ಲಿಸುವುದು ಅದೇ ವಸ್ತುಗಳನ್ನು ಉಳಿಸಿಕೊಳ್ಳುವ ಯಾವುದೇ ಆಯ್ಕೆಯಿಲ್ಲದೆ ನಾಶಪಡಿಸುತ್ತದೆ.
ಈ ಆಯ್ಕೆಗಳು ಇರುವುದೇ ಏಕೆ
ಗಟ್ಟಿಗೊಳಿಸಿದ OpenVPN ಸರ್ವರ್ ಸಾಮಾನ್ಯವಾಗಿ root ಆಗಿ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ, ತನ್ನ ಕೀಗಳನ್ನು ಮತ್ತು ಸಾಧನವನ್ನು ತೆರೆಯುತ್ತದೆ, ನಂತರ ಸವಲತ್ತಿಲ್ಲದ ಬಳಕೆದಾರರಿಗೆ ಇಳಿಯುತ್ತದೆ. ಆ ಇಳಿಕೆಯ ನಂತರ ಕೆಲವು ಕಾರ್ಯಾಚರಣೆಗಳು ಸುಮ್ಮನೆ ಮಾಯವಾಗುತ್ತವೆ. ಮೋಡ್ 0600 ಕೀ ಫೈಲ್ ಓದುವುದು, ನೆಟ್ವರ್ಕ್ ಇಂಟರ್ಫೇಸ್ ರಚಿಸುವುದು ಅಥವಾ ಮಾರ್ಗಗಳನ್ನು ಬದಲಿಸುವುದು ಎಲ್ಲವೂ ನಿರಾಕರಿಸಬಹುದು.
persist ಆಯ್ಕೆಗಳಿಲ್ಲದೆ, ping-restart ಪ್ರಚೋದಿಸಲು ಸಾಕಷ್ಟು ಸಮಯ ಮೌನವಾಗಿರುವ ಸಹಚರನು ನಿಖರವಾಗಿ ಆ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಒತ್ತಾಯಿಸುತ್ತಾನೆ. ಸಂರಚನೆಯಲ್ಲಿ ಏನೂ ಬದಲಾಗದಿದ್ದರೂ ಮರುಸಂಪರ್ಕ ವಿಫಲವಾಗುತ್ತದೆ. ಪ್ರಕ್ರಿಯೆಯು ಕಾರಣವಿಲ್ಲದೆ ಸಾಯುತ್ತಿರುವಂತೆ ಕಾಣುತ್ತದೆ, ಮತ್ತು ಲಾಗ್ ನೆಟ್ವರ್ಕ್ ದೋಷದ ಬದಲು ಅನುಮತಿ ದೋಷವನ್ನು ತೋರಿಸುತ್ತದೆ.
ಅವುಗಳೊಂದಿಗೆ, ಮೃದು ಮರುಹೊಂದಿಕೆಯು ಸವಲತ್ತು ಪಡೆದ ಹಂತವು ಈಗಾಗಲೇ ಪಡೆದದ್ದನ್ನು ಮರುಬಳಕೆ ಮಾಡುತ್ತದೆ. ಯಾವುದೇ ಮಾಯೆ ಇಲ್ಲ ಮತ್ತು ಪ್ರಕ್ರಿಯೆಯು ಯಾವುದನ್ನೂ ಉಳಿಸಿಕೊಳ್ಳುವುದಿಲ್ಲ. ಸಂಪನ್ಮೂಲಗಳ ಸ್ವಾಧೀನವು ಸುಮ್ಮನೆ ಮುಂದೂಡಲ್ಪಡುತ್ತದೆ.
ಕೊನೆಯದಲ್ಲ, ಮೊದಲ ದೋಷವನ್ನು ಓದಿ
ಮರುಹೊಂದಿಕೆ ವಿಫಲವಾದಾಗ, ಕೊನೆಯದಕ್ಕಿಂತ ಮೊದಲ ದೋಷವನ್ನು ಓದಿ. ಸಂರಕ್ಷಿತ ಕೀ, auth ಫೈಲ್, ಇಂಟರ್ಫೇಸ್ ioctl ಮತ್ತು ಬಾಹ್ಯ ಹುಕ್ ನಾಲ್ಕು ವಿಭಿನ್ನ ಸಂಪನ್ಮೂಲಗಳು. ಒಂದನ್ನು ಉಳಿಸಿಕೊಳ್ಳುವುದು ಉಳಿದವುಗಳಿಗೆ ಪ್ರವೇಶದ ಬಗ್ಗೆ ಏನನ್ನೂ ಹೇಳುವುದಿಲ್ಲ. ಫೈರ್ವಾಲ್ ಸಾಧನವನ್ನು ಕರೆಯುವ ಹುಕ್ ಇನ್ನೂ ಆ ಸಾಧನ ಬೇಡುವ ಸವಲತ್ತುಗಳನ್ನು ಬೇಕಾಗುತ್ತದೆ.
ಹುಕ್ಗಳಿಗೆ ತಮ್ಮದೇ ಸ್ವಿಚ್ ಇರುತ್ತದೆ. OpenVPN ಕೈಪಿಡಿ persist ಆಯ್ಕೆಗಳನ್ನು up-restart ನೊಂದಿಗೆ ಜೋಡಿಸುತ್ತದೆ, ಅದು ಮರುಪ್ರಾರಂಭದ ನಂತರ up ಮತ್ತು down ಸ್ಕ್ರಿಪ್ಟ್ಗಳು ಮತ್ತೆ ಚಲಿಸುತ್ತವೆಯೇ ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ. ಆದ್ದರಿಂದ ಮೇಲೆ ಉಳಿದ ಇಂಟರ್ಫೇಸ್ ನಿಮ್ಮ ರಿಜಾಲ್ವರ್ ಏಕೀಕರಣ ನವೀಕರಿಸಲ್ಪಟ್ಟಿದೆಯೇ ಎಂಬುದರ ಬಗ್ಗೆ ಏನನ್ನೂ ಹೇಳುವುದಿಲ್ಲ.
# which restart path just happened?
journalctl -u openvpn-client@office --since '10 min ago' | grep -E 'SIGUSR1|ping-restart|Restart pause|NOTE:'
# did the interface survive, and do its routes still exist?
ip -brief link show tun0
ip route show dev tun0
ಈ ಎರಡು ಆದೇಶಗಳು ಎರಡು ವೈಫಲ್ಯ ವಿಧಾನಗಳನ್ನು ಸೆಕೆಂಡುಗಳಲ್ಲಿ ಬೇರ್ಪಡಿಸುತ್ತವೆ. ಇರುವ ಆದರೆ ಮಾರ್ಗಗಳು ಕಾಣೆಯಾಗಿರುವ ಇಂಟರ್ಫೇಸ್ ಹುಕ್ ಅಥವಾ ಮಾರ್ಗದ ಸಮಸ್ಯೆ. ಮಾಯವಾದ ಇಂಟರ್ಫೇಸ್ ಎಂದರೆ ಪ್ರಕ್ರಿಯೆ ನಿಜವಾಗಿ ಮುಗಿದಿದೆ.
ಉಳಿಸಿಕೊಂಡ ಇಂಟರ್ಫೇಸ್ kill switch ಅಲ್ಲ
ಸಂಚಾರವು ಎಂದಿಗೂ ಸುರಂಗದ ಹೊರಗೆ ಹೋಗಬಾರದು ಎಂಬುದು ಅಗತ್ಯವಾದರೆ, ಉಳಿಸಿಕೊಂಡ ಸಾಧನವು ಅದನ್ನು ನೀಡುವುದಿಲ್ಲ. ಇನ್ನೊಂದು ವಿಳಾಸ ಕುಟುಂಬದ ಮಾರ್ಗಗಳು, ಎರಡನೇ ಡೀಫಾಲ್ಟ್ ಮಾರ್ಗ, ಮತ್ತು ಪ್ರಕ್ರಿಯೆ ಸಂಪೂರ್ಣವಾಗಿ ನಿರ್ಗಮಿಸುವ ಸಂದರ್ಭ ಎಲ್ಲವೂ ಆಯ್ಕೆಯ ವ್ಯಾಪ್ತಿಯ ಹೊರಗೆ ಉಳಿಯುತ್ತವೆ.
ಎರಡು ಅಗತ್ಯಗಳನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ನಿರ್ವಹಿಸಿ. ಮರುಸಂಪರ್ಕಗಳ ನಡುವೆ ಸುರಂಗ ವಸ್ತುವನ್ನು ಇಟ್ಟುಕೊಳ್ಳುವುದು ಡೀಮನ್ಗೆ ಅನುಕೂಲ. ಸುರಂಗ ಕೆಳಗಿದ್ದಾಗ ನಿರ್ಗಮನವನ್ನು ತಡೆಯುವುದು ತನ್ನದೇ ನಿಯಮಗಳು ಮತ್ತು ತನ್ನದೇ ಪರೀಕ್ಷೆಯನ್ನು ಹೊಂದಿರುವ ಫೈರ್ವಾಲ್ ನೀತಿ. ಅವುಗಳನ್ನು ಬೆರೆಸುವುದು ರಕ್ಷಣಾತ್ಮಕವಾಗಿ ಕಾಣುವ ಮತ್ತು ಉತ್ತಮ-ಪ್ರಯತ್ನ ಮರುಸಂಪರ್ಕದಂತೆ ವರ್ತಿಸುವ ಸಂರಚನೆಯನ್ನು ಉಂಟುಮಾಡುತ್ತದೆ.
ರೋಗನಿರ್ಣಯದ ಮೊದಲು ಘಟನೆಗೆ ಹೆಸರಿಡಿ. ಮೃದು ಮರುಪ್ರಾರಂಭ, ವಿಫಲ ಸಂಪರ್ಕ ಪ್ರಯತ್ನ ಮತ್ತು ಸೇವೆ ನಿಲ್ಲಿಸುವಿಕೆ ಮೂರು ವರ್ತನೆಗಳನ್ನು ಹೊಂದಿರುವ ಮೂರು ಘಟನೆಗಳು, ಮತ್ತು ಮೊದಲನೆಯದು ಮಾತ್ರ ಈ ಆಯ್ಕೆಗಳು ವಿವರಿಸುವುದು.