የርቀት ክትትል እና የሊኑክስ/OpenWrt/Lede መሳሪያዎችን በፖርት 80 በኩል መቆጣጠር ቀጥሏል።

ይህ የጽሁፉ የመጨረሻ ክፍል ነው፣ እዚህ ጅምር ነው። habr.com/am/post/445568
ለመጨረሻ ጊዜ የመሳሪያ ክትትልን እንዴት እንደተገበርኩ ጽፌ ነበር, አሁን ስለ አስተዳደር እንነጋገራለን. በደንበኛው በኩል ከ "techies" ጋር በሚደረጉ ውይይቶች ውስጥ እንደነዚህ ያሉ ትናንሽ መሳሪያዎች (ዝቅተኛ ማህደረ ትውስታ ሀብቶች እና አፈፃፀም ያላቸው) ችሎታዎች ውስን ግንዛቤን አግኝቻለሁ ፣ ብዙዎች “እኛ የሚያስፈልገን ከፍተኛው ዳግም ማስነሳት መላክ ነው ብለው ያምናሉ። ለበለጠ ከባድ ነገር - ብርጌድ እንልካለን"
ነገር ግን ልምምድ እንደሚያሳየው ይህ ሙሉ በሙሉ እውነት አይደለም. የተለመዱ የተለመዱ ተግባራት ትንሽ ዝርዝር ይኸውና:

  1. የአውታረ መረብ ምርመራዎች እና መላ ፍለጋ. ከራውተርዎ የኤተርኔት ወደብ ጀርባ፣ ሌላ የብረት ቁራጭ አብዛኛውን ጊዜ "ይኖራል"፣ እሱም የራሱ የውስጥ አይፒ አድራሻ አለው። አንዳንድ ጊዜ, "ፒንግ" ሊሆን ይችላል (መሆን አለበት). ወይም መሿለኪያ አስተዳደር - ዋሻው በድንገት በ 3 ጂ ሞደም ውስጥ በሚሠራው ራውተር ላይ ካልተነሳ ፣ ግን ራውተሩን እናያለን።
  2. የስርዓት አገልግሎት. የጽኑዌር ማሻሻያ፣ የአገልግሎት ስክሪፕቶች ማሻሻል።
  3. ሚዛናዊነት። ይህ "ጠማማዎች" ተብሎ ሊጠራ ይችላል, ነገር ግን "የጠባብ መራመጃ" ጽንሰ-ሐሳብ እኔ እጠቅሳለሁ. "የሰርከስ ተዋናዮች ባልተረጋጋ የሰውነት አቀማመጥ ውስጥ ሚዛንን የመጠበቅ ችሎታ" - በተሻለ ሁኔታ ይጣጣማል. እንደዚህ ያሉ ሁኔታዎች የሚከሰቱት በደንበኛው ውስን በጀት ምክንያት ነው. ከዚህ በታች ሁለት ምሳሌዎችን ሰጥቻለሁ, ግን ከዚያን ጊዜ ጀምሮ እነሱ ከታሪኩ ርዕስ ጋር በቀጥታ የተገናኙ አይደሉም, በማስታወሻዎች ውስጥ አስቀምጣቸዋለሁ

የ wifi ክትትልበዋነኛነት በፌዴራል የችርቻሮ ሰንሰለቶች መካከል ላለፉት አምስት ዓመታት ፋሽን የሆነ ርዕስ። በንግዱ ፎቆች ላይ ቀስ ብለው እየተራመዱ ነው፣ እና ሞባይል ስልክዎ ዋይ ፋይ በርቶ አንዳንድ የኔትወርኩን ክር “ለመጣበቅ” በመሞከር ለእርስዎ ለማስላት ሊተነተኑ የሚችሉ የፕሮቤ መጠየቂያ እሽጎችን በየጊዜው ይልካል። : ወደዚህ ሱቅ ምን ያህል ጊዜ ትመጣለህ፣ በምን አይነት ዱካዎች እንደምትሄድ እና የመሳሰሉት። በተጨማሪም መረጃው ይሰበሰባል, ይመረምራል, የሙቀት ካርታዎች ይሳሉ እና አስተዳዳሪዎች ከአስተዳደሩ ወይም ከባለሀብቶች ለእንደዚህ ዓይነቶቹ ስዕሎች ገንዘብ "ያወጡታል". እስከዚያው ድረስ .... “ገንዘብ የለም ፣ ግን ያዝ…” ፣ እና ውጤቱ (እውነተኛ) ቀድሞውኑ መታየት አለበት ፣ የድሮው ጥሩ ዘፈን “አዎ ፣ አዎ ፣ ከዚያ በእርግጥ ciscos እናቀርባለን የፈለጉትን ሁሉ፣ አሁን ግን ውጤቱን ለደንበኛው ማሳየት አለብን! በነገራችን ላይ ደንበኛው የኛን መሳሪያ ወደ መገናኛ ቦታው በዋይ ፋይ እንዲገናኝ ፈቅዶለታል ነገር ግን በአጠቃላይ የእንግዳ ደንበኞች እንደሆንን ማለታቸውን ረስተውታል። እና አሁን ሚዛናዊ ራውተሮችን መሥራት አለብዎት - ብዙ የ WiFi ንዑስ በይነገጽ ይነሳሉ ፣ አንደኛው ወደ መገናኛ ቦታው ላይ ይጣበቃል ፣ ሁለተኛው ደግሞ አካባቢውን ይከታተላል ፣ የ tcpdumpን ውጤት በራሱ ያራግፋል ፣ ከዚያ የፋይሉን ይዘቶች ወደ ማህደር ይጭናል እና ይዘቱን ወደ ftp አገልጋይ ለመትፋት በመሞከር "ከመጠን በላይ በመብላት" የመሞት አደጋዎች. ሚዛናዊነት ያለው ራውተር ብዙውን ጊዜ "ይሰብራል" እና በሆነ መንገድ ከርቀት "እንደገና መነቃቃት" ምንም አያስደንቅም.

ራዲዩስእንደዚህ ባለው የደንበኛው መግለጫ ሁኔታውን እዚህ መግለፅ ቀላል ነው- "ሞዴላቸው በማይታወቅባቸው መሳሪያዎች ላይ በቻናል በኩል የሚሰራ ያልተማከለ የመገናኛ ነጥብ ኔትወርክ እንፈልጋለን ነገር ግን እስካሁን የማናውቃቸው። ኦህ ፣ ማለትን ረሳን ፣ ማስታወቂያዎችን ለደንበኞች ለማሳየት ብቻ ሳይሆን በሆትስፖት መጫኛ ጣቢያ ዙሪያ ያሉትን ሁሉንም ነገሮች እንመረምራለን ። አይ ፣ ለምን እንደሆነ እስካሁን አናውቅም ፣ ግን እሱን እናመጣለን ፣ አያመንቱ ፣ ይህንን ሀሳብ ማምጣት ችለናል ። ”

እና ብዙ እርግጠኛ ባልሆኑ ሁኔታዎች ምክንያት ፣ አስተዳደር መደበኛ ባልሆኑ ሁኔታዎች ውስጥ መከናወን እንዳለበት መዘንጋት የለብንም ፣ በቀጥታ ከራውተሩ ጋር በአይፒ: ወደብ መገናኘት ካልቻልን እና እንቅስቃሴው እስኪመጣ ድረስ በቀላሉ ለመጠበቅ ስንገደድ። ነው። አብስትራክት ካደረግን በአገልጋዩ እና በራውተር መካከል ያለው ውይይት በዚህ መልኩ ሊወከል ይችላል።

  • ራውተር: ሀሎ. እኔ እንደዚህ አይነት እና እንደዚህ አይነት ራውተር ነኝ, ለእኔ ምንም አይነት ስራዎች አሉ?
  • አገልጋይ: እንደዚህ እና እንደዚህ አይነት ራውተር, በህይወት እንዳለህ አስመዘገብኩህ. ፈተናው ይኸውልህ፡ የ ifconfig ትዕዛዝ ውጤቱን አሳየኝ?
  • ራውተር: ሀሎ. እኔ እንደዚህ እና እንደዚህ አይነት ራውተር ነኝ ፣ ለመጨረሻ ጊዜ የ ifconfig ውጤቱን ለማሳየት ሲጠይቁ ፣ እዚህ አለ። ለእኔ ተግባራት አሉ?
  • አገልጋይ: እንደዚህ እና እንደዚህ አይነት ራውተር, በህይወት እንዳለህ አስመዘገብኩህ. ለእርስዎ ምንም ተግባራት የሉም.

በጣም የሚያስደንቀው ጥያቄ የርቀት ራውተር የተወሰነ መጠን ያለው መረጃ እንዴት መላክ ይችላል? በመጨረሻው ክፍል ራውተር በውስን ሀብቶች ምክንያት “የተራቆተ” wget ብቻ እንዳለው ገለጽኩለት፣ ይህም በGET ብቻ የሚሰራ እንጂ ሌላ ምንም የftp ደንበኛ ወይም ከርል የለም። ይበልጥ በትክክል ፣ የምስሉ ስብሰባ ባህሪዎች ምንም ቢሆኑም ፣ ሁለንተናዊ መንገድ እንፈልጋለን። wgetን በመጠቀም ተረጋጋሁ። ይበልጥ በትክክል ፣ እንዴት “እንደቆመ” - ምንም ምርጫ አልነበረኝም 🙂

ወዲያውኑ ቦታ ማስያዝየእኔ አስተዳደር መፍትሔ እየሰራ ነው, በጣም የተገደበ አይደለም, እና እርግጠኛ ነኝ አብዛኞቹ ደንበኞቼ የሚስማማ ቢሆንም ጠማማ ነው. እንዴት በጥበብ ማድረግ ይቻል ይሆን - በPOST በ80ኛው ወደብ በኩል ሁለትዮሽ ዳታ የሚልክ ትንሽ መገልገያ ይፃፉ። በራውተሩ ፈርምዌር ውስጥ (መገልገያ) ያካትቱ እና እሱን ለመድረስ bash ይጠቀሙ። እውነታው ግን: ሀ) በፍጥነት ያስፈልግዎታል ለ) ምናልባት አሁን ባለው "የራውተር ራውተሮች" ላይ ሁሉንም ነገር ማድረግ ያስፈልግዎታል ሐ) "ምንም ጉዳት አታድርጉ!" - ራውተር እየሰራ እና ሌሎች ተግባራትን የሚያከናውን ከሆነ, አሁን ያለውን ተግባር ላይ ተጽዕኖ የማያሳድሩ ለውጦችን ለማድረግ ይሞክሩ.

ወደ ትግበራው እንሂድ። እንበል ደንበኛህ ከ zabbix ራውተርን በቀላሉ እና በተፈጥሮ ዳግም ለማስነሳት በ"አይጥ ጠቅታ"። ዛሬ የአተገባበሩን መግለጫ በ zabbix እንጀምራለን.
በምናኑ ውስጥ "አስተዳደር" -> "ስክሪፕቶች" አዲስ ስክሪፕት ይጨምሩ። "Reboot" ብለን እንጠራዋለን፣ እንደ ትእዛዝ "php/usr/share/zabbix/reboot.php {HOST.HOST}" እንጽፋለን።

የርቀት ክትትል እና የሊኑክስ/OpenWrt/Lede መሳሪያዎችን በፖርት 80 በኩል መቆጣጠር ቀጥሏል።

ቀጣይ፡ ሜኑ "ክትትል" -> "የቅርብ ጊዜ ውሂብ" -> "የተፈለገውን አስተናጋጅ በቀኝ ጠቅ ያድርጉ።" ስክሪፕቱን ከጨመረ በኋላ ምናሌው እንደዚህ ይሆናል.

የርቀት ክትትል እና የሊኑክስ/OpenWrt/Lede መሳሪያዎችን በፖርት 80 በኩል መቆጣጠር ቀጥሏል።
በዚህ መሠረት የ reboot.php ስክሪፕት በ / usr/share/zabbix ማውጫ ውስጥ እናስቀምጣለን (ለእርስዎ የተለየ ሊሆን ይችላል, እኔ የ zabbixa root ማውጫ እጠቀማለሁ).

የደህንነት ማስተባበያበስክሪፕቱ ውስጥ ለማብራሪያ ግልጽነት እኔ የራውተሩን መታወቂያ ብቻ እጠቀማለሁ ፣ ግን የይለፍ ቃሉን አልጠቀምም። በስራው ስሪት ውስጥ, ይህ አይመከርም! ለምንድነው ይህን ያደረግኩት፡ ምክንያቱም ትልቁ ጥያቄ ለራውተሮች የይለፍ ቃሎችን የት እንደሚከማች ነው? በ 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 - የ$መልዕክት ተለዋዋጭ ይዘቶችን ይመድባል
- ኦ /tmp/out.txt - በዚህ ጉዳይ ላይ ወደ /tmp/out.txt ፋይል መውጣት አያስፈልገንም ፣ ግን ይህ ግቤት ካልተገለጸ wget አይሰራም።

ለምን ይህ ስህተት ይሰራልምክንያቱም እምቅ የደህንነት ጉድጓድ ነው. በጣም የማይጎዳው ስህተት ሊከሰት የሚችለው የትእዛዝዎ ውጤት ለምሳሌ "&" ምልክት ከያዘ ነው። ስለዚህ, ከ ራውተሮች የተላከውን ሁሉ እና ወደ አገልጋዩ የሚመጡትን ነገሮች በሙሉ ለማጣራት አስፈላጊ ነው. አዎ አፈርኩኝ በእውነት። በመከላከያዬ ፣ አጠቃላይ ጽሑፉ ራውተሮችን በማይገለጽ firmware ፣ ባልተገለጹ የግንኙነት ጣቢያዎች እንዴት ማስተዳደር እንደሚቻል ብቻ ነው መጻፍ የምችለው።

ደህና, የወደፊቱን ነክቻለሁ: መደበኛ የዛቢክስ መሳሪያዎችን በመጠቀም ወደ አገልጋዩ የሚመጡትን ውጤቶች (ለምሳሌ, የትዕዛዝ አፈፃፀም ውጤት) እንዴት እንደማንጸባረቅ እስካሁን አላሰብኩም.

ሁሉም ምንጮች ከ Git ማከማቻ ቦታ ሊወሰዱ እንደሚችሉ አስታውሳችኋለሁ፡- github.com/BazDen/iotnet.online.git

ምንጭ: hab.com

አስተያየት ያክሉ