Cov chaw taws teeb saib xyuas thiab kev tswj hwm ntawm Linux / OpenWrt / Lede raws li cov khoom siv ntawm chaw nres nkoj 80, txuas ntxiv mus

Qhov no yog qhov kawg ntawm tsab xov xwm, ntawm no yog qhov pib habr.com/en/post/445568
Lub sij hawm dhau los kuv tau sau txog yuav ua li cas kuv tau siv cov cuab yeej saib xyuas, tam sim no peb yuav tham txog kev tswj hwm. Hauv kev sib tham nrog "cov kws tshaj lij" ntawm Cov Neeg Siv Khoom, Kuv feem ntau ntsib qhov kev nkag siab tsis txaus ntawm cov peev txheej ntawm cov khoom siv me me (nrog cov peev txheej nco thiab kev ua haujlwm tsawg), ntau tus ntseeg tias "qhov peb xav tau tshaj plaws yog xa rov qab, rau qee yam ntxiv. hnyav peb yuav xa ib pab neeg. "
Tab sis kev xyaum qhia tau hais tias qhov no tsis muaj tseeb kiag li. Ntawm no yog ib daim ntawv teev npe me me ntawm cov haujlwm uas nquag ua haujlwm:

  1. Network diagnostics thiab kev daws teeb meem. Tom qab qhov chaw nres nkoj ethernet ntawm koj lub router feem ntau muaj lwm yam khoom siv uas muaj nws tus kheej IP chaw nyob. Qee zaum, koj tuaj yeem (yuav tsum) "ping" nws. Los yog kev tswj qhov av - yog tias lub qhov dheev tsis sawv ntawm lub router ua haujlwm ntawm 3G modem, tab sis peb tuaj yeem pom lub router nws tus kheej.
  2. Kev kho qhov system. firmware hloov tshiab, kev pabcuam tsab ntawv hloov kho dua tshiab.
  3. Balancing act. Qhov no tuaj yeem hu ua "perversion", tab sis lub tswv yim ntawm "equilibrist" raws li, kuv hais, "Lub peev xwm ntawm tus neeg ua yeeb yam ua yeeb yam kom muaj kev sib npaug hauv lub cev tsis ruaj khov" - haum zoo dua. Cov xwm txheej zoo li no tshwm sim los ntawm cov neeg siv khoom siv nyiaj tsawg. Hauv qab no kuv tau muab ob peb piv txwv, tab sis ... Lawv tsis ncaj qha rau lub ntsiab lus ntawm zaj dab neeg, kuv muab tso rau hauv cov ntawv sau

Kev saib xyuas Wi-FiLub ntsiab lus zam rau tsib xyoos dhau los, feem ntau ntawm tsoomfwv cov khw muag khoom. Koj tab tom taug kev taug kev los ntawm kev lag luam hauv tsev, thiab koj lub xov tooj ntawm tes nrog Wi-nkaus qhib, hauv kev sim "lo" rau qee cov xov ntawm lub network, tsis tu ncua xa tawm Cov Ntawv Thov Kev Tshawb Fawb, uas tuaj yeem txheeb xyuas txhawm rau txhawm rau suav rau. koj: Koj tuaj rau lub khw no ntau npaum li cas, vim li cas? Tom qab ntawd cov ntaub ntawv raug sau, txheeb xyuas, kos duab tshav kub, thiab cov thawj coj "extort" nyiaj los ntawm kev tswj lossis tub ua lag luam rau cov duab zoo li no. Zoo, rau tam sim no .... "tsis muaj nyiaj, tab sis koj tuav ...", thiab qhov tshwm sim (tiag tiag) twb yuav tsum tau qhia, zaj nkauj qub zoo pib: "Yog, yog, yog li ntawd peb yuav nruab cis thiab txhua yam koj xav tau, tab sis tam sim no peb yuav tsum tau qhia cov neeg siv khoom qhov tshwm sim! Los ntawm txoj kev, peb tsis nco qab hais tias Cov Neeg Siv Khoom tau tso cai rau peb txuas peb cov khoom siv rau nws qhov hotspot ntawm Wi-nkaus, tab sis raws li feem ntau, ib yam li peb yog cov qhua tuaj noj mov. " Thiab yog li peb yuav tsum ua kom ntsuas cov routers - ob peb lub WiFi subinterfaces tau tsa, ib qho ntawm cov clings mus rau hotspot, thiab qhov thib ob saib xyuas ib puag ncig, frantically uploads qhov tshwm sim tcpdump rau nws tus kheej, tom qab ntawd ntim cov ntsiab lus ntawm cov ntaub ntawv mus rau hauv ib qho archive thiab txaus ntshai. tuag los ntawm "overeating" sim nti tawm cov ntsiab lus ntawm FTP server. Nws tsis yog qhov xav tsis thoob tias qhov ntsuas lub router feem ntau "lov" thiab qee qhov yuav tsum tau "resuscitated" nyob deb.

RadiusNws yooj yim dua los piav qhia qhov xwm txheej ntawm no nrog qee yam zoo li cov lus no los ntawm tus neeg siv khoom: "Peb xav tau kev sib koom ua ke ntawm cov hotspots uas yuav ua haujlwm ntawm cov khoom siv uas nws tus qauv tsis paub ua ntej, los ntawm cov channel, tab sis qhov twg peb tseem tsis tau paub. Huag, peb tsis nco qab hais tias, peb tsis tsuas yog xav qhia kev tshaj tawm rau cov neeg siv khoom, tab sis kuj txheeb xyuas txhua yam nyob ib puag ncig qhov chaw uas lub hotspot raug teeb tsa. Tsis yog, peb tsis paub yog vim li cas tseem, tab sis peb yuav txiav txim siab nws, tsis txhob ua xyem xyav, peb tuaj yeem tuaj nrog lub tswv yim no. "

Thiab peb yuav tsum tsis txhob hnov ​​​​qab tias vim muaj ntau yam tsis paub yav dhau los, kev tswj hwm yuav tsum tau ua nyob rau hauv cov xwm txheej tsis zoo, thaum peb tsis tuaj yeem txuas mus rau router ncaj qha los ntawm IP: chaw nres nkoj thiab raug yuam kom tsuas yog tos rau kev ua haujlwm ntawm nws. Yog tias peb paub meej peb tus kheej, kev sib tham ntawm tus neeg rau zaub mov thiab lub router tuaj yeem sawv cev zoo li no:

  • Router: Nyob zoo. Kuv yog ib tus router zoo li no, puas muaj haujlwm rau kuv?
  • Neeg rau zaub mov: router xws li thiab xws li, kuv sau npe rau koj, tias koj muaj sia nyob. Nov yog qhov kev sib tw: qhia kuv qhov tshwm sim ntawm ifconfig hais kom ua?
  • Router: Nyob zoo. Kuv yog xws li thiab xws li ib tug router, lub sij hawm kawg koj nug kom qhia tau hais tias ntawm ifconfig, ntawm no nws yog. Puas muaj tej hauj lwm rau kuv?
  • Neeg rau zaub mov: router xws li thiab xws li, kuv sau npe rau koj, tias koj muaj sia nyob. Tsis muaj haujlwm rau koj.

Cov lus nug uas txaus siab tshaj plaws: yuav ua li cas thiaj li muaj peev xwm xa cov ntaub ntawv qee yam ntawm router? Hauv seem kawg, kuv tau piav qhia tias vim muaj cov peev txheej tsawg, lub router tsuas muaj "tshem tawm" wget, uas ua haujlwm tsuas yog ntawm GET thiab tsis muaj dab tsi ntxiv; tsis muaj FTP tus neeg siv lossis curl. Ntau precisely, peb xav tau ib tug universal txoj kev, tsis hais cov yam ntxwv ntawm cov duab los ua ke. Kuv txiav txim siab siv wget. Ntau qhov tseeb, yuav ua li cas kuv "tshem" - Kuv tsuas yog tsis muaj kev xaiv :)

Tsuas yog tsis lees paubKuv txoj kev tswj hwm kev daws teeb meem ua haujlwm, tsis txwv ntau, thiab kuv paub tseeb tias nws yog qhov yuam kev, txawm tias nws haum rau feem ntau ntawm kuv cov neeg siv khoom. Koj tuaj yeem ua li cas thiaj li txawj ntse - sau cov khoom siv me me uas xa POST binary cov ntaub ntawv los ntawm chaw nres nkoj 80. suav nrog nws (tus nqi hluav taws xob) hauv lub router firmware thiab nkag mus rau nws siv bash. Tab sis qhov tseeb yog tias: a) peb yuav tsum tau sai b) tej zaum peb yuav tau ua txhua yam ntawm "zoo ntawm routers" c) "tsis muaj teeb meem!" - yog tias lub router ua haujlwm thiab ua lwm yam haujlwm, sim hloov pauv uas yuav tsis cuam tshuam rau cov haujlwm uas twb muaj lawm.

Cia peb mus rau qhov kev siv. Cia peb hais tias koj cov neeg siv khoom xav rov pib dua lub router los ntawm zabbix yooj yim thiab ib txwm, nrog rau "nias ntawm tus nas." Hnub no peb yuav pib piav qhia txog kev siv nrog Zabbix.
Hauv "Administration" -> "Scripts" menu, ntxiv ib tsab ntawv tshiab. Peb hu nws "Reboot", sau "php /usr/share/zabbix/reboot.php {HOST.HOST}" raws li ib tug hais kom ua

Cov chaw taws teeb saib xyuas thiab kev tswj hwm ntawm Linux / OpenWrt / Lede raws li cov khoom siv ntawm chaw nres nkoj 80, txuas ntxiv mus

Tom ntej: Ntawv qhia zaub mov "Saib xyuas" -> "Cov ntaub ntawv tshiab" -> "Txoj cai-nias ntawm qhov xav tau ntawm lub network." Qhov no yog dab tsi cov ntawv qhia zaub mov yuav zoo li tom qab ntxiv tsab ntawv.

Cov chaw taws teeb saib xyuas thiab kev tswj hwm ntawm Linux / OpenWrt / Lede raws li cov khoom siv ntawm chaw nres nkoj 80, txuas ntxiv mus
Raws li, peb muab cov ntawv reboot.php nyob rau hauv /usr/share/zabbix directory (koj yuav txawv, kuv siv zabbixa hauv paus directory).

Kev Nyab Xeeb Tsis lees paubTxhawm rau ua kom cov lus piav qhia meej hauv tsab ntawv, kuv tsuas yog siv tus router id, tab sis tsis txhob siv tus password. Nws tsis pom zoo kom ua qhov no hauv cov khoom tsim tawm! Vim li cas kuv thiaj ua qhov no: vim tias lo lus nug loj yog qhov twg khaws cov passwords rau routers? Hauv zabbixe nws tus kheej hauv "cov ntaub ntawv khoom muag"? Kev sib cav sib ceg. Xwb: txwv tsis pub lwm tus nkag mus rau cov ntaub ntawv reboot.php nws tus kheej

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

Yog tag nrho. Cov lus nug tseem qhib: "yuav ua li cas kom tau txais txiaj ntsig ntawm kev ua tiav cov lus txib los ntawm lub cuab yeej." Cia peb saib cov haujlwm uas siv ifconfig hais kom ua piv txwv. Cov lus txib no tuaj yeem xa mus rau lub cuab yeej:

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

, nyob qhov twg:
message='ifconfig' - peb muab cov txiaj ntsig ntawm ifconfig cov lus txib tso tawm rau $ lus hloov pauv
wget"xn--80abgfbdwanb2akugdrd3a2e5gsbj.xn--p1ai/a.php - peb a.php tsab ntawv uas sau npe routers thiab tau txais cov lus los ntawm lawv
u=user&p=password!&m=$message - daim ntawv pov thawj thiab tus nqi ntawm qhov kev thov sib txawv m - muab cov ntsiab lus ntawm $ lus hloov pauv
-O /tmp/out.txt - peb tsis tas yuav tso zis rau cov ntaub ntawv /tmp/out.txt hauv qhov no, tab sis yog tias qhov ntsuas no tsis tau teev tseg, wget tsis ua haujlwm

Vim li cas qhov no tsis ua haujlwm?Vim nws yog lub qhov muaj peev xwm ruaj ntseg. Qhov teeb meem tsis zoo tshaj plaws uas tuaj yeem tshwm sim yog, piv txwv li, muaj "&" tus cwj pwm hauv qhov tso tawm ntawm koj cov lus txib. Yog li ntawd, nws yog ib qho tsim nyog los lim ob qho tag nrho txhua yam uas xa los ntawm routers thiab txhua yam uas tuaj rau lub server. Yog, kuv txaj muag, tiag tiag. Hauv kuv qhov kev tiv thaiv, kuv tsuas yog sau tau tias tag nrho tsab xov xwm tau mob siab rau yuav ua li cas tswj cov routers nrog cov firmware ua ntej thiab cov kev sib txuas lus uas tsis tau txhais ua ntej.

Zoo, pib rau yav tom ntej: Kuv tseem tsis tau xav txog yuav ua li cas siv cov cuab yeej zabbix txheem los cuam tshuam cov txiaj ntsig (piv txwv li, qhov tshwm sim ntawm kev ua tiav cov lus txib) uas tuaj rau lub server.

Kuv ceeb toom koj tias txhua qhov chaw tuaj yeem tau txais los ntawm Git repository ntawm: github.com/BazDen/iotnet.online.git

Tau qhov twg los: www.hab.com

Ntxiv ib saib