Mikrotik. Beheer via SMS met behulp van een WEB-server

Goeden dag allemaal!

Dit keer besloot ik een situatie te beschrijven die eigenlijk niet zo goed op internet is beschreven, hoewel er enkele aanwijzingen voor zijn. De meeste informatie kwam voort uit langdurig en methodisch graven in de code en de wiki van Mikrotik.

Eigenlijk is de taak: het realiseren van SMS-besturing voor meerdere apparaten, aan de hand van het in- en uitschakelen van poorten.

Er is:

  1. Secundaire router CRS317-1G-16S+
  2. Toegangspunt Mikrotik NETMETAL 5
  3. LTE-modem R11e-LTE

Laten we beginnen met het feit dat het geweldige toegangspunt Netmetal 5 een gepinde SIM-kaartsleuf en een poort voor het installeren van een LTE-modem aan boord heeft. Daarom is voor dit toegangspunt de beste modem gekocht die beschikbaar was en ondersteund werd door het besturingssysteem van het toegangspunt, namelijk de R11e-LTE. Het toegangspunt werd gedemonteerd, alles werd op zijn plaats geïnstalleerd (hoewel je moet weten dat de SIM-kaart onder de modem zit en zonder de hoofdprintplaat te verwijderen niet te bereiken is), controleer daarom de SIM-kaart op functionaliteit, anders moet je het toegangspunt meerdere keren demonteren.

Vervolgens hebben we een paar gaten in de behuizing geboord, 2 pigtails geïnstalleerd en de uiteinden op de modem bevestigd. Helaas zijn er geen foto's van het proces bewaard. Aan de andere kant hebben we universele antennes met een magnetische basis op de pigtails gemonteerd.

De belangrijkste stappen voor de configuratie zijn op internet vrij goed beschreven, behalve voor wat kleine foutjes in de interactie. Bijvoorbeeld, de modem stopt met het ontvangen van SMS-berichten wanneer er 5 binnenkomen en ze in de Inbox blijven hangen; het opschonen van berichten en het opnieuw opstarten van de modem lossen het probleem niet altijd op. Maar in versie 6.44.1 werkt het ontvangen betrouwbaarder. In de Inbox worden de 4 laatste sms'jes weergegeven, de rest wordt automatisch gewist en hindert het leven niet.

Het belangrijkste doel van het experiment is het uitschakelen en inschakelen van interfaces op twee routers binnen één fysiek netwerk. De grootste moeilijkheid was dat Mikrotik geen beheer via SNMP ondersteunt, maar alleen waarden kan uitlezen. Daarom moest ik in een andere richting graven, namelijk de Mikrotik API.

Er is geen duidelijke documentatie over hoe je dit kunt beheren, dus ik moest experimenteren en deze instructie is gemaakt voor toekomstige pogingen.

Voor het beheersen van meerdere apparaten is een beschikbare en werkende WEB-server in het lokale netwerk nodig, die verantwoordelijk is voor het beheer via de Mikrotik-commando's.

1. Op Netmetal 5 moeten een paar scripts worden gemaakt voor het in- en uitschakelen.

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. Maak 2 scripts op het web. de server (Natuurlijk moet PHP in dit geval op het systeem geïnstalleerd zijn):

debug=true;

if ($API->connect('IP van de beheerde Mikrotik', 'admin login', 'admin wachtwoord')) {
    $API->comm("\/interface\/ethernet\/enable", array(
    "numbers"=>"sfp-sfpplus16",));
}
   $API->disconnect();
?>

debug=true;

if ($API->connect('IP van de beheerde Mikrotik', 'admin login', 'admin wachtwoord')) {
    $API->comm("\/interface\/ethernet\/disable", array(
    "numbers"=>"sfp-sfpplus16",));
}
   $API->disconnect();
?>

3. Download routeros_api.class.php van het Mikrotik forum en plaats het in een toegankelijke map op. de server.

In plaats van sfp-sfpplus16 moet de naam van de in- of uit te schakelen interface worden opgegeven.

Nu, bij het verzenden van een bericht naar het nummer in de vorm van

:cmd GEHEIMCODE script enableiface
of
:cmd GEHEIMCODE script disableiface 

NETMETAL zal het bijbehorende script uitvoeren, dat op zijn beurt de opdracht op de WEB-server uitvoert.

De snelheid van het uitvoeren van operaties bij het ontvangen van SMS is een fractie van een seconde. Werkt stabiel.

Daarnaast zijn er functies voor het verzenden van SMS naar telefoons via het monitoring systeem Zabbix en het openen van een reserve internetverbinding bij een storing van de glasvezel. Dit gaat buiten het kader van dit artikel, maar ik kan meteen zeggen dat bij het verzenden van SMS de lengte ervan binnen de standaardgrootte van één bericht moet passen, aangezien Mikrotik deze niet opdeelt in delen, en bij het ontvangen van een lang bericht gewoon niet verzendt. Bovendien moeten de tekens die in berichten worden verzonden, worden gefilterd, anders wordt de SMS niet verzonden.

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster