Mikrotik. Gestionare prin SMS folosind un server WEB

Bună ziua tuturor!

De această dată am decis să descriu o situație care pare să nu fie foarte bine documentată pe internet, deși există unele indicii despre ea, însă cea mai mare parte a fost obținută printr-o analiză metodică îndelungată a codului și a wiki-ului Mikrotik.

Așadar, sarcina: implementarea controlului prin SMS al mai multor dispozitive, pe exemplul pornirii și opririi porturilor.

Există:

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

Să începem prin a menționa că minunatul punct de acces Netmetal 5 are integrat un conector pentru cartelă SIM și un port pentru instalarea modemului LTE. Așadar, pentru acest punct a fost cumpărat practic cel mai bun modem disponibil și suportat de sistemul de operare al punctului, anume R11e-LTE. Punctul a fost desfăcut, totul a fost instalat la locul său (deși trebuie să știți că cartela SIM este situată sub modem și fără demontarea plăcii principale nu poate fi accesată), prin urmare verificați funcționalitatea cardului SIM, altfel va trebui să demontați punctul de acces de mai multe ori.

Apoi am perforat câteva găuri în carcasă, am instalat 2 pigtails și capetele au fost fixate pe modem. Din păcate, nu s-au păstrat poze cu procesul. Pe de altă parte, pe pigtails au fost atașate antene universale cu bază magnetică.

Etapele principale de configurare sunt descrise destul de bine pe internet, cu excepția unor mici erori de interacțiune. De exemplu, modemul încetează să primească mesaje SMS când sunt primite 5 și acestea rămân în Inbox, ștergerea mesajelor sau repornirea modemului nu rezolvă întotdeauna problema. Dar în versiunea 6.44.1, recepția este mai stabilă. În Inbox sunt afișate ultimele 4 sms-uri, restul sunt șterse automat și nu deranjează.

Scopul principal al experimentului este de a opri și ridica interfețele pe două routere într-o singură rețea fizică. Principala dificultate a fost că Mikrotik nu suportă controlul prin SNMP, ci permite doar citirea valorilor. Așadar, a fost necesar să căutăm o alternativă, și anume API Mikrotik.

Nu există o documentație clară despre cum să faceți managementul, așa că a fost nevoie de experimente, iar pentru încercările viitoare a fost realizat acest ghid.

Pentru a controla mai multe dispozitive va fi necesar un server WEB disponibil și funcțional în rețeaua locală, care va fi responsabil de gestionarea comenzilor Mikrotik.

1. Pe Netmetal 5 trebuie să realizăm câteva scripturi pentru a activa și dezactiva interfețele, respectiv

script de sistem
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. Crearea a 2 scripturi pe web server (desigur, pe sistemul respectiv trebuie să fie instalat php):

debug=true;

if ($API->connect('IP-ul Mikrotik gestionat', 'login-ul administratorului', 'parola administratorului')) {
    $API->comm("\/interface\/ethernet\/enable", array(
    "numbers"=>"sfp-sfpplus16",));
}
   $API->disconnect();
?>

debug=true;

if ($API->connect('IP-ul Mikrotik gestionat', 'login administrator', 'parola administratorului')) {
    $API->comm("\/interface\/ethernet\/disable", array(
    "numbers"=>"sfp-sfpplus16",));
}
   $API->disconnect();
?>

3. Descarcă routeros_api.class.php de pe forumul Mikrotik și plasează-l într-un director accesibil pe server.

în loc de sfp-sfpplus16 trebuie să specifici numele interfeței care trebuie dezactivată/activată.

Acum, când se trimite un mesaj la numărul sub forma

:cmd CODULSECRET script enableiface
sau
:cmd CODULSECRET script disableiface 

NETMETAL va lansa scriptul corespunzător, iar acesta va executa comanda pe serverul WEB.

Viteza de executare a operațiunilor la recepția SMS-ului este de câteva secunde. Funcționează stabil.

În plus, există funcționalitatea de a trimite SMS-uri pe telefoanele sistemului de monitorizare Zabbix și de a deschide o conexiune de rezervă la internet în caz de cădere a fibrei. Poate că acest subiect depășește cadrul acestui articol, dar voi menționa că la trimiterea SMS-urilor, lungimea acestora trebuie să se încadreze în dimensiunea standard a unui mesaj, deoarece Mikrotik nu le împarte, iar în cazul unui mesaj lung, pur și simplu nu îl trimite. De asemenea, trebuie să filtrezi caracterele transmise în mesaje, altfel SMS-ul nu va fi trimis.

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster