ಪೋರ್ಟ್ 80 ಮೂಲಕ Linux/OpenWrt/Lede ಆಧಾರಿತ ಸಾಧನಗಳ ದೂರಸ್ಥ ಮೇಲ್ವಿಚಾರಣೆ ಮತ್ತು ನಿರ್ವಹಣೆ, ಮುಂದುವರೆಯಿತು

ಇದು ಲೇಖನದ ಅಂತಿಮ ಭಾಗವಾಗಿದೆ, ಇಲ್ಲಿ ಪ್ರಾರಂಭವಾಗಿದೆ habr.com/en/post/445568
ಕೊನೆಯ ಬಾರಿ ನಾನು ಸಾಧನದ ಮೇಲ್ವಿಚಾರಣೆಯನ್ನು ಹೇಗೆ ಕಾರ್ಯಗತಗೊಳಿಸಿದೆ ಎಂಬುದರ ಕುರಿತು ನಾನು ಬರೆದಿದ್ದೇನೆ, ಈಗ ನಾವು ನಿರ್ವಹಣೆಯ ಬಗ್ಗೆ ಮಾತನಾಡುತ್ತೇವೆ. ಗ್ರಾಹಕರ ಕಡೆಯಿಂದ "ತಂತ್ರಜ್ಞರ" ಜೊತೆಗಿನ ಚರ್ಚೆಗಳಲ್ಲಿ, ಅಂತಹ ಸಣ್ಣ ಸಾಧನಗಳ ಸಾಮರ್ಥ್ಯಗಳ (ಕಡಿಮೆ ಮೆಮೊರಿ ಸಂಪನ್ಮೂಲಗಳು ಮತ್ತು ಕಾರ್ಯಕ್ಷಮತೆಯೊಂದಿಗೆ) ನಾನು ಆಗಾಗ್ಗೆ ಸೀಮಿತ ಗ್ರಹಿಕೆಯನ್ನು ಎದುರಿಸುತ್ತೇನೆ, "ನಮಗೆ ಹೆಚ್ಚು ಬೇಕಾಗಿರುವುದು ರೀಬೂಟ್ ಅನ್ನು ಕಳುಹಿಸುವುದು, ಹೆಚ್ಚಿನದಕ್ಕಾಗಿ" ಎಂದು ನಂಬುತ್ತಾರೆ. ಗಂಭೀರವಾಗಿ ನಾವು ತಂಡವನ್ನು ಕಳುಹಿಸುತ್ತೇವೆ” .
ಆದರೆ ಅಭ್ಯಾಸವು ಇದು ಸಂಪೂರ್ಣವಾಗಿ ನಿಜವಲ್ಲ ಎಂದು ತೋರಿಸುತ್ತದೆ. ಸಾಮಾನ್ಯ ವಿಶಿಷ್ಟ ಕಾರ್ಯಗಳ ಸಣ್ಣ ಪಟ್ಟಿ ಇಲ್ಲಿದೆ:

  1. ನೆಟ್‌ವರ್ಕ್ ಡಯಾಗ್ನೋಸ್ಟಿಕ್ಸ್ ಮತ್ತು ಟ್ರಬಲ್‌ಶೂಟಿಂಗ್. ನಿಮ್ಮ ರೂಟರ್‌ನ ಎತರ್ನೆಟ್ ಪೋರ್ಟ್‌ನ ಹಿಂದೆ ಸಾಮಾನ್ಯವಾಗಿ ತನ್ನದೇ ಆದ ಆಂತರಿಕ IP ವಿಳಾಸವನ್ನು ಹೊಂದಿರುವ ಮತ್ತೊಂದು ಹಾರ್ಡ್‌ವೇರ್ ಇರುತ್ತದೆ. ಕೆಲವೊಮ್ಮೆ, ನೀವು ಅದನ್ನು "ಪಿಂಗ್" ಮಾಡಬಹುದು (ಮಾಡಬೇಕು). ಅಥವಾ ಸುರಂಗ ನಿರ್ವಹಣೆ - 3G ಮೋಡೆಮ್ ಮೂಲಕ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ರೂಟರ್‌ನಲ್ಲಿ ಸುರಂಗವು ಇದ್ದಕ್ಕಿದ್ದಂತೆ ಏರದಿದ್ದರೆ, ಆದರೆ ನಾವು ರೂಟರ್ ಅನ್ನು ನೋಡಬಹುದು.
  2. ಸಿಸ್ಟಮ್ ನಿರ್ವಹಣೆ. ಫರ್ಮ್‌ವೇರ್ ಅಪ್‌ಡೇಟ್, ಸೇವಾ ಸ್ಕ್ರಿಪ್ಟ್ ಅಪ್‌ಗ್ರೇಡ್.
  3. ಸಮತೋಲನ ಕಾಯಿದೆ. ಇದನ್ನು "ವಿಕೃತಿ" ಎಂದು ಕರೆಯಬಹುದು, ಆದರೆ "ಸಮತೋಲನ" ಎಂಬ ಪರಿಕಲ್ಪನೆಯನ್ನು ನಾನು ಉಲ್ಲೇಖಿಸುತ್ತೇನೆ, "ಅಸ್ಥಿರ ದೇಹದ ಸ್ಥಾನದಲ್ಲಿ ಸಮತೋಲನವನ್ನು ಕಾಪಾಡಿಕೊಳ್ಳಲು ಸರ್ಕಸ್ ಪ್ರದರ್ಶಕನ ಸಾಮರ್ಥ್ಯ" - ಉತ್ತಮವಾಗಿ ಹೊಂದಿಕೊಳ್ಳುತ್ತದೆ. ಗ್ರಾಹಕರ ಸೀಮಿತ ಬಜೆಟ್‌ನಿಂದಾಗಿ ಇಂತಹ ಸಂದರ್ಭಗಳು ಉದ್ಭವಿಸುತ್ತವೆ. ಕೆಳಗೆ ನಾನು ಒಂದೆರಡು ಉದಾಹರಣೆಗಳನ್ನು ನೀಡಿದ್ದೇನೆ, ಆದರೆ ... ಅವು ಕಥೆಯ ವಿಷಯಕ್ಕೆ ನೇರವಾಗಿ ಸಂಬಂಧಿಸಿಲ್ಲ, ನಾನು ಅವುಗಳನ್ನು ಟಿಪ್ಪಣಿಗಳಲ್ಲಿ ಹಾಕಿದ್ದೇನೆ

Wi-Fi ಮೇಲ್ವಿಚಾರಣೆಕಳೆದ ಐದು ವರ್ಷಗಳಿಂದ ಫ್ಯಾಶನ್ ವಿಷಯ, ಮುಖ್ಯವಾಗಿ ಫೆಡರಲ್ ಚಿಲ್ಲರೆ ಸರಪಳಿಗಳಲ್ಲಿ. ನೀವು ವ್ಯಾಪಾರದ ಮಹಡಿಗಳಲ್ಲಿ ನಿಧಾನವಾಗಿ ವಿಹರಿಸುತ್ತಿದ್ದೀರಿ, ಮತ್ತು Wi-Fi ಆನ್ ಮಾಡಿರುವ ನಿಮ್ಮ ಮೊಬೈಲ್ ಫೋನ್, ನೆಟ್‌ವರ್ಕ್‌ನ ಕೆಲವು ಥ್ರೆಡ್‌ಗಳಿಗೆ "ಅಂಟಿಕೊಳ್ಳುವ" ಪ್ರಯತ್ನದಲ್ಲಿ, ನಿಯಮಿತವಾಗಿ ಪ್ರೋಬ್ ವಿನಂತಿ ಪ್ಯಾಕೆಟ್‌ಗಳನ್ನು ಕಳುಹಿಸುತ್ತದೆ, ಅದನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡಲು ವಿಶ್ಲೇಷಿಸಬಹುದು ನೀವು: ನೀವು ಈ ಅಂಗಡಿಗೆ ಎಷ್ಟು ಬಾರಿ ಬರುತ್ತೀರಿ, ಯಾವ ಕಾರಣಗಳಿಗಾಗಿ? ನೀವು ಪಥಗಳಲ್ಲಿ ನಡೆಯುತ್ತೀರಿ ಮತ್ತು ಹೀಗೆ. ನಂತರ ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ, ವಿಶ್ಲೇಷಿಸಲಾಗುತ್ತದೆ, ಶಾಖ ನಕ್ಷೆಗಳನ್ನು ಎಳೆಯಲಾಗುತ್ತದೆ ಮತ್ತು ನಿರ್ವಾಹಕರು ಅಂತಹ ಚಿತ್ರಗಳಿಗಾಗಿ ನಿರ್ವಹಣೆ ಅಥವಾ ಹೂಡಿಕೆದಾರರಿಂದ ಹಣವನ್ನು "ಸುಲಿಗೆ" ಮಾಡುತ್ತಾರೆ. ಸರಿ, ಸದ್ಯಕ್ಕೆ .... "ಹಣವಿಲ್ಲ, ಆದರೆ ನೀವು ಹಿಡಿದುಕೊಳ್ಳಿ ...", ಮತ್ತು ಫಲಿತಾಂಶವನ್ನು (ನೈಜ) ಈಗಾಗಲೇ ತೋರಿಸಬೇಕಾಗಿದೆ, ಉತ್ತಮ ಹಳೆಯ ಹಾಡು ಪ್ರಾರಂಭವಾಗುತ್ತದೆ: "ಹೌದು, ಹೌದು, ನಂತರ ನಾವು ಖಂಡಿತವಾಗಿ ಸಿಸ್ ಮತ್ತು ನಿಮಗೆ ಬೇಕಾದ ಎಲ್ಲವನ್ನೂ ಸ್ಥಾಪಿಸುತ್ತದೆ, ಆದರೆ ಈಗ ನಾವು ಗ್ರಾಹಕರಿಗೆ ಫಲಿತಾಂಶವನ್ನು ತೋರಿಸಬೇಕಾಗಿದೆ! ಅಂದಹಾಗೆ, ವೈ-ಫೈ ಮೂಲಕ ನಮ್ಮ ಸಾಧನವನ್ನು ಅವರ ಹಾಟ್‌ಸ್ಪಾಟ್‌ಗೆ ಸಂಪರ್ಕಿಸಲು ಗ್ರಾಹಕರು ನಮಗೆ ಅನುಮತಿಸಿದ್ದಾರೆ ಎಂದು ಹೇಳಲು ನಾವು ಮರೆತಿದ್ದೇವೆ, ಆದರೆ ಸಾಮಾನ್ಯ ಆಧಾರದ ಮೇಲೆ, ನಾವು ಅತಿಥಿ ಕ್ಲೈಂಟ್‌ಗಳಂತೆ. ಆದ್ದರಿಂದ ನಾವು ಬ್ಯಾಲೆನ್ಸಿಂಗ್ ರೂಟರ್‌ಗಳನ್ನು ಮಾಡಬೇಕಾಗಿದೆ - ಹಲವಾರು ವೈಫೈ ಸಬ್‌ಇಂಟರ್‌ಫೇಸ್‌ಗಳನ್ನು ಬೆಳೆಸಲಾಗುತ್ತದೆ, ಅವುಗಳಲ್ಲಿ ಒಂದು ಹಾಟ್‌ಸ್ಪಾಟ್‌ಗೆ ಅಂಟಿಕೊಳ್ಳುತ್ತದೆ, ಮತ್ತು ಎರಡನೆಯದು ಪರಿಸರವನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡುತ್ತದೆ, ಉದ್ರಿಕ್ತವಾಗಿ tcpdump ಫಲಿತಾಂಶವನ್ನು ಸ್ವತಃ ಅಪ್‌ಲೋಡ್ ಮಾಡುತ್ತದೆ, ನಂತರ ಫೈಲ್‌ನ ವಿಷಯಗಳನ್ನು ಆರ್ಕೈವ್‌ಗೆ ಪ್ಯಾಕ್ ಮಾಡುತ್ತದೆ ಮತ್ತು ಅಪಾಯಗಳು "ಅತಿಯಾಗಿ ತಿನ್ನುವುದರಿಂದ" ಸಾಯುವುದು FTP ಸರ್ವರ್‌ನಲ್ಲಿನ ವಿಷಯಗಳನ್ನು ಹೊರಹಾಕಲು ಪ್ರಯತ್ನಿಸುತ್ತದೆ. ಬ್ಯಾಲೆನ್ಸಿಂಗ್ ರೂಟರ್ ಆಗಾಗ್ಗೆ "ಒಡೆಯುತ್ತದೆ" ಮತ್ತು ಹೇಗಾದರೂ ರಿಮೋಟ್ ಆಗಿ "ಪುನರುಜ್ಜೀವನಗೊಳಿಸಬೇಕು" ಎಂದು ಆಶ್ಚರ್ಯವೇನಿಲ್ಲ.

ತ್ರಿಜ್ಯಗ್ರಾಹಕರಿಂದ ಈ ರೀತಿಯ ಹೇಳಿಕೆಯೊಂದಿಗೆ ಇಲ್ಲಿ ಪರಿಸ್ಥಿತಿಯನ್ನು ವಿವರಿಸಲು ಸುಲಭವಾಗಿದೆ: "ನಾವು ಚಾನೆಲ್‌ಗಳ ಮೂಲಕ ಮುಂಚಿತವಾಗಿ ತಿಳಿದಿಲ್ಲದ ಸಾಧನಗಳಲ್ಲಿ ಕೆಲಸ ಮಾಡುವ ಹಾಟ್‌ಸ್ಪಾಟ್‌ಗಳ ವಿಕೇಂದ್ರೀಕೃತ ನೆಟ್‌ವರ್ಕ್ ಅನ್ನು ಬಯಸುತ್ತೇವೆ, ಆದರೆ ಯಾವುದು ನಮಗೆ ಇನ್ನೂ ತಿಳಿದಿಲ್ಲ. ಓಹ್, ನಾವು ಹೇಳಲು ಮರೆತಿದ್ದೇವೆ, ನಾವು ಕ್ಲೈಂಟ್‌ಗಳಿಗೆ ಜಾಹೀರಾತನ್ನು ತೋರಿಸಲು ಮಾತ್ರವಲ್ಲ, ಹಾಟ್‌ಸ್ಪಾಟ್ ಅನ್ನು ಸ್ಥಾಪಿಸಿದ ಸ್ಥಳದ ಸುತ್ತಲೂ ಎಲ್ಲವನ್ನೂ ವಿಶ್ಲೇಷಿಸಲು ಬಯಸುತ್ತೇವೆ. ಇಲ್ಲ, ಏಕೆ ಎಂದು ನಮಗೆ ಇನ್ನೂ ತಿಳಿದಿಲ್ಲ, ಆದರೆ ನಾವು ಅದನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುತ್ತೇವೆ, ಅನುಮಾನಿಸಬೇಡಿ, ನಾವು ಈ ಆಲೋಚನೆಯೊಂದಿಗೆ ಬರಲು ಸಾಧ್ಯವಾಯಿತು.

ಮತ್ತು ಹಿಂದೆ ತಿಳಿದಿಲ್ಲದ ಸಾಕಷ್ಟು ಸಂದರ್ಭಗಳಿಂದಾಗಿ, ನಾವು ಐಪಿ: ಪೋರ್ಟ್ ಮೂಲಕ ನೇರವಾಗಿ ರೂಟರ್‌ಗೆ ಸಂಪರ್ಕಿಸಲು ಸಾಧ್ಯವಾಗದಿದ್ದಾಗ, ಪ್ರಮಾಣಿತವಲ್ಲದ ಪರಿಸ್ಥಿತಿಗಳಲ್ಲಿ ನಿಯಂತ್ರಣವನ್ನು ಕೈಗೊಳ್ಳಬೇಕು ಮತ್ತು ಅದರಿಂದ ಚಟುವಟಿಕೆಗಾಗಿ ಕಾಯಲು ಒತ್ತಾಯಿಸಲಾಗುತ್ತದೆ ಎಂಬುದನ್ನು ನಾವು ಮರೆಯಬಾರದು. ನಾವು ನಮ್ಮನ್ನು ಅಮೂರ್ತಗೊಳಿಸಿದರೆ, ಸರ್ವರ್ ಮತ್ತು ರೂಟರ್ ನಡುವಿನ ಸಂಭಾಷಣೆಯನ್ನು ಈ ರೀತಿ ಪ್ರತಿನಿಧಿಸಬಹುದು:

  • ರೂಟರ್: ನಮಸ್ಕಾರ. ನಾನು ಅಂತಹ ಮತ್ತು ಅಂತಹ ರೂಟರ್, ನನಗೆ ಯಾವುದೇ ಕಾರ್ಯಗಳಿವೆಯೇ?
  • ಸರ್ವರ್: ರೂಟರ್ ಅಂತಹ ಮತ್ತು ಅಂತಹ, ನಾನು ನಿಮ್ಮನ್ನು ನೋಂದಾಯಿಸಿದ್ದೇನೆ, ನೀವು ಜೀವಂತವಾಗಿರುವಿರಿ. ಸವಾಲು ಇಲ್ಲಿದೆ: ifconfig ಆಜ್ಞೆಯ ಫಲಿತಾಂಶವನ್ನು ನನಗೆ ತೋರಿಸುವುದೇ?
  • ರೂಟರ್: ನಮಸ್ಕಾರ. ನಾನು ಅಂತಹ ರೂಟರ್ ಆಗಿದ್ದೇನೆ, ಕಳೆದ ಬಾರಿ ನೀವು ifconfig ಫಲಿತಾಂಶವನ್ನು ತೋರಿಸಲು ಕೇಳಿದ್ದೀರಿ, ಅದು ಇಲ್ಲಿದೆ. ನನಗೆ ಯಾವುದೇ ಕಾರ್ಯಗಳಿವೆಯೇ?
  • ಸರ್ವರ್: ರೂಟರ್ ಅಂತಹ ಮತ್ತು ಅಂತಹ, ನಾನು ನಿಮ್ಮನ್ನು ನೋಂದಾಯಿಸಿದ್ದೇನೆ, ನೀವು ಜೀವಂತವಾಗಿರುವಿರಿ. ನಿಮಗಾಗಿ ಯಾವುದೇ ಕಾರ್ಯಗಳಿಲ್ಲ.

ಅತ್ಯಂತ ಆಸಕ್ತಿದಾಯಕ ಪ್ರಶ್ನೆ: ರಿಮೋಟ್ ರೂಟರ್ ನಿರ್ದಿಷ್ಟ ಪ್ರಮಾಣದ ಮಾಹಿತಿಯನ್ನು ಹೇಗೆ ಕಳುಹಿಸಬಹುದು? ಕೊನೆಯ ಭಾಗದಲ್ಲಿ, ಸೀಮಿತ ಸಂಪನ್ಮೂಲಗಳ ಕಾರಣದಿಂದಾಗಿ, ರೂಟರ್ ಕೇವಲ "ಸ್ಟ್ರಿಪ್ಡ್-ಡೌನ್" wget ಅನ್ನು ಹೊಂದಿದೆ ಎಂದು ನಾನು ವಿವರಿಸಿದ್ದೇನೆ, ಅದು GET ಮೂಲಕ ಮಾತ್ರ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಮತ್ತು ಬೇರೆ ಏನೂ ಇಲ್ಲ; FTP ಕ್ಲೈಂಟ್ ಅಥವಾ ಕರ್ಲ್ ಇಲ್ಲ. ಹೆಚ್ಚು ನಿಖರವಾಗಿ, ಚಿತ್ರದ ಜೋಡಣೆಯ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಲೆಕ್ಕಿಸದೆಯೇ ನಮಗೆ ಸಾರ್ವತ್ರಿಕ ವಿಧಾನದ ಅಗತ್ಯವಿದೆ. ನಾನು wget ಅನ್ನು ಬಳಸುವುದರಲ್ಲಿ ನೆಲೆಸಿದ್ದೇನೆ. ಹೆಚ್ಚು ನಿಖರವಾಗಿ, ನಾನು ಹೇಗೆ "ನಿಲ್ಲಿಸಿದ್ದೇನೆ" - ನನಗೆ ಯಾವುದೇ ಆಯ್ಕೆ ಇರಲಿಲ್ಲ :)

ಕೇವಲ ಹಕ್ಕು ನಿರಾಕರಣೆನನ್ನ ನಿರ್ವಹಣಾ ಪರಿಹಾರವು ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿದೆ, ತುಂಬಾ ಸೀಮಿತವಾಗಿಲ್ಲ, ಮತ್ತು ಇದು ನನ್ನ ಹೆಚ್ಚಿನ ಗ್ರಾಹಕರಿಗೆ ಹೊಂದಿದ್ದರೂ ಸಹ ಅದು ವಕ್ರವಾಗಿದೆ ಎಂದು ನನಗೆ ಖಾತ್ರಿಯಿದೆ. ನೀವು ಅದನ್ನು ಬುದ್ಧಿವಂತಿಕೆಯಿಂದ ಹೇಗೆ ಮಾಡಬಹುದು - ಪೋರ್ಟ್ 80 ಮೂಲಕ POST ಬೈನರಿ ಡೇಟಾವನ್ನು ಕಳುಹಿಸುವ ಸಣ್ಣ ಉಪಯುಕ್ತತೆಯನ್ನು ಬರೆಯಿರಿ. ರೂಟರ್ ಫರ್ಮ್‌ವೇರ್‌ನಲ್ಲಿ ಅದನ್ನು (ಉಪಯುಕ್ತತೆ) ಸೇರಿಸಿ ಮತ್ತು ಬ್ಯಾಷ್ ಬಳಸಿ ಅದನ್ನು ಪ್ರವೇಶಿಸಿ. ಆದರೆ ವಾಸ್ತವವೆಂದರೆ: ಎ) ನಾವು ತ್ವರಿತವಾಗಿ ಮಾಡಬೇಕಾಗಿದೆ ಬಿ) ನಾವು ಬಹುಶಃ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ “ಮಾರ್ಗದರ್ಶಕಗಳ ಮೃಗಾಲಯ” ದಲ್ಲಿ ಎಲ್ಲವನ್ನೂ ಮಾಡಬೇಕಾಗಿದೆ ಸಿ) “ಯಾವುದೇ ಹಾನಿ ಮಾಡಬೇಡಿ!” - ರೂಟರ್ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿದ್ದರೆ ಮತ್ತು ಇತರ ಕಾರ್ಯಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತಿದ್ದರೆ, ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಕಾರ್ಯನಿರ್ವಹಣೆಯ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರದ ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡಲು ಪ್ರಯತ್ನಿಸಿ.

ಅನುಷ್ಠಾನಕ್ಕೆ ಹೋಗೋಣ. ನಿಮ್ಮ ಗ್ರಾಹಕರು "ಮೌಸ್ ಕ್ಲಿಕ್" ಮೂಲಕ ಸುಲಭವಾಗಿ ಮತ್ತು ಸ್ವಾಭಾವಿಕವಾಗಿ zabbix ನಿಂದ ರೂಟರ್ ಅನ್ನು ರೀಬೂಟ್ ಮಾಡಲು ಬಯಸುತ್ತಾರೆ ಎಂದು ಹೇಳೋಣ. ಇಂದು ನಾವು Zabbix ನೊಂದಿಗೆ ಅನುಷ್ಠಾನವನ್ನು ವಿವರಿಸಲು ಪ್ರಾರಂಭಿಸುತ್ತೇವೆ.
“ಆಡಳಿತ” -> “ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳು” ಮೆನುವಿನಲ್ಲಿ, ಹೊಸ ಸ್ಕ್ರಿಪ್ಟ್ ಸೇರಿಸಿ. ನಾವು ಅದನ್ನು "ರೀಬೂಟ್" ಎಂದು ಕರೆಯುತ್ತೇವೆ, "php /usr/share/zabbix/reboot.php {HOST.HOST}" ಅನ್ನು ಆಜ್ಞೆಯಂತೆ ನಮೂದಿಸಿ

ಪೋರ್ಟ್ 80 ಮೂಲಕ Linux/OpenWrt/Lede ಆಧಾರಿತ ಸಾಧನಗಳ ದೂರಸ್ಥ ಮೇಲ್ವಿಚಾರಣೆ ಮತ್ತು ನಿರ್ವಹಣೆ, ಮುಂದುವರೆಯಿತು

ಮುಂದೆ: ಮೆನು "ಮೇಲ್ವಿಚಾರಣೆ" -> "ಇತ್ತೀಚಿನ ಡೇಟಾ" -> "ಅಪೇಕ್ಷಿತ ನೆಟ್‌ವರ್ಕ್ ನೋಡ್‌ನಲ್ಲಿ ಬಲ ಕ್ಲಿಕ್ ಮಾಡಿ." ಸ್ಕ್ರಿಪ್ಟ್ ಸೇರಿಸಿದ ನಂತರ ಮೆನು ಈ ರೀತಿ ಕಾಣುತ್ತದೆ.

ಪೋರ್ಟ್ 80 ಮೂಲಕ Linux/OpenWrt/Lede ಆಧಾರಿತ ಸಾಧನಗಳ ದೂರಸ್ಥ ಮೇಲ್ವಿಚಾರಣೆ ಮತ್ತು ನಿರ್ವಹಣೆ, ಮುಂದುವರೆಯಿತು
ಅದರಂತೆ, ನಾವು reboot.php ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು /usr/share/zabbix ಡೈರೆಕ್ಟರಿಯಲ್ಲಿ ಇರಿಸುತ್ತೇವೆ (ನಿಮ್ಮದು ವಿಭಿನ್ನವಾಗಿರಬಹುದು, ನಾನು zabbixa ರೂಟ್ ಡೈರೆಕ್ಟರಿಯನ್ನು ಬಳಸುತ್ತೇನೆ).

ಸುರಕ್ಷತೆ ಹಕ್ಕು ನಿರಾಕರಣೆಸ್ಕ್ರಿಪ್ಟ್‌ನಲ್ಲಿ ವಿವರಣೆಯನ್ನು ಸ್ಪಷ್ಟಪಡಿಸಲು, ನಾನು ರೂಟರ್ ಐಡಿಯನ್ನು ಮಾತ್ರ ಬಳಸುತ್ತೇನೆ, ಆದರೆ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಬಳಸುವುದಿಲ್ಲ. ಉತ್ಪಾದನಾ ಆವೃತ್ತಿಯಲ್ಲಿ ಇದನ್ನು ಮಾಡಲು ಶಿಫಾರಸು ಮಾಡುವುದಿಲ್ಲ! ನಾನು ಇದನ್ನು ಏಕೆ ಮಾಡಿದ್ದೇನೆ: ಏಕೆಂದರೆ ರೂಟರ್‌ಗಳಿಗೆ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಎಲ್ಲಿ ಸಂಗ್ರಹಿಸಬೇಕು ಎಂಬುದು ದೊಡ್ಡ ಪ್ರಶ್ನೆಯಾಗಿದೆ? "ದಾಸ್ತಾನು ಡೇಟಾ" ನಲ್ಲಿ ಸ್ವತಃ zabbixe? ವಿವಾದಾತ್ಮಕ ಅಭ್ಯಾಸ. ಪರ್ಯಾಯವಾಗಿ: reboot.php ಫೈಲ್‌ಗೆ ಬಾಹ್ಯ ಪ್ರವೇಶವನ್ನು ನಿರ್ಬಂಧಿಸಿ

ಫೈಲ್ reboot.php

<?php
	// присваиваем параметры с консоли переменным
	$user = $argv[1];
	// ВНИМАНИЕ. Вот здесь в целях безопасности все-таки прописывать пароль устройства! Но для демонстрации мы будем обращаться к базе данных без использования пароля. 
	//$password = $argv[2];
		
	$conn=new mysqli("localhost","db_user","db_password","db_name");
	if (mysqli_connect_errno()) {
		exit();
	}
	$conn->set_charset("utf8");
			
	// "Отправляем" команду reboot за счет изменения поля task таблицы users. В поле task можно отправлять любую команду.
	$sql_users=$conn->prepare("UPDATE users SET task='reboot' WHERE id=? AND status='active';");
	$sql_users->bind_param('s', $user);
	$sql_users->execute();
	$sql_users->close();
?>

ಅಷ್ಟೇ. ಪ್ರಶ್ನೆಯು ತೆರೆದಿರುತ್ತದೆ: "ಸಾಧನದಿಂದ ಆಜ್ಞೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವ ಫಲಿತಾಂಶವನ್ನು ಹೇಗೆ ಪಡೆಯುವುದು." ifconfig ಆಜ್ಞೆಯನ್ನು ಉದಾಹರಣೆಯಾಗಿ ಬಳಸಿಕೊಂಡು ಕಾರ್ಯವನ್ನು ನೋಡೋಣ. ಈ ಆಜ್ಞೆಯನ್ನು ಸಾಧನಕ್ಕೆ ಕಳುಹಿಸಬಹುದು:

message=`ifconfig`; wget "http://xn--80abgfbdwanb2akugdrd3a2e5gsbj.xn--p1ai/a.php?u=user&p=password!&m=$message" -O /tmp/out.txt

, ಅಲ್ಲಿ:
ಸಂದೇಶ=`ifconfig` — ನಾವು ifconfig ಆದೇಶದ ಔಟ್‌ಪುಟ್‌ನ ಫಲಿತಾಂಶವನ್ನು $message ವೇರಿಯೇಬಲ್‌ಗೆ ನಿಯೋಜಿಸುತ್ತೇವೆ
wget"xn--80abgfbdwanb2akugdrd3a2e5gsbj.xn--p1ai/a.php - ರೂಟರ್‌ಗಳನ್ನು ನೋಂದಾಯಿಸುವ ಮತ್ತು ಅವುಗಳಿಂದ ಸಂದೇಶಗಳನ್ನು ಸ್ವೀಕರಿಸುವ ನಮ್ಮ a.php ಸ್ಕ್ರಿಪ್ಟ್
u=user&p=password!&m=$message — ರುಜುವಾತುಗಳು ಮತ್ತು ವಿನಂತಿಯ ವೇರಿಯಬಲ್ ಮೌಲ್ಯ m — $ ಸಂದೇಶ ವೇರಿಯಬಲ್‌ನ ವಿಷಯಗಳನ್ನು ನಿಯೋಜಿಸುತ್ತದೆ
-O /tmp/out.txt — ಈ ಸಂದರ್ಭದಲ್ಲಿ ನಮಗೆ /tmp/out.txt ಫೈಲ್‌ಗೆ ಔಟ್‌ಪುಟ್ ಅಗತ್ಯವಿಲ್ಲ, ಆದರೆ ಈ ನಿಯತಾಂಕವನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸದಿದ್ದರೆ, wget ಕಾರ್ಯನಿರ್ವಹಿಸುವುದಿಲ್ಲ

ಇದು ಏಕೆ ಕೆಲಸ ಮಾಡುವುದಿಲ್ಲ?ಏಕೆಂದರೆ ಇದು ಸಂಭಾವ್ಯ ಭದ್ರತಾ ರಂಧ್ರವಾಗಿದೆ. ಸಂಭವಿಸಬಹುದಾದ ಅತ್ಯಂತ ನಿರುಪದ್ರವ ದೋಷವೆಂದರೆ, ಉದಾಹರಣೆಗೆ, ನಿಮ್ಮ ಆಜ್ಞೆಯ ಔಟ್‌ಪುಟ್‌ನಲ್ಲಿ “&” ಅಕ್ಷರವಿದ್ದರೆ. ಆದ್ದರಿಂದ, ರೂಟರ್‌ಗಳಿಂದ ಕಳುಹಿಸಲಾದ ಎಲ್ಲವನ್ನೂ ಮತ್ತು ಸರ್ವರ್‌ಗೆ ಬರುವ ಎಲ್ಲವನ್ನೂ ಫಿಲ್ಟರ್ ಮಾಡುವುದು ಅವಶ್ಯಕ. ಹೌದು, ನಾನು ನಾಚಿಕೆಪಡುತ್ತೇನೆ, ನಿಜವಾಗಿಯೂ. ನನ್ನ ರಕ್ಷಣೆಯಲ್ಲಿ, ಪೂರ್ವ-ನಿರ್ಧರಿತ ಫರ್ಮ್‌ವೇರ್ ಮತ್ತು ಸಂವಹನ ಚಾನೆಲ್‌ಗಳೊಂದಿಗೆ ರೂಟರ್‌ಗಳನ್ನು ಹೇಗೆ ನಿರ್ವಹಿಸುವುದು ಎಂಬುದರ ಕುರಿತು ಸಂಪೂರ್ಣ ಲೇಖನವನ್ನು ಮೀಸಲಿಡಲಾಗಿದೆ ಎಂದು ನಾನು ಬರೆಯಬಹುದು.

ಒಳ್ಳೆಯದು, ಭವಿಷ್ಯಕ್ಕಾಗಿ ಪ್ರಾರಂಭ: ಸರ್ವರ್‌ಗೆ ಬರುವ ಫಲಿತಾಂಶಗಳನ್ನು (ಉದಾಹರಣೆಗೆ, ಆಜ್ಞೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವ ಫಲಿತಾಂಶ) ಪ್ರತಿಬಿಂಬಿಸಲು ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಝಬ್ಬಿಕ್ಸ್ ಪರಿಕರಗಳನ್ನು ಹೇಗೆ ಬಳಸುವುದು ಎಂದು ನಾನು ಇನ್ನೂ ಲೆಕ್ಕಾಚಾರ ಮಾಡಿಲ್ಲ.

ಎಲ್ಲಾ ಮೂಲಗಳನ್ನು Git ರೆಪೊಸಿಟರಿಯಿಂದ ಇಲ್ಲಿ ಪಡೆಯಬಹುದು ಎಂದು ನಾನು ನಿಮಗೆ ನೆನಪಿಸುತ್ತೇನೆ: github.com/BazDen/iotnet.online.git

ಮೂಲ: www.habr.com

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ