Un point d’accès WiFi peut être utile dans de nombreux projets à base de Raspberry Pi : créer un mini routeur pour partager une connexion réseau filaire ou simplement permettre la connexion de périphériques réseaux à un système isolé de tout réseau (Raspberry Pi embarqué dans une voiture par exemple). Nous allons voir comment mettre en place très simplement un point d’accès WiFi complet.
Les étapes suivantes ont été réalisées sous Raspbian Jessie (8.x). La dernière version, Raspbian Stretch (9.x), introduit une nouvelle nomenclature de nommage des interfaces réseaux. Plus d’informations sur les modifications à apporter ici (Merci Lionel) :
https://raspberrypi.stackexchange.com/questions/37920/how-do-i-set-up-networking-wifi-static-ip-address/37921#37921
Il existe une multitude d’adaptateurs WiFi USB : miniature pour un encombrement minimal, avec antenne pour une meilleure portée, compatible normes g/n/ac… Certains sont compatibles directement avec Raspbian, d’autres nécessitent l’installation de pilotes spécifiques. Il faut se renseigner sur la compatibilité de l’adaptateur avant tout achat. Le site eLinux.org est une mine d’or pour trouver ce genre d’information.
Mon choix s’est porté sur l’adaptateur EDUP Nano Adapter EP-N8531 doté d’un chipset Ralink RT5370 qui est compatible avec les dernières distributions Raspbian sans pilotes supplémentaires. Il faut également vérifier que votre adaptateur supporte le mode Access Point (AP).
Cas spécifique le Raspberry Pi dans sa version 3 embarque directement un chipset WiFi, il n’est donc pas nécessaire d’en acquérir un connectable en USB.
Préparation logicielle
L’ensemble des manipulations ont été effectuées sur la distribution Raspbian Jessie Lite d’avril 2017.
Avant toute choses je conseille de mettre à jour le système et le firmware.
Nous allons installer hostapd le « moteur » du point d’accès et udhcpd un serveur DHCP permettant d’attribuer automatiquement les adresses IP aux périphériques :
sudo apt-get install hostapd udhcpd
Vérification initiale
Après avoir connecté notre adaptateur WiFi en USB, vérifions que celui-ci est bien reconnu par Raspbian :
lsusb
Dans mon cas une ligne concerne mon adaptateur WiFi dans la réponse de la commande :
Bus 001 Device 004: ID 148f:5370 Ralink Technology, Corp. RT5370 Wireless Adapter
Il est possible que votre périphérique ai besoin de pilotes spécifiques pour fonctionner sur Raspbian. Dans ce cas il faut vous renseigner en fonction de l’adaptateur que vous avez choisi.
On vérifie ensuite les modes supportés par l’adaptateur :
iw list
Dans la catégorie Supported interface modes il faut que le mode mode AP soit présent.
Configuration DHCP
Pour que les clients sans-fil connectés à notre point d’accès Raspberry Pi puissent communiquer il leur faut une adresse IP. On configure donc un serveur DHCP pour délivrer automatiquement ces adresses.
Edition du fichier de configuration /etc/udhcpd.conf via nano par exemple :
sudo nano /etc/udhcpd.conf
# Début et fin de la plage d'adresses IP start 192.168.12.2 end 192.168.12.15 # L'interface réseau utilisée par le serveur DHCP interface wlan0 # Quelques options des baux DHCP remaining yes opt dns 208.67.222.222 208.67.220.220 # OpenDNS option subnet 255.255.255.0 opt router 192.168.12.1 option lease 864000 # 10 jours en secondes
Editer le fichier /etc/default/udhcpd et commenter la ligne suivante pour activer le DHCP :
DHCPD_ENABLED= »no » en # DHCPD_ENABLED= »no »
Désactiver le client DHCP pour l’interface wlan0 en ajoutant la ligne denyinterfaces wlan0 à la fin du fichier /etc/dhcpcd.conf mais avant toute ligne interface .
Editer le fichier de configuration /etc/network/interfaces et modifier la configuration pour l’interface wlan0 afin de lui attribuer une adresse IP fixe :
allow-hotplug wlan0 iface wlan0 inet static address 192.168.12.1 netmask 255.255.255.0 network 192.168.12.0
On applique ensuite la configuration en redémarrant le client DHCP et l’interface wlan0 :
sudo service dhcpcd restart sudo ifdown wlan0 sudo ifup wlan0
Configuration du point d’accès WiFI
Editer le fichier de configuration /etc/hostapd/hostapd.conf
Exemple de configuration pour un point d’accès WiFi norme N nommé Code4Pi_AP et sécurisé WPA2-PSK
interface=wlan0 driver=nl80211 ssid=Code4Pi_AP hw_mode=g channel=0 ieee80211d=1 country_code=FR ieee80211n=1 wmm_enabled=1 macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_passphrase=Code4Pi_Code4Pi wpa_key_mgmt=WPA-PSK rsn_pairwise=CCMP
Exemple de configuration pour un point d’accès WiFi norme N nommé Code4Pi_AP et non sécurisé
interface=wlan0 driver=nl80211 ssid=Code4Pi_AP hw_mode=g channel=0 ieee80211d=1 country_code=FR ieee80211n=1 wmm_enabled=1 macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0
Quelques indications sur les paramètres :
- interface : Interface de votre adaptateur wifi qui sert de point d’accès.
- driver : A modifier si vous utiliser un autre pilote pour un adaptateur spécifique.
- ssid : Nom de votre point d’accès WiFi (à entourer de guillemets s’il y a des espaces).
- hw_mode : Définit la bande de fréquence à utiliser (g pour 2,4GHz, a pour 5GHz)
- channel : Canal WiFi à utiliser. Les valeurs conseillées sont 1 , 6 ou 11 . La valeur 0 correspond à un choix automatique.
- ieee80211d : Limite les fréquences utilisables à celles autorisées dans le pays (0 désactivé, 1 activé).
- country_code : Code pays
- ieee80211n : Support de la norme 802.11n (0 désactivé, 1 activé).
- ieee80211ac : Support de la norme 802.11ac (0 désactivé, 1 activé).
- wmm_enabled : Support de la QoS (0 désactivé, 1 activé).
- macaddr_acl : Restriction d’accès par adresse MAC (0 accès sauf si dans la liste noire, 1 refus d’accès sauf si dans la liste blanche)
- auth_algs : Algorithme de sécurité (1 pour wpa, 2 pour wep, 3 pour les deux)
- ignore_broadcast_ssid : Rendre le nom du point d’accès invisible (0 désactivé, 1 activé).
- wpa : Activer le WPA
- wpa_passphrase : Mot de passe de votre point d’accès (metter des guillemets si il y a des espaces et un minimum 5 caractères).
- wpa_key_mgmt : Algorithme de clefs autorisées
- rsn_pairwise : Algorithme de chiffrement pour WPA2
Indiquer dans le fichier /etc/default/hostapd l’emplacement de notre configuration en renseignant le paramètre DAEMON_CONF :
DAEMON_CONF="/etc/hostapd/hostapd.conf"
Activer le Hotspot WiFi et le serveur DHCP :
sudo service hostapd start sudo service udhcpd start
A cette étape vous devriez disposer d’un point d’accès visible depuis vos périphériques WiFi. Cependant celui-ci ne permet que de contacter notre Raspberry ou les autres périphériques connectés à ce point d’accès. Pour l’utiliser en tant que « routeur WiFi » et disposer également de la connectivité internet fournie par le port ethernet il est nécessaire de configurer quelques éléments supplémentaires.
Configurer le NAT
Le NAT (Network Address Translation) est une technique permettant à différents périphériques d’utiliser une unique connexion à internet. C’est le cas de la box de votre FAI par exemple. C’est le NAT qui va vous permettre de partager la connexion filaire de votre Raspberry Pi vers les différents périphériques connectés à votre point d’accès WiFi.
Activer l’IP forwarding via la commande :
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
Editer le fichier /etc/sysctl.conf et décommenter la ligne net.ipv4.ip_forward=1 pour activer le paramètre à chaque démarrage.
Executer les différentes commandes pour activer le routage correct des données.
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
Sauvegarder les nouvelles règles
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
Ajouter les règles au fichier de configuration principale via la ligne suivante à la fin du fichier /etc/network/interfaces
up iptables-restore < /etc/iptables.ipv4.nat
Votre point d’accès est alors pleinement fonctionnel !
Il est également possible de contrôler l’activation du point d’accès via un bouton physique en suivant ce tutoriel.
Vous pouvez également retrouver un précédent tutoriel concernant l’adaptateur Edimax EW-7811UN. Attention, celui-ci ayant été rédigé en 2013, certaines manipulations peuvent être devenues obsolètes.
Super tutoriel franchement et très détaillé du coup c’est simple à comprendre ! Je vais essayer, j’espère que tout va bien se passer 🙂
Merci pour les compliments. Normalement avec ce modèle d’adaptateur il n’y rien de plus simple.
Salut,
J’ai suivi tous le tutoriel et a la fin, le hotspot n’apparait pas dans la liste des réseau wifi disponible.
J’utilise un raspberry pi 3 avec le wifi intégré.
Pourrai-tu m’aider ?
Le daemon hostapd est-il en fonctionnement ?
Qu’est-ce que retourne la commande « sudo service hostapd status » ?
C’est peut-être lié à une erreur dans le fichier de configuration qui bloque le lancement du point d’accès.
Salut, peux-tu m’aider stp?
J’ai un soucis, tout est fonctionnel, cependant que j’essaie de rejoindre le réseau avec mon portable par exmple, ça met Récupération de l’adresse de l’ip infini…… Comment faire? Merci!!
Le daemon « udhcpd » est-il bien lancé ? As-tu essayé de connecter un autre appareil ?
Salut super tuto mais aurait-tu une idée pour le configurer avec un dongle wifi
Pour que tu puisse choisir de soit récupéré le wifi du dongle soit de l’ethernet mais que ce soit toujours le wifi du pi qui renvois la connection.
Désolé de ne pouvoir apporter une solution mais ce n’était pas le but de mon tutoriel. Pour récupérer une connexion en WiFi et la renvoyer en WiFi il faudra effectivement deux périphériques Wifi (un dongle et le WiFi intégré ou deux dongles). Je ne connais pas de système permettant un choix rapide entre les deux sources. Peut-être qu’une solution a été présenté chez franboise314.fr ou raspbian-france.fr.
D’accords merci dommage que vous ne puissiez pas apporter une solution a mon probleme
Bonjour,
Tuto très intéressant, j’aurais toutefois aimé savoir si il était possible d’enregistrer les adresse MAC des personnes ayant tenté de se connecter au wifi sans succès ?
Salut,
J’ai suivi tout le tutoriel et à la fin, le hotspot n’apparait pas dans la liste des réseaux wifi disponibles.
J’utilise un raspberry pi 3 avec le wifi intégré.
Lorsque je fais la commande « sudo service hostapd status » il est écrit en autre : »Active: active (exited) since… »
Pourrai-tu m’aider ?
Le « daemon » n’est pas actif (statut « exited since » + une durée) ce qui explique que le réseau n’est pas visible. Cela semble être un bug de driver mais n’ayant pas rencontré ce problème dans mon utilisation (Raspberry Pi 2 et non 3) il m’est compliqué de répondre précisément.
La cause probable serait la ligne
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
dans le fichier/etc/network/interfaces
qui serait à commenter ou supprimer.Bonjour,
Merci pour votre aide.
Il semblerait que la configuration de la raspberry 3 ne soit pas complètement identique à la raspberry2. En suivant cet article: https://frillip.com/using-your-raspberry-pi-3-as-a-wifi-access-point-with-hostapd/, cela marche chez moi.
Merci du complément d’information pour ceux qui souhaitent mettre en place le point d’accès WiFi sous Raspberry Pi 3.
Bonjour,
J’aimerais que le smartphone qui se connecte au wifi de mon raspberry soit redirigé vers un fichier php situé sur un serveur (motion).
Je souhaite rester en réseau local et permettre au smartphone de voir la vidéo. Je coince à ce niveau. Je sais que la piratebox permet ce genre de chose mais je ne sais pas du tout comment réaliser ceci. Auriez-vous une piste à me donner.
Merci pour ce tutos c’est vraiment très bien expliqué !! 🙂
Je pense qu’il faut que tu regardes du côté des « portails captifs » pour obtenir ce que tu souhaites.
Merci beaucoup ! je vais aller voir ça 🙂
J’essaie de suivre ton tutoriel, il est tres bien fait, mais je bloque a l’etape du « sudo service dhcpcd restart »
J’ai suivi a la lettre ton tutoriel, j’ai un raspberry 3, donc avec le WiFi integré, et quand je tape la ligne de commande j’ai ce message d’erreur suivant:
======================================
Job for dhcpcd.service failed because the control process exited with error code.
See « systemctl status dhcpcd.service » and « journalctl -xe » for details.
======================================
Dans mon fichier /etc/network/interfaces je n’ai que ceci:
======================================
# interfaces(5) file used by ifup(8) and ifdown(8)
# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and ‘man dhcpcd.conf’
# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d
allow-hotplug wlan0
iface wlan0 inet static
address 192.168.12.1
netmask 255.255.255.0
network 192.168.12.0
======================================
Je suis bloqué présentement. Tu peux m’aider s’il vous plait?
J’ai un gros problème, en suivant ton tutoriel a la lettre, et ayant un Raspberry Pi 3, je bloque a l’ajout de ces lignes dans le fichier /etc/network/interfaces
Quand je tape la ligne de commande sudo service dhcpcd restart, j’ai ce message d’erreur :
Job for dhcpcd.service failed because the control process exited with error code. See « systemctl status dhcpcd.service » and « journalctl -xe » for details.
Si j’efface le contenu du fichier interfaces, je peux redemarrer le service sans problème.
Je ne comprends pas pourquoi ca bloque (j’ai essayé un autre tutoriel et ca bloque toujours à la même place)
Tu peux m’aider à continuer ce tutoriel et a m’aider à débloquer?
tu serais très gentil!
Je pense que la solution de trouve dans les commentaires de Lionel. La mise à jour majeure de Raspbian a modifiée pas mal de choses côté réseau et interface.
Bonjour, pouvez-vous mettre à jour votre tutoriel pour la nouvelle version de raspbian-stretch? Parce que le » /etc/network/interfaces » a changé merci beaucoup.
Hi, can you update your tutorial for the new version of raspbian-stretch? Because the » /etc/network/interfaces » have changed thank you very much.
plus d’informations ici / more information here :
https://raspberrypi.stackexchange.com/questions/37920/how-do-i-set-up-networking-wifi-static-ip-address/37921#37921
Merci beaucoup pour le complément d’information. Je n’ai pas encore eu l’occasion de réaliser les manipulations sur Stretch mais j’ai vu qu’il y a eu des modifications niveau nommage des interfaces. Je me doute donc que mon tutoriel est obsolète pour cette release de Raspbian.
La version du os : 2017-09-07-raspbian-stretch
Erreur :
pi@raspberrypi:~ $ sudo service dhcpcd restart
Job for dhcpcd.service failed because the control process exited with error code.
See « systemctl status dhcpcd.service » and « journalctl -xe » for details.
pi@raspberrypi:~ $
Bonsoir,
J’ai travailler plusieurs jours sur mon projet, et j’ai enfin réussi a créer un hot-spot wifi. Mon projet ne s’arrête pas au simple hot-spot wifi il n’est qu’un module du dit projet.
Récrit pour être compatible avec 2017-09-07-raspbian-stretch-lite.img Raspberry Pi 2 et USB WiFi (802.11b/g/n) mode AP trouver ici https://www.adafruit.com/product/1030
Une foi peaufiner je posterai le lien du git ici.
Bonjour,
Je travaille actuellement sur un projet qui consiste à faire circuler plusieurs robots sur un circuit. L’idée est de faire communiquer les raspberry de chaque robot entre eux. As tu une idée de la démarche à suivre pour y arriver ?
Cordialement,
Deux possibilités me viennent en tête :
Bonsoir a tous et a toutes
Une nintento switch ne peut pas ce connecter dessus.
Elle me dit » les paramètres de ce wifi sont imcompatible avec la console
Remarque pareil pour le FreeWifi_secure et SFRwIFI FON
Bonjour,
Assez étrange comme comportement. D’après le site officiel « la console Nintendo Switch est compatible avec les protocoles WEP, WPA-PSK(AES) et WPA2-PSK(AES) », or la configuration que je propose correspond bien à du WPA2-PSK(AES).
Pour le FreeWifi_secure c’est assez normal, ce réseau nécessitant une authentification spécifique via une carte SIM Free Mobile chose qui n’est même pas compatible avec tout les smartphones actuels du marché. Le réseau ouvert aux abonnés Free ADSL/Fibre est « FreeWifi ».
Bonjour,
Je cherche à faire un « serveur de log ».
J’ai 3 enfants et ils sont tous addicts des connexions.
Je voudrait faire en sorte qu’ils ne puissent pas se connecter plus que 90mins en semaine et 180 en we ou vacances par ex. Je sais qu’il existe dans les boxs des plages de connexion mais ce n’est pas ce que je cherche.
Merci de votre aide eventuelle
Damien
Bonjour, pourriez vous m’aider svp? j’ai configuré un point d’aces wifi – passerelle tor sur mon raspberry pi3 avec la carte wifi d’origine du raspberry et en entrée et la carte ethernet en sortie (vers ma box).Cela fonctionne super bien en point d’acces sauf que je ne peux plus naviguer sur le net avec le raspberry. Comment le configurer pour que le navigateur passe par la passerelle tor sachant que celle ci écoute l’interface wlan0 ? y aurait il moyen avec les régles iptables de le rediriger? Je gratte depuis une semaine sur ce probléme sans trouver la solution, si quelqu’un a une idee je suis preneur… Merci
Pas vraiment d’éléments à apporter sur cette configuration, je n’utilise jamais l’environnement « bureau » du Raspberry. De plus je n’ai jamais configuré une passerelle « tor ». Je pense, en fonction de comment se présente la passerelle tor, qu’il faut regarder du côté des routes par défaut système ou la configuration serveur proxy du navigateur web.
Bonjour, j’ai une un petite question svp, bon j’ai réussi a crée le point d’accès et maintenant je veux revenir à la configuration initiale, c’est à la dire la raspberry ce connecte sur un wifi, merci d’avance pour les personnes qui vont aidé.
Bonjour, une petite question, peut-on à utiliser pour connecter 40 appareils type domotique (interrupteur et lumière,…)
Sans problème de connexion ?
Merci de votre retour.