vide en ligne depuis 02.10.1998

Répéteur Wi-Fi sur Raspberry PI

Avec un minimum de matériel nous allons configurer un répéteur Wi-Fi sur une base de Raspberry PI model 3 puisque celui dispose d'une interface Wi-Fi onboard.

Nous aurons donc besoin :
- un Raspberry model 3
- une carte microSD d'au moins 2 Go
- une alimentation de 1A pour le PI
- un dongle Wi-Fi

La première étape conciste à installer la version lite de Raspbian sur le Raspberry pi. Vous trouverez la derniere version ici.

Une fois l’installation de Raspbian effectuée, la première chose à faire va être de brancher notre Raspberry pi à notre box internet en utilisant un câble Ethernet.
Je vous laisse le choix des armes pour prendre le contrôle de votre raspberry, soit directement avec un clavier/écran, soit par SSH.

Comme je suis une grosse feignasse, nous allons installer une interface web qui nous permettra de configurer et de contrôler notre répéteur, RaspAP disponible gracieusement sur Github.

$ wget -q https://git.io/voEUQ -O /tmp/raspap && bash /tmp/raspap

Une fois la commande lancée, vous n’avez plus qu’à répondre aux quelques questions qui vous seront posées, et l’installation de tous les composants va se faire toute seule.
Pendant l'installation, je vous conseil de lire le readme en fin de page sur Github.

Lorsque l’installation est terminée, le Raspberry pi redémarre, connectez vous à l'aide de votre butineur favori sur son adresse IP qui doit être : 10.141.3.1.

Vous devriez avoir un écran semblable à celui-ci :


A ce stade, vous disposez d'un hotspot Wi-Fi opérationnel que nous allons transformer en répéteur afin de prolonger la portée de notre réseau Wi-Fi domestique.

Dans le frontal RaspAP, commencez par modifier les paramètres comme montré ci-dessous.









A l'étape suivante, nous allons être obligé de mettre les mains dans le cambouis mais rien de bien méchant rassurez-vous...

On commence par modifier le fichier de configuration du DHCP

$ sudo nano /etc/dhcpcd.conf

#DHCP configured for wlan1

interface wlan0
static ip_address=10.3.141.1/24
static domain_name_servers=1.1.1.1 8.8.8.8

interface eth0
static ip_address=192.168.1.54/24
static routers=255.255.255.254
static domain_name_servers=192.168.1.1 8.8.8.8

puis c'est au tour du fichier wpa_supplicant.conf d'être modifié.

$ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

puis on crée un nouveau fichier.

$ sudo nano /etc/wpa_supplicant/wpa_supplicant-wlan1.conf

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="Freebox-ABCDE"
psk="LeMotDePasse"
}

et on continu avec le fichier config.php ou on va modifier 2 lignes.

$ sudo nano /var/www/html/includes/config.php

define('RASPI_WIFI_CLIENT_INTERFACE', 'wlan1');
define('RASPI_WPA_SUPPLICANT_CONFIG', '/etc/wpa_supplicant/wpa_supplicant-wlan1.conf');

on enchaîne avec le fichier hostapd.conf ou on va vérifier le contenu.

$ sudo nano /etc/hostapd/hostapd.conf

driver=nl80211
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
beacon_int=100
auth_algs=1
wpa_key_mgmt=WPA-PSK
ssid=LeSSIDdeAP
channel=1
hw_mode=g
wpa_passphrase=VotreMotDePasse
interface=wlan0
wpa=1
wpa_pairwise=TKIP
country_code=AF

courage, ça se termine. On continu avec le fichier dnsmasq.conf ou on va là encore vérifier le contenu.

$ sudo nano /etc/dnsmasq.conf

interface=wlan0
dhcp-range=10.3.141.50,10.3.141.255,255.255.255.0,15d


nous allons maintenant figer le nom des interfaces réseaux pour éviter leur changement de nom après un redémarrage.
Consultez cette page, paragraphe 2.2 très intéressante sur le pourquoi...

créer le fichier 10-network.rules et copier/coller les 2 lignes suivantes

$ sudo nano /etc/udev/rules.d/10-network.rules

SUBSYSTEM=="net", ATTRS{address}=="xx:xx:xx:xx:xx:xx", NAME="wlan0"
SUBSYSTEM=="net", ATTRS{address}=="yy:yy:yy:yy:yy:yy", NAME="wlan1"

remplacer les 'xx' et les 'yy' par les adresses MAC des cartes ! (la saisie doit OBLIGATOIREMENT être en MAJUSCULES !)

un dernier effort avec le fichier rc.local ou on va ajouter 3 lignes.

$ sudo nano /etc/rc.local

echo 1 > /proc/sys/net/ipv4/ip_forward #RASPAP
iptables -t nat -A POSTROUTING -o wlan1 -j MASQUERADE
iptables -A FORWARD -i wlan1 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i wlan0 -o wlan1 -j ACCEPT

allez, cette fois c'est vraiment fini avec le fichier sysctl.conf ou on va ajouter quelques lignes à la fin du fichier afin de désactiver l'IPv6.

$ sudo nano /etc/sysctl.conf

# désactivation de ipv6 pour toutes les interfaces
net.ipv6.conf.all.disable_ipv6 = 1
# désactivation de l’auto configuration pour toutes les interfaces
net.ipv6.conf.all.autoconf = 0
# désactivation de ipv6 pour les nouvelles interfaces (ex:si ajout de carte réseau)
net.ipv6.conf.default.disable_ipv6 = 1
# désactivation de l’auto configuration pour les nouvelles interfaces
net.ipv6.conf.default.autoconf = 0

puis on lance la commande suivante afin de modifier dynamiquement les paramètres du système d'exploitation.

$ sysctl -p

Rebooter la machine et allez boire un café, vous l'avez bien mérité...

Vous n'avez plus qu'à vous connecter sur votre AP