Une PirateBox à partir d’une Raspberry Pi 2eme partie

Après la mise en place de la carte Raspberry Pi en vue d’en faire une PirateBox, voici comment monter le serveur Wifi afin de transformer l’ensemble en un hotspot de partage de données.

Si vous arrivez sur cette page sans avoir lu la première partie de ce guide, il est encore temps de le faire. L’idée globale du projet y est décrite ainsi que les divers éléments nécessaires à sa mise en route tant au point de vue matériel que logiciel .Commencer ce guide à partir de cette page est possible mais sera plus ardue.

 Raspberry PiRateBox

Donc, si vous avez bien suivi les étapes de la première partie vous avez une Raspberry Pi prête à l’emploi, sous Raspbian et vous y êtes connectés à un réseau local via un câble, et ce réseau lui même connecté à Internet. La clé Wifi n’est pas encore en place. Sur le même réseau une autre machine a ouvert une session SSH sur la Pi pour plus de commodité. (Si vous n’avez rien compris à cette phrase, il faut vraiment aller lire la première partie du guide).

Sous Putty ou quelque soit votre logiciel SSH, vous allez pouvoir piloter la carte pour installer les divers composants nécessaires à cette PirateBox. Cela se passe en ligne de commandes mais il n’y a rien de véritablement sorcier.

Minimachines.net 2015-02-26 19_21_08

Première étape, mettre à jour le logiciel. Parce qu’on a beau venir de le télécharger, il est possible que toutes les dernières mises à jour ne fassent pas partie de cette archive. On va donc pianoter ceci dans notre console :

sudo apt-get update

Puis appuyez sur Entrée.

Sudo est un programme qui va nous servir à exécuter un ordre donné à la machine. Ici on lance apt-get qui est le programme de gestion de paquets de Debian. Le gestionnaire de paquets étant en quelque sorte le programme qui installe et met à jour les divers éléments du système. Apt-get se charge non seulement de trouver tout seul les ressources nécessaires à cette tâche sur Internet mais il exécute ensuite les divers ordres de décompression et de mise en place. C’est, en quelque sorte, la tour de contrôle des téléchargements de la machine : Il va chercher les paquets et leur dit où venir se garer dans votre système. Update est plutôt simple à comprendre, c’est la mise à jour automatique gérée par apt-get, il vérifie la version locale des divers éléments du système et les compare à celles en référence disponibles en ligne. S’il y en a une nouvelle, il la télécharge et la remplace.

Raspberry PiRateBox

Cette commande effectuée, nous allons en profiter pour apprendre 2 ou 3 trucs sur le terminal.

Pianotez simplement sud et appuyez sur TAB. Normalement l’ordre sudo est apparu. Pianotez ensuite un espace et apt-g puis à nouveau TAB. Vous l’aurez compris, la touche TAB termine les instructions identifiées par le système, cela permet d’éviter des frappes inutiles.

Autre truc si vous utilisez Putty, vous pouvez faire un copié-collé dans l’interface en faisant un clic droit sur la souris. Cela devrait largement faciliter le travail suivant.

Votre Update devrait être terminé et nous allons donc passer à la suite.

Pianotez ensuite, ligne par ligne, avec un appui sur entrée à la fin de chaque ligne, les instructions suivantes :

sudo apt-get -y install lighttpd 
sudo /etc/init.d/lighttpd stop
sudo update-rc.d lighttpd remove

Nous venons là  d’installer lighttpd, un serveur web, sur la distribution Raspbian.

sudo apt-get -y install dnsmasq 
sudo /etc/init.d/dnsmasq stop 
sudo update-rc.d dnsmasq remove

Ici, il s’agit de dnsmasq, le serveur qui fournira la gestion des DNS à votre PirateBox.

sudo apt-get -y install hostapd 
sudo /etc/init.d/hostapd stop 
sudo update-rc.d hostapd remove

Enfin, nous installons Hostapd qui gérera le point d’accès Wifi de la Piratebox.

sudo apt-get -y install iw

Iw est un utilitaire de configuration Wifi dont le système à besoin pour fonctionner.

Nous pouvons maintenant télécharger le script de la PirateBox lui même. Il s’agit d’une copie du fichier stocké sur un FTP Free.

wget "http://psx2pc.free.Fr/piratebox/piratebox-ws_current.tar.gz"

Puis le décompresser

tar xzf piratebox-ws_current.tar.gz

Il faut ensuite aller dans le répertoire nouvellement créé et installer le script.

cd piratebox
 sudo mkdir -p /opt
 sudo cp -rv piratebox /opt
 sudo ln -s /opt/piratebox/init.d/piratebox /etc/init.d/piratebox
 sudo update-rc.d piratebox defaults
 sudo /etc/init.d/piratebox start

Minimachines.net 2015-02-26 22_54_09
Une erreur ! Pas de panique, c’est normal, on vient de demander à la machine de lancer la PirateBox dont le script exploite une clé Wifi qui n’est pas connectée à la Raspberry Pi. Normal que le script ne se déroule donc pas correctement.

Voilà, votre PirateBox est fonctionnelle. Au prochain redémarrage elle lancera le script si la carte USB est installée et vous pourrez la voir dans les réseaux Wifi disponibles avec votre smartphone et votre tablette. Pour arrêter proprement la Raspberry on va pianoter

sudo halt

Les leds de la tablette clignotent avant de ne plus laisser que la rouge, signalant qu’elle est toujours sous tension.

 

Aparté optionnel

Et là, on touche du doigt un problème lié à notre petite solution Rasberry Pi. La PirateBox est dépourvue d’écran et de clavier dans son fonctionnement habituel. Difficile donc de la stopper proprement en pianotant un ordre. On peut y remédier physiquement grâce aux GPIO de la carte qui permettent d’interagir avec elle. Cette étape est totalement optionnelle et demande un matériel qui ne se trouvera pas chez tout le monde. C’est néanmoins uns solution facile à monter et assez aisée à installer, vous pourrez la réaliser plus tard et je vais donc rapidement décrire ici. Pour ce montage, vous aurez besoin d’un bouton poussoir, de quelques connecteurs mâles pour se brancher aux pins de la carte Raspberry Pi et de 2 résistances. L’une en 330Ω, l’autre en 10 kΩ.

Minimachines.net 2015-02-27 12_43_54

Connectez les éléments comme ci dessus, soit avec une carte de montage de type breadboard, soit en les soudant ensemble.

L’interrupteur (1) est connecté sur une patte vers un pin terre (GND) de la Raspberry Pi (2) d’un côté. De l’autre, il se connecte au pin 3.3V (4) de la carte avec une résistance 10KΩ (4) mais également au pin 25 de la Pi (6) avec une résistance 330Ω (5). Ce petit montage peut être fait facilement en soudant directement les résistances à même les câbles et une fois protégé par de la gaine rétractable, cela ne prendra guère de place.

Minimachines.net 2015-02-27 03_27_47

Il faut ensuite allumer la Raspberry Pi à nouveau et retourner sur une session SSH. De là, on va télécharger un petit script Python permettant de réagir à la pression du bouton. On tape :

wget "http://iot-projects.com/data/uploads/files/RPi_h_r.py"

Puis entrée. Un fichier de quelques octets est téléchargé. On pianote ensuite un ordre pour exploiter l’éditeur de texte nano afin qu’il ouvre le fichier rc.local qui exécutera ce petit script en tâche de fond au démarrage de la Raspberry Pi.

sudo nano /etc/rc.local

Dans l’éditeur, on descend avec les touches fléchées jusqu’à la ligne exit 0.

Minimachines.net 2015-02-27 03_33_41

Juste au dessus, on colle la ligne suivante :

sudo python /home/pi/RPi_h_r.py &

Cela exécutera le script de contrôle au bouton à chaque démarrage. On sauvegarde avec Ctrl + X sur le clavier. On valide les changements avec un O sur le clavier. Puis « entrée » pour valider le nom et l’arborescence du fichier. C’est fait. Désormais une pression courte sur le bouton redémarrera la Pi tandis qu’une pression longue la fera s’éteindre comme si on avait pianoté notre fameux ordre halt.

Vous trouverez des cartes de type Breadboard et des câbles compatibles sur Amazon dans diverses variantes en suivant ce lien. Quant aux résistances, vous trouverez des kits très complet de plusieurs centaines de pièces pour moins de 10€ sur Amazon comme celui-ci.

On débranche alors le câble MicroUSB puis ensuite le câble Ethernet. Il suffit alors de connecter la clé USB Wifi et de rebrancher une source d’alimentation pour voir la PirateBox se mettre en marche depuis n’importe quelle machine ayant un Wifi activé.

Pour vérifier que tout fonctionne, vous pouvez prendre une tablette et vous connecter au réseau PirateBox – Share Freely et tenter d’uploader une image par exemple. En cliquant sur le menu files, vous devriez le voir apparaître et pouvoir l’afficher ou le télécharger.

Dans la prochaine partie, nous allons voir comment améliorer l’esthétique de cette PirateBox. Puisque je suppose que pour un usage professionnel du système, peu seront enclins à recueillir des données d’une page web qui arbore une tête de mort.

Pour lire les autres parties de ce guide :

En cas de soucis technique ou materiel, n’oubliez pas que le forum est actif et que des membres peuvent vous aider !


Soutenez Minimachines avec un don mensuel : C'est la solution la plus souple et la plus intéressante pour moi. Vous pouvez participer via un abonnement mensuel en cliquant sur un lien ci dessous.
2,5€ par mois 5€ par mois 10€ par mois Le montant de votre choix

Gérez votre abonnement

56 commentaires sur ce sujet.
  • 23 août 2016 - 9 h 46 min

    @plop: Je ne sais pas ce que je dis, je ne sais pas ce que j’écris mais je passe bien pour un idiot ? Je suis je suis ? Personne car je suis anonyme ! Bravo !

    Répondre
  • 10 septembre 2016 - 15 h 29 min

    Bonjour après avoir exécuter l’ensemble des actions sans aucun message d’erreur voici le message que j’obtiens quand je tente de lancer Piratebox

    Aucun réseau wifi n’est créé lorsque je démarre ma RPi3

    Voici le message d’erreur

    pi@navio:~/piratebox $ sudo /etc/init.d/piratebox start
    /etc/init.d/piratebox: 57: /etc/init.d/piratebox: [[: not found
    Starting initialize PirateBox Part2..
    ln: failed to create symbolic link ‘/opt/piratebox/www/board/board’: File exists
    ln: failed to create symbolic link ‘/opt/piratebox/www/Shared/Shared’: File exis ts
    [….] Starting script piratebox :
    Generating hosts file ….
    Generating dnsmasq.conf …..
    Generating Environment-config for ligttpd …..
    Empty tmp folder
    rm: cannot remove ‘/opt/piratebox/tmp/’: Is a directory
    Copy over design files
    /opt/piratebox/bin/distribute_files.sh: 41: [: all: unexpected operator
    Distribute all into /opt/piratebox/share/Shared
    cp: cannot stat ‘all’: No such file or directory
    [ ok ] Starting hostap… :.
    [….] Setting up wlan:Bringing up wifi interface wlan0
    Setting up wlan0
    [….] Starting dnsmasq… :start-stop-daemon: unable to stat /usr/sbin/dnsmasq (No such file or directory)
    failed!
    [ ok ] Starting droopy…:.
    Generated HTML-Shoutbox File.
    chmod: cannot access ‘ug+rw’: No such file or directory
    [….] Starting lighttpd…:2016-09-10 13:26:12: (network.c.409) can’t bind to p ort: 80 Address already in use

    Répondre
  • 28 septembre 2016 - 11 h 45 min

    Bonjour Pierre et merci pour votre TUTO très bien expliqué. Je viens d’acheter la clé wifi disponible sur votre mini boutique et il s’avère qu’après avoir suivi toutes vos étapes, lors du redémarrage aucun réseau n’est crée et disponible. Pourriez-vous m’aider ? Il s’avère également que j’ai installé ma raspberry sous interface graphique car l’installation ne m’en a pas laissé le choix… Merci par avance de votre réponse.
    Cordialement, Thibault

    Répondre
  • 28 septembre 2016 - 15 h 10 min

    @Feugère: Il faudrait que je me replonge la dedans car Raspbian a évolué et l’image à la sortie de ce tuto est différente à celle d’aujourd’hui

    Répondre
  • 29 septembre 2016 - 14 h 54 min

    @Pierre Lecourt: J’aimerai car j’ai acheté l’antenne spécialement pour ça alors je ne voudrai pas avoir acheté qqch d’inutile :/

    Répondre
  • 13 septembre 2017 - 12 h 02 min

    Ben voilà, j’ai tout fait tout suivi. On trouve bien une PirateBox, mais impossible depuis une tablette de s’y connecter. Il y un signal. Ça bloque à: « Obtention de l’adresse ip ».

    Répondre
  • LAISSER UN COMMENTAIRE

    *

    *