Linux/OpenWrt/Lede gailuen urruneko monitorizazioa eta kontrola 80 atakaren bidez, jarraitu da

Hau da artikuluaren azken zatia, hona hemen hasiera habr.com/eu/post/445568
Azken aldian gailuen monitorizazioa nola ezarri nuen idatzi nuen, orain kudeaketari buruz hitz egingo dugu. Bezeroaren "teknikariekin" eztabaidetan, sarritan gailu txiki horien gaitasunen pertzepzio mugatu batekin topatzen naiz (memoria baliabide eta errendimendu baxuekin), askok uste dute "behar dugun maximoa berrabiarazi bat bidaltzea dela". , zerbait serioagorako - brigada bat bidaliko dugu" .
Baina praktikak erakusten du hori ez dela guztiz egia. Hona hemen ohiko zereginen zerrenda txiki bat:

  1. Sareko diagnostikoak eta arazoak konpontzea. Zure bideratzailearen ethernet atakaren atzean, beste burdin zati bat "bizi" ohi da, bere barne IP helbidea duena. Batzuetan, "pinga" izan daiteke (behar). Edo tunelaren kudeaketa: tunela bat-batean 3G modemaren bidez lan egiten duen bideratzailean altxatzen ez bada, baina bideratzailea bera ikusten dugu.
  2. Sistemaren zerbitzua. Firmwarearen eguneratzea, zerbitzu-scriptak eguneratzea.
  3. Ekilibristikoak. Horri "perbertsioak" dei genitzake, baina "funambulista" kontzeptua, aipatu dut, "zirko-jotzaile batek gorputz-posizio ezegonkor batean oreka mantentzeko duen gaitasuna" - hobeto egokitzen da. Horrelako egoerak bezeroaren aurrekontu mugatuaren ondorioz sortzen dira. Adibide pare bat jarri ditut jarraian, baina geroztik ez daude ipuinaren gaiarekin zerikusi zuzena, oharretan jartzen ditut

wifi monitorizazioaAzken bost urteotan modan dagoen gaia, batez ere txikizkako kate federalen artean. Poliki-poliki merkataritza-guneetatik ibiltzen ari zara, eta zure telefono mugikorrak Wi-Fi piztuta, sareko hariren bati "txikitzen" nahian, aldian-aldian Probe Request paketeak bidaltzen ditu, zure kabuz kalkulatzeko aztertu daitezkeenak. : zenbat aldiz etortzen zara denda honetara, zein ibilbidetara ibiltzen zaren eta abar. Gainera, datuak bildu, aztertu, bero-mapak marrazten dira eta kudeatzaileek kudeaketa edo inbertitzaileen dirua "kanporatzen" egiten dute argazki horietarako. Bitartean .... β€œez dago dirurik, baina eutsi ...”, eta emaitza (benetakoa) erakutsi beharko litzateke jada, abesti zahar ona β€œBai, bai, orduan noski hornituko ditugu ciscos eta nahi duzuna, baina orain Bezeroari emaitza erakutsi behar diogu! Bide batez, ahaztu egin zitzaien esatea Bezeroak gure ekipoak bere hotspotera Wi-Fi bidez konektatzea baimentzen zuela, baina orokorrean, bezero gonbidatuak bagina bezala. Eta orain bideratzaile equilibristak egin behar dituzu: hainbat WiFi azpiinterfaze igotzen dira, horietako bat hotspot-era atxikitzen da, eta bigarrenak ingurunea kontrolatzen du, tcpdump-en emaitza deskargatzen du bere baitan, gero fitxategiaren edukia artxibo batean biltzen du eta "Gehiegi janez" hiltzeko arriskua du edukiak ftp zerbitzariari tu egiten saiatzean. Ez da harritzekoa equilibrist bideratzailea sarritan "matxura" izatea eta nolabait urrunetik "berrabiatu" behar izatea.

ErradioaHemen errazagoa da egoera deskribatzea bezeroaren adierazpen honekin: β€œHonen sare deszentralizatua nahi dugu, aldez aurretik eredua ezagutzen ez den ekipoetan funtzionatuko lukeena, kanalen bidez, baina oraindik ezagutzen ez ditugunak. Ah, ahaztu zaigu esatea, bezeroei iragarkiak erakutsi nahi ez ezik, hotspot instalazio gunearen inguruko guztia ere aztertu nahi dugu. Ez, oraindik ez dakigu zergatik, baina asmatuko dugu, ez izan zalantzarik, ideia hau burutzeko gai izan garaΒ».

Eta ez dugu ahaztu behar aldez aurretik ziurgabetasun askoren ondorioz, kudeaketa baldintza ez-estandarran egin behar dela, bideratzailera zuzenean ip bidez konektatu ezin garenean: portua eta jarduera ager arte itxaron behartuta gaudenean. hura. Abstrakzioa egiten badugu, zerbitzariaren eta bideratzailearen arteko elkarrizketa honela irudikatu daiteke:

  • Router: Kaixo. Halako eta halako bideratzailea naiz, zereginik al dago niretzat?
  • zerbitzaria: halako eta halako bideratzaile bat, bizirik zaudela erregistratu zaitut. Hona hemen erronka: erakutsi ifconfig komandoaren irteera?
  • Router: Kaixo. Halako eta halako bideratzailea naiz, ifconfig-en emaitza erakusteko azken aldian, hona hemen. Ba al dago niretzako zereginik?
  • zerbitzaria: halako eta halako bideratzaile bat, bizirik zaudela erregistratu zaitut. Ez dago zereginik zuretzat.

Galderarik interesgarriena hau da: nola bidal dezake urruneko bideratzaile batek informazio kopuru jakin bat? Azken zatian, baliabide mugatuak direla eta, bideratzaileak GET bidez bakarrik funtzionatzen duen wget bat bakarrik duela deskribatu nuen, ez dagoela ftp bezerorik edo kizkurrik. Zehatzago esanda, modu unibertsala behar dugu, irudi-multzoaren ezaugarriak kontuan hartu gabe. wget erabiltzea erabaki nuen. Zehatzago esanda, nola "gelditu" - ez nuen aukerarik πŸ™‚

Berehala erreserbaNire kudeaketa-soluzioa funtzionatzen ari da, ez oso mugatua, eta ziur nago okerra dela, nire bezero gehienei egokitu bazaie ere. Nola liteke zentzuz egitea: idatzi 80. atakatik datu bitarrak POST bidez bidaltzen dituen utilitate txiki bat. Sartu (erabilgarritasuna) bideratzailearen firmwarean eta erabili bash bertara sartzeko. Baina errealitatea hau da: a) azkar egin behar duzu b) ziurrenik dagoen "bideratzaileen zooan" dena egin beharko duzu c) "ez egin kalterik!" - Bideratzailea lanean ari bada eta beste zeregin batzuk egiten baditu, saiatu lehendik dagoen funtzionalitatean eragingo ez duten aldaketak egiten.

Goazen ezarpenera. Demagun zure bezeroak zabbix-ek bideratzailea erraz eta modu naturalean berrabiarazi nahi duela, "saguaren klik" batekin. Gaur inplementazioaren deskribapenari ekingo diogu zabbix-ekin.
"Administrazioa" -> "Scripts" menuan gehitu script berri bat. "Berrabiarazi" deitzen diogu, komando gisa "php /usr/share/zabbix/reboot.php {HOST.HOST}" idazten dugu.

Linux/OpenWrt/Lede gailuen urruneko monitorizazioa eta kontrola 80 atakaren bidez, jarraitu da

Hurrengoa: Menua "Monitorizazioa" -> "Azken datuak" -> "Egin klik eskuineko botoiarekin nahi duzun ostalarian". Honela izango da menua gidoia gehitu ondoren.

Linux/OpenWrt/Lede gailuen urruneko monitorizazioa eta kontrola 80 atakaren bidez, jarraitu da
Horren arabera, reboot.php script-a /usr/share/zabbix direktorioan jarri dugu (zuretzako ezberdina izan daiteke, zabbixa root direktorioa erabiltzen dut).

Segurtasun-oharraScript-en azalpena argitzeko, bideratzailearen IDa bakarrik erabiltzen dut, baina ez dut pasahitza erabiltzen. Laneko bertsioan, hau ez da gomendagarria! Zergatik egin nuen hau: galdera handia delako bideratzaileentzako pasahitzak non gorde? Zabbixe berez "inbentarioan"? Praktika kontraesankorra. Aukera gisa: mugatu kanpoko sarbidea reboot.php fitxategira bera

reboot.php fitxategia

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

Egia esan dena. "Nola lortu komandoaren exekuzioaren emaitza gailuaren aldetik" galdera irekita dago. Ikus dezagun ataza ifconfig komandoa adibide gisa erabiliz. Komando hau gailura bidal daiteke:

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

, non:
mezua=`ifconfig` - ifconfig komandoaren irteeraren emaitza $message aldagaiari esleitzen diogu
wget"xn--80abgfbdwanb2akugdrd3a2e5gsbj.xn--p1ai/a.php - bideratzaileak erregistratu eta haien mezuak jasotzen dituen gure a.php script-a
u=erabiltzailea&p=pasahitza!&m=$mezua - kredentzialak eta m kontsulta aldagaiaren balioa - $message aldagaiaren edukia esleitzen du
-O /tmp/out.txt - Ez dugu /tmp/out.txt fitxategira irteerarik behar kasu honetan, baina parametro hau zehazten ez bada, wget-ek ez du funtzionatuko

Zergatik funtzionatzen du gaizkiBalizko segurtasun-zulo bat delako. Gerta daitekeen akatsik kaltegarriena zure komandoaren irteeran, adibidez, "&" ikurra badu. Hori dela eta, beharrezkoa da bideratzaileetatik bidaltzen den guztia eta zerbitzarira iristen dena iragaztea. Bai, lotsatuta nago, benetan. Nire defentsan, soilik idatzi dezaket artikulu osoa zehaztu gabeko firmwaredun bideratzaileak nola kudeatu behar diren, komunikazio kanal zehaztugabeekin.

Beno, etorkizuna ukitu dut: oraindik ez dut asmatu zabbix tresna estandarrak erabiliz zerbitzarira iristen diren emaitzak (adibidez, komando baten exekuzioaren emaitza) nola islatu.

Gogorarazten dizut iturri guztiak Git biltegitik har daitezkeela hemen: github.com/BazDen/iotnet.online.git

Iturria: www.habr.com

Gehitu iruzkin berria