Mikrotik. Styring via SMS ved hjælp af WEB-server

God dag alle sammen!

Denne gang vil jeg beskrive en situation, som tilsyneladende ikke er særlig godt beskrevet på internettet, selvom der er nogle hints til den, men størstedelen krævede simpelthen langvarig, metodisk granskning af koden og wiki’en fra Mikrotik.

Opgaven er at implementere SMS-styring af flere enheder, med eksemplet på at tænde og slukke for porte.

Der er:

  1. Sekundær router CRS317-1G-16S+
  2. Access point Mikrotik NETMETAL 5
  3. LTE modem R11e-LTE

Lad os starte med at bemærke, at det fantastiske access point Netmetal 5 har en indbygget SIM-kort slot og en port til installation af LTE-modemet. Derfor blev der købt det, der i bund og grund var det bedste modem blandt dem, der var tilgængelige og understøttet af selve access pointets operativsystem, nemlig R11e-LTE. Access pointet blev adskilt, og alt blev installeret på plads (det skal bemærkes, at SIM-kortet ligger under modemet, og uden at tage hovedkortet af, er det umuligt at få det ud), så tjek venligst SIM-kortet for funktionalitet, ellers skal access pointet adskilles flere gange.

Dernæst bores der et par huller i kabinettet, vi installerede to pigtails og sikrede enderne på modemet. Desværre er billederne fra processen ikke gemt. På den anden side blev der på pigtails monteret universelle antenner med magnetisk base.

De grundlæggende indstillingsfaser er beskrevet ret godt på internettet, bortset fra nogle små problemer med interaktionen. For eksempel stopper modemet med at modtage SMS-beskeder, når der kommer 5 stykker, og de vises i Indbakken; sletning af beskeder og genstart af modemet løser ikke altid problemet. Men i version 6.44.1 fungerer modtagelsen mere stabilt. Der vises 4 sidste SMS’er i Indbakken, mens de øvrige automatisk bliver slettet og ikke generer livet.

Hovedformålet med eksperimentet er at slukke for og tænd for grænseflader på to routere i et fysisk netværk. Den primære udfordring var, at Mikrotik ikke understøtter styring via SNMP, men kun tillader aflæsning af værdier. Derfor var vi nødt til at dykke i en anden retning, nemlig Mikrotik API.

Der findes ikke nogen klar dokumentation om, hvordan man styrer, så vi måtte eksperimentere, og til fremtidige forsøg blev denne instruktion oprettet.

For at styre flere enheder skal der være en tilgængelig og fungerende WEB-server i det lokale netværk, som får ansvaret for at styre via Mikrotik-kommandoer.

1. På Netmetal 5 skal der laves et par scripts til henholdsvis at aktivere og deaktivere.

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. Opret 2 scripts på web. serveren (selvfølgelig skal php være installeret på systemet i dette tilfælde):

debug=true;

if ($API->connect('IP for den administrerede Mikrotik', 'administrator login', 'administrator adgangskode')) {
    $API->comm("\/interface\/ethernet\/enable", array(
    "numbers"=>"sfp-sfpplus16",));
}
   $API->disconnect();
?>

debug=true;

if ($API->connect('IP for den administrerede Mikrotik', 'administrator login', 'administrator adgangskode')) {
    $API->comm("\/interface\/ethernet\/disable", array(
    "numbers"=>"sfp-sfpplus16",));
}
   $API->disconnect();
?>

3. Download routeros_api.class.php fra Mikrotik-forumet og placér det i en tilgængelig mappe på serveren.

i stedet for sfp-sfpplus16 skal navnet på det interface, der skal deaktiveres/aktiveres, angives.

Nu, når der sendes en besked til nummeret i formen

:cmd SEKRET KOD script enableiface
eller
:cmd SEKRET KOD script disableiface 

NETMETAL vil køre det tilsvarende script, som derefter udfører kommandoen på WEB-serveren.

Hastigheden for udførelse af operationer ved modtagelse af SMS er brøkdele af et sekund. Det fungerer stabilt.

Derudover er der funktionalitet til at sende SMS til telefoner via overvågningssystemet Zabbix og åbning af en backup internetforbindelse ved fiberfald. Det går måske ud over omfanget af denne artikel, men jeg vil straks sige, at når der sendes SMS, skal deres længde være inden for standardstørrelsen for en enkelt besked, da Mikrotik ikke deler dem op i dele, og ved modtagelse af en lang besked sender den blot ikke beskeden. Desuden skal tegnene, der sendes i beskederne, filtreres, ellers vil SMS'en ikke blive sendt.

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster