C’est quoi une PirateBox?
C’est un appareil de communication sans fil qui permet de communiquer et d’échanger des fichiers. Vous me direz, rien de nouveau, n’importe quel téléphone fait ça.
Ce n’est pas tout à fait vrai. Le fin mot est ‘self-contained’, on pourrait dire ‘clos sur lui-même’. Il n’utilise pas d’autres ressources que les siennes propres. C’est un petit réseau local en fait. A la différence qu’il est public et fonctionne avec tout ce qui peut se connecter au web. Un réseau local public qui peut être utilisé pour des réunions ponctuelles qui durent tant qu’une PirateBox est activé dans un lieu donné.
Pourquoi une PirateBox?
C’est à la frontière du geek et de l’artiste qu’on se situe en créant une PirateBox. l’instigateur est David Darts, qui explique le concept un peu comme une provocation, une réponse au réseau aujourd’hui bien établi et policé. Il illustre que malgré la censure et la réglementation, il est possible d’élargir son espace de liberté. On peut imaginer un futur réseau où chacun muni de son smartphone constitue un noeud, un relais de ce réseau. Il deviendra encore plus difficile à censurer et surveiller, puisqu’encore moins centralisé qu’aujourd’hui où on passe encore par des fournisseurs d’accès.
Mais n’anticipons pas, là c’est simplement pour s’amuser.
J’ai trouvé des PirateBox pour d’autres smartphones, Android par exemple, mais rien sur iPhone.
Pourtant c’est pas compliqué, il faut installer un serveur web, rendre disponible la connection wifi et créer un site qui permet de faire des téléchargements, du chat, et toutes les fonctionnalités qu’on pourrait souhaiter d’une pirate box.
En cherchant un peu, on voit qu’il est possible d’installer un serveur web sur iPhone et de rendre ce serveur disponible en activant le modem wifi en tant que hotspot.
C’est le premier volet de mon installation, qui comporte 3 étapes. On verra ensuite quel site web il faudra installer. Certain qu’il existe un package ‘pirate box ready’ tout prêt. Sinon on verra.
Etape 1: Jailbreaker l’iPhone.
ben non, je ne l’avais pas encore fait. Donc backup de l’iPhone sur iTunes, mise à jour de iTunes et téléchargements de redsn0w ici:
http://redsn0w-download.org/
https://sites.google.com/a/iphone-dev.com/files/home/redsn0w_win_0.9.10b5c.zip?attredirects=0&d=1
Attention: On trouve une quantité de sites qui font payer ce programme. C’est une arnaque, le programme est gratuit.
J’ai du m’y reprendre à deux fois mais c’est fait, l’iPhone est ‘prison-cassé’.
Etape 2: Installer le serveur web.
Dans l’application Cydia, on trouve lighthttpd. Facile de le télécharger et l’installer.
Il faut installer aussi Open SSH, afin de pouvoir se connecter avec une session console. J’utilise Bitvise tunnelier pour les sessions linux. Très pratique, on peut sauvegarder les mots de passe, les adresses IP. ca ouvre a la fois un terminal et une session TFTPD. autrement on peut utiliser putty mais c’est moins sexy.
Alleye: IP: 10.0.0.12 User:root Password:alpine et zou c’est parti.
Première chose à penser, changer le mot de passe root. On risque d’être mal une fois l’accès wifi hotspot sera activé.
Ok. J’ai une session ouverte, j’ai installé lighthttpd, me faut le configurer et le faire marcher. J’ai trouvé cette page et je suis les instructions:
http://byronsmith.co.uk/tag/lighttpd/
Soit:
Répertoire pour les logs:
mkdir /var/log/lighttpd
Répertoire pour le site web
mkdir /var/www
Un fichier de configuration /etc/lighttpd.conf
Je recopie tel quel
server.document-root = "/var/www/"
server.port = 80 # Default
server.modules = ( "mod_cgi","mod_indexfile","mod_dirlisting", "mod_accesslog" )
server.tag = "iPhone lighttpd"
server.name = "Aiode.webearth.org"
server.pid-file = "/var/run/lighttpd.pid"
dir-listing.activate = "enable"
dir-listing.external-css = "/.dirlist/iphonedirlist.css"
accesslog.filename = "/var/log/lighttpd/access.log"
server.errorlog = "/var/log/lighttpd/error.log"
index-file.names = ( "index.php", "index.py", "index.pl", "index.cgi", "index.html", "default.html", "/.dirlist/dir-generator.py" )
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi", ".cgi", ".py" )
cgi.assign = ( ".pl" => "/usr/bin/perl", ".py" => "/usr/bin/python", ".rb" => "/usr/local/bin/ruby", ".cgi" => "", ".sh" => "", ".php" => "/usr/bin/php-cgi" )
mimetype.assign = (
".pdf" => "application/pdf",
".sig" => "application/pgp-signature",
".spl" => "application/futuresplash",
".class" => "application/octet-stream",
".ps" => "application/postscript",
".torrent" => "application/x-bittorrent",
".dvi" => "application/x-dvi",
".gz" => "application/x-gzip",
".pac" => "application/x-ns-proxy-autoconfig",
".swf" => "application/x-shockwave-flash",
".tar.gz" => "application/x-tgz",
".tgz" => "application/x-tgz",
".tar" => "application/x-tar",
".zip" => "application/zip",
".mp3" => "audio/mpeg",
".m3u" => "audio/x-mpegurl",
".wma" => "audio/x-ms-wma",
".wax" => "audio/x-ms-wax",
".ogg" => "application/ogg",
".wav" => "audio/x-wav",
".gif" => "image/gif",
".jpg" => "image/jpeg",
".jpeg" => "image/jpeg",
".png" => "image/png",
".xbm" => "image/x-xbitmap",
".xpm" => "image/x-xpixmap",
".xwd" => "image/x-xwindowdump",
".css" => "text/css",
".html" => "text/html",
".htm" => "text/html",
".js" => "text/javascript",
".asc" => "text/plain",
".c" => "text/plain",
".cpp" => "text/plain",
".log" => "text/plain",
".conf" => "text/plain",
".text" => "text/plain",
".txt" => "text/plain",
".dtd" => "text/xml",
".xml" => "text/xml",
".mpeg" => "video/mpeg",
".mpg" => "video/mpeg",
".mov" => "video/quicktime",
".qt" => "video/quicktime",
".avi" => "video/x-msvideo",
".asf" => "video/x-ms-asf",
".asx" => "video/x-ms-asf",
".wmv" => "video/x-ms-wmv",
".bz2" => "application/x-bzip",
".tbz" => "application/x-bzip-compressed-tar",
".tar.bz2" => "application/x-bzip-compressed-tar",
# default mime type
"" => "application/octet-stream",
)
Pour lancer le serveur au démarrage de l’iPhone il faut créer le fichier com.lighttpd.plist dans le répertore /Library/LaunchDaemons
Ce fichier contient:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>lighttpd</string>
<key>OnDemand</key>
<false/>
<key>Program</key>
<string>/usr/sbin/lighttpd</string>
<key>ProgramArguments</key>
<array>
<string>/usr/sbin/lighttpd-angel</string>
<string>-f/etc/lighttpd.conf</string>
<string>-D</string>
</array>
</dict>
</plist>
Pout l’instant je démarre manuellement:
lighttpd-angel -f /etc/lighttpd.conf
Ou comme Daemon:
lighttpd-angel -D -f /etc/lighttpd.conf
Yes. Je tape l’IP de l’iphone dans Firefox et j’obtiens une liste de fichiers. le serveur est en place. Reste plus qu’à y mettre un site, ainsi qu’activer le hotspot wifi. Pour l’instant le serveur est privé, accessible uniquement depuis mon réseau local.
On verra ça dans la partie 2