[Tuto] Monter sa LibraryBox v2

linux 20 mars 2014

Bonjour bonjour,

après le tutoriel concernant la PirateBox (rappelez-vous, ce petit boîtier qui permet d’échanger des fichiers en Wi-Fi, et de tailler le bout de gras via shoutbox ou forum sans laisser de traces vous identifiant), on va passer à… la LibraryBox.

 

Pourquoi ? Parce que même si j’adhère totalement à cette idée de « radio pirate » et de partage à tout va, il ne faut pas être grand druide pour comprendre que dès qu’on sort du contexte « pirate », ça ne colle plus : une PirateBox, c’est tout de suite connoté avec « sous le manteau » voire « illégalité totale » dans l’esprit des gens.

Or, vous le savez probablement déjà, mais je travaille à la bibliothèque universitaire de mon école, ainsi que de temps en temps à la Médiathèque du Grand Troyes. Bien que je trouve assez fun de ramener la PirateBox à l’un ou à l’autre de ces lieux (qui ont pour moi vocation à être des lieux d’échange) et à observer les gens se connecter plus ou moins timidement et commencer à échanger, il est clair qu’un tel boîtier, s’il venait à être officiel (aka identifié comme un service proposé par l’établissement), devrait a priori changer de nom et surtout ne pas permettre l’échange de fichiers protégés par le droit d’auteur.

Par contre, avouez que ce serait génial pour consulter/récupérer des magazines auquel l’école est abonnée, ou pour récupérer des œuvres (écrites, musicales…) libres de droits, histoire de participer à la mission de médiation des bibliothèques sous une autre forme. C’est donc à ce besoin que répond la LibraryBox, par ailleurs basée à l’origine sur le code source de la PirateBox (c’est ça, le libre !) et sur le même matériel.

On va donc voir comment recycler sa PirateBox (modem TP-Link MR3020) en une LibraryBox.

 

LibraryBox vs. PirateBox

Il y a certaines différences entre ces deux « options », qu’il peut être utile de connaître avant de se lancer dans l’aventure :

  • la LibraryBox collecte des statistiques quant à son utilisation, et permet à tout visiteur de les consulter.
  • la plus grosse partie du système se trouve sur la clé USB, contrairement à la Piratebox pour laquelle les pages web d’accueil et les fichiers de configuration (entre autres) étaient sur le routeur. Cela rend le développement (modification, personnalisation…) bien plus faciles : il suffit de brancher la clé USB à son ordinateur, et de coder un peu ! :mrgreen:
  • la mise à jour du contenu est facilitée en cas de multiples LibraryBox dans la bibliothèque : un système de réseau Mesh a été implémenté, et une LibraryBox « esclave » est capable de reconnaître la LibraryBox « maître » lorsqu’elle est à portée puis de cloner le contenu de cette dernière. Pour le documentaliste, il n’y a donc qu’une seule LibraryBox à maintenir ! 🙂
  • l’interface web est bien moins austère, et se base sur Bootstrap 3.

Avouez que ça amène déjà son petit lot de nouveautés.

LibraryBox_v2_tall

Installation

Allez, on se lance ? 😉

Vu qu’on part d’un MR3020 sur lequel OpenWRT est déjà installé, il nous suffit de mettre ces deux fichiers sur la clé USB (formatée en FAT32) qui vous servait pour la PirateBox :

  • le firmware OpenWRT, pour la réinstallation complète
  • le « pack » LibraryBox

Le firmware est à placer à la racine de la clé USB, et l’archive à extraire là aussi, ce qui donne un dossier install.

On vérifie bien que le sélecteur de mode est sur « WISP » sur le routeur, on y branche la clé USB, et on allume routeur et ordinateur. Vous avez le choix, ou vous connecter au MR3020 en ethernet, ou en Wi-Fi. Personnellement, j’ai opté pour le SSH via ethernet, mais il a fallu que je donne une IP fixe à mon ordinateur (192.168.1.2, le routeur lui-même utilisant 192.168.1.1).

Une fois connecté, c’est on ne peut plus simple :

  • on se place dans le répertoire qui contient nos fichiers : cd /mnt/usb/ ;
  • on écrit le firmware sur l’ancien :
    mtd -r write openwrt-ar71xx*factory.bin firmware ;
  • ça prend quelques minutes, puis le routeur redémarre.

 

Maintenant que vous avez pris un café et que le bouzin a démarré (LEDs fixes), on va s’y reconnecter. Plus de SSH au menu, on va utiliser telnet : telnet 192.168.1.1. Aucun mot de passe, vous êtes connecté en tant que root directement. On va donc lancer box_init_setup.sh puis entrer le choix 1, qui va vous permettre de changer le mot de passe, et de lancer automatiquement le serveur SSH au démarrage de la LibraryBox, tout en désactivant telnet (pas super sécurisé, vous en conviendrez). On peut aussi mettre l’heure qui va bien, c’est pas pour le temps que ça prend ! Et supprimer le dossier install, qui ne nous est plus d’aucune utilité.

Ce même script permet de configurer le serveur FTP (pour ne pas avoir à éteindre la LibraryBox avant d’y mettre de nouveaux éléments), les relations maître-esclave pour la mise à jour du contenu (si vous avez plusieurs Box, ce qui n’est pas mon cas 😀 ).

 

Screenshot_2014-03-18-20-08-59

 

Personnalisons un peu tout ça

Le mieux, pour le coup, c’est quand même d’éteindre le routeur et d’éditer sur la clé USB depuis votre ordinateur. Dans le sous-dossier LibraryBox/Config vous allez trouver plein de fichiers texte, et il vous suffit de les éditer pour arranger tout ça à votre sauce :

  • channel : indique le canal Wi-Fi utilisé par le routeur, 11 par défaut ;
  • hostname : contient le nom de la machine tel qu’il apparaîtra dans la barre d’adresse du fureteur de vos visiteurs ;
  • librarybox_shoutbox : contient ‘yes’ si vous voulez activer le salon de discussion, ‘no’ sinon ;
  • ssid : contient le nom du réseau Wi-Fi qui est diffusé, tel que le verront vos visiteurs ;
  • system_hostname : contient le nom complet de la machine ;
  • txpower : par défaut à 25, indique la puissance envoyée à l’antenne. Si vous baissez cette valeur, vous diminuerez la portée du routeur. En l’augmentant, vous améliorez la couverture, mais le matériel va forcément chauffer un peu plus, donc prudence ! Le site officiel indique que des valeurs entre 20 et 30 sont correctes.

On ne touche pas à la config FTP, pas encore du moins.

Hop, rebranchons la clé USB au MR3020, allumons-le, et c’est parti ! Plus qu’à mettre des choses dessus, mais c’est un détail :mrgreen:

 

Pour conclure

Vous l’admettrez, la procédure est quand même super simple. Tant qu’on fait pas comme moi, et qu’on lit tout avant (oui parce que j’avais formaté ma clé USB avant de réinstaller le système, donc la PirateBox ne démarrait plus, et le failsafe mode ne gérait pas l’USB… ahem, bref). Cependant, s’il y avait un quelconque souci, n’hésitez pas, je ferai mon possible pour aider.

La partie maître-esclave n’est pas traitée ici, tout comme l’activation du serveur FTP. Elles feront l’objet de tutoriaux séparés, si je les active : le FTP, on sait tous que c’est pas hyper sécurisé, et se connecter en FTP sur un réseau ouvert dans une école qui forme entre autres des ingénieurs en sécurité informatique… Vous voyez le tableau, il va pas se passer 10min avant qu’un « collègue » récupère le mot de passe. Mais en SCP, c’est possible 😉

L’interface est quand même aboutie, fonctionnelle, et l’avoir basée sur Bootstrap la rend compatible avec les smartphones et tablettes. Génial non ?

 

N’hésitez pas à vous signaler si vous installez ça dans une bibliothèque, surtout universitaire : on peut échanger là-dessus !

Mots clés