Mikrotik. WEB sunucusunu kullanarak SMS yoluyla kontrol

Herkese iyi günler!

Bu sefer internette pek açıklanmayan bir durumu anlatmaya karar verdim, bununla ilgili bazı ipuçları olmasına rağmen, çoğu Mikrotik'in kodunun ve wiki'sinin uzun ve metodik bir şekilde kazılmasıydı.

Asıl görev: bağlantı noktalarını açma ve kapatma örneğini kullanarak SMS kullanarak birkaç cihazın kontrolünü uygulamak.

Mevcut:

  1. İkincil yönlendirici CRS317-1G-16S+
  2. Mikrotik NETMETAL 5 erişim noktası
  3. LTE modem R11e-LTE

Harika Netmetal 5 erişim noktasının yerleşik bir SIM kart konektörüne ve bir LTE modemi kurmak için bir bağlantı noktasına sahip olduğu gerçeğiyle başlayalım. Bu nedenle, bu noktada esas olarak en iyi modem, mevcut olan ve bu noktanın işletim sistemi tarafından desteklenen R11e-LTE'den satın alındı. Erişim noktası söküldü, her şey yerine takıldı (ancak SIM kartın modemin altında bulunduğunu ve ana kartı çıkarmadan onu almanın mümkün olmadığını bilmeniz gerekir), bu nedenle SIM kartın işlevselliğini kontrol edin, aksi takdirde erişim noktasını birkaç kez sökmeniz gerekecektir.

Daha sonra kasaya birkaç delik açtık, 2 adet pigtail taktık ve uçlarını modeme sabitledik. Ne yazık ki, sürecin hiçbir fotoğrafı hayatta kalmadı. Öte yandan pigtaillere manyetik tabanlı evrensel antenler takıldı.

Ana kurulum adımları, küçük etkileşim boşlukları dışında internette oldukça iyi anlatılmıştır. Örneğin, 5 SMS mesajı geldiğinde modem almayı durduruyor ve SMS mesajları Gelen Kutusu'nda kalıyor; mesajları silmek ve modemi yeniden başlatmak her zaman sorunu çözmez. Ancak 6.44.1 sürümünde alım daha stabil çalışıyor. Inbox'ta son 4 sms görüntülenir, geri kalanı otomatik olarak silinir ve hayata müdahale etmez.

Deneyin temel amacı, aynı fiziksel ağdaki iki yönlendiricideki arayüzleri kapatıp açmaktır. Asıl zorluk, Mikrotik'in SNMP aracılığıyla yönetimi desteklememesi, yalnızca değerlerin okunmasına izin vermesiydi. Bu nedenle diğer yöne, yani Mikrotik API'ye yönelmek zorunda kaldım.

Bunun nasıl kontrol edileceğine dair net bir belge yok, bu yüzden denemek zorunda kaldım ve bu talimat gelecekteki girişimler için hazırlandı.

Birden fazla cihazı yönetmek için yerel ağda erişilebilir ve çalışan bir WEB sunucusuna ihtiyacınız olacak; bunun Mikrotik komutları kullanılarak kontrol edilmesi gerekecek.

1. Netmetal 5'i açmak ve kapatmak için sırasıyla birkaç komut dosyası oluşturmanız gerekir.

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. Web sunucusunda 2 script oluşturun (elbette bu durumda sisteme php kurulu olmalıdır):

<?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. Mikrotik forumundan routeros_api.class.php dosyasını indirin ve sunucudaki erişilebilir bir dizine yerleştirin.

Sfp-sfpplus16 yerine devre dışı bırakılacak/etkinleştirilecek arayüzün adını belirtmeniz gerekir.

Artık formdaki bir numaraya mesaj gönderirken

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

NETMETAL ilgili betiği başlatacak ve bu komut dosyası da WEB sunucusunda komutu çalıştıracaktır.

SMS alırken yapılan işlemlerin hızı bir saniyenin kesiridir. Stabil çalışır.

Ek olarak, Zabbix izleme sistemi aracılığıyla telefonlara SMS gönderme ve optik arıza durumunda yedek İnternet bağlantısı açma işlevi de mevcuttur. Belki bu, bu makalenin kapsamı dışındadır, ancak hemen şunu söyleyeceğim: SMS gönderirken uzunlukları bir mesajın standart boyutuna sığmalıdır, çünkü... Mikrotik bunları parçalara ayırmaz ve uzun bir mesaj geldiğinde basitçe göndermez, ayrıca mesajlarda iletilen karakterleri filtrelemeniz gerekir, aksi takdirde SMS gönderilmez.

Kaynak: habr.com

Yorum ekle