up ಮತ್ತು down ಹುಕ್ಗಳಿಂದ OpenVPN ಕ್ಲೈಂಟ್ನ ಅಪ್ಟೈಮ್ ಅನ್ನು ಅಳೆಯುವುದು ಹೇಗೆ
OpenVPN ನಲ್ಲಿ ಅಪ್ಟೈಮ್ ಕೌಂಟರ್ ಇಲ್ಲ। up ಹುಕ್ನಿಂದ epoch ಸ್ಟ್ಯಾಂಪ್ ಉಳಿಸಿ, down ನಲ್ಲಿ ಅದನ್ನು ಅಳಿಸಿ, ಕಳೆಯಿರಿ ಮತ್ತು ಮರುಪ್ರಾರಂಭ ಹಾಗೂ ಇನ್ಸ್ಟಾನ್ಸ್ಗಳ ನಡುವೆ ಅದನ್ನು ಪ್ರಾಮಾಣಿಕವಾಗಿ ಇರಿಸಿ।
ಕನೆಕ್ಷನ್ ಎಷ್ಟು ಸಮಯದಿಂದ ಚಾಲನೆಯಲ್ಲಿದೆ ಎಂಬ ಸಂಖ್ಯೆಯನ್ನು ಡ್ಯಾಶ್ಬೋರ್ಡ್ ಕೇಳುತ್ತದೆ, ಮತ್ತು OpenVPN ಅದನ್ನು ನೀಡುವುದಿಲ್ಲ। ತನ್ನ ಸುರಂಗ ಯಾವಾಗ ಮೇಲೆ ಬಂತು ಎಂದು ಕ್ಲೈಂಟ್ಗೆ ತಿಳಿದಿದೆ, ಆದರೆ ಸೆಷನ್ ಸ್ಥಿತಿ ಕಳೆದುಹೋಗುವ ಮೊದಲು ಯಾರಾದರೂ ಆ ಕ್ಷಣವನ್ನು ದಾಖಲಿಸಿದರೆ ಮಾತ್ರ। ಬೆಂಬಲಿತ ಸ್ಥಳ up ಹುಕ್, ಮತ್ತು ಉಳಿಸಲು ಯೋಗ್ಯವಾದ ಮೌಲ್ಯವು ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಿದ ಸ್ಟ್ರಿಂಗ್ ಅಲ್ಲ, ಕಚ್ಚಾ epoch ಸೆಕೆಂಡ್। ಅದರ ನಂತರ ಎಲ್ಲವೂ ಅಂಕಗಣಿತ, ಜೊತೆಗೆ ಸಂಖ್ಯೆ ಪ್ರಾಮಾಣಿಕವಾಗಿ ಉಳಿಯುತ್ತದೆಯೇ ಎಂದು ನಿರ್ಧರಿಸುವ ಕೆಲವು ಕ್ರಮ ನಿಯಮಗಳು।
ಹುಕ್ಗಳು ನಿಜವಾಗಿಯೂ ಚಲಿಸುತ್ತವೆ ಎಂದು ಖಚಿತಪಡಿಸಿ
ಅದರ ಸುತ್ತ ಏನನ್ನೂ ವಿನ್ಯಾಸ ಮಾಡುವ ಮೊದಲು ಹುಕ್ ಪ್ರಚೋದಿಸುತ್ತದೆ ಎಂದು ಸಾಬೀತುಪಡಿಸಿ। ಕನಿಷ್ಠ ಕ್ಲೈಂಟ್ ಸಂರಚನೆಗೆ script-security 2 ಮತ್ತು ಸ್ಪಷ್ಟ ಮಾರ್ಗಗಳು up ಹಾಗೂ down ಬೇಕು; ಭದ್ರತಾ ಸಾಲಿಲ್ಲದೆ OpenVPN ಸ್ಕ್ರಿಪ್ಟ್ ಚಲಾಯಿಸಲು ನಿರಾಕರಿಸುತ್ತದೆ ಮತ್ತು ಅದನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ಹೇಳುತ್ತದೆ। ಅದೇ ಸಮಯದಲ್ಲಿ up-restart ಮತ್ತು down-pre ಸೇರಿಸಿ, ಇದರಿಂದ ಮರುಪ್ರಾರಂಭ ಮತ್ತು ತೆರವು ಮಾರ್ಗಗಳು ಊಹಿಸಬಹುದಾದ ರೀತಿಯಲ್ಲಿ ವರ್ತಿಸುತ್ತವೆ।
ಹುಕ್ನ ಮೊದಲ ಆವೃತ್ತಿಯನ್ನು ಅದು ತನ್ನ ಪರಿಸರವನ್ನು ಫೈಲ್ಗೆ ಸೇರಿಸುವಂತೆ ಮತ್ತು ಬೇರೆ ಏನೂ ಮಾಡದಂತೆ ಮಾಡಿ। ಇದು ನಿಮ್ಮ ಬಿಲ್ಡ್ ನಿಜವಾಗಿ ರಫ್ತು ಮಾಡುವ ವೇರಿಯಬಲ್ ಹೆಸರುಗಳನ್ನು ತಿಳಿಸುತ್ತದೆ, ಉದಾಹರಣೆಗೆ dev ಮತ್ತು script_type, ಬೇರೆ ಆವೃತ್ತಿಯಿಂದ ನೆನಪಿರುವ ಹೆಸರುಗಳ ಬದಲು। ಒಂದು ಸಂಪರ್ಕ ಮತ್ತು ಒಂದು ಸಂಪರ್ಕ ಕಡಿತವನ್ನು ಚಲಾಯಿಸಿ, ನಂತರ ಫೈಲ್ ಓದಿ। ಏನೂ ಕಾಣದಿದ್ದರೆ ಇಲ್ಲೇ ನಿಲ್ಲಿಸಿ, ಏಕೆಂದರೆ ಎಂದಿಗೂ ಚಲಿಸದ ಹುಕ್ಗಿಂತ ಮೇಲಿನ ಟೈಮ್ಸ್ಟ್ಯಾಂಪ್ ವಿನ್ಯಾಸವು ವಾರಗಳವರೆಗೆ ಮೇಲ್ವಿಚಾರಣಾ ವೈಫಲ್ಯದಂತೆ ಕಾಣುತ್ತದೆ।
ಹುಕ್ ಯಾವ ಬಳಕೆದಾರರಾಗಿ ಚಲಿಸುತ್ತದೆ ಎಂದು ಪರಿಶೀಲಿಸಿ। user ಮತ್ತು group ಸೆಟ್ ಆಗಿದ್ದರೆ OpenVPN ಸ್ಕ್ರಿಪ್ಟ್ಗಳನ್ನು ಚಲಾಯಿಸುವ ಮೊದಲು ಸವಲತ್ತುಗಳನ್ನು ಬಿಟ್ಟುಬಿಡುತ್ತದೆ, ಆದ್ದರಿಂದ root ಬರೆಯಬಹುದಾದ ಡೈರೆಕ್ಟರಿ ಹುಕ್ಗೆ ಮುಚ್ಚಿರಬಹುದು। ಮಾರ್ಗವನ್ನು ನಿಮ್ಮ ಶೆಲ್ನ ದೃಷ್ಟಿಕೋನದಿಂದಲ್ಲ, ಸೇವೆಯ ದೃಷ್ಟಿಕೋನದಿಂದ ಆರಿಸಿ।
ಒಂದು epoch ಮೌಲ್ಯವನ್ನು ದಾಖಲಿಸಿ ಮತ್ತು ಅದನ್ನು ಉದ್ದೇಶಪೂರ್ವಕವಾಗಿ ಅಳಿಸಿ
up ಹುಕ್ಗೆ ಒಂದು ಸಾಲು ಬೇಕು, date +%s > /run/openvpn-client.started, ಪ್ರತಿ ಇನ್ಸ್ಟಾನ್ಸ್ಗೆ ಮಾರ್ಗವನ್ನು ಹೊಂದಿಸಿ। epoch ಮೌಲ್ಯವು ನಂತರ ಭಾಷೆ, ಸಮಯ ವಲಯ ಮತ್ತು ಸ್ವರೂಪದ ಪ್ರಶ್ನೆಗಳನ್ನು ತಪ್ಪಿಸುತ್ತದೆ, ಮತ್ತು ಮೇಲ್ವಿಚಾರಣಾ ಏಜೆಂಟ್ ತನ್ನದೇ ಗಡಿಯಾರದೊಂದಿಗೆ ಹೋಲಿಸಬಹುದಾದ ಅದೇ ಸಂಖ್ಯೆ ಅದು।
ಅಳಿಸುವುದು ಬರೆಯುವಷ್ಟೇ ಮುಖ್ಯ। down ಹುಕ್ ಫೈಲ್ ಅನ್ನು ಖಾಲಿ ಮಾಡಬೇಕು ಅಥವಾ ತೆಗೆದುಹಾಕಬೇಕು, ಮತ್ತು down-pre ಇಂಟರ್ಫೇಸ್ ಮುಚ್ಚುವ ಮೊದಲೇ ಅದನ್ನು ಮಾಡುತ್ತದೆ, ಇದು ಈಗಾಗಲೇ ಹೋದ ಸುರಂಗವನ್ನು ಫೈಲ್ ವಿವರಿಸುವ ಕಿಟಕಿಯನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ। up-restart ನಂತರ ಆಂತರಿಕ ಮರುಪ್ರಾರಂಭದಲ್ಲಿ ಸ್ಟ್ಯಾಂಪ್ ಅನ್ನು ನವೀಕರಿಸುತ್ತದೆ, ಮೂಲ ಮೌಲ್ಯವನ್ನು ಜಾಗದಲ್ಲಿ ಬಿಡುವ ಬದಲು। ಆ ಜೋಡಿ ಇಲ್ಲದಿದ್ದರೆ ping ಕಾಲಮಿತಿ ಮುಗಿದ ನಂತರದ ಮರುಪ್ರಾರಂಭ ಸುರಂಗ ಮತ್ತೆ ಸ್ಥಾಪಿತವಾಗುವವರೆಗೆ ಏರುತ್ತಲೇ ಇರುವ ಸಂಖ್ಯೆಯನ್ನು ನೀಡುತ್ತದೆ।
ಸರಿಯಾದ ಆಯುಷ್ಯವಿರುವ ಸ್ಥಳವನ್ನು ಆರಿಸಿ। /run ಅಡಿಯಲ್ಲಿನ ಫೈಲ್ ಮರುಬೂಟ್ನಲ್ಲಿ ಮಾಯವಾಗುತ್ತದೆ, ಇದು ವಾಸ್ತವಕ್ಕೆ ಹೊಂದುತ್ತದೆ, ಆದರೆ /tmp ಅಡಿಯಲ್ಲಿನ ಫೈಲ್ ಅನ್ನು ಅನಿರೀಕ್ಷಿತವಾಗಿ ಸ್ವಚ್ಛಗೊಳಿಸಬಹುದು ಮತ್ತು ಸಂರಚನಾ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿನ ಫೈಲ್ ದಾರಿತಪ್ಪಿಸುವ ರೀತಿಯಲ್ಲಿ ಉಳಿಯುತ್ತದೆ। ಸೇವಾ ಬಳಕೆದಾರ ಮತ್ತು ಮೇಲ್ವಿಚಾರಣಾ ಓದುಗ ಮಾತ್ರ ಓದಲು ಅನುಮತಿಗಳನ್ನು ಹೊಂದಿಸಿ।
ಲಾಗ್ ಸಾಲುಗಳನ್ನು ನಂಬದೆ ಅಪ್ಟೈಮ್ ಲೆಕ್ಕ ಹಾಕಿ
ಸಂಗ್ರಹಿಸಿದ ಸೆಕೆಂಡ್ ಓದಿ, ಪ್ರಸ್ತುತ ಸೆಕೆಂಡ್ ಓದಿ, ಕಳೆಯಿರಿ। ಫೈಲ್ ಇಲ್ಲದಿದ್ದಾಗ ಅಥವಾ ಖಾಲಿ ಇದ್ದಾಗ, ಪ್ರಾಮಾಣಿಕ ಉತ್ತರವೆಂದರೆ ಯಾವುದೇ ಸುರಂಗ ಸಕ್ರಿಯವಿಲ್ಲ, ಅಪ್ಟೈಮ್ ಶೂನ್ಯ ಎಂದಲ್ಲ, ಏಕೆಂದರೆ ಆ ಎರಡು ಸ್ಥಿತಿಗಳು ಬೇರೆ ಬೇರೆ ಎಚ್ಚರಿಕೆಗಳನ್ನು ಎಬ್ಬಿಸಬೇಕು। ಮೇಲ್ವಿಚಾರಣಾ ಪೇಲೋಡ್ನಲ್ಲಿ ಕಚ್ಚಾ ಸೆಕೆಂಡ್ಗಳನ್ನು ಇರಿಸಿ ಮತ್ತು ದಿನ ಹಾಗೂ ಗಂಟೆಗಳನ್ನು ಪ್ರದರ್ಶನ ಪದರದಲ್ಲಿ ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಿ। ರಫ್ತುದಾರನ ಒಳಗೆ ಸುತ್ತುವ ಫಾರ್ಮ್ಯಾಟರ್ ಘಟನೆಯ ಸಮಯದಲ್ಲಿ ಯಾರಿಗಾದರೂ ಬೇಕಾಗುವ ನಿಖರತೆಯನ್ನು ಎಸೆಯುತ್ತದೆ।
ಲಾಗ್ನ ಟೈಮ್ಸ್ಟ್ಯಾಂಪ್ಗಳನ್ನು ಪಾರ್ಸ್ ಮಾಡುವುದು ಆಕರ್ಷಕವಾದ ಚಿಕ್ಕದಾರಿ, ಮತ್ತು ಅದು ಮೂರು ರೀತಿಯಲ್ಲಿ ವಿಫಲವಾಗುತ್ತದೆ: ಸ್ವರೂಪವು ಸೆಟ್ ಆದ ಯಾವುದೇ ಆಯ್ಕೆಗಳನ್ನು ಅನುಸರಿಸುತ್ತದೆ, ರೊಟೇಶನ್ ಇತಿಹಾಸವನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ, ಮತ್ತು ಮರುಸಂಪರ್ಕಗಳು ಒಂದು ನಿರಂತರ ಸುರಂಗದ ಬದಲು ಪ್ರತ್ಯೇಕ ಸೆಷನ್ಗಳಾಗಿ ಕಾಣುತ್ತವೆ। ಹುಕ್ ಘಟನೆಯನ್ನು ಒಮ್ಮೆ, ಅದು ಸಂಭವಿಸಿದ ಕ್ಷಣದಲ್ಲಿ ದಾಖಲಿಸುತ್ತದೆ।
ಪರಿಶೀಲನೆ ಬೇರೆ ಹೋಸ್ಟ್ನಲ್ಲಿ ಚಲಿಸಿದಾಗ, ಅವಧಿಯ ಬದಲು ಟೈಮ್ಸ್ಟ್ಯಾಂಪ್ ಕಳುಹಿಸಿ, ಇದರಿಂದ ಓದುಗ ತನ್ನದೇ ಗಡಿಯಾರವನ್ನು ಅನ್ವಯಿಸುತ್ತಾನೆ। ಆಗ ಸಣ್ಣ ಋಣಾತ್ಮಕ ಫಲಿತಾಂಶವು ಮುರಿದ ಹುಕ್ ಎಂದಲ್ಲ, ಗಡಿಯಾರದ ವ್ಯತ್ಯಾಸ ಎಂದು ಓದಲ್ಪಡುತ್ತದೆ।
ಮರುಸಂಪರ್ಕಗಳು, ಮರುಪ್ರಾರಂಭಗಳು ಮತ್ತು ಹಲವು ಇನ್ಸ್ಟಾನ್ಸ್ಗಳನ್ನು ಒಳಗೊಳ್ಳಿ
ಒಂದು ಹೋಸ್ಟ್ನಲ್ಲಿ ಎರಡು ಸುರಂಗಗಳಿಗೆ ಎರಡು ಫೈಲ್ಗಳು ಬೇಕು, ಕೀಲಿ ಸೇವೆ ಈಗಾಗಲೇ ಬಳಸುವ ಇನ್ಸ್ಟಾನ್ಸ್ ಹೆಸರು। ಹಂಚಿದ ಮಾರ್ಗ ಎಂದರೆ ಇತ್ತೀಚಿನ ಸಂಪರ್ಕವು ಪ್ರತಿ ಪ್ರೊಫೈಲ್ನ ಪ್ರಾರಂಭ ಸಮಯವನ್ನು ಮೇಲೆ ಬರೆಯುತ್ತದೆ, ಮತ್ತು ಲಕ್ಷಣವೆಂದರೆ ಎರಡನೇ ಸುರಂಗ ಪ್ರಾರಂಭವಾದಾಗ ಹಿಂದಕ್ಕೆ ಜಿಗಿಯುವ ಸಂಖ್ಯೆ।
ಮರುಸಂಪರ್ಕದ ವರ್ತನೆಗೆ ತನ್ನದೇ ಪರೀಕ್ಷೆ ಬೇಕು, ಏಕೆಂದರೆ ಅಲ್ಲಿಯೇ ನಂಬಲರ್ಹವಾದ ವಿನ್ಯಾಸವು ಮೌನವಾಗಿ ತಪ್ಪಾದದ್ದನ್ನು ವರದಿ ಮಾಡುತ್ತದೆ। ಸಹಚರನನ್ನು ಬೀಳಿಸಿ ಅಥವಾ ಪ್ರಕ್ರಿಯೆಗೆ ಸಿಗ್ನಲ್ ಕಳುಹಿಸಿ ಮರುಪ್ರಾರಂಭವನ್ನು ಒತ್ತಾಯಿಸಿ, ನಂತರ ಇಂಟರ್ಫೇಸ್ ಸ್ಥಿತಿಯನ್ನು ಫೈಲ್ನೊಂದಿಗೆ ಹೋಲಿಸಿ। ಸುರಂಗ ಮರಳಿದ ಕ್ಷಣದಲ್ಲಿ ಟೈಮ್ಸ್ಟ್ಯಾಂಪ್ ಮುಂದೆ ಸರಿಯಬೇಕು।
ಸರ್ವರ್ ಬದಿಯಲ್ಲಿ, ಸ್ಥಿತಿ ಫೈಲ್ ಪ್ರತಿ ಕ್ಲೈಂಟ್ಗೆ connected-since ಮೌಲ್ಯವನ್ನು ಹೊಂದಿದೆ, ಅದು ಬೇರೆ ಪ್ರಶ್ನೆಗೆ ಉತ್ತರಿಸುತ್ತದೆ: ಸರ್ವರ್ ಆ ಸಹಚರನನ್ನು ಕೊನೆಯದಾಗಿ ಯಾವಾಗ ನೋಡಿತು। ಅದನ್ನು ಬದಲಿಯಾಗಿ ಅಲ್ಲ, ಅಡ್ಡ ಪರಿಶೀಲನೆಗೆ ಬಳಸಿ, ಏಕೆಂದರೆ ಅದು ವಿವರಿಸುವ ಸೆಷನ್ನೊಂದಿಗೆ ಮಾಯವಾಗುತ್ತದೆ। ಎರಡೂ ಮಾಪನಗಳು ಸುರಂಗದ ಹಿಂದಿನ ಅಪ್ಲಿಕೇಶನ್ನ ಆರೋಗ್ಯದ ಬಗ್ಗೆ ಏನನ್ನೂ ಹೇಳುವುದಿಲ್ಲ।
ಕ್ರಮದ ದೋಷಗಳನ್ನು ಹಿಡಿಯುವ ಮೂರು ಪರಿಶೀಲನೆಗಳನ್ನು ಚಲಾಯಿಸಿ
ಸಾಮಾನ್ಯ ಸಂಪರ್ಕ, ಒತ್ತಾಯದ ಮರುಸಂಪರ್ಕ ಮತ್ತು ಸ್ವಚ್ಛ ನಿಲುಗಡೆಯನ್ನು ಪರೀಕ್ಷಿಸಿ, ಪ್ರತಿಯೊಂದರ ನಂತರ ಇಂಟರ್ಫೇಸ್ ಪಟ್ಟಿ ಮತ್ತು ಫೈಲ್ ಅನ್ನು ಒಟ್ಟಿಗೆ ಓದಿ। ಸ್ವಚ್ಛ ನಿಲುಗಡೆಯ ನಂತರವೂ ಉಳಿದಿರುವ ಸ್ಟ್ಯಾಂಪ್, ಅಥವಾ ಇಂಟರ್ಫೇಸ್ ಪಟ್ಟಿಯಲ್ಲಿಲ್ಲದ ಸುರಂಗವನ್ನು ಪ್ರತಿಪಾದಿಸುವ ಫೈಲ್, ನೇರವಾಗಿ ಹುಕ್ ಕ್ರಮಕ್ಕೆ ಸೂಚಿಸುತ್ತದೆ। ಪರಿಶೀಲನೆಗಳನ್ನು ಸೇವಾ ಬಳಕೆದಾರರಾಗಿ ಮತ್ತು ಸೇವೆಯ ಮಾರ್ಗಗಳೊಂದಿಗೆ ಚಲಾಯಿಸಿ, ಏಕೆಂದರೆ root ಶೆಲ್ ಬೇರೆ ಫೈಲ್ ನೋಡಿ ಆತ್ಮವಿಶ್ವಾಸದಿಂದ ತಪ್ಪು ಉತ್ತರ ನೀಡಬಹುದು। ನಂತರ ನಿಧಾನವಾದ ಪೋಲರ್ ಫೈಲ್ ಓದಲು ಬಿಡಿ ಮತ್ತು ಅದು ಎಂದಿಗೂ ಅದರಲ್ಲಿ ಬರೆಯುವುದಿಲ್ಲ ಎಂದು ಖಚಿತಪಡಿಸಿ।
ಪ್ರತಿ ಅರವತ್ತು ಸೆಕೆಂಡಿಗೆ ಒಂದು ಪೋಲ್ ಎಚ್ಚರಿಕೆಗಳನ್ನು ಒಳಗೊಳ್ಳುತ್ತದೆ, ಮತ್ತು ಆ ಪೋಲರ್ ಜೀವಂತವಾಗಿದೆ ಎಂಬುದನ್ನು ಯಾವುದೇ ಹುಕ್ ಅವಲಂಬಿಸಬಾರದು। ಆ ಎರಡು ಜವಾಬ್ದಾರಿಗಳನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಇರಿಸಿ, ಯಾವುದೇ ಬದಿಯನ್ನು ಮರುನಿಯೋಜಿಸಿದಾಗಲೂ ಸಂಖ್ಯೆ ವಿಶ್ವಾಸಾರ್ಹವಾಗಿ ಉಳಿಯುತ್ತದೆ।