Ceci est une ancienne révision du document !
Pibox : Une rapsberry pour les échanges
J'ai testé les logiciels “piratebox” et je n'ai pas aimé, ni en tant qu'utilisatrice, ni en tant qu'administratrice. Aussi je tente ma propre interprétation de la chose.
Installation du raspberry
Voir aussi https://raspbian-france.fr/installer-raspbian-premier-demarrage-configuration/ , un tuto complet qui m'a bien aidé ; ce qui est ici est la version raccourcie et adaptée à ma façon de faire.
Télécharger Raspbian Jessie Lite (pas d'interface graphique) et mettre l'image sur une carte SD (à l'emplacement /dev/sdX
donc à adapter ) :
sudo umount /dev/sdX sudo dd bs=4M if=2017-04-10-raspbian-jessie-lite.img of=/dev/sde
Mettre la carte SD dans le raspberry, le brancher avec un écran, un clavier, ethernet et l'alimentation (câble micro-usb).
Ça démarre, plus ou moins vite. Identifiant pi
, mot de passe raspberry
mais en qwerty, il faut donc taper rqspberry
sur notre clavier en azerty.
On va vite changer ça en lançant la commande
sudo raspi-config
qui s'écrit sur azerty :
sudo rqspi)config
Cela lance un chouette programme. En premier le clavier : Localisation Options > Change Keyboard Layout > generic 105-key > other > french > french. Ou comme vous préférez, on peut aussi le passer en bépo. Attention le clavier va rester en qwerty sur cette session. Le plus simple sera de redémarrer à la fin.
Ensuite les locales : Localisation Options > Change Locale
Sélectionner fr_FR.UTF-8 UTF-8
, espace pour valider, puis tab pour aller sur ok, entrée et sélectionner “FR” en locale principale.
Maintenant on peut passer aux fioritures.
Permettre l'utilisation de SSH, afin qu'on puisse débrancher l'écran : Interfacing Options > SSH ⇒ passer “enable”
Pendant qu'on est là, donnez un hostname sympa pour le réseau (l'une des options de base).
Une option pour que le système prenne toute la place disponible sur la carte : Advanced Options > Expand Filesystem
Après ça on va reboot, afin de prendre en compte ce qu'on a fait.
Nous avons droit à un message d'avertissement au démarrage, car SSH est activé mais le mot de passe est toujours celui par défaut. Changeons ça rapidement :
sudo passwd sudo passwd pi
Mettez un bon mot de passe et mémorisez-le.
Nous allons tout de suite configurer ssh :
sudo nano /etc/ssh/sshd_config
On change le port (tout sauf 22), on s'assure que root ne peux pas se connecter directement et on autorise juste “pi” à se connecter
Port 222 PermitRootLogin no AllowUsers pi
Et un petit redémarrage de ssh pour prendre ça en compte.
sudo service ssh restart
Ensuite on envoie sa propre clé sur le raspberry :
ssh-copy-id -p 222 -i ~/.ssh/id_rsa.pub pi@192.168.1.01
Pour trouver l'adresse ip qui permet de s'y connecter, regardez ce que votre modem vous donne comme adresse pour votre framboise.
Dernière chose et pas des moindres… la mise à jour du système… c'est long car la bestiole n'est pas puissante. Allez prendre une pause, c'est le moment.
sudo apt-get update && sudo apt-get upgrade -y && sudo reboot
Personnalisations cosmétiques en plus
Je n'aime pas le message par défaut quand on se connecte en ssh. Il se change dans /etc/motd
.
Je sais que ce n'est pas “bien”, mais quand je passe du temps sur des commandes root, je préfère passer en root (sudo su) ; par contre son bashrc n'est pas bien configuré.
sudo su nano /root/.bashrc
Décommenter/ajouter ceci :
export LS_OPTIONS='--color=auto' eval "`dircolors`" alias ls='ls $LS_OPTIONS' alias ll='ls $LS_OPTIONS -l' alias l='ls $LS_OPTIONS -lA' # Autocompletion if [ -f /etc/bash_completion ]; then . /etc/bash_completion fi
Installation du serveur web
Raspberry étant un mini-machin, il faut préférer des outils légers. Ici, ce sera Lighttpd1) plutôt qu'Apache ou Nginx. Et nous allons essayer d'éviter les bases de données et les gros logiciels.
sudo apt-get install lighttpd php5-cgi php5-gd php5-imagick php5-curl php5-intl
Tous ces modules ne vous seront pas forcément utiles, il y a surtout php5-cgi qui compte, mais le reste me sert souvent dans les CMS que j'aime utiliser donc : léger d'un coté, plein de l'autre !
Activer les modules de php :
sudo lighty-enable-mod fastcgi sudo lighty-enable-mod fastcgi-php
Et relancer le démon :
sudo service lighttpd force-reload
Pour voir si ça marche :
sudo sh -c 'echo "<?php phpinfo(); ?>" > /var/www/html/info.php' sudo chown -R www-data:www-data /var/www/html/info.php
Accédez-y via l'adresse ip_de_ma_framboise/info.php
.
Transformer la Raspberry en accès wifi
Il faut une carte wifi à ajouter et le bon driver pour la faire tourner. La carte (ou clé) wifi doit supporter le mode AP, ce qu'on peut voir avec la commande iw list
(installer le paquet iw
s'il n'y est pas), qui doit retourner quelque chose comme Supported interface modes: AP/VLAN
au milieu des diverses informations.
Dans mon cas, j'ai une clé usb wifi Hercule, bien prise en charge sous linux et qui propose le mode AP. Pour connaître le modèle : lsusb
, c'est l'une des lignes.
lsusb Bus 001 Device 004: ID 06f8:e010 Guillemot Corp. HWGUSB2-54-LB
Un petit tour ensuite sur la database des périphériques usb de Debian : https://wiki.debian.org/DeviceDatabase/USB où cette référence m'indique que mon pilote sera rt73, installé avec firmware-ralink. J'aime quand c'est facile comme ça. À adapter à votre propre périphérique wifi !
sudo apt-get install firmware-ralink
Ensuite on installe les outils qui vont servir à faire du réseau :
sudo apt-get install dnsmasq hostapd
- dnsmasq va attribuer des ip aux appareils qui se connectent et ça semble essentiel dans tous les tutos que je vois
- hostapd va générer le réseau sans fil auquel se connecter.
Il faut commencer par configurer les interfaces réseaux. Vérifiez que votre carte wifi est bien wlan0 avec ifconfig
, sinon adaptez la suite du tutoriel en remplaçant wlan0 par son identifiant.
Éditez (après avoir sauvegardé une copie de l'origine) /etc/network/interfaces
de façon à ce qu'il n'y aie que ça et d'éventuels commentaires :
# Include files from /etc/network/interfaces.d: source-directory /etc/network/interfaces.d auto lo iface lo inet loopback iface eth0 inet manual iface wlan0 inet manual
Alternative qui semble marcher, et qui donne une adresse statique :
# Include files from /etc/network/interfaces.d: source-directory /etc/network/interfaces.d auto lo iface lo inet loopback iface eth0 inet manual allow-hotplug wlan0 iface wlan0 inet static address 192.168.300.1 netmask 255.255.255.0
Relancer le démon :
sudo service networking restart
Configuration de hostapd : créer son fichier de configuration et coller ce qui suit en adaptant le nom du spot.
# interface wlan du Wi-Fi interface=wlan0 # nl80211 avec tous les drivers Linux mac80211 driver=nl80211 # Nom du spot Wi-Fi ssid=PiBox # mode Wi-Fi (a = IEEE 802.11a, b = IEEE 802.11b, g = IEEE 802.11g) hw_mode=g # canal de fréquence Wi-Fi (1-14) channel=6 # Wi-Fi ouvert, pas d'authentification ! auth_algs=1 # Beacon interval in kus (1.024 ms) beacon_int=100 # DTIM (delivery trafic information message) dtim_period=2 # Maximum number of stations allowed in station table max_num_sta=255 # RTS/CTS threshold; 2347 = disabled (default) rts_threshold=2347 # Fragmentation threshold; 2346 = disabled (default) fragm_threshold=2346
Relancer le démon :
sudo service hostpad restart
Jusqu'ici ça marche
Installer
root# apt-get install isc-dhcp-server
(PAS dhcpcd ; à désactiver)
Configurer le serveur et un sous-réseau comme précisé ici:
https://doc.ubuntu-fr.org/hostapd?s[]=dnsmasq#configuration_dhcpd_serveur
(Remplacer l'IP du serveur - ici 192.168.0.1 -, et l'IP du sous réseau - ici 192.168.0.0. L'IP du sous-réseau est comme celle du serveur, avec le dernier numéro remplacé par un 0. Donc, si l'IP du serveur est 192.168.3.22, l'IP du sous-réseau est 192.168.3.0.)
Activer le serveur:
update-rc.d isc-dhcp-server defaults
Vieux machins qui marchent pas
Ajout à la fin (sans enlever le reste) de /etc/hosts :
192.168.300.1 pinata 192.168.300.1 pinata.lan
Erreur de syntaxe ? Problème
Depuis l'installation et la purge de isc-dhcp-server, l'accès web ne marche plus (pas de réponse aux pings)
====
Configuration de dnsmasq après avoir copié le fichier de base dans sudo nano /etc/dnsmasq.conf
: de base, tout est sensé être commenté, il y a ces options à paramétrer :
interface=wlan0 dhcp-range=192.168.200.100,192.168.200.200,255.255.255.0,12h
Relancer le démon :
sudo service dnsmasq restart
systemctl daemon-reload de temps en temps ?
À ce stade, le réseau apparait, mais ça ne se connecte pas…
tutos utiles :
- hostpad sur unbuntu