Catégorie : raspberry-pi

Monter un relais wifi avec un Raspberry Pi.

raspVoilà 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 :

script_install_relais_wifi.sh

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 loopback

auto 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 wlan0

auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
address 10.0.0.1
netmask 255.255.255.0

up iptables-restore </etc/iptables.ipv4.nat

Faire control-o (sauvegarder) , entrée, puis control-x.(Quitter)

Explication :

  1. Eth0 est le port ethernet du raspberry pi, il est configuré pour recevoir une IP et un accès internet par un serveur DHCP.
  2. wlan0 est la clé wifi qui est configurée en IP fixe (10.0.0.1).
  3. Br0 est le bridge (pont) créé entre ces deux interfaces.
  4. « 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 ACCEPT

sudo 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 »

Vous avez aimé cet article ? Alors partagez-le avec vos amis en cliquant sur les boutons ci-dessous :

Licence Creative Commons