Notifications RouterOS (Mikrotik) avec ntfy

Si vous utilisez le service ntfy.sh ou sa version auto-hébergée, nous allons voir comment configurer des scripts sur RouterOS afin de faire remonter des messages à son smartphone.

Nous allons prendre l’exemple d’un routeur Mikrotik qui travaille un peu dans son coin et configurer ntfy pour nous informer qu’une mise à jour RouterOS est disponible. Dans un second temps, nous allons aussi nous informer qu’un SMS nous est parvenu sur l’interface LTE de notre routeur et l’envoyer sur ntfy.

Même s’il est possible de se faire notifier par mail à partir de RouterOS, nous allons complètement court-circuiter les serveurs mails, ce qui économisera de la bande passante, du stockage dans un datacentre, esquiver la surveillance de la NSA, le ciblage publicitaire des GAFAM et sauver le monde en un après-midi. Procédons par étapes.

Etape #1 : Configurer les scripts sur RouterOS v7

Il faudra bien mettre à jour RouterOS vers v7 avant de démarrer en allant dans : Système/Package/Update

Nous allons réutiliser les scripts de eworm sur github pour rajouter ce qu’il faut au routeur. Deux choix cornéliens s’offrent à nous :

  1. La méthode « beau gosse » avec une ligne de commande à exécuter, ou
  2. La méthode « longue » mais plus explicative et graduelle à exécuter ligne par ligne.

Etape #2 : Rajouter le script pour ntfy

Pour rajouter le script de notification, il suffit de lancer :

$ScriptInstallUpdate mod/notification-ntfy; 

On vérifie que cela est bien pris en compte dans l’interface :

script ntfy bien pris en compte

Et pour paramétrer ntfy :

/system/script/edit global-config-overlay source;

Dans ce fichier, nous allons rajouter les paramètres de notre serveur ntfy, et ctrl+o pour sauvegarder :

:global NtfyServer ":<token>@<serveur ntfy sans le https>";
:global NtfyTopic "<mon_topic>";

Et, pour que RouterOS prenne en compte ces paramètres :

 /system/script/run global-config; 

Sans tarder, nous allons tester directement les notifications avec ceci :

 $SendNtfy "Subject..." "Body..."; 

Et, presto, message reçu :

Etape #3 : Rajouter le service de notification des mises à jour

Le script suivant à rajouter sous RouterOS détecte les mises à jour :

 $ScriptInstallUpdate check-routeros-update;

Et pour que cela s’exécute tous les jours, nous allons rajouter un intervalle ainsi :

/system/scheduler/add interval=1d name=check-routeros-update on-event="/system/script/run check-routeros-
update;" start-time=startup;

Etape #4 : Rajouter le service de transfert des SMS

Si vous avez un routeur équipé d’une interface LTE, vous pouvez l’utiliser avec une carte SIM lambda. Cependant, les SMS ne seront reçus que par RouterOS et ne remonteront pas plus loin. Là encore, un script peut envoyer les SMS directement à votre service ntfy – plutôt pratique pour les codes d’authentification et autres messages systèmes.

Nous allons déjà activer la réception de SMS dans Router OS en allant dans : Tools\SMS

Activer la réception de SMS

Pour tester, nous pouvons envoyer un SMS au numéro de la carte SIM et vérifier le « Inbox » si le message est bien reçu :

Message reçu – les accents et émoticons n’apparaissent pas

Il ne reste plus qu’à rajouter le service qui va bien afin d’envoyer ce texto à ntfy :

$ScriptInstallUpdate sms-forward;

On va aussi demander au scheduler d’exécuter ce script toutes les 2 minutes :

/system/scheduler/add interval=2m name=sms-forward on-event="/system/script/run sms-forward;" start-time=
startup; 

Et c’est fait !

Pour tester, il suffit de renvoyer un SMS à la carte SIM sur RouterOS et patienter une petite minute. On vérifie sur son téléphone ou le Web App ntfy :

SMS reçu. Les Emoticons ne passant toujours pas.

Conclusion

Et voilà pour ces deux cas d’utilisation de ntfy afin de faire remonter des informations de machines un peu oubliées dans une infrastructure. Ntfy arrive à donner une voix à tout le monde, et rien que pour cela, je dis vive le droit à la parole des machines !

Bonne bidouille, et à bientôt.

0 0 votes
Article Rating
S’abonner
Notification pour
guest

0 Commentaires
Commentaires en ligne
Afficher tous les commentaires
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x