Avec le développement de l’impression de tickets sur les hotspots Mikrotik, j’ai pu pas mal jouer avec le fameux User Manager, destiné à gérer les utilisateurs, leur affecter des profils, des durées, des limitations. Ce petit ajout au firmware RouterOS qui équipe les matériels Mikrotik semblait, sur le papier, plutôt sympa. Pour dialoguer avec, une simple connexion SSH initiée depuis un script Python sur un p’tit Raspberry Pi. Ca, c’est du moins la théorie, car en pratique, plusieurs bugs semblent subsister sur ce User Manager, et pas des moindres :

  • l’ajout d’utilisateur en ssh fonctionne, mais affecter un profil ne fonctionne qu’une fois sur deux : il faut envoyer la commande, vérifier, renvoyer la commande, vérifier, etc. Cela prend du temps, et lorsque vous voulez générer des dizaines de codes, la galère prend rapidement l’eau.
  • un utilisateur reçoit un profil qui lui attribue une durée d’utilisation : 1 jour, 1 heure, 1 minute, c’est vous qui décidez. Cela fonctionne super bien, sauf qu’une fois la durée expirée, votre utilisateur restera en mémoire : pas moyen de lister simplement tous les utilisateurs expirés. On les voit dans la liste car ils n’ont alors plus de profil mentionné : les supprimer supposerait de charger TOUTE la liste, de venir chercher utilisateur après utilisateur ce que contient la configuration, d’inscrire les logins à supprimer, etc. Imaginez le script de manipulation de chaine bien lourd qu’il faudrait, alors qu’une simple commande /tool usermanager delete expired aurait été d’un emploi si simple…. ben non 🙁

 

De ce fait, après une journée perdue passée à cherche une solution fiable, stable, et universelle, force est de constater qu’il fallait se passer de ce User Manager encore trop peu stable pour un usage professionnel intensif et automatisé. Je précise bien automatisé car si vous gérez tout depuis l’interface d’administration, forcément cela fonctionne sans trop de soucis. Par contre, vous perdez alors la possibilité d’imprimer des coupons et n’avez toujours pas de fonctionnalité pour supprimer les codes expirés… on tourne en rond 🙁

Imprimante tickets pour hotspot Mikrotik

Retour donc à une solution plus simple, plus pratique : le gestionnaire utilisateur directement géré par la fonction /ip hotspot du firmware, et basta ! Là, la génération de code est bien plus simple : un login, un mot de passe, une durée et c’est tout ! Pas besoin de venir ajouter un profile ou je ne sais quoi d’autre.

Lorsque nous générons un code, voyons ce qu’il donne depuis l’accès ssh au hotspot :

name=“wsxb” password=“awfn” profile=default limit-uptime=1h uptime=0s bytes-in=0 bytes-out=0 packets-in=0 packets-out=0

limit-uptime=1h indique que ce code, wsxb dispose d’1 heure d’accès, pas plus. uptime=0s montre que le code n’a pas encore expiré, sans quoi nous aurions uptime=1h et là, nous pourrions clairement identifier le code pour venir le supprimer, étant expiré.

En conclusion, l’utilisation de RouterOS n’est pas si simple, les bugs subsistent et certaines fonctionnalités manquent cruellement. Si vous n’avez pas besoin de limiter vos utilisateurs autrement que sur la durée, User Manager ne vous sera d’aucune utilité. Espérons juste qu’il évolue vers une version plus “capable” et soit un jour en mesure d’effacer simplement les codes expirés.