Mikrotik. Administrare prin SMS folosind server WEB

Bună ziua tuturor!

De data aceasta am decis să descriu o situație care nu pare a fi descrisă în mod deosebit pe Internet, deși există câteva indicii despre ea, dar cea mai mare parte a fost doar o lungă investigare metodică a codului și a wiki-ului Mikrotik în sine.

Sarcina propriu-zisă: implementarea controlului mai multor dispozitive folosind SMS-uri, folosind exemplul de pornire și dezactivare a porturilor.

Disponibil:

  1. Router secundar CRS317-1G-16S+
  2. Punct de acces Mikrotik NETMETAL 5
  3. Modem LTE R11e-LTE

Să începem cu faptul că minunatul punct de acces Netmetal 5 are la bord un conector de cartelă SIM lipit și un port pentru instalarea unui modem LTE. Prin urmare, pentru acest punct, în esență, cel mai bun modem a fost achiziționat din ceea ce era disponibil și suportat de sistemul de operare al punctului în sine, și anume R11e-LTE. Punctul de acces a fost dezasamblat, totul a fost instalat la locul său (deși trebuie să știți că cartela SIM este situată sub modem și nu este posibil să o obțineți fără a scoate placa principală), așa că verificați funcționalitatea cartelei SIM, altfel va trebui să dezasamblați punctul de acces de mai multe ori.

Apoi, am făcut câteva găuri în carcasă, am instalat 2 pigtails și am fixat capetele la modem. Din păcate, nicio fotografie a procesului nu a supraviețuit. Pe de altă parte, antene universale cu o bază magnetică au fost atașate de coadă.

Principalii pași de configurare sunt descriși destul de bine pe Internet, cu excepția unor lacune minore de interacțiune. De exemplu, modemul nu mai primește mesaje SMS când sosesc 5 dintre ele și se blochează în Inbox; ștergerea mesajelor și repornirea modemului nu rezolvă întotdeauna problema. Dar în versiunea 6.44.1 recepția funcționează mai stabil. Inbox afișează ultimele 4 sms-uri, restul sunt șterse automat și nu interferează cu viața.

Scopul principal al experimentului este de a opri și porni interfețele pe două routere din aceeași rețea fizică. Principala dificultate a fost că Mikrotik nu acceptă managementul prin SNMP, ci permite doar citirea valorilor. Prin urmare, a trebuit să sap în cealaltă direcție, și anume API-ul Mikrotik.

Nu există o documentație clară despre cum să-l controlez, așa că a trebuit să experimentez și această instrucțiune a fost făcută pentru încercări viitoare.

Pentru a gestiona mai multe dispozitive, veți avea nevoie de un server WEB accesibil și funcțional în rețeaua locală; va trebui să fie controlat folosind comenzile Mikrotik.

1. Pe Netmetal 5 trebuie să faci câteva scripturi pentru a-l porni, respectiv dezactiva

system script
add dont-require-permissions=no name=disableiface owner=admin policy=
    ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=
    "/tool fetch http://WEB_SERVER_IP/di.php "
add dont-require-permissions=no name=enableiface owner=admin policy=
    ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=
    "/tool fetch http://WEB_SERVER_IP/en.php "

2. Creați 2 scripturi pe serverul web (desigur, php trebuie instalat pe sistem în acest caz):

<?php
# file en.php enable interfaces    
require('/usr/lib/zabbix/alertscripts/routeros_api.class.php');

    $API = new RouterosAPI();
    $API->debug=true;

if ($API->connect('IP управляемого Mikrotik', 'логин администратора', 'пароль администратора')) {
    $API->comm("/interface/ethernet/enable", array(
    "numbers"=>"sfp-sfpplus16",));
}
   $API->disconnect();
?>

<?php
#file di.php disable interfaces
    require('/usr/lib/zabbix/alertscripts/routeros_api.class.php');

    $API = new RouterosAPI();
    $API->debug=true;

if ($API->connect('IP управляемого Mikrotik', 'логин администратор', 'пароль администратора')) {
    $API->comm("/interface/ethernet/disable", array(
    "numbers"=>"sfp-sfpplus16",));
}
   $API->disconnect();
?>

3. Descărcați routeros_api.class.php de pe forumul Mikrotik și plasați-l într-un director accesibil de pe server.

În loc de sfp-sfpplus16, trebuie să specificați numele interfeței care urmează să fie dezactivată/activată.

Acum, când trimiteți un mesaj către un număr din formular

:cmd СЕКРЕТНЫЙКОД script enableiface
или
:cmd СЕКРЕТНЫЙКОД script disableiface 

NETMETAL va lansa scriptul corespunzător, care la rândul său va executa comanda pe serverul WEB.

Viteza operațiunilor la primirea SMS-urilor este de o fracțiune de secundă. Funcționează stabil.

În plus, există o funcționalitate pentru trimiterea de SMS-uri către telefoane de către sistemul de monitorizare Zabbix și deschiderea unei conexiuni la Internet de rezervă dacă optica eșuează. Poate că acest lucru depășește domeniul de aplicare al acestui articol, dar voi spune imediat că atunci când trimiteți SMS-uri, lungimea lor ar trebui să se încadreze în dimensiunea standard a unui mesaj, deoarece... Mikrotik nu le împarte în părți, iar când sosește un mesaj lung, pur și simplu nu îl trimite, în plus, trebuie să filtrați caracterele transmise în mesaje, altfel SMS-ul nu va fi trimis.

Sursa: www.habr.com

Adauga un comentariu