Leanadh le cianmhonatóireacht agus rialú gléasanna Linux/OpenWrt/Lede trí phort 80

Is é seo an chuid deiridh den alt, anseo an tús habr.com/ga/post/445568
An uair dheireanach a scríobh mé faoi conas a chuir mé monatóireacht gléas i bhfeidhm, anois labhróimid faoi bhainistíocht. I gcomhráite le “teicneoirí” ar thaobh an Chustaiméara, is minic a bhíonn dearcadh teoranta agam ar chumais gléasanna beaga den sórt sin (le hacmhainní cuimhne íseal agus feidhmíocht), creideann go leor gurb é “an rud is mó a theastaíonn uainn ná atosaigh a sheoladh, le haghaidh rud éigin eile. dáiríre seolfaimid foireann”.
Ach léiríonn cleachtas nach bhfuil sé seo fíor go hiomlán. Seo liosta beag de thascanna tipiciúla coitianta:

  1. Diagnóisic líonra agus fabhtcheartú. Taobh thiar de phort ethernet do ródaire is gnách go mbíonn píosa crua-earraí eile a bhfuil a sheoladh IP inmheánach féin aige. Uaireanta, is féidir leat (ba chóir) “ping” a dhéanamh air. Nó bainistíocht tolláin - mura n-ardóidh an tollán go tobann ar ródaire a oibríonn trí mhodem 3G, ach is féidir linn an ródaire féin a fheiceáil.
  2. Cothabháil córais. Nuashonrú firmware, uasghrádú script seirbhíse.
  3. Acht comhardaithe. D’fhéadfaí “saobhadh” a thabhairt air seo, ach coincheap an “chothromaíochta” mar a luaim, “cumas taibheoir sorcais cothromaíocht a choinneáil i suíomh coirp éagobhsaí” - oireann níos fearr. Tagann cásanna den sórt sin chun cinn mar gheall ar bhuiséad teoranta an chustaiméara. Thug mé cúpla sampla thíos, ach... Níl baint dhíreach acu le téama an scéil, cuirim sna nótaí iad

Monatóireacht Wi-FiÁbhar faiseanta le cúig bliana anuas, go príomha i measc slabhraí miondíola cónaidhme. Tá tú ag spaisteoireacht go suaimhneach trí na hurláir trádála, agus cuireann do ghuthán póca le Wi-Fi ar siúl, in iarracht “cloí” le snáithe éigin den líonra, paicéid Iarratas Tóraithe a sheoladh amach go rialta, ar féidir anailís a dhéanamh orthu chun ríomh do tú: cé chomh minic a thagann tú chuig an siopa seo, cad iad na cúiseanna a shiúlann tú ar chonairí agus mar sin de. Ansin bailítear na sonraí, déantar anailís orthu, tarraingítear léarscáileanna teasa, agus déanann bainisteoirí “sracadh” airgead ón mbainistíocht nó ó infheisteoirí le haghaidh pictiúir dá leithéid. Bhuel, faoi láthair.... “níl aon airgead, ach coinníonn tú ort...”, agus ní mór an toradh (fíor) a thaispeáint cheana féin, tosaíonn an sean-amhrán maith: “Sea, tá, ansin ar ndóigh táimid shuiteáil an cis agus gach rud atá uait, ach anois ní mór dúinn an toradh a thaispeáint don Chustaiméir! Dála an scéil, rinneamar dearmad a rá gur thug an Custaiméir cead dúinn ár dtrealamh a nascadh lena hotspot trí Wi-Fi, ach ar bhonn ginearálta, díreach amhail is gur aoi-chliant muid.” Agus mar sin ní mór dúinn ródairí cothromaithe a dhéanamh - ardaítear roinnt fo-chomhéadan wifi, ceann acu ag cloí leis an hotspot, agus déanann an dara ceann monatóireacht ar an gcomhshaol, uaslódáil go frantically an toradh tcpdump chuige féin, ansin pacálann sé ábhar an chomhaid isteach i gcartlann agus rioscaí ag fáil bháis ó “ró-ithe” déanann sé iarracht an t-ábhar ar an bhfreastalaí FTP a spit amach. Ní haon ionadh é go mbíonn an ródaire cothromaíochta “briseadh síos” go minic agus caithfear é a “athbheochan” go cianda.

gaTá sé níos éasca cur síos a dhéanamh ar an gcás anseo le rud mar an ráiteas seo ón gcustaiméir: “Ba mhaith linn líonra díláraithe de láithreacha teo a d’oibreodh ar threalamh nach bhfuil a shamhail ar eolas roimh ré, trí chainéil, ach nach bhfuil a fhios againn go fóill. Ó, rinneamar dearmad a rá, ní hamháin gur mhaith linn fógraíocht a thaispeáint do chliaint, ach freisin anailís a dhéanamh ar gach rud timpeall an áit a bhfuil an hotspot suiteáilte. Ní hea, níl a fhios againn cén fáth go fóill, ach déanfaimid é a dhéanamh amach, ná bíodh amhras ort, bhíomar in ann teacht ar an smaoineamh seo."

Agus ní mór dúinn dearmad a dhéanamh, mar gheall ar go leor imthosca anaithnid roimhe seo, go gcaithfear rialú a dhéanamh i gcoinníollacha neamhchaighdeánacha, nuair nach féidir linn ceangal a dhéanamh go díreach leis an ródaire tríd an gcalafort IP: agus nach mór dúinn fanacht ar ghníomhaíocht uaidh. Má táimid teibí féin, is féidir an t-idirphlé idir an freastalaí agus an ródaire a léiriú mar seo:

  • Ródaire: Dia dhuit. Tá mé den sórt sin agus ródaire den sórt sin, an bhfuil aon tascanna dom?
  • Freastalaí: ródaire den sórt sin agus den sórt sin, chláraigh mé tú, go bhfuil tú beo. Seo an dúshlán: taispeáin dom toradh an ordaithe ifconfig?
  • Ródaire: Dia dhuit. Tá mé den sórt sin agus den sórt sin ródaire, an uair dheireanach a d'iarr tú a thaispeáint ar an toradh ifconfig, anseo é. An bhfuil aon tascanna domsa?
  • Freastalaí: ródaire den sórt sin agus den sórt sin, chláraigh mé tú, go bhfuil tú beo. Níl aon tascanna ar do shon.

An cheist is suimiúla: conas is féidir le ródaire iargúlta méid áirithe faisnéise a sheoladh? Sa chuid dheireanach, rinne mé cur síos, mar gheall ar acmhainní teoranta, nach bhfuil ach wget “stripped-down” ag an ródaire, nach n-oibríonn ach trí GET agus níl aon chliant nó curl FTP ann; Níos cruinne, ní mór dúinn modh uilíoch, beag beann ar na gnéithe de thionól íomhá. Shocraigh mé ar wget a úsáid. Níos cruinne, conas a "stop mé" - ní raibh aon rogha agam :)

Níl ort ach séanadhTá mo réiteach bainistíochta ag obair, gan a bheith teoranta, agus táim cinnte go bhfuil sé cam, fiú má oireann sé don chuid is mó de mo chustaiméirí. Conas a d'fhéadfá é a dhéanamh go ciallmhar - scríobh fóntais bheag a sheolann sonraí dénártha POST trí phort 80. Cuir é (an fóntais) i bhfirmware an ródaire agus faigh rochtain air ag baint úsáide as bash. Ach is é fírinne an scéil: a) go gcaithfimid go tapa b) is dócha go gcaithfimid gach rud a dhéanamh ar an “zú ródairí” atá ann cheana féin c) “déan aon dochar!” — má tá an ródaire ag obair agus ag déanamh tascanna eile, déan iarracht athruithe a dhéanamh nach gcuirfidh isteach ar an bhfeidhmiúlacht atá ann cheana féin.

A ligean ar bogadh ar aghaidh go dtí cur i bhfeidhm. Ligean le rá go bhfuil do chustaiméir ag iarraidh an ródaire a atosú ó zabbix go héasca agus go nádúrtha, le "cliceáil ar an luch." Sa lá atá inniu cuirfimid tús le cur síos ar an gcur chun feidhme le Zabbix.
Sa roghchlár “Riarachán” -> “Scripteanna”, cuir script nua leis. Glaoimid "Atosaigh" air, cuir isteach "php /usr/share/zabbix/reboot.php {HOST.HOST}" mar ordú

Leanadh le cianmhonatóireacht agus rialú gléasanna Linux/OpenWrt/Lede trí phort 80

Ar Aghaidh: Roghchlár “Monatóireacht” -> “Sonraí is déanaí” -> “Deaschliceáil ar an nód líonra atá ag teastáil.” Seo an chuma a bheidh ar an roghchlár tar éis an script a chur leis.

Leanadh le cianmhonatóireacht agus rialú gléasanna Linux/OpenWrt/Lede trí phort 80
Dá réir sin, chuireamar an script reboot.php san eolaire / usr/share/zabbix (d'fhéadfadh go mbeadh do cheannsa difriúil, úsáidim an eolaire fréimhe zabbixa).

Séanadh SábháilteachtaChun an míniú a dhéanamh níos soiléire sa script, ní úsáidim ach an t-aitheantas ródaire, ach ní úsáidim an focal faire. Ní mholtar é seo a dhéanamh sa leagan táirgthe! Cén fáth a ndearna mé é seo: mar is í an cheist mhór ná cá háit le pasfhocail a stóráil le haghaidh ródairí? I zabbixe féin i “sonraí fardail”? Cleachtadh conspóideach. Nó: srian a chur ar rochtain sheachtrach ar an gcomhad reboot.php féin

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

Sin é an méid. Tá an cheist fós oscailte: "conas an toradh a fháil ar ordú a fhorghníomhú ón bhfeiste." Breathnaímid ar an tasc ag baint úsáide as an ordú ifconfig mar shampla. Is féidir an t-ordú seo a sheoladh chuig an ngléas:

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

áit:
teachtaireacht = `ifconfig` — sannaimid toradh an aschuir ordaithe ifconfig don athróg $message
wget"xn--80abgfbdwanb2akugdrd3a2e5gsbj.xn--p1ai/a.php — ár script a.php a chláraíonn ródairí agus a fhaigheann teachtaireachtaí uathu
u=úsáideoir&p=focal faire!&m=$message — dintiúir agus luach na hathróige iarratais m — sannann sé inneachar na hathróige $message
-Ó /tmp/amach.txt — ní gá dúinn aschur chuig an gcomhad /tmp/out.txt sa chás seo, ach mura bhfuil an paraiméadar seo sonraithe, ní oibríonn wget

Cén fáth nach n-oibríonn sé seo?Toisc gur poll slándála féideartha é. Is í an earráid is neamhdhíobhálaí a d’fhéadfadh tarlú ná, mar shampla, má tá carachtar “&” in aschur d’ordaithe. Dá bhrí sin, is gá gach rud a sheoltar ó ródairí agus gach rud a thagann chuig an bhfreastalaí a scagadh. Sea, tá náire orm, i ndáiríre. I mo chosaint, ní féidir liom a scríobh ach go bhfuil an t-alt iomlán dírithe ar conas ródairí a bhainistiú le firmware réamhshainithe agus bealaí cumarsáide nach bhfuil sainmhínithe roimh ré.

Bhuel, tús don todhchaí: níl mé tar éis a dhéanamh amach go fóill conas uirlisí caighdeánacha zabbix a úsáid chun na torthaí (mar shampla, toradh ordú a fhorghníomhú) a thagann chuig an bhfreastalaí a léiriú.

Meabhraím duit gur féidir gach foinse a fháil ó stór Git ag: github.com/BazDen/iotnet.online.git

Foinse: will.com

Add a comment