Mikrotik. Διαχείριση μέσω SMS με χρήση διακομιστή WEB

Καλημέρα σε όλους!

Αυτή τη φορά αποφάσισα να περιγράψω μια κατάσταση που δεν φαίνεται να περιγράφεται ιδιαίτερα στο Διαδίκτυο, αν και υπάρχουν κάποιες υποδείξεις σχετικά, αλλά το μεγαλύτερο μέρος της ήταν απλώς μια μακρά μεθοδική ανασκαφή του κώδικα και του ίδιου του wiki του Mikrotik.

Η πραγματική εργασία: να εφαρμόσετε τον έλεγχο πολλών συσκευών χρησιμοποιώντας SMS, χρησιμοποιώντας το παράδειγμα ενεργοποίησης και απενεργοποίησης θυρών.

Διαθέσιμος:

  1. Δευτερεύων δρομολογητής CRS317-1G-16S+
  2. Σημείο πρόσβασης Mikrotik NETMETAL 5
  3. Μόντεμ LTE R11e-LTE

Ας ξεκινήσουμε με το γεγονός ότι το υπέροχο σημείο πρόσβασης Netmetal 5 διαθέτει μια κολλημένη υποδοχή κάρτας SIM και μια θύρα για την εγκατάσταση ενός μόντεμ LTE. Επομένως, για αυτό το σημείο, αγοράστηκε ουσιαστικά το καλύτερο μόντεμ από αυτό που ήταν διαθέσιμο και υποστηριζόταν από το ίδιο το λειτουργικό σύστημα του σημείου, δηλαδή το R11e-LTE. Το σημείο πρόσβασης αποσυναρμολογήθηκε, όλα εγκαταστάθηκαν στη θέση τους (αν και πρέπει να γνωρίζετε ότι η κάρτα SIM βρίσκεται κάτω από το μόντεμ και δεν είναι δυνατή η λήψη της χωρίς να αφαιρέσετε την κύρια πλακέτα), επομένως ελέγξτε την κάρτα SIM για λειτουργικότητα, διαφορετικά θα πρέπει να αποσυναρμολογήσετε το σημείο πρόσβασης πολλές φορές.

Στη συνέχεια, ανοίξαμε μερικές τρύπες στη θήκη, τοποθετήσαμε 2 πλεξίδες και στερεώσαμε τα άκρα στο μόντεμ. Δυστυχώς, δεν σώθηκαν φωτογραφίες από τη διαδικασία. Από την άλλη πλευρά, οι γενικές κεραίες με μαγνητική βάση προσαρμόστηκαν στις πλεξίδες.

Τα κύρια βήματα εγκατάστασης περιγράφονται αρκετά καλά στο Διαδίκτυο, εκτός από μικρά κενά αλληλεπίδρασης. Για παράδειγμα, το μόντεμ σταματά να λαμβάνει μηνύματα SMS όταν φτάνουν 5 από αυτά και μένουν στα Εισερχόμενα· η εκκαθάριση των μηνυμάτων και η επανεκκίνηση του μόντεμ δεν λύνουν πάντα το πρόβλημα. Αλλά στην έκδοση 6.44.1 η λήψη λειτουργεί πιο σταθερά. Το Inbox εμφανίζει τα τελευταία 4 sms, τα υπόλοιπα διαγράφονται αυτόματα και δεν παρεμποδίζουν τη ζωή.

Ο κύριος στόχος του πειράματος είναι να απενεργοποιήσει και να ενεργοποιήσει τις διεπαφές σε δύο δρομολογητές στο ίδιο φυσικό δίκτυο. Η κύρια δυσκολία ήταν ότι η Mikrotik δεν υποστηρίζει τη διαχείριση μέσω SNMP, αλλά επιτρέπει μόνο την ανάγνωση τιμών. Ως εκ τούτου, έπρεπε να σκάψω προς την άλλη κατεύθυνση, δηλαδή το Mikrotik API.

Δεν υπάρχει σαφής τεκμηρίωση για το πώς να το ελέγξω, οπότε έπρεπε να πειραματιστώ και αυτή η οδηγία έγινε για μελλοντικές προσπάθειες.

Για να διαχειριστείτε πολλές συσκευές, θα χρειαστείτε έναν προσβάσιμο και λειτουργικό διακομιστή WEB στο τοπικό δίκτυο, ο οποίος θα πρέπει να ελέγχεται χρησιμοποιώντας εντολές Mikrotik.

1. Στο Netmetal 5 πρέπει να κάνετε μερικά σενάρια για να το ενεργοποιήσετε και να το απενεργοποιήσετε, αντίστοιχα

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. Δημιουργήστε 2 scripts στον web server (φυσικά, σε αυτήν την περίπτωση, η php πρέπει να είναι εγκατεστημένη στο σύστημα):

<?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. Κατεβάστε το routeros_api.class.php από το φόρουμ της Mikrotik και τοποθετήστε το σε έναν προσβάσιμο κατάλογο στο διακομιστή.

Αντί για sfp-sfpplus16, πρέπει να καθορίσετε το όνομα της διεπαφής που θα απενεργοποιηθεί/ενεργοποιηθεί.

Τώρα, όταν στέλνετε ένα μήνυμα σε έναν αριθμό στη φόρμα

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

Το NETMETAL θα εκκινήσει το αντίστοιχο σενάριο, το οποίο με τη σειρά του θα εκτελέσει την εντολή στον διακομιστή WEB.

Η ταχύτητα των λειτουργιών κατά τη λήψη SMS είναι κλάσμα του δευτερολέπτου. Λειτουργεί σταθερά.

Επιπλέον, υπάρχει δυνατότητα αποστολής SMS σε τηλέφωνα μέσω του συστήματος παρακολούθησης Zabbix και ανοίγματος εφεδρικής σύνδεσης στο Διαδίκτυο σε περίπτωση βλάβης των οπτικών. Ίσως αυτό να ξεφεύγει από το πεδίο αυτού του άρθρου, αλλά θα πω αμέσως ότι κατά την αποστολή SMS, το μήκος τους πρέπει να ταιριάζει στο τυπικό μέγεθος ενός μηνύματος, επειδή... Το Mikrotik δεν τα χωρίζει σε μέρη και όταν φθάνει ένα μεγάλο μήνυμα, απλά δεν το στέλνει, επιπλέον, πρέπει να φιλτράρετε τους χαρακτήρες που μεταδίδονται στα μηνύματα, διαφορετικά το SMS δεν θα σταλεί.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο