Mikrotik. Styring via SMS ved hjelp av WEB-server

God dag alle sammen!

Denne gangen bestemte jeg meg for å beskrive en situasjon som ikke ser ut til å være spesielt beskrevet på Internett, selv om det er noen hint om det, men det meste var bare en lang metodisk graving av koden og wikien til selve Mikrotik.

Selve oppgaven: å implementere kontroll over flere enheter ved hjelp av SMS, ved å bruke eksemplet med å slå porter på og av.

Tilgjengelig:

  1. Sekundær ruter CRS317-1G-16S+
  2. Mikrotik NETMETAL 5 tilgangspunkt
  3. LTE-modem R11e-LTE

La oss starte med at det fantastiske Netmetal 5-tilgangspunktet har ombord en loddet SIM-kortkontakt og en port for installasjon av et LTE-modem. Derfor, for dette punktet, ble i hovedsak det beste modemet kjøpt fra det som var tilgjengelig og støttet av operativsystemet til selve punktet, nemlig R11e-LTE. Tilgangspunktet ble demontert, alt ble installert på sin plass (selv om du trenger å vite at SIM-kortet er plassert under modemet og det ikke er mulig å få det uten å fjerne hovedkortet), så sjekk SIM-kortet for funksjonalitet, ellers må du demontere tilgangspunktet flere ganger.

Deretter boret vi et par hull i kassen, installerte 2 pigtails og festet endene til modemet. Dessverre overlevde ingen bilder av prosessen. På den annen side ble universalantenner med magnetisk base festet til pigtails.

De viktigste oppsettstrinnene er beskrevet ganske godt på Internett, bortsett fra mindre interaksjonshull. For eksempel slutter modemet å motta SMS-meldinger når 5 av dem kommer og de henger i innboksen; sletting av meldinger og omstart av modemet løser ikke alltid problemet. Men i versjon 6.44.1 fungerer mottaket mer stabilt. Inbox viser de siste 4 smsene, resten slettes automatisk og forstyrrer ikke livet.

Hovedmålet med eksperimentet er å slå av og på grensesnitt på to rutere på samme fysiske nettverk. Hovedvanskeligheten var at Mikrotik ikke støtter administrasjon via SNMP, men bare tillater lesing av verdier. Derfor måtte jeg grave i den andre retningen, nemlig Mikrotik API.

Det er ingen klar dokumentasjon på hvordan jeg skal kontrollere det, så jeg måtte eksperimentere og denne instruksjonen ble laget for fremtidige forsøk.

For å administrere flere enheter trenger du en tilgjengelig og fungerende WEB-server på det lokale nettverket; den må kontrolleres ved hjelp av Mikrotik-kommandoer.

1. På Netmetal 5 må du lage et par skript for å slå den på og av, henholdsvis

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. Lag 2 skript på webserveren (selvfølgelig må php være installert på systemet i dette tilfellet):

<?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. Last ned routeros_api.class.php fra Mikrotik-forumet og plasser den i en tilgjengelig katalog på serveren.

I stedet for sfp-sfpplus16 må du spesifisere navnet på grensesnittet som skal deaktiveres/aktiveres.

Nå, når du sender en melding til et nummer i skjemaet

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

NETMETAL vil starte det tilsvarende skriptet, som igjen vil utføre kommandoen på WEB-serveren.

Hastigheten på operasjoner når du mottar SMS er en brøkdel av et sekund. Fungerer stabilt.

I tillegg er det funksjonalitet for å sende SMS til telefoner av Zabbix overvåkingssystem og åpne en sikkerhetskopi av Internett hvis optikken svikter. Kanskje dette er utenfor rammen av denne artikkelen, men jeg vil si med en gang at når du sender SMS, bør lengden passe inn i standardstørrelsen på én melding, fordi... Mikrotik deler dem ikke inn i deler, og når en lang melding kommer, sender den den rett og slett ikke, i tillegg må du filtrere tegnene som sendes i meldingene, ellers sendes ikke SMS-en.

Kilde: www.habr.com

Legg til en kommentar