Mikrotik. Verwaltung über SMS mit Hilfe eines WEB-Servers

Einen guten Tag allerseits!

Dieses Mal habe ich beschlossen, eine Situation zu beschreiben, die anscheinend im Internet nicht besonders gut dokumentiert ist, obwohl es einige Hinweise darauf gibt. Der Großteil stammt jedoch von einer langen, methodischen Analyse des Codes und des Mikrotik-Wikis.

Die Aufgabe besteht darin, über SMS mehrere Geräte zu steuern, am Beispiel des Ein- und Ausschaltens von Ports.

Folgendes habe ich:

  1. Zweitrouter CRS317-1G-16S+
  2. Zugangspunkt Mikrotik NETMETAL 5
  3. LTE-Modem R11e-LTE

Beginnen wir damit, dass der wunderbare Zugangspunkt Netmetal 5 einen Lötanschluss für eine SIM-Karte und einen Anschluss für die Installation des LTE-Modems hat. Daher wurde für diesen Zugangspunkt praktisch das beste Modem gekauft, das verfügbar war und von der Betriebssystemversion des Zugangspunkts unterstützt wurde, nämlich das R11e-LTE. Der Zugangspunkt wurde auseinandergebaut, alles an seinen Platz installiert (es sei angemerkt, dass die SIM-Karte sich unter dem Modem befindet und ohne das Entfernen der Hauptplatine nicht zugänglich ist). Daher überprüfen Sie bitte die Funktionstüchtigkeit der SIM-Karte, sonst müssen Sie den Zugangspunkt mehrmals auseinanderbauen.

Dann haben wir ein paar Löcher im Gehäuse gebohrt, zwei Pigtails installiert und die Enden am Modem befestigt. Leider wurden keine Fotos des Prozesses gespeichert. Auf der anderen Seite wurden die universalen Antennen mit Magnetfuß an die Pigtails angebracht.

Die wichtigsten Schritte zur Einrichtung sind im Internet ziemlich gut dokumentiert, abgesehen von kleinen Problemen bei der Interaktion. Zum Beispiel hört das Modem auf, SMS-Nachrichten zu empfangen, wenn 5 Stück eingehen und im Posteingang hängen. Das Löschen von Nachrichten und das Neustarten des Modems lösen das Problem nicht immer. In der Version 6.44.1 funktioniert der Empfang jedoch stabiler. Im Posteingang werden die letzten 4 SMS angezeigt, die anderen werden automatisch gelöscht und stören nicht das Leben.

Das Hauptziel des Experiments war es, die Schnittstellen auf zwei Routern in einem physischen Netzwerk ein- und auszuschalten. Die größte Schwierigkeit bestand darin, dass Mikrotik keine Verwaltung über SNMP unterstützt und nur das Auslesen von Werten zulässt. Daher musste ich in eine andere Richtung graben, nämlich die Mikrotik API.

Es gibt keine klare Dokumentation darüber, wie die Verwaltung funktioniert, daher musste ich experimentieren, und für zukünftige Versuche wurde diese Anleitung erstellt.

Für die Verwaltung mehrerer Geräte wird ein verfügbarer und funktionierender WEB-Server im lokalen Netzwerk benötigt, der die Aufgabe hat, Kommandos von Mikrotik zu verwalten.

1. Auf dem Netmetal 5 müssen ein paar Skripte zum Ein- und Ausschalten erstellt werden.

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 der Webseite. Server (Natürlich muss in diesem Fall PHP auf dem System installiert sein):

debug=true;

if ($API->connect('IP des verwalteten Mikrotik', 'Admin-Benutzername', 'Admin-Passwort')) {
    $API->comm("/interface/ethernet/enable", array(
    "numbers"=>"sfp-sfpplus16",));
}
   $API->disconnect();
?>

debug=true;

if ($API->connect('IP des verwalteten Mikrotik', 'Admin-Benutzername', 'Admin-Passwort')) {
    $API->comm("/interface/ethernet/disable", array(
    "numbers"=>"sfp-sfpplus16",));
}
   $API->disconnect();
?>

3. Laden Sie die Datei mikrotik routeros_api.class.php vom Forum herunter und speichern Sie sie in einem zugänglichen Verzeichnis auf Server.

statt sfp-sfpplus16 muss der Name der deaktivierten/aktivierten Schnittstelle angegeben werden.

Jetzt beim Senden einer Nachricht an die Nummer in Form von

:cmd GEHEIMCODE script enableiface
oder
:cmd GEHEIMCODE script disableiface 

NETMETAL wird das entsprechende Skript ausführen, und dieses wiederum führt den Befehl auf dem WEB-Server aus.

Die Ausführungsgeschwindigkeit bei der Empfang von SMS beträgt Bruchteile einer Sekunde. Es funktioniert stabil.

Darüber hinaus gibt es die Funktion, SMS an Telefone über das Überwachungssystem Zabbix zu senden und einen Backup-Internetzugang zu öffnen, wenn die Glasfaser ausfällt. Das geht vielleicht über den Rahmen dieses Artikels hinaus, aber ich sage gleich, dass die Länge der SMS den Standard einer einzelnen Nachricht nicht überschreiten sollte, da Mikrotik diese nicht in Teile aufteilt und bei langen Nachrichten einfach nicht sendet. Zudem müssen die Zeichen, die in die Nachrichten gesendet werden, gefiltert werden, da die SMS sonst nicht gesendet wird.

Quelle: habr.com

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster