:::: MENU ::::

Créer un hotspot WiFi sur Raspberry

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.

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 :

Vérification initiale

Après avoir connecté notre adaptateur WiFi en USB, vérifions que celui-ci est bien reconnu par Raspbian :

Dans mon cas une ligne concerne mon adaptateur WiFi dans la réponse de la commande :

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 :

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 :

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 :

On applique ensuite la configuration en redémarrant le client DHCP et l’interface 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

Exemple de configuration pour un point d’accès WiFi norme N nommé Code4Pi_AP et non sécurisé

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  :

Activer le Hotspot WiFi et le serveur DHCP :

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 :

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.

Sauvegarder les nouvelles règles

Ajouter les règles au fichier de configuration principale via la ligne suivante à la fin du fichier  /etc/network/interfaces

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.

A propos de l'auteur :

Manu

Jeune diplômé en informatique de l'eXia.CESI, et passionné par le monde informatique et ses applications dans la vie quotidienne. Chez moi sont hébergées deux RPi, l'une dédié multimédia, l'autre centre domotique. J'ai également conçu une solution de monitoring de chaufferie collective où notre chère carte fruité est le point central.


12 Comments

  • Répondre f4b1 |

    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 🙂

  • Répondre MroxgenonTales |

    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 ?

    • Manu Répondre Manu |

      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.

  • Répondre Wil |

    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!!

  • Répondre Sapiens |

    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.

    • Manu Répondre Manu |

      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.

      • Répondre Sapiens |

        D’accords merci dommage que vous ne puissiez pas apporter une solution a mon probleme

  • Répondre Jayzer |

    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 ?

  • Répondre Sebploix |

    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 ?

    • Manu Répondre Manu |

      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.

Laissez un commentaire