Mikrotik. SMS-alapú vezérlés a WEB szerveren keresztül

Kellemes napot mindenkinek!

Ezúttal egy olyan helyzetet szeretnék leírni, amelyről úgy tűnik, hogy az interneten nem igazán található információ, bár van néhány utalás rá, de a legtöbb információ hosszú, módszeres kód és a Mikrotik wiki kibogozásából származik.

A feladat tehát: SMS segítéségével több eszköz irányítása, például a portok be- és kikapcsolásának példáján keresztül.

Van:

  1. Másodlagos router CRS317-1G-16S+
  2. Mikrotik NETMETAL 5 hozzáférési pont
  3. LTE modem R11e-LTE

Kezdjük azzal, hogy a csodálatos Netmetal 5 hozzáférési pont egy beépített SIM-kártya csatlakozóval és LTE modem csatlakozóval rendelkezik. Ezért ehhez a ponthoz a gyakorlatilag legjobban elérhető és az eszköz operációs rendszer által támogatott modem, az R11e-LTE lett megvásárolva. A pontot szétszedtük, minden a helyére került (bár tudni kell, hogy a SIM-kártya a modem alatt található, és a főlap eltávolítása nélkül nem lehet hozzáférni), ezért ellenőrizze a SIM-kártya működőképességét, különben többször is szét kell szerelnie a hozzáférési pontot.

Ezután néhány lyukat fúrtunk a házába, 2 pigtailt szereltünk be, és a végeket rögzítettük a modemhez. Sajnos a folyamat képei nem maradtak meg. A pigtailokra univerzális mágneses alapú antennákat rögzítettünk.

A beállítások főbb lépései az interneten meglehetősen jól dokumentáltak, kivéve néhány apró hibát az interakció során. Például a modem nem fogad SMS-eket, amikor 5 üzenet érkezik, és azok a bejövő (Inbox) mappában lógnak, az üzenetek törlése, a modem újraindítása nem mindig oldja meg a problémát. De a 6.44.1-es verzióban a fogadás stabilabban működik. Az Inbox-ban az utolsó 4 SMS jelenik meg, a többi automatikusan törlődik és nem zavarja az életet.

A kísérlet fő célja két router interfészeinek ki- és bekapcsolása egy fizikai hálózaton belül. A fő nehézség az volt, hogy a Mikrotik nem támogatja az SNMP-n keresztüli vezérlést, csak az értékek olvasását teszi lehetővé. Így más irányba kellett ásni, nevezetesen a Mikrotik API felé.

Nincs pontos dokumentáció arról, hogyan kell irányítani, ezért kísérletezni kellett, és az esetleges jövőbeli próbálkozások érdekében elkészült ez az útmutató.

Több eszköz irányításához elérhető és működő WEB szerverre van szükség a helyi hálózaton, amely a Mikrotik parancsok szerinti irányítás feladatát látja el.

1. A Netmetal 5 rendszerhez néhány scriptet kell írni a be- és kikapcsolásukhoz.

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. Két scriptet kell létrehozni az weben. szerveren (természetesen a rendszernek php-t kell telepíteni):

debug=true;

if ($API->connect('A Mikrotik IP-címe', 'adminisztrátor bejelentkezés', 'adminisztrátor jelszó')) {
    $API->comm("\/interface\/ethernet\/enable", array(
    "numbers"=>"sfp-sfpplus16",));
}
   $API->disconnect();
?>

debug=true;

if ($API->connect('A Mikrotik IP-címe', 'adminisztrátor bejelentkezés', 'adminisztrátor jelszó')) {
    $API->comm("\/interface\/ethernet\/disable", array(
    "numbers"=>"sfp-sfpplus16",));
}
   $API->disconnect();
?>

3. Töltsd le a forumról a mikrotik routeros_api.class.php fájlt, és helyezd el egy elérhető mappába. szerveren.

A sfp-sfpplus16 helyett a le- vagy bekapcsolni kívánt interfész nevét kell megadni.

Most, amikor üzenetet küldesz egy számra a következő formában,

:cmd TITKOSKÓD script enableiface
vagy
:cmd TITKOSKÓD script disableiface 

A NETMETAL az adott scriptet futtatja, amely aztán végrehajtja a parancsot a WEB szerveren.

Az SMS üzenetek fogadásának sebessége másodpercek töredéke. Stabilan működik.

Ezen kívül van egy funkció, amely lehetővé teszi SMS küldését a Zabbix monitorozó rendszer telefonszámaira, és amikor az optikai link megszakad, automatikusan megnyit egy tartalék internetkapcsolatot. Ez talán túlmutat az írás határain, de röviden elmondom, hogy az SMS-ek hossza meg kell, hogy feleljen az egy üzenetre vonatkozó szabványos méretnek, mivel a Mikrotik nem osztja fel azokat részletekre, és ha egy hosszú üzenet érkezik, egyszerűen nem küldi el, emellett figyelni kell az üzenetben továbbított karakterekre is, mert különben az SMS nem kerül elküldésre.

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster