Microtik. Gestió via SMS mitjançant servidor WEB

Bon dia a tothom!

Aquesta vegada vaig decidir descriure una situació que no sembla descrita especialment a Internet, tot i que hi ha algunes pistes al respecte, però la majoria va ser només una llarga investigació metòdica del codi i la wiki de Mikrotik mateix.

La tasca real: implementar el control de diversos dispositius mitjançant SMS, utilitzant l'exemple d'encendre i apagar ports.

Disponible:

  1. Encaminador secundari CRS317-1G-16S+
  2. Punt d'accés Mikrotik NETMETAL 5
  3. Mòdem LTE R11e-LTE

Comencem pel fet que el meravellós punt d'accés Netmetal 5 té a bord un connector de targeta SIM soldat i un port per instal·lar un mòdem LTE. Per tant, per a aquest punt, essencialment es va comprar el millor mòdem del que estava disponible i suportat pel sistema operatiu del mateix punt, és a dir, R11e-LTE. El punt d'accés es va desmuntar, tot es va instal·lar al seu lloc (tot i que cal saber que la targeta SIM es troba sota el mòdem i no és possible obtenir-la sense treure la placa principal), així que comproveu la funcionalitat de la targeta SIM, en cas contrari, haureu de desmuntar el punt d'accés diverses vegades.

A continuació, vam perforar un parell de forats a la caixa, vam instal·lar 2 coles i vam fixar els extrems al mòdem. Malauradament, no van sobreviure cap foto del procés. D'altra banda, les antenes universals amb base magnètica s'acoblaven a les tresses.

Els passos principals de configuració es descriuen força bé a Internet, tret de petites llacunes d'interacció. Per exemple, el mòdem deixa de rebre missatges SMS quan arriben 5 d'ells i es pengen a la safata d'entrada; esborrar missatges i reiniciar el mòdem no sempre solucionen el problema. Però a la versió 6.44.1 la recepció funciona més estable. Inbox mostra els darrers 4 sms, la resta s'esborren automàticament i no interfereixen amb la vida.

L'objectiu principal de l'experiment és apagar i encendre les interfícies de dos encaminadors de la mateixa xarxa física. La principal dificultat va ser que Mikrotik no admet la gestió mitjançant SNMP, sinó que només permet llegir valors. Per tant, vaig haver de cavar en l'altra direcció, és a dir, l'API Mikrotik.

No hi ha documentació clara sobre com controlar-lo, així que vaig haver d'experimentar i es va fer aquesta instrucció per a futurs intents.

Per gestionar diversos dispositius, necessitareu un servidor WEB accessible i que funcioni a la xarxa local; caldrà controlar-lo mitjançant les ordres de Mikrotik.

1. A Netmetal 5, heu de fer un parell de scripts per activar-lo i apagar-lo, respectivament

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. Creeu 2 scripts al servidor web (per descomptat, php s'ha d'instal·lar al sistema en aquest cas):

<?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. Baixeu routeros_api.class.php des del fòrum Mikrotik i col·loqueu-lo en un directori accessible del servidor.

En lloc de sfp-sfpplus16, heu d'especificar el nom de la interfície que s'ha de desactivar/habilitar.

Ara, en enviar un missatge a un número del formulari

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

NETMETAL llançarà l'script corresponent, que al seu torn executarà l'ordre al servidor WEB.

La velocitat de les operacions en rebre SMS és d'una fracció de segon. Funciona de manera estable.

A més, hi ha una funcionalitat per enviar SMS als telèfons mitjançant el sistema de monitorització Zabbix i obrir una connexió a Internet de seguretat si falla l'òptica. Potser això està fora de l'abast d'aquest article, però de seguida diré que quan envieu SMS, la seva longitud hauria d'ajustar-se a la mida estàndard d'un missatge, perquè... Mikrotik no els divideix en parts, i quan arriba un missatge llarg, simplement no l'envia, a més, cal filtrar els caràcters transmesos als missatges, en cas contrari no s'enviarà l'SMS.

Font: www.habr.com

Afegeix comentari