Mikrotik. Verwaltung per SMS über WEB-Server

Guten Tag an alle!

Dieses Mal habe ich beschlossen, eine Situation zu beschreiben, die im Internet nicht besonders beschrieben zu sein scheint, obwohl es einige Hinweise dazu gibt, aber das meiste davon war nur ein langes methodisches Durchsuchen des Codes und des Wikis von Mikrotik selbst.

Die eigentliche Aufgabe: Die Steuerung mehrerer Geräte per SMS am Beispiel des Ein- und Ausschaltens von Ports realisieren.

Es gibt:

  1. Sekundärer Router CRS317-1G-16S+
  2. Mikrotik NETMETAL 5 Zugangspunkt
  3. LTE-Modem R11e-LTE

Beginnen wir mit der Tatsache, dass der wunderbare Netmetal 5 Access Point über einen angelöteten SIM-Kartenanschluss und einen Anschluss für die Installation eines LTE-Modems verfügt. Daher wurde für diesen Punkt im Wesentlichen das beste Modem gekauft, das verfügbar war und vom Betriebssystem des Punkts selbst unterstützt wurde, nämlich R11e-LTE. Der Access Point wurde zerlegt, alles wurde an seinem Platz installiert (wobei Sie wissen müssen, dass sich die SIM-Karte unter dem Modem befindet und es nicht möglich ist, sie zu bekommen, ohne die Hauptplatine zu entfernen), also überprüfen Sie die SIM-Karte auf Funktionalität. Andernfalls müssen Sie den Access Point mehrmals demontieren.

Als nächstes bohrten wir ein paar Löcher in das Gehäuse, installierten zwei Pigtails und befestigten die Enden am Modem. Leider sind von diesem Vorgang keine Fotos erhalten. Andererseits wurden an den Pigtails Universalantennen mit Magnetfuß befestigt.

Die wichtigsten Einrichtungsschritte sind im Internet recht gut beschrieben, bis auf kleinere Interaktionslücken. Beispielsweise empfängt das Modem keine SMS-Nachrichten mehr, wenn fünf davon eintreffen und diese im Posteingang hängen bleiben. Das Löschen von Nachrichten und ein Neustart des Modems lösen das Problem nicht immer. Doch in der Version 5 funktioniert der Empfang stabiler. Im Posteingang werden die letzten 6.44.1 SMS angezeigt, der Rest wird automatisch gelöscht und beeinträchtigt das Leben nicht.

Das Hauptziel des Experiments besteht darin, Schnittstellen auf zwei Routern im selben physischen Netzwerk ein- und auszuschalten. Die Hauptschwierigkeit bestand darin, dass Mikrotik die Verwaltung über SNMP nicht unterstützt, sondern lediglich das Auslesen von Werten zulässt. Deshalb musste ich in die andere Richtung graben, nämlich die Mikrotik-API.

Es gibt keine klare Dokumentation zur Steuerung, daher musste ich experimentieren und diese Anleitung wurde für zukünftige Versuche erstellt.

Um mehrere Geräte zu verwalten, benötigen Sie einen zugänglichen und funktionierenden WEB-Server im lokalen Netzwerk; dieser muss mit Mikrotik-Befehlen gesteuert werden.

1. Unter Netmetal 5 müssen Sie ein paar Skripte erstellen, um es ein- bzw. auszuschalten

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. Erstellen Sie 2 Skripte auf dem Webserver (in diesem Fall muss natürlich PHP auf dem System installiert sein):

<?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. Laden Sie routeros_api.class.php aus dem Mikrotik-Forum herunter und legen Sie es in einem zugänglichen Verzeichnis auf dem Server ab.

Anstelle von sfp-sfpplus16 müssen Sie den Namen der Schnittstelle angeben, die deaktiviert/aktiviert werden soll.

Nun, wenn Sie eine Nachricht an eine Nummer im Formular senden

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

NETMETAL startet das entsprechende Skript, das wiederum den Befehl auf dem WEB-Server ausführt.

Die Betriebsgeschwindigkeit beim Empfang von SMS beträgt den Bruchteil einer Sekunde. Funktioniert stabil.

Darüber hinaus gibt es Funktionen zum Senden von SMS an Telefone durch das Zabbix-Überwachungssystem und zum Öffnen einer Backup-Internetverbindung, wenn die Optik ausfällt. Vielleicht würde dies den Rahmen dieses Artikels sprengen, aber ich sage gleich, dass beim Versenden von SMS deren Länge in die Standardgröße einer Nachricht passen sollte, weil... Mikrotik teilt sie nicht in Teile auf, und wenn eine lange Nachricht eintrifft, wird sie einfach nicht gesendet. Außerdem müssen Sie die in den Nachrichten übertragenen Zeichen filtern, da sonst die SMS nicht gesendet wird.

Source: habr.com

Kommentar hinzufügen