Abojuto latọna jijin ati iṣakoso ti awọn ẹrọ orisun Linux / OpenWrt / Lede nipasẹ ibudo 80, tẹsiwaju

Eyi ni apakan ikẹhin ti nkan naa, eyi ni ibẹrẹ habr.com/en/post/445568
Ni akoko ikẹhin Mo kowe nipa bii MO ṣe ṣe imuse ibojuwo ẹrọ, ni bayi a yoo sọrọ nipa iṣakoso. Ninu awọn ijiroro pẹlu “awọn onimọ-ẹrọ” ni ẹgbẹ Onibara, Mo nigbagbogbo pade iwoye ti o lopin ti awọn agbara ti iru awọn ẹrọ kekere (pẹlu awọn orisun iranti kekere ati iṣẹ), ọpọlọpọ gbagbọ pe “julọ julọ ti a nilo ni lati firanṣẹ atunbere, fun nkan diẹ sii. pataki a yoo fi ẹgbẹ kan ranṣẹ”.
Ṣugbọn iṣe fihan pe eyi kii ṣe otitọ patapata. Eyi ni atokọ kekere ti awọn iṣẹ-ṣiṣe aṣoju ti o wọpọ:

  1. Awọn iwadii nẹtiwọki ati laasigbotitusita. Lẹhin ibudo ethernet ti olulana rẹ nigbagbogbo nkan elo hardware miiran ti o ni adiresi IP inu tirẹ. Nigba miiran, o le (yẹ) “ping” rẹ. Tabi iṣakoso oju eefin - ti oju eefin ko ba dide lojiji lori olulana ti n ṣiṣẹ nipasẹ modẹmu 3G, ṣugbọn a le rii olulana funrararẹ.
  2. Itọju eto. Imudojuiwọn famuwia, igbesoke iwe afọwọkọ iṣẹ.
  3. Iṣe iwọntunwọnsi. Eyi ni a le pe ni “iyipada”, ṣugbọn imọran ti “equilibrist” gẹgẹbi, Mo sọ, “Agbara ti oṣere Sakosi lati ṣetọju iwọntunwọnsi ni ipo ara ti ko duro” - ibaamu dara julọ. Iru awọn ipo bẹẹ dide nitori isuna opin ti alabara. Ni isalẹ Mo fun awọn apẹẹrẹ meji, ṣugbọn ... Wọn ko ni ibatan taara si akori ti itan naa, Mo fi wọn sinu awọn akọsilẹ

Wi-Fi ibojuwoKoko asiko fun ọdun marun to kọja, ni pataki laarin awọn ẹwọn soobu Federal. O n rin kiri ni isinmi nipasẹ awọn ilẹ-ilẹ iṣowo, ati pe foonu alagbeka rẹ pẹlu Wi-Fi ti wa ni titan, ni igbiyanju lati “di” si diẹ ninu o tẹle ara ti nẹtiwọọki, nigbagbogbo nfi awọn apo-iwe Ibeere Probe jade, eyiti o le ṣe itupalẹ lati le ṣe iṣiro fun iwọ: igba melo ni o wa si ile itaja yii, fun awọn idi wo? Lẹhinna a gba data naa, ṣe atupale, awọn maapu ooru ti ya, ati awọn alakoso “gba” owo lati iṣakoso tabi awọn oludokoowo fun iru awọn aworan. O dara, fun bayi .... "ko si owo, ṣugbọn o dimu ...", ati abajade (gidi) tẹlẹ nilo lati fi han, orin atijọ ti o dara bẹrẹ: "Bẹẹni, bẹẹni, lẹhinna dajudaju awa yoo fi sori ẹrọ cis ati ohun gbogbo ti o fẹ, ṣugbọn nisisiyi a nilo lati fi esi Onibara han! Nipa ọna, a gbagbe lati sọ pe Onibara gba wa laaye lati so ohun elo wa pọ si aaye ibi-itọju rẹ nipasẹ Wi-Fi, ṣugbọn ni ipilẹ gbogbogbo, gẹgẹ bi ẹni pe a jẹ alabara alejo. ” Ati pe nitorinaa a ni lati ṣe awọn onimọ-ọna iwọntunwọnsi - ọpọlọpọ awọn oju-ọna isale WiFi ni a gbe soke, ọkan ninu eyiti o faramọ ibi ti o gbona, ati pe keji ṣe abojuto agbegbe naa, ni ibinujẹ gbejade abajade tcpdump si ararẹ, lẹhinna ṣajọ awọn akoonu ti faili sinu ile-ipamọ ati awọn eewu. ti o ku lati “jẹunjẹ pupọju” gbiyanju lati tutọ awọn akoonu inu olupin FTP. Kii ṣe iyalẹnu pe olulana iwọntunwọnsi nigbagbogbo “fọ lulẹ” ati bakan ni lati jẹ “resuscitated” latọna jijin.

rediosiO rọrun lati ṣapejuwe ipo naa nibi pẹlu nkan bii alaye yii lati ọdọ alabara: “A fẹ nẹtiwọọki ipinfunni ti awọn aaye ti yoo ṣiṣẹ lori ohun elo ti a ko mọ awoṣe rẹ tẹlẹ, nipasẹ awọn ikanni, ṣugbọn awọn wo ni a ko mọ. Oh, a gbagbe lati sọ, a ko fẹ lati ṣafihan ipolowo nikan si awọn alabara, ṣugbọn tun ṣe itupalẹ ohun gbogbo ni ayika ipo nibiti a ti fi hotspot naa sori ẹrọ. Rara, a ko mọ idi ti sibẹsibẹ, ṣugbọn a yoo rii daju, maṣe ṣiyemeji rẹ, a ni anfani lati wa pẹlu imọran yii. ”

Ati pe a ko gbọdọ gbagbe pe nitori ọpọlọpọ awọn ipo aimọ tẹlẹ, iṣakoso gbọdọ ṣee ṣe ni awọn ipo ti kii ṣe deede, nigbati a ko le sopọ si olulana taara nipasẹ IP: ibudo ati pe o fi agbara mu lati duro de iṣẹ ṣiṣe lati ọdọ rẹ. Ti a ba ṣe arosọ ara wa, ibaraẹnisọrọ laarin olupin ati olulana le jẹ aṣoju bi eleyi:

  • Olulana: Pẹlẹ o. Emi ni iru ati iru olulana, ṣe eyikeyi awọn iṣẹ-ṣiṣe fun mi?
  • Olupin: olulana iru ati iru, Mo aami-o, ti o ba wa laaye. Eyi ni ipenija: fihan mi abajade aṣẹ ifconfig bi?
  • Olulana: Pẹlẹ o. Emi ni iru ati iru olulana, kẹhin akoko ti o beere lati fi awọn esi ti ifconfig, nibi o jẹ. Ṣe awọn iṣẹ-ṣiṣe eyikeyi wa fun mi?
  • Olupin: olulana iru ati iru, Mo aami-o, ti o ba wa laaye. Ko si awọn iṣẹ-ṣiṣe fun ọ.

Ibeere ti o nifẹ julọ: bawo ni olulana latọna jijin ṣe le fi iye alaye kan ranṣẹ? Ni apakan ti o kẹhin, Mo ṣapejuwe pe nitori awọn orisun to lopin, olulana ni “wget-silẹ” nikan, eyiti o ṣiṣẹ nipasẹ GET nikan ati nkan miiran; ko si alabara FTP tabi curl. Ni deede diẹ sii, a nilo ọna gbogbo agbaye, laibikita awọn ẹya ti apejọ aworan. Mo yanju lori lilo wget. Ni deede diẹ sii, bawo ni MO ṣe “duro” - Emi ko ni yiyan :)

O kan disclaimerOjutu iṣakoso mi n ṣiṣẹ, ko ni opin pupọ, ati pe Mo ni idaniloju pe o jẹ wiwọ, paapaa ti o baamu pupọ julọ awọn alabara mi. Bawo ni o ṣe le ṣe pẹlu ọgbọn - kọ ohun elo kekere kan ti o firanṣẹ data alakomeji POST nipasẹ ibudo 80. Fi sii (IwUlO) ninu famuwia olulana ki o wọle si ni lilo bash. Ṣugbọn otitọ ni pe: a) a nilo lati yarayara b) a ṣee ṣe lati ṣe ohun gbogbo lori “zoo ti awọn olulana” ti o wa tẹlẹ c) “maṣe ṣe ipalara!” - ti olulana ba n ṣiṣẹ ati ṣiṣe awọn iṣẹ-ṣiṣe miiran, gbiyanju lati ṣe awọn ayipada ti kii yoo ni ipa lori iṣẹ ti o wa tẹlẹ.

Jẹ ki a lọ si imuse. Jẹ ki a sọ pe alabara rẹ fẹ tun atunbere olulana lati zabbix ni irọrun ati nipa ti ara, pẹlu “tẹ ti Asin naa.” Loni a yoo bẹrẹ apejuwe imuse pẹlu Zabbix.
Ninu akojọ “Aṣakoso” -> “Awọn iwe afọwọkọ”, ṣafikun iwe afọwọkọ tuntun kan. A pe ni “Atunbere”, tẹ “php /usr/share/zabbix/reboot.php {HOST.HOST}” bi aṣẹ

Abojuto latọna jijin ati iṣakoso ti awọn ẹrọ orisun Linux / OpenWrt / Lede nipasẹ ibudo 80, tẹsiwaju

Nigbamii: Akojọ “Abojuto” -> “Data tuntun” -> “Tẹ-ọtun lori ipade nẹtiwọki ti o fẹ.” Eyi ni ohun ti akojọ aṣayan yoo dabi lẹhin fifi iwe afọwọkọ kun.

Abojuto latọna jijin ati iṣakoso ti awọn ẹrọ orisun Linux / OpenWrt / Lede nipasẹ ibudo 80, tẹsiwaju
Ni ibamu, a fi iwe afọwọkọ reboot.php sinu /usr/share/zabbix liana (tirẹ le yatọ, Mo lo ilana root zabbixa).

AlAIgBA AaboLati jẹ ki alaye ṣe alaye diẹ sii ninu iwe afọwọkọ, Mo lo id olulana nikan, ṣugbọn kii ṣe lo ọrọ igbaniwọle. Ko ṣe iṣeduro lati ṣe eyi ni ẹya iṣelọpọ! Kini idi ti MO ṣe eyi: nitori ibeere nla ni ibiti o ti fipamọ awọn ọrọ igbaniwọle fun awọn olulana? Ni zabbixe ara rẹ ni "data oja"? iwa ariyanjiyan. Ni omiiran: ṣe ihamọ iraye si ita si faili reboot.php funrararẹ

Faili 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();
?>

Gbogbo ẹ niyẹn. Ibeere naa wa ni sisi: “bawo ni a ṣe le gba abajade ti ṣiṣe pipaṣẹ lati ẹrọ naa.” Jẹ ki a wo iṣẹ naa nipa lilo aṣẹ ifconfig bi apẹẹrẹ. Aṣẹ yii le firanṣẹ si ẹrọ naa:

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

ibo:
ifiranṣẹ = `ifconfig` - a yan abajade ti ifconfig pipaṣẹ aṣẹ si oniyipada ifiranṣẹ $
wget"xn--80abgfbdwanb2akugdrd3a2e5gsbj.xn--p1ai/a.php - iwe afọwọkọ a.php wa ti o forukọsilẹ awọn olulana ati gba awọn ifiranṣẹ lati ọdọ wọn
u=olumulo&p=ọrọ igbaniwọle!&m=$ifiranṣẹ - awọn iwe-ẹri ati iye ti oniyipada ibeere m - ṣe ipinnu awọn akoonu ti oniyipada ifiranṣẹ $
-O /tmp/out.txt - a ko nilo iṣelọpọ si faili /tmp/out.txt ninu ọran yii, ṣugbọn ti a ko ba pato paramita yii, wget ko ṣiṣẹ

Kini idi ti eyi ko ṣiṣẹ?Nitori ti o pọju aabo iho . Aṣiṣe ti ko lewu julọ ti o le ṣẹlẹ ni ti, fun apẹẹrẹ, ohun kikọ “&” wa ninu iṣẹjade ti aṣẹ rẹ. Nitorinaa, o jẹ dandan lati ṣe àlẹmọ mejeeji ohun gbogbo ti a firanṣẹ lati awọn olulana ati ohun gbogbo ti o wa si olupin naa. Bẹẹni, oju ti mi, looto. Ni aabo mi, Mo le kọ nikan pe gbogbo nkan ti yasọtọ si bi o ṣe le ṣakoso awọn onimọ-ọna pẹlu famuwia ti a ti ṣalaye tẹlẹ ati awọn ikanni ibaraẹnisọrọ ti ko ṣe asọye ni ilosiwaju.

O dara, ibẹrẹ kan fun ọjọ iwaju: Emi ko tii rii bi o ṣe le lo awọn irinṣẹ zabbix boṣewa lati ṣe afihan awọn abajade (fun apẹẹrẹ, abajade ti pipaṣẹ pipaṣẹ) ti o wa si olupin naa.

Mo leti pe gbogbo awọn orisun le ṣee gba lati ibi ipamọ Git ni: github.com/BazDen/iotnet.online.git

orisun: www.habr.com

Fi ọrọìwòye kun