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

God dag alle sammen!

Denne gang besluttede jeg mig for at beskrive en situation, som ikke er nævnt meget på internettet, selvom der er nogle antydninger til den, men størstedelen stammer fra langvarig og methodisk graven i Mikrotiks kode og wiki.

Opgaven er at implementere SMS-styring af flere enheder, ved at tage eksemplet med at tænde og slukke 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 det vidunderlige access point Netmetal 5, som har en indbygget SIM-kort-slot og en port til installation af LTE-modemet. Derfor blev det bedste modem, der var tilgængeligt og understøttet af operativsystemet i enheden, nemlig R11e-LTE, købt. Enheden blev adskilt, alt blev monteret på rette steder (men det skal bemærkes, at SIM-kortet er placeret under modemet, og uden at fjerne hovedkortet kan det ikke tages ud), så kontroller venligst, at SIM-kortet fungerer, ellers skal enheden tages fra hinanden flere gange.

Derefter boret vi et par huller i kabinettet, installerede 2 pig-tail kabler, og enderne blev fastgjort til modemet. Desværre blev billeder af processen ikke gemt. På den anden side blev der monteret universelle antenner med magnetbasis på pig-tail kablerne.

De væsentlige trin til opsætning er godt beskrevet på internettet, bortset fra småfejl i interaktionen. For eksempel stopper modemet med at modtage SMS-beskeder, når der kommer 5 stykker ind, og de hænger i indbakken; sletning af beskeder og genstart af modemet løser ikke altid problemet. Men i version 6.44.1 fungerer modtagelsen mere stabilt. Indbakken viser de 4 seneste SMS'er, de øvrige slettes automatisk og forstyrrer ikke.

Hovedformålet med eksperimentet er at slukke og tænde grænsefladerne på to routere i et fysisk netværk. Den største udfordring var, at Mikrotik ikke understøtter styring via SNMP, men kun tillader læsning af værdier. Så jeg måtte grave i en anden retning, nemlig Mikrotik API.

Der er ikke klar dokumentation til, hvordan man styrer, så jeg måtte eksperimentere, og til fremtidige forsøg blev denne instruktion lavet.

For at styre flere enheder kræves en tilgængelig og fungerende webserver i det lokale netværk, som skal håndtere kommandoer til Mikrotik.

1. På Netmetal 5 skal der laves et par scripts til henholdsvis aktivering og deaktivering.

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 styrede Mikrotik', 'administrator login', 'administrator adgangskode')) {
    $API->comm("\/interface\/ethernet\/enable", array(
    "numbers"=>"sfp-sfpplus16",));
}
   $API->disconnect();
?>

debug=true;

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

3. Download routeros_api.class.php fra Mikrotik-forummet og placer det i en tilgængelig mappe. serveren.

I stedet for sfp-sfpplus16 skal du angive navnet på den interface, der skal deaktiveres/aktiveres.

Nu, når du sender en besked til nummeret i formatet

:cmd SECRET_CODE script enableiface
eller
:cmd SECRET_CODE script disableiface 

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

Hastigheden af operationerne ved modtagelse af SMS er brøkdele af et sekund. Virker stabilt.

Derudover er der funktionalitet til at sende SMS til telefoner gennem overvågningssystemet Zabbix og åbne en backup internetforbindelse ved nedbrud af fiber. Dette går måske ud over rammerne for denne artikel, men jeg vil sige med det samme, at ved sending af SMS'er skal deres længde være inden for standardstørrelsen for en besked, da Mikrotik ikke opdeler dem og blot ikke sender lange beskeder. Desuden skal der filtreres tegn overført i beskederne, 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