Logo des Enovateurs
Créer un hotspot WiFi rapidement avec un Raspberry Pi !

Créer un hotspot WiFi rapidement avec un Raspberry Pi !

Aujourd’hui je vous ai prévu un nouveau tutoriel : nous allons paramétrer un Raspberry Pi pour qu’il devienne une borne Wifi.

Pourquoi réaliser une borne WiFi ?

Vous devez sans doute vous demander pourquoi je veux réaliser une borne Wifi. La réponse est simple : je souhaite créer un système audio contrôlable avec mon téléphone pour diffuser de la musique dans ma voiture. D’ailleurs je vous montrerai comment faire lors d’un prochain tutoriel.

Pour contrôler un Raspberry Pi avec un téléphone, deux solutions. Soit votre téléphone fait office de borne Wifi : quand vous branchez votre Raspberry Pi, il se connecte automatiquement à votre téléphone. Soit le Raspberry Pi fait office de borne Wifi et c’est votre téléphone qui se connecte au Raspberry Pi. J’ai choisi la solution numéro 2… car j’ai trouvé ça plus logique. En plus, je pourrai à terme installer une carte Sim pour diffuser Internet dans ma voiture (pour les enfants, les amis ou si je fais du co-voiturage). On pourrait même faire une Lan en roulant ! Pour ce qui ne connaissent pas le terme, cela signifie jouer en réseau à des jeux dans un même lieu connecté à une même box internet.

Pré-requis

Il vous faut :

  • un Raspberry Pi
  • un écran
  • un clavier
  • une souris

Concernant le système, les opérations ont été réalisées avec une version de Raspbian Stretch Lite datant du 13 mars 2018. Cette même version sera utilisée dans le prochain tuto, où nous transformerons notre Raspberry Pi en un puissant lecteur MP3.

Pour télécharger Raspbian Stretch Lite, suivez le lien. J’ai choisi cette version car il n’y a pas besoin d’interface utilisateur (qui rend le Raspberry Pi plus lent). Si vous rencontrez des soucis pour l’installation du système, rappelez-vous que les commentaires sont là pour ça.

Vous devez ensuite activer le SSH, ou brancher le Raspberry Pi à un écran par HDMI. N’oubliez pas de rajouter le câble Ethernet à votre Raspberry Pi afin d’accéder à internet (vous aurez besoin de télécharger deux-trois trucs).

Installation des outils

A partir de cet étape, je considère que vous avez accès au Raspberry Pi en SSH ou directement avec un clavier / souris et écran.

Commencçons par le grand classique de chaque projet sur un Raspberry Pi :

sudo apt-get update
sudo apt-get upgrade

Résultat :

sudo apt-get update

Objectif : mettre la version de notre Raspberry Pi à jour.

Installation de dnsmasq et hostapd

Pour ceux qui connaissent le vocabulaire, dnsmasq permet de gérer le DNS du réseaux local. Quant à hostapd, il permet de faire apparaître un point d’accès avec la gestion de la clé WPA pour que votre téléphone puisse s’y connecter.

Pour installer ces deux composants, vous devez saisir les commandes suivantes :

sudo apt-get install dnsmasq hostapd iptables

Résultat :

sudo apt-get install dnsmasq hostapd

N’oubliez pas de taper sur la touche Y puis Entrée pour valider l’installation de ces composants.

Paramétrage dnsmasq et hostapd

Afin de configurer ces deux outils sans encombre, on va les arrêter durant l’opération 😀.

Pour arrêter ces services, vous devez saisir les commandes suivantes :

sudo systemctl stop dnsmasq
sudo systemctl stop hostapd

Configuration de l’adresse IP statique

Pour que notre système fonctionne, il faut allouer au Raspberry Pi une adresse IP fixe qui ne changera pas, et qui ne sera pas prise par un autre appareil.

Saisissez la commande suivante :

sudo nano /etc/dhcpcd.conf

Résultat :

sudo nano /etc/dhcpcd.conf

Rendez-vous tout en bas du fichier afin d’écrire deux lignes (petite astuce pour descendre rapidement : vous pouvez faire un CTRL+V).

Ecrivez les deux lignes suivantes :

interface wlan0
    static ip_address=192.168.4.1/24

Votre écran devrait ressembler au mien :

Adresse Ip static sur le Raspberry Pi

Pour sauvegarder : CTRL + X suivi d’un Y, puis Entrée.

Vérification du bon fonctionnement de la configuration

Pour vérifier que notre modification marche, on doit redémarrer le service en charge du DHCP (l’adressage des adresses IP). Pour ceci, tapez la commande suivante :

sudo service dhcpcd restart

Résultat :

Redémarrage du service DHCP

Il se peut qu’au lancement de la commande « sudo service dhcpcd restart », vous receviez un avertissement indiquant que le fichier qui gère le DHCP a changé, et qu’il faut effectuer une commande pour rafraîchir le système. Ne faites pas la même erreur que moi : n’oubliez pas le « sudo ». Donc si ça vous arrive, lancez la commande suivante :

sudo systemctl daemon-reload

Configuration du serveur DHCP

Le serveur DHCP alloue une adresse IP aux différents appareils qui vont se connecter au Raspberry Pi.

On doit dire au serveur quelle est la plage d’adresses IP disponibles, pour qu’il puisse générer des adresses IP comme 192.168.4.10.

Pour ce faire, on doit modifier un fichier qui se nomme dnsmasq. Mais auparavant, réalisez une sauvegarde. On ne sait jamais : un mauvais caractère peut se glisser dans le fichier.

Pour cela on va faire un  :

sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.old

Puis nous allons éditer le fichier en effectuant un :

sudo nano /etc/dnsmasq.conf

Dans ce fichier vide, on insère les deux lignes suivantes :

interface=wlan0      # Use the require wireless interface - usually wlan0
  dhcp-range=192.168.4.2,192.168.4.20,255.255.255.0,24h

Résultat :Edition du fichier dnsmasq.conf

Voici la « traduction » du fichier de configuration. On dit au programme  qu’il peut allouer une adresse IP entre 192.168.4.2 et 192.168.4.20 avec une rotation toutes les 24h, c’est-à-dire qu’un appareil possède l’adresse IP pendant 24h. Celle-ci sera changée au bout de 24h, mais ne vous inquiétez pas : c’est transparent pour l’utilisateur.

Configuration du point d’accès avec hostapd

On va éditer un fichier de configuration. Le but : expliquer au système quel est le nom de la « box », la clé WPA (le mot de passe) ainsi que d’autres petits éléments. Pour cela, on va exécuter la commande suivante :

sudo nano /etc/hostapd/hostapd.conf

A l’intérieur du fichier, écrivvez les lignes suivantes :

# This is the name of the WiFi interface we configured above
interface=wlan0

# Use the nl80211 driver with the brcmfmac driver
driver=nl80211

# This is the name of the network
ssid=NovaFi

# Use the 2.4GHz band
hw_mode=g

# Use channel 6
channel=6

# Enable 802.11n
ieee80211n=1

# Enable WMM
wmm_enabled=1

# Enable 40MHz channels with 20ns guard interval
ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]

# Accept all MAC addresses
macaddr_acl=0

# Use WPA authentication
auth_algs=1

# Require clients to know the network name
ignore_broadcast_ssid=0

# Use WPA2
wpa=2

# Use a pre-shared key
wpa_key_mgmt=WPA-PSK

# The network passphrase
wpa_passphrase=les_enovateurs

# Use AES, instead of TKIP
rsn_pairwise=CCMP

J’attire votre attention sur les lignes 8 et 41, respectivement :

# This is the name of the network 
ssid=NovaFi

# The network passphrase 
wpa_passphrase=les_enovateurs

Vous pouvez insérer le nom de votre propre box, c’est le ssid. Et vous pouvez taper le WPA (mot de passe) de votre choix : c’est le wpa_passphrase.

Veuillez à mettre une clé WPA suffisament longue.

Puis vous faites un CTRL + X suivi d’un Y pour sauvegarder votre fichier.

Maintenant, on informe hostapd qu’il doit se servir du fichier de configuration qu’on a créé. Pour cela, on va éditer le fichier suivant :

sudo nano /etc/default/hostapd

Et on cherche la ligne :

#DAEMON_CONF=""

Il faut supprimer le « # » et ajouter le lien vers le fichier qu’on a modifié plus haut : /etc/hostapd/hostapd.conf.

Votre ligne doit maintenant ressembler à ça  :

DAEMON_CONF="/etc/hostapd/hostapd.conf"

Résultat sur la console :

Edition hostapd.conf

Redémarrage de hostapd et dnsmasq

Vous connaissez déjà les commandes que je vais vous faire taper. Ce sont les mêmes qu’au début, sauf qu’au lieu de faire stop on va faire start :

sudo systemctl start hostapd.service
sudo systemctl start dnsmasq

Ajout du routage

On va éditer encore deux autres fichiers, pour le premier on va faire un :

 sudo nano /etc/sysctl.conf

Résultat en console :

Edition de sysctl.conf

Vous allez devoir décommenter la ligne ci-dessous en enlevant le # :

net.ipv4.ip_forward=1

Ajout du masquage et de la table d’IP

Exécutons une première commande :

sudo iptables -t nat -A  POSTROUTING -o eth0 -j MASQUERADE

Celle-ci va générer la table d’adresses IP. Il faut la sauvegarder pour la recharger à chaque démarrage :

sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"

Puis on édite notre dernier fichier du tutoriel, en effectuant un :

sudo nano /etc/rc.local

Il faut rajouter la ligne suivante juste avant le « exit 0 » :

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

Vous devriez obtenir ce résultat :

Edition de rc.local

Encore une fois, vous devez faire un CTRL+X puis un Y.

Redémarrage et test

Et voilà, la partie moyennement sympa est terminée. Pour valider tous ces changements, on va faire un :

sudo reboot

Dès que le Raspberry Pi a redémarré, prenez votre smartphone, activez le Wi-fi et regardez si le nom de votre box est bien présent :

Scan Wifi Raspberry Pi

Votre smartphone va vous demander le code WPA que vous avez saisi précédemment dans le fichier.

Ajout du mot de passe pour accéder au Wifi

Si tout fonctionne bien, vous devriez avoir ce résultat :

Connexion au Wifi du Raspberry Pi

Mon téléphone a détecté qu’il n’avait pas internet avec ce réseau, mais il a quand même pu se connecter au Raspberry Pi. Pour moi c’est parfait : mon objectif est de pouvoir contrôler le Raspberry Pi avec mon téléphone par le Wifi. Si vous souhaitez savoir comment obtenir une connexion internet par ce réseau, faites-le moi savoir. Je publierai un article sur le sujet.

J’espère que ce long tutoriel vous servira de base pour de nombreux projets. J’ai utilisé le site raspberrypi.org comme source pour rédiger ce tutoriel. Si des infos vous manquent, envoyez-nous un message en commentaire ou par mail. A bientôt pour un prochain article : vous y apprendrez à transformer le Raspberry PI en un puissant lecteur MP3.

Jérémy PASTOURET
Jérémy PASTOURET
Journaliste en recherche constante de nouveaux outils plus légers, accessibles à tous et respectueux de la vie privée de leurs utilisateurs.

Commentaires

  • Yan MBG

    2021-5-31 12:8

    Bonjour Jeremy, ce bon j’ai pus rendre le Raspberry comme un point d’accès wifi , mais j’ai un problème, quand j’éteins le Raspberry le wifi et éteint aussi , et quand j’allume le Raspberry je dois encore activer le service Hostapd , pour que le wifi s’active .
    Je vais que ça soit automatique. De que j’allume le Raspberry que le wifi s’allume aussi directement , il y a t-il une commande pour ça?

    • Jérémy PASTOURET

      2021-5-31 14:17

      Bonjour,
      Bien joué pour le point d’accès Wifi.
      Pour l’aspect perte du wifi au redémarrage, Il faut bien effectuer les opérations présentes dans la section « Ajout du masquage et de la table d’IP ». Notamment l’édition du fichier chargé au démarrage du Rpi « /etc/rc.local ».
      J’ai aussi remarqué que le site officiel de Rpi procède légèrement différemment aujourd’hui : https://www.raspberrypi.org/documentation/configuration/wireless/access-point-routed.md

  • SERGE ROBERT

    2021-9-29 04:13

    Bonsoir cher JÉRÉMY PASTOURET

    je suis entrain de vouloir réaliser un projet dans le volet médical en concevant un appareil suivant :

    appareil avec un module RFID + MODULE GSM + ECRAN.

    j’aimerais avoir le listing de l’ensemble des accessoires a acheter et comment le mettrent en liens.

    l’appareil devrait recevoir des fichier PDF provenant dune application mobile ,tel type de communication devrais je utiliser.

    merci.

    • Jérémy PASTOURET

      2021-10-6 07:37

      Bonsoir cher SERGE ROBERT,
      Pour répondre à votre question, il faut du temps, de l’argent et de l’échange sur les besoins client. Cela revient à réaliser une grande partie de votre projet.

Ecrire un commentaire

Sobriété

Pour aller plus loin

Découvrez nos tutos !

Les Enovateurs

Rejoignez notre communauté de lecteurs

Retrouvez-nous aussi sur

linkedin