Mikrotik. Zarządzanie przez SMS za pomocą serwera WEB

Dzień dobry wszystkim!

Tym razem postanowiłem opisać sytuację, która wydaje się być niezbyt dobrze opisana w internecie, choć są pewne jej symptomatyczne wskazania, ale większość pochodzi po prostu z długiego, metodycznego grzebania w kodzie i wiki samego Mikrotika.

Zadanie: zrealizować zarządzanie kilkoma urządzeniami za pomocą SMS, na przykład włączanie i wyłączanie portów.

Mamy:

  1. Drugorzędny router CRS317-1G-16S+
  2. Punkt dostępu Mikrotik NETMETAL 5
  3. Modem LTE R11e-LTE

Zacznijmy od tego, że wspaniały punkt dostępu Netmetal 5 ma na pokładzie lutowany gniazdo na kartę SIM oraz port do montażu modemu LTE. Dlatego dla tego punktu zakupiono zasadniczo najlepszy modem dostępny i wspierany przez system operacyjny samego punktu, a mianowicie R11e-LTE. Punkt został rozebrany, wszystko zamontowane na swoich miejscach (choć warto wiedzieć, że karta SIM znajduje się pod modemem i jej wydobycie bez zdjęcia głównej płyty jest niemożliwe), więc sprawdź kartę SIM pod kątem sprawności, w przeciwnym razie będzie trzeba kilka razy rozbierać punkt dostępu.

Następnie wywierciliśmy kilka otworów w obudowie, zainstalowaliśmy 2 pigtail'e i końce zamocowaliśmy na modemie. Niestety zdjęcia z tego procesu się nie zachowały. Z drugiej strony do pigtail'i przymocowaliśmy uniwersalne anteny z magnetyczną podstawą.

Podstawowe etapy konfiguracji są dość dobrze opisane w internecie, poza drobnymi błędami w interakcji. Na przykład modem przestaje odbierać wiadomości SMS, gdy przychodzi 5 sztuk i wisi w Inbox, a czyszczenie wiadomości, restart modemu nie zawsze rozwiązuje problem. Jednak w wersji 6.44.1 odbiór działa bardziej stabilnie. W Inbox wyświetlane są 4 ostatnie SMS-y, pozostałe są automatycznie usuwane i nie przeszkadzają w życiu.

Głównym celem eksperymentu jest wyłączanie i włączanie interfejsów na dwóch routerach w jednej fizycznej sieci. Główną trudnością było to, że Mikrotik nie obsługuje zarządzania przez SNMP, a pozwala tylko odczytywać wartości. Dlatego musiałem poszukać w innym kierunku, a mianowicie Mikrotik API.

Nie ma jasnej dokumentacji dotyczącej zarządzania, dlatego trzeba było eksperymentować i dla przyszłych prób stworzono tę instrukcję.

Aby zarządzać kilkoma urządzeniami, potrzebny będzie dostępny i funkcjonujący serwer WEB w lokalnej sieci, który będzie miał za zadanie zarządzanie za pomocą poleceń Mikrotik.

1. Na Netmetal 5 trzeba stworzyć kilka skryptów do włączania i wyłączania odpowiednio

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. Stwórz 2 skrypty na stronie internetowej serwerze (oczywiście w systemie w tym przypadku powinien być zainstalowany php):

debug=true;

if ($API->connect('IP zarządzanego Mikrotika', 'login administratora', 'hasło administratora')) {
    $API->comm("\/interface\/ethernet\/enable", array(
    "numbers"=>"sfp-sfpplus16",));
}
   $API->disconnect();
?>

debug=true;

if ($API->connect('IP zarządzanego Mikrotika', 'login administratora', 'hasło administratora')) {
    $API->comm("\/interface\/ethernet\/disable", array(
    "numbers"=>"sfp-sfpplus16",));
}
   $API->disconnect();
?>

3. Pobierz z forum Mikrotik routeros_api.class.php i umieść go w dostępnej katalogu na serwerze.

zamiast sfp-sfpplus16 trzeba podać nazwę wyłączanego/włączanego interfejsu.

Teraz przy wysyłaniu wiadomości na numer w postaci

:cmd SEKRETNYKOD script enableiface
lub
:cmd SEKRETNYKOD script disableiface 

NETMETAL uruchomi odpowiedni skrypt, a ten wykonana polecenia na serwerze WEB.

Szybkość realizacji operacji przy odbiorze sms to ułamek sekundy. Działa stabilnie.

Oprócz tego istnieje funkcja wysyłania SMS na telefony przez system monitorowania Zabbix i otwierania zapasowego wyjścia do internetu w przypadku awarii światłowodu. To może wykraczać poza ramy tego artykułu, ale od razu powiem, że przy wysyłaniu sms długość ich treści powinna mieścić się w standardowym rozmiarze jednej wiadomości, ponieważ Mikrotik nie dzieli ich na części, a w przypadku długiej wiadomości po prostu jej nie wysyła. Ponadto trzeba filtrować znaki przesyłane w wiadomościach, w przeciwnym razie SMS nie zostanie wysłany.

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster