|

Mikrotik, hotspot, et imprimante

Longtemps assez dégoûté du peu d’ergonomie de RouterOS, le firmware des matériels Mikrotik, j’ai été contraint de passer énormément de temps pour chercher à mieux le comprendre. Désormais, maitrisant le système, il est facile de venir développer des solutions originales, comme la gamme Wifipak Mini par exemple, et ce n’est pas terminé.

Wifipak Mini + 4 bornes PoE

C’est souvent en expérimentant qu’arrivent souvent les idées intéressantes. Tenez, là il est question d’aller générer des utilisateurs à la volée dans le User Manager de Mikrotik, depuis un script Python sur un Raspberry Pi, et pourquoi pas le Raspberry Pi utilisé comme enregistreur de connexions tiens !

Prenons donc notre Mikrotik préconfiguré en hotspot, muni de son User Manager, sans mot de passe, avec l’IP 192.168.1.123. Depuis notre Raspberry Pi, nous allons créer le script Python mikro.py après avoir installé au préalable Paramiko (je vous laisse chercher un peu sur Google, c’est assez simple) :

from random import choice
from string import digits
from string import ascii_lowercase
import paramiko
import time
target = '192.168.1.123'
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(target, username='admin', password='', look_for_keys=False)
for x in range(0,10):
  login=''.join(choice(ascii_lowercase) for i in range(4))
  mdp=''.join(choice(ascii_lowercase) for i in range(4))
  msg = "/tool user-manager user add customer=admin username=us" + login + " password=" + mdp
  msg2 = "/tool user-manager user create-and-activate-profile us" + login + " customer=admin profile=wifipakmini"
  stdin,stdout,stderr = ssh.exec_command(msg)
  stdin,stdout,stderr = ssh.exec_command(msg2)
  time.sleep(0.8)
  stdin,stdout,stderr = ssh.exec_command(msg2)

A chaque exécution du script, nous allons générer deux variables, login et mdp contenant respectivement le login et le mot de passe d’un utilisateur. Cet utilisateur va être créé dans le gestionnaire Mikrotik et sera affecté au profile wifipakmini qui indique le temps disponible en ligne, 1 minute pour les essais.

Sur notre Mikrotik de test, peu puissant, une pause est nécessaire, ainsi qu’une répétition des commandes, sans cela certains utilisateurs ne sont pas affectés au profil wifipakmini et ne fonctionnent donc pas.

Ce script tourne 10 fois et va au final générer 10 utilisateurs d’un coup avec des logins qui débutent par « us ». Quel intérêt puisque le gestionnaire intégré permet de le faire ? Réfléchissez un peu, imaginez les possibilités et vous trouverez des applications potentiellement intéressantes.. En effet, si toi, ami Geek, tu es capable d’aller gérer en direct depuis le gestionnaire, quid de Mme Michu, paumée au fin fond de la Creuse, sans connaissances poussées en hotspot ? Ne va-t-elle pas préférer générer ses utilisateurs automatiquement et dans un langage clair, via une p’tite page html sur le Raspberry Pi par exemple ?

Allez, poussons un peu plus notre script, avec cette fois un nouveau, efface.py, qui sera lancé deux fois par jour par un simple Crontab sur le Raspberry Pi :

import paramiko
target = '192.168.1.123'
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(target, username='admin', password='', look_for_keys=False)
msg = "/tool user-manager user remove [find uptime-used=1m]"
stdin,stdout,stderr = ssh.exec_command(msg)
print stdout.read()

Ici, nous allons chercher tous les utilisateurs ayant utilisé leur temps de connexion, 1m (= 1 minute) pour nos essais, mais ce peut-être 1d (= 1 jour) si vous modifiez le profil wifipakmini du gestionnaire Mikrotik. Tous les utilisateurs ayant la mention 1m dans uptime-used (= temps de connexion utilisé) seront ainsi effacés, évitant de saturer le hotspot avec des codes dévalidés.

Et après ?

Eh oui, tout ceci est bien mimi, c’est choupinou de générer des scripts, des utilisateurs, le principe fonctionne, mais après, que faire ? Imaginons par exemple que nous allons générer des planches avec tous les codes regroupés sur une seule et même feuille : le script se lance, une planche s’affiche en pdf ou en png, vous l’imprimez, tout ceci de façon simple, via un bout de script Php sur le Raspberry Pi, chargé de lancer toutes les actions.

Imaginons également que l’on vienne brancher une imprimante à tickets sur le Raspberry Pi : vous allez ainsi pouvoir générer un ticket à volonté, pourquoi pas en n’appuyant que sur un simple bouton installé sur la p’tite framboise. Et hop, un hotspot avec imprimante à ticket, pour un coût réduit, largement inférieur aux solutions commerciales habituelles, tel ce pack Zyxel vendu près de 1900 € avec enregistreur, WiFi local et imprimante :

Avec un calcul rapide et pas du tout optimisé, une solution équivalente pourrait sortir à bien moins cher, plus de deux fois moins cher en tout cas.

Vous le voyez, se creuser la tête avec des produits issus du monde libre permet de pas mal s’amuser. Le Raspberry Pi est un allié précieux pour développer, sa petite taille et sa modularité en font un outil indispensable pour développer de nouveaux projets.

 

 

Publications similaires

  • Four à micro-onde et WiFi

    Anecdote arrivée à une personne proche, dont il faudrait peut-être tenir compte dans une période de fêtes où, traditionnellement, les cuisines françaises sont très sollicités… Bizarrement, le réseau WiFi d’une maison tombait à chaque fois que le micro-onde était mis en marche : plus rien, plus aucun signal, en dépit d’une proximité immédiate avec les antennes de la freebox locale. A l’arrêt de l’appareil, le réseau revenait avec un maximum de signal ! Ni une, ni deux, le verdict semblait…

  • Ascend P7, la vie chargée à bloc

    Connaissez-vous le dernier né d’Huawei, l’Ascend P7, un petit smartphone Android 5″ offrant ce délicieux haut débit 4G, source de toutes les batailles entre opérateurs ? Certes, l’appareil est sympa, compact, un appareil photo que je trouve assez agréable et performant, mais il pêche par un cruel manque d’autonomie : chargé à bloc, débranché de son chargeur ce matin 8h, laissé de côté sans l’utiliser, il affiche désormais 93% de batterie, oui, 7% perdus en seulement quelques heures !! Donc,…

  • |

    Wimax, 3G, LTE : quels débits et couverture ?

    Je ne sais pas si vous êtes arrivés à la même constatation, mais on parle partout de super débits, de services tous plus gourmands les uns que les autres, de 3G, de 4G, et bientôt de 5G si on s’écoutait. Seulement voilà, pour offrir des tuyaux large bande aux utilisateurs mobiles, il faudra bien penser un jour ou l’autre à dimensionner tous les tuyaux EN AMONT !! Il ne s’agit pas d’implanter un superbe pylône LTE en plein centre de…

  • Parabole 5.8 GHz disséquée

    Un arrivage un peu massacré durant le transport, il ne nous en fallait pas plus pour aller jeter un œil à l’intérieur d’une antenne parabolique 5.8 GHz, et plus précisément sur son élément rayonnant, ce bout de plastique et métal qui s’insère au milieu de l’antenne et lui permet « d’illuminer » la zone à couvrir. Voici donc ce que nous trouvons à l’intérieur : C’est un circuit imprimé strip-line double face réduit à sa plus simple expression, relié toutefois sur un…

  • Vieilles Charrues : projet technique

    Un projet technique commence toujours de façon originale aux Vieilles Charrues, à 18h30, lors de la réunion technique journalière. Ici, il est question d’une installation de Picostation 2 pour établir une nouvelle liaison, mais pas seulement : Le recyclage et l’économie solidaire sont les deux mamelles de cette édition 2010 : tout se recycle, se réutilise, il suffit d’un peu d’imagination (et l’équipe informatique n’en manque pas…) : réutilisons tout ce qui traine sur une table de réunion pour réaliser…

  • Ubiquiti va faire son show à Chicago

    Ubiquiti vient d’annoncer une conférence le Vendredi 23 Mars à Chicago. Le contenu ? Mystère, mais l’invitation reçue peut donner quelques pistes : Une nouvelle plateforme radio serait dévoilée, diantre ! Un compteur avec 100 x 10 Mbps, soit 1 Gbps ? Humm…. Donc imaginons déjà des produits gigabits radio par exemple, et pourquoi pas le retour du 10 GHz tant espéré ? A moins que ce ne soit un 5 GHz revu et corrigé, avec par exemple un double…