PirateBox

Introduction

Dispositif imaginé par David_Darts en 2011. Nouvelle révision du projet en mai 2014.

“Une PirateBox est un dispositif électronique portable, souvent composé d’un routeur et d’un dispositif de stockage d’information, créant un réseau sans fil qui permet aux utilisateurs qui y sont connectés d’échanger des fichiers anonymement et de manière locale.” (Wikipédia)

“Partager anonymement des photos ou des documents lors d’une rencontre ou d’une mobilisation, mettre à disposition de tous des ebooks, des films ou de la musique : c’est ce que permettent entre autres les PirateBox. Cet outil crée un réseau informatique local accessible en wifi, totalement anonyme et gratuit. Tout le monde peut s’y connecter avec un ordinateur ou un smartphone, pour télécharger des documents, en ajouter ou échanger par chat. Comme pour notre alimentation, les circuits courts ont de beaux jours devant eux !” (Bastamag)

Histoire et principe général

Tout routeur acheté dans le commerce possède un logiciel interne que l'on appelle firmware pour le différencier du hardware et du software. Ce firmware permet de configurer le routeur : changer le mot de passe, activer le réseau sans-fils, interdire l'accès du routeur à certains ordinateurs, relier le routeur à d'autres réseaux sans-fils ou bien encore changer le nom du réseau sans-fil (SSID). Celui-ci est propriétaire, une boîte noire dont le code n'est ni accessible ni modifiable.

Linksys, une entreprise qui commercialise les désormais célèbres routeurs WRT54G, avait utilisé pour son firmware des composants de GNU/Linux. Ce qui l'obligea, en juillet 2003, a placé le code du firmware sous licence libre GPL. Ce code libéré a permis la naissance du projet OpenWrt en janvier 2004. Il s'agit une distribution GNU/Linux dédiée aux appareils mobiles, bénéficiant ainsi des avantages de ce système d'exploitation : amélioration des performances, configuration, liberté d'utilisation et de programmation, modularité, communauté de développeurs.

Le projet PirateBox est un programme qui s'appuie sur le firmware OpenWrt. Dans l'installation de la PirateBox, il y a donc deux étapes : installer le firmware OpenWrt et ensuite le programme PirateBox. Ensuite, il suffit de se connecter en Wi-Fi au réseau proposé par la PirateBox et d'accéder à la page d'accueil via votre navigateur Internet, vous serez directement redirigé vers cette page. L'utilisation est ensuite très simple, vous pouvez charger des fichiers vers l'espace de stockage de la PirateBox (une clé USB), consulter ceux déjà présent, et converser en direct à plusieurs grâce au chat.

Sources : OpenWrt Version History et The Open Source WRT54G Story

Présentation : piratebox_presentation.zip

Projets autour de la PirateBox

  • Freedombox : un serveur personnel fonctionnant grâce à un système d'exploitation libre, avec des applications libres conçues pour préserver sa vie privée
  • Meshage de piratbox, espace de liberté : réseau parallèle alternatif.
  • Cowbox, présentation : créer des espaces de travail collaboratifs
  • Librarybox et Bibliobox : partage de contenus libres dans les bibliothèques
  • Pedabox : pour les enseignants
  • Culturebox : version PirateBox sous forme de distribution linux, capable donc de s’installer sur de vieux ordinateurs, laptop ou autre
  • Ratbox : PirateBox + mini-ordinateur Raspberry Pi
  • Piratebox_Live:  LiveCD avec PirateBox

Autres projets liés

Terminologie

Le réseau Internet : un réseau distribué qui se justifie au niveau stratégique, car si un nœud n'est plus disponible, le chemin passe par un autre.

La commutation de paquets, ou comment découper un message en paquets, en passant par les chemins les plus efficaces, et les reconstituer à la fin.

Les couches TCP (du modèle OSI)  permettent de comprendre comment un message est envoyé via le réseau Internet. À chaque couche sont associés des objectifs.

Les différents rayons d'action des réseaux :

  • Wi-Fi : sans-fils (donc pollution électro-magnétique) > ondes radioélectriques par modulation de fréquences (DSSS, Direct Sequence Spread Spectrum) sur 79 canaux, utilisant la bande ISM utilisée dans 802.11/b/g correspond à une bande de fréquence située autour de 2.4 GHz,avec une largeur de bande de 83.5 MHz (2.4 GHz – 2.4835 GHz)
    • mode infrastructure : connecter des ordinateurs  entre eux via un ou plusieurs points d’accès (PA)
    • mode « ad hoc » : connecter directement les ordinateurs sans utiliser un matériel tiers tel qu’un point d’accès
    • mode Pont « Bridge » : étendre un réseau filaire en connectant un ou plusieurs points d'accès entre eux pour. Un point d'accès doit fonctionner en mode racine « root bridge » (généralement celui qui distribue l'accès Internet) et les autres s'y connectent en mode « bridge
    • mode Répéteur « range-extender »
  • Réseaux : local/distant (LAN/WLAN), client/serveur, protocoles (IP (v4,v6), TCP, UDP, DHCP), DNS
  • Configuration réseau : adresse IP,  masque sous-réseau (255.255.255.0), broadcast, passerelle, dns
  • Adresses IP souvent utilisés : 192.168.0.1, 192.168.1.1, 127.0.0.1 (localhost)
  • Internet : réseau de réseaux, commutation par paquets (!= commutation de circuit)
  • Matériel courant : switch, routeur (la Box relié à Internet par exemple), passerelle, câble
  • Les 3 modes du routeur TP-Link : 3G, WISP (wireless Internet service provider), AP (Access Point)
  • Commandes réseaux utiles : PING, TELNET, SSH, CURL.
  • OpenWRT: a Linux distribution for embedded devices. The project came into being after Linksys built the firmware for their WRT54G wireless router from publicly available code licensed under the GPL.
  • hardware, firmware (logiciel interne, ensemble d'instructions et de structures de données intégrées dans du matériel informatique), software

Installation (v1.0)

Matériel

  • Ordinateur
  • Routeur TP-Link MR3020 ou TP-Link TL-WR703N
  • Clé USB formattée en FAT32 avec une seule partition (cas le plus fréquent)
  • Câble Ethernet

La nouvelle version de la Piratebox est sortie le 31 mai 2014, la 1.0. Celle-ci propose un système d'installation beaucoup plus simple :

  1. Télécharger install_piratebox.zip et OpenWrt pour votre routeur (ici mr3020 par exemple)
  2. Extraire le dossier “install” de install_piratebox.zip et le copier sur la clé
  3. Éjecter la clé et la connecter au routeur
  4. Positionner le sélecteur en 3G/4G (à côté de la prise réseau)
  5. Connecter le routeur avec un câble Ethernet et l'allumer. Ouvrir un navigateur Web et écrire dans la barre d'adresse http://192.168.0.254 (ou http://192.168.1.1 pour le routeur WR703N)
  6. Entrer l'identifiant et mot de passe par défaut (admin & admin).
  7. Menu > System Tools > Firmware Upgrade et sélectionner le firmware OpenWrt copié sur votre ordinateur.
  8. Après la mise à jour du firmware achevée, le routeur va redémarrer. Note : il faut parfois attendre 15-20 minutes suivant la clé USB. L'installation a réussie.
  9. Se connecter au réseau sans fils “PirateBox - Share Freely”. Ouvrir un terminal (pour OS X, aller à Applications > Utilities > Windows, installer et ouvrir PuTTY). Taper : telnet 192.168.1.1
  10. Taper : passwd pour changer le mot de passe administrateur et activer SSH.
  11. Maintenant vous êtes prêt à activer le forum Kareha et le serveur UPnP. Pour plus de détails, voir ces instructions.

Installation (ancienne)

Optimisation

  • Pages_d'accueil > copier dans /opt/piratebox/www avec la commande scp. Erreur chez moi : <meta http-equiv=“refresh” content=“0;url=http://piratebox.lan/” />
  • Possibilités_de_modifications
  • Mise_à_jour_du_firmware
  • Répertoires_de_téléversement: (vi  /opt/piratebox/conf/piratebox.conf + uncomment #DROOPY_USERDIR=“ -u True ” +/etc/init.d/piratebox restart)

Problèmes

Remettre le firmware d'origine

  • Trouver la version du routeur sur l'étiquette derrière (moi je n'avais pas cette info, j'ai choisi le firmware classique correspond à la v1).
  • Toute la procédure : Reflash using an USB Stick

Vous ne pouvez accéder à votre routeur que via le failsafe mode

  • Source : piratebox.fr
  • Démarrez votre MR-3020 en failsafe mode (décrit dans le paragraphe du dessous)
  • Donnez à votre ordinnateur l’ip 192.168.1.2 (procédure décrite avec le failsafe mode)
  • Placez le firmware openwrt sur une clé USB
  • Connectez votre routeur à votre ordinateur et votre clé USB à votre routeur
  • Connectez vous en telnet 192.168.1.1
  • Tapez ceci: /etc/init.d/boot start (si il y a des messages d'erreurs ce n'est pas grave)
  • Puis tapez: dmesg | tail -n 20 (vous devez voir quelque chose avec “sda” dans les messages)
  • Enfin tapez ceci: mount /dev/sda1 /mnt
  • cd /mnt
  • mtd write openwrt-ar71xx-generic-tl-mr3020-v1-squashfs-factory.bin firmware
  • reboot -f

Et voilà votre MR-3020 est comme neuf ou presque, vous devez maintenant reprendre le tuto depuis le moment ou l’installation d’openwrt est finie. (telnet 192.168.1.1, puis mount_root, puis passwd, …)

Reset et failsafe mode pour accéder au routeur

  • Ordi : config réseau avec adresse IP manuelle (fixe != automatique avec dhcp)
ip fixe : 192.168.1.2
broadcast : 192.168.1.255
netmask : 255.255.255.0   
route : 192.168.1.1
  • Débrancher routeur (alim + câble réseau).
    • Brancher l'alim
    • Attendre clignotement de la LED WISP
    • Appuyer sur la touche WISP > clignotement plus rapide
    • Brancher le câble réseau
  • Sur l'ordi, ouvrir terminal, taper :
    • telnet 192.168.1.1 > OK
    • mount_root
    • rm -rf /overlay/*
    • exit
  • Mettre le routeur en mode WISP, débrancher, rebrancher
  • ping 192.168.1.1 >on reçoit des données
  • telnet 192.168.1.1
  • passwd > plus d'accès en telnet, accès en ssh
  • exit
  • ssh root@192.168.1.1 > OK

Débricker le routeur !

Ahahahah… aHAHAHaaaaahhhaaa.

  • La mise à jour du firmware a été interrompue ou n'a tout simplement pas marchée.
  • Le routeur n'est plus accessible via SSH ou Telnet.
  • Les leds s'allument et s'éteignent toutes les deux secondes. 

Et bien, vous êtes dans une situation peu plaisante, qui peut donner envie de vomir soit mais rien de très grave puisque si vous arrivez à lire cet article, vous avez donc un ordinateur, de l'électricité, des yeux et encore la capacité mentale de comprendre les lettres qui forment des mots, qui forment des phrases. Mais il y a une solution, puisque j'y suis arrivé après quelques échecs cuisants : il faut VRAIMENT remettre le firmware d'origine du routeur.

  1. Télécharger le firmware_d'origine sur votre ordinateur. Décompresser le dossier
  2. Placez-vous dans le dossier et écrire cette commande dans un terminal : dd if=mr3020nv1_en_3_17_2_up_boot(140408) of=firmware.bin skip=257 bs=512. Voir http://wiki.openwrt.org/toh/tp-link/tl-mr3020
  3. Configurer tfpboot et copier “firmware.bin” dans le dossier /tftpboot/ de votre ordinateur. Voir https://dev.wlan-si.net/wiki/Flashing/TP-Link/Recovery
  4. Désosser le boîtier à la hache et au chalumeau. Ou plutôt voir cette méthode.
  5. Souder 4 broches ici sur les pastilles correspondantes à la communication série du routeur 3V3, GND, RX, TX.

  1. Placer une résistance de 10KOhms entre 3V3 et TX.

  1. Connecter en série avec un câble RS232 ou une interface similaire.
  2. Brancher l'USB du routeur sur l'ordinateur, l'interface série au routeur et à l'ordinateur et configurer votre ordinateur pour avoir une IP fixe 192.168.1.100
  3. screen /dev/ttyUSB0 115200 (pour avoir accès au routeur)
  4. Attendre Autobooting in 1 seconds et écrire tpl rapidement
  5. setenv ipaddr 192.168.1.1
  6. setenv serverip 192.168.1.100
  7. Démarrer le serveur tftp de votre ordinateur
  8. tftpboot 0x80000000 firmware.bin
  9. erase 0x9f020000 +0x3c0000
  10. cp.b 0x80000000 0x9f020000 0x3c0000
  11. bootm 0x9f020000

Ressources