Voilà comme promis, suite à l’article sur l’utilisation des téléphones portables en cours, je vous fais part de la méthode pour transformer un raspberry pi en relais wifi.
D’autres projets devraient suivre, comme la création d’un serveur local sans acces à internet pour diffuser en wifi, les documents ou vidéos.
Ensuite un autre projet, pour activer la projection de la caméra sur le port hdmi dès qu’elle est branchée (en gros on transforme le raspberry pi en visualisation)
et enfin, comment ajouter un interrupteur pour moins de 5€ pour ordonner l’arrêt du raspberry pi (plus besoin de clavier!!)
J’en profite pour vous dire l’administration accepte finalement l’usage des téléphones portables et envisage l’achat de tablettes ou smartphones pour munir en classe les élèves qui n’en ont pas. Cool,non?
I.Matériel
Tout d’abord, il faut se procurer un raspberry-pi, pour 60-80€ vous pouvez vous en procurer un sur ebay. (J’ai choisi un package avec une clé usb wifi).
La clé usb wifi dans mon cas est une edimax, elle m’a un peu posé problème (rien d’insurmontable)
II.Installation
Si vous avez acheté un package, normalement vous avez une carte sd préinstallée, choisir d’installer RASPBIAN.
(on gardera en tête que l’utilisation est « pi » et le mot de passe : « raspberry »).
Il n’y a rien à faire de spécial….
Maintenant deux choix s’offre à vous :
- On utilise le script que j’ai fait.
- On suit la méthode ci-dessous
III. Le script
Voici un script qui permet l’installation de la passerelle et le cas échéant de revenir à la configuration initiale du réseau.
A utiliser en passant la commande
./script_install_relais_wifi.sh install
ou
./script_install_relais_wifi.sh backup
Voici le script :
IV. Installation du wifi.
A) Une version plus récente de hostapd
Dans un terminal :
sudo apt-get install bridge-utils hostapd dnsmasq make gcc
La version de hostapd ne marche pas avec la clé usb wifi EDIMAX, on va donc compiler une version plus récente :
wget https://mathix.org/RASP/0001-RTL8188C_8192C_USB_linux_v4.0.2_9000.20130912.zip
unzip 0001-RTL8188C_8192C_USB_linux_v4.0.2_9000.20130912.zip
cd RTL8188C_8192C_USB_linux_v4.0.2_9000.20130911/wpa_supplicant_hostapd/
tar -xzvf wpa_supplicant_hostapd-0.8_rtw_r7475.20130812.tar.gz
cd wpa_supplicant_hostapd-0.8_rtw_r7475.20130812/hostapd
make
sudo make install
A) Création du bridge
Dans un terminal :
sudo nano /etc/network/interfaces
Un éditeur s’ouvre, supprimer toutes les lignes (ou commentez-les avec un # devant chaque ligne) et ajouter les lignes suivantes :
auto lo
iface lo inet loopbackauto eth0
allow-hotplug eth0
iface eth0 inet dhcp# si besoin de faire un pont avec la connexion filaire
auto br0
iface br0 inet dhcp
bridge_ports eth0 wlan0auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
address 10.0.0.1
netmask 255.255.255.0up iptables-restore </etc/iptables.ipv4.nat
Faire control-o (sauvegarder) , entrée, puis control-x.(Quitter)
Explication :
- Eth0 est le port ethernet du raspberry pi, il est configuré pour recevoir une IP et un accès internet par un serveur DHCP.
- wlan0 est la clé wifi qui est configurée en IP fixe (10.0.0.1).
- Br0 est le bridge (pont) créé entre ces deux interfaces.
- « up iptables-restore </etc/iptables.ipv4.nat » est l’exécution un fichier que l’on va créer qui va permettre de rediriger les ports d’une interface vers l’autre.
B)Redirection des ports
Dans un terminal
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state –state RELATED,ESTABLISHED -j ACCEPTsudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
sudo sh -c « iptables-save > /etc/iptables.ipv4.nat »
Il faut autoriser le forwarding des ports :
sudo nano /etc/sysctl.conf
Ajouter la ligne
net.ipv4.ip_forward=1
C) Création du serveur DHCP
On a installé dnsmasq (serveur DNS et DHCP), dans un terminal :
sudo nano /etc/dnsmasq.conf
Ajouter les lignes :
interface=wlan0
dhcp-range=10.0.0.100,10.0.0.200,255.255.255.0,12h
Faire control-o (sauvegarder) , entrée, puis control-x.(Quitter)
D) Configuration de hostapd
Dans un terminal
sudo nano /etc/hostapd/hostapd.conf
Mettre les lignes suivantes :
interface=wlan0
driver=rtl871xdrv
bridge=br0
ssid=mathixdudu # <-le nom du réseau wifi
channel=1
wmm_enabled=0
wpa=1
wpa_passphrase=mathixdudu # <-le password du réseau wifi
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
auth_algs=1
macaddr_acl=0
Il suffit de redémarrer le raspberry-pi et le relais wifi devrait fonctionner :
Dans un terminal
sudo reboot
*** jessie : le service hostapd ne se lance pas alors il faut le lancer manuellement :
sudo hostapd -dd /etc/hostapd/hostapd.conf |
Ensuite pour désactiver la veille du wifi , on vérifie si la veille est activée :
cat /sys/module/8192cu/parameters/rtw_power_mgnt
Si cela retourne 1 c’est que c’est le cas.
sudo nano /etc/modprobe.d/8192cu.conf
ajotuer la ligne suivante :
options 8192cu rtw_power_mgnt=0 rtw_enusbss=0
ifplugd plante et empêche l’initialisation de la clé wifi au démarrage :
sudo nano /etc/default/ifplugd
INTERFACES= »eth0″
HOTPLUG_INTERFACES= »all »
ARGS= »-q -f -u0 -d10 -w -I »
SUSPEND_ACTION= »stop »