Mikrotik. Controle via SMS através de um servidor WEB

Boa tarde a todos!

Desta vez, decidi descrever uma situação que, aparentemente, não está muito documentada na internet, embora existam algumas dicas sobre o assunto, mas a maior parte foi obtida através de uma longa investigação metódica no código e na wiki do Mikrotik.

A tarefa, na verdade, é implementar o controle de vários dispositivos via SMS, usando como exemplo a ativação e desativação de portas.

Temos:

  1. Roteador secundário CRS317-1G-16S+
  2. Ponto de acesso Mikrotik NETMETAL 5
  3. Modem LTE R11e-LTE

Comecemos pelo fato de que o maravilhoso ponto de acesso Netmetal 5 possui um slot para cartão SIM e uma porta para instalar o modem LTE. Portanto, para este ponto, foi adquirido essencialmente o melhor modem disponível que é suportado pelo sistema operacional do próprio ponto, ou seja, o R11e-LTE. O ponto foi desmontado, tudo foi instalado em seus devidos lugares (embora seja necessário saber que o cartão SIM está localizado sob o modem e não pode ser acessado sem remover a placa principal), então verifique se o cartão SIM está funcionando, caso contrário, você terá que desmontar o ponto de acesso várias vezes.

Em seguida, perfuramos alguns buracos na carcaça, instalamos 2 pigtails e fixamos as extremidades no modem. Infelizmente, não foram salvas fotos do processo. Do outro lado, fixamos antenas universais com base magnética nos pigtails.

As etapas principais de configuração estão bem documentadas na internet, exceto por alguns pequenos problemas de interação. Por exemplo, o modem para de receber mensagens SMS quando chegam 5 e elas ficam na Caixa de Entrada; limpar as mensagens ou reiniciar o modem nem sempre resolve o problema. No entanto, na versão 6.44.1, a recepção funciona de forma mais estável. Na Caixa de Entrada aparecem as 4 últimas SMS, as demais são automaticamente apagadas e não atrapalham a operação.

O objetivo principal do experimento é desligar e ligar interfaces em dois roteadores em uma única rede física. A principal dificuldade foi que o Mikrotik não suporta controle via SNMP, permitindo apenas a leitura de valores. Portanto, precisei explorar outra direção, especificamente a API do Mikrotik.

Não existe documentação clara sobre como fazer o controle, então precisei experimentar, e para tentativas futuras, foi criada esta instrução.

Para controlar vários dispositivos, será necessário ter um servidor WEB acessível e funcional na rede local, que terá a tarefa de gerenciar os comandos do Mikrotik.

1. No Netmetal 5, é necessário criar alguns scripts para ativar e desativar respectivamente.

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. Criar 2 scripts na web. servidor (claro que o sistema neste caso deve ter php instalado):

debug=true;

if ($API->connect('IP do Mikrotik gerenciado', 'login do administrador', 'senha do administrador')) {
    $API->comm("\/interface\/ethernet\/enable", array(
    "numbers"=>"sfp-sfpplus16",));
}
   $API->disconnect();
?>

debug=true;

if ($API->connect('IP do Mikrotik gerenciado', 'login do administrador', 'senha do administrador')) {
    $API->comm("\/interface\/ethernet\/disable", array(
    "numbers"=>"sfp-sfpplus16",));
}
   $API->disconnect();
?>

3. Baixar do fórum Mikrotik o routeros_api.class.php e colocá-lo em um diretório acessível. servidor.

No lugar de sfp-sfpplus16, deve-se especificar o nome da interface a ser desabilitada/habilitada.

Agora, ao enviar uma mensagem para o número no formato

:cmd CÓDIGO_SECRETO script enableiface
ou
:cmd CÓDIGO_SECRETO script disableiface 

O NETMETAL irá executar o script correspondente, e este, por sua vez, executará o comando no servidor WEB.

A velocidade de execução das operações ao receber SMS é de frações de segundo. Funciona de forma estável.

Além disso, há a funcionalidade de envio de SMS para telefones pelo sistema de monitoramento Zabbix e abertura de um acesso de internet backup em caso de queda da fibra ótica. Isso talvez saia um pouco do escopo deste artigo, mas vale dizer que, ao enviar SMS, seu comprimento deve estar dentro do tamanho padrão de uma única mensagem, pois o Mikrotik não fraciona, e ao receber uma mensagem longa ele simplesmente não a envia. Além disso, é necessário filtrar os caracteres transmitidos nas mensagens, caso contrário, o SMS não será enviado.

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster