PirateBox Debian
Avertissement : Page en cours (et en début) de rédaction. L'article est encore tout à fait incomplet, et le restera encore un moment. S'agissant d'une manip en cours, il y a des points en questionnement ... et peut-être des erreurs/horreurs. N'hésitez pas à corriger.
Cette page est expressément dédiée à l'implémentation particulière de la pirateBox sur un PC ordinaire sous OS Debian,
avec l'idée de faire quelque chose de plus souple et standard.
L'idée à terme relève de l'auto-hébergement + diffusion wifi (en gardant (et élargissant) évidemment toutes les capacités d'upload/download qui font tout l'intérêt de la pirateBox).
C'est de toute manière l'une des orientations majeures prises par l'équipe "officielle" des développeurs de la pirateBox
(http://forum.daviddarts.com ) en plus des nombreux forks qu'ils essaient de soutenir.
Liens : http://forum.daviddarts.com/read.php?7,7158 ,
Pour un article/compilation général sur la pirateBox, voir PirateBox.
(Version Debian stable à la date du 25/3/2013 = Squeeze 6.0.7)
Sommaire
Historique/rappels
Une piratebox, c'est votre petit réseau internet à vous, sans abonnement FAI, sans hébergeur, sans contrôle,
sans tracking, sans pub. Tout ça pour moins de 100€ + un peu d'huile de coude.
La pirateBox originelle date de 2011/2012, est implémentée sur un tout petit boitier (TL MR3020).
On ne détaillera pas tout ici pour la nième fois. Voici une poignée d'articles pertinents :
- http://daviddarts.com/piratebox/?title=PirateBox where the story begins
- http://perso.numericable.fr/jean.debaecker/Jean_Debaecker/Lapeex/Entrees/2012/3/18_PirateBox___1er_bilan_en_3_points.html
- http://fr.wikipedia.org/wiki/PirateBox
- http://korben.info/tuto-piratebox.html tuto chez Korben
La 1° implémentation de la pirateBox a eu pas mal de succès.
Le boitier TL MR3020 a même été en rupture de stock (mais il s'agit peut-être aussi d'une coïncidence ?).
Ce succès initial a immédiatement généré plein d'idées d'améliorations et de forks
(plus de modularité/reconfigurabilité, serveur amélioré, etc).
Cela a d'ailleurs conduit en mars 2013 à une restructuration des forums (http://forum.daviddarts.com/)
pour tenir compte de toutes ces évolutions.
Le serveur web de la PirateBox originelle est un truc minimal en python (SimpleHTTPServer.py sauf erreur) , mais en février 2013 il semblerait que la dernière version de la PB (28/2/2013 = 0.7) tourne sous Lighttpd qui est plus puissant et infiniment plus standard (bonne nouvelle !).
Sans surprise, on glisse doucement vers une problématique d' auto-hébergement + diffusion hertzienne (... + maillage).
http://www.terror-byte.net/?p=87 4 février 2013: Packaging: This is the most exciting news, PirateBox should soon be packaged into .deb, .rpm, and .xz files for easy unpacking in your local distribution. This will also allow us to push PirateBox into Ubuntu, Fedora, and Arch repositories so PirateBox will be as simple as an apt-get install or pacman -S away. This is what I am personally most excited about as it opens us up to a whole new world. Au 27/3/2013, c'est la dernière news sur terror-byte.
Premières customisations coté serveur
Premières tentatives d'améliorations du serveur. Il y a plein de liens à droite à gauche. C'est du bidouillage look/design, mais ça montre bien le souhait immédiat de chacun de customiser sa pirateBox.
- http://www.disk91.com/2012/technology/systems/customizing-piratebox-configuration/ customisation (légère) coté serveur (logiciel)
- http://asthrolab.fr/tag/piratebox/ customisations coté serveur
- http://ubuntuhak.blogspot.fr/2012/12/piratebox-design-20-update.html
- aussi des choses sur le site du parti pirate Alsace
Toutes les astuces comme celles indiquées au-dessus sont intéressantes, mais, pour aller plus loin il est nécessaire de toucher plus profondément à l'architecture logicielle de la pirateBox elle-même. (Ce que l'équipe de développeurs, et d'autres, sont en train de faire).
Implémentations sur PC standard, laptop, etc
- http://forum.daviddarts.com/
- Le wiki de Matthias Strubel, très actif sur le sujet
- http://piratebox.aod-rpg.de/dokuwiki/doku.php/script-package_for_debian_based_systemes pas mal d'infos pour PB sur laptop Debian etc
- http://forum.daviddarts.com/read.php?2,3047 sur live USB
- http://www.siliconmaniacs.org/piratebox-mode-demploi/ PB sur ordi classique (même vieux). Bon article en français
- http://forums.cnetfrance.fr/topic/1194435-piratebox-eeepc-901-le-tuto/ un peu vieux (dernier post d'avril 2012)
A noter que l'implémentation de PirateBox sur Raspberry-Pi est aussi un sujet très actif (depuis début 2012)
... et que Raspberry-Pi tourne sous Raspbian qui est un avatar de Debian.
Il y a donc probablement aussi des informations à glaner de ce coté là.
Just got my RPi, so much nicer for deving pirateboxes than cramming things in a router. Lots and lots of room and the debian install is nice and rich. ([1])
Liens un peu obsolètes
- http://mimibubi.dyndns.org/blog/archives/2011/02/09/first_release_of_piratebox_for_laptops/index.html intéressant, mais de 2011
- http://wiki.daviddarts.com/PirateBoxLaptop_DIY idem que dessus, de 2011
Scénario d'installation
On s'inspire ici de la démarche adoptée pour la partageBox http://attackvector.free.fr/diy/partage-b0x/partagebox.pdf
et des forums chez daviddarts.
Il ne s'agit pas de décompacter un fichier binaire tout ficelé, mais plutôt d'installer pas à pas tous les éléments individuels, afin de mieux comprendre le fonctionnement et aussi pour faciliter la customisation.
On suppose la machine avec Debian installé et munie d'une connexion filaire (internet) opérationnelle et d'une antenne wifi.
S'agissant d'un PC ordinaire, on suppose aussi disposer d'au moins un disque dur (on ne s'occupe donc pas de clé USB, lecteur USB, etc).
Concernant le système Debian, il peut avoir été installé avec plein d'options (paquets dns, serveur, etc), ou en version plus light. Donc, selon son incomplétude ... il y aura des paquets à se procurer.
On indique les paquets nécessaires à installer. S'ils sont déjà présents, il est évidemment inutile de les réinstaller.
Après chaque installation/configuration il est évidemment nécessaire de redémarrer le service pour que les changements soient pris en compte.
Ingrédients : firewall, serveur DHCP, serveur DNS, portail, logiciel serveur web, serveur ftp.
Paquets Debian: http://www.debian.org/distrib/packages
Raccord carte/antenne + installation paquets wifi + configuration
- Raccorder la carte/antenne (via port USB pour ce projet)
- Installer les paquets relatifs au wifi
- Configurer
Dans la partageBox, il y a "séparation" (?) des réseaux wifi et filaire et paramétrage différencié des 2.
(On imagine qu'il est aussi possible que la connexion filaire soit simplement physiquement débranchée la plupart du temps.)
La configuration du réseau wifi est bien sûr spécifique au matériel carte/antenne retenu.
A noter que l'usure de la carte/antenne est directement corrélée au milliWatts que vous lui faites débiter. Si le fabricant indique que 2000mW est possible, il s'agit en fait d'une valeur max que la carte peut supporter ponctuellement, pas de la valeur pour un fonctionnement permanent. 2000mW 24h/24 pendant 1 mois ou 100mW pendant 3 ans ... à vous de choisir.
A noter aussi que votre installation doit émettre, mais évidemment aussi recevoir du signal. Si vous faites "hurler" votre antenne, le captage du signal retour est sera rendu nettement plus difficile, voire impossible. Là aussi, c'est une bonne raison de ne pas pousser les manettes.
Liens: http://packages.debian.org/stable/iw
Installation firewall + configuration
- Installer
Le noyau linux (et donc Debian) est déjà muni d'un firewall de base qui se résume à un fichier de configuration brut qui est déjà configuré par défaut "comme il faut". Il existe plusieurs firewall sous Debian, tous plus ou moins basés sur les 2 paquets basiques iptables/netfilter Voir [2][3] etc (googler firewall+debian). Dans l'absolu, il n'y a donc pas de nécessité d'installer un autre firewall, ces logiciels étant en fait surtout des surcouches
- Configurer
Installation du serveur DHCP + configuration
Pour faire court, le serveur DHCP est le logiciel qui s'occupe d'affecter une adresse IP aux matériels concernés présents. Voir: http://fr.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol + http://wiki.debian.org/fr/DHCP_Server etc (googler Debian+DHCP)
- Installer
- Configurer le fichier /etc/dhcp/dhcpd.conf
Installation d'un serveur Web + configuration
Plusieurs serveurs web sont proposés sous Debian stable http://packages.debian.org/stable/web/ .
Parmi les plus connus : Apache, Lighttpd, Nginx (http://fr.wikipedia.org/wiki/Serveur_HTTP).
Uhttpd qui est le serveur web intégré d'openWRT n'est pas proposé sous Debian (même pas en testing ou unstable).
A priori, on aurait tendance à opter pour le serveur retenu par les développeurs de la pirateBox, à savoir Lighttpd. (voir aussi http://fr.wikipedia.org/wiki/Lighttpd).
D'après l'un des devs : This package uses lighttpd and may perform much faster than the old python script based stuff
Apache est peut-être un peu surdimensionné pour l'usage envisagé (... et est peut-être aussi un peu ancien).
- configurer
Si on veut proposer l'hébergement/support de fichiers PHP, alors cela nécessite 1/ l'installation de paquets dédiés à cette tâche et 2/ de le notifier dans la configuration du serveur.
Au 25/2/2013, PHP pour PirateBox est qualifié de very expérimental (http://piratebox.aod-rpg.de/dokuwiki/doku.php/modifications/lighttpd_051#php_for_piratebox)
Voir aussi : http://piratebox.aod-rpg.de/dokuwiki/doku.php/piratebox_lighttpd
Installation serveur ftp ...
- Serveurs ftp sous Debian : http://packages.debian.org/squeeze/net/filezilla, http://packages.debian.org/squeeze/vsftpd ,
(liste non exhaustive)
- avant d'installer le logiciel retenu, il faut bien sûr définir un peu l'architecture/arborescence de l'espace réservé aux uploads/downloads.
à suivre ...
Antenne, carte/antenne
Diverses contraintes s'appliquaient pour le choix d'une carte antenne, dont une bonne compatibilité Debian. http://wiki.debian.org/fr/WiFi liste, assez précisément, les chipsets/firmware compatible Debian. Après investigations, le matériel retenu pour la présente implémentation est une carte/antenne très connue et éprouvée http://www.alfa-awus036h.com/alfa-awus036h-accueil.php . On trouvera pas mal d'informations et conseils sur cette carte ici : http://www.crack-wifi.com/forum
Discussions sur les cartes/antennes compatibles Raspberry-Pi PirateBox + AccessPoint ici :
- http://piratebox.aod-rpg.de/dokuwiki/doku.php?id=raspberry_piratebox_wifi&#known_as_working
- http://forum.daviddarts.com/read.php?7,6313
L'awus036NH est dite compatible et awus036H est dite non-compatible ? Un peu étonnant.
PirateBoxs maillées
Voir PirateBoxs_maillées (meshed)
Articles connexes
- Debian Petite compilation de liens/informations pour les débutants Debian
- Hébergement_Internet
- Internet_Maillé
- PirateBox
Autres liens
- http://attackvector.free.fr/diy/partage-b0x/partagebox.pdf PartageBox : un fork très intéressant de la pirateBox (avec openwrt + uhttpd)
- daviddartsMatthiasStrubelPirateBox_DevTerrorByte Comptes twitter de quelques-uns des principaux développeurs de la PirateBox
- http://www.auto-hebergement.fr/
- http://fr.wikipedia.org/wiki/Auto-h%C3%A9bergement_%28Internet%29
- http://www.planet-libre.org/?post_id=13155 Autohébergement : un an et demi plus tard...
- https://sciunto.wordpress.com/2011/08/05/premiers-pas-vers-lauto-hebergement/ premiers pas vers l'auto hebergement
- https://sciunto.wordpress.com
- http://yunohost.org/ "autohébergement ... Simple à installer et à utiliser (cc from http://ploum.net/post/opportunites-manquees-du-libre-2-decentralisation)