Configurer son Raspberry PI en Hot-Spot Wi-Fi

  • PascalP

Review et partage :

Introduction Materiel Objectif

Description

Mettre en place un réseau WI-FI privé n’est pas toujours nécessaire quand vous êtes chez vous bien au chaud à proximité de votre Box et que votre activité numérique consiste principalement à consulter vos mails ou à surfer sur le net mais dans certains cas, cela peut s’avérer très utile. Prenons l’exemple de la domotique qui intéresse de plus en plus de personnes et qui permet de contrôler vos différents appareils électriques à l’aide d’une seule télécommande (ou de votre téléphone) via votre réseau. Dites vous bien que tous ces appareils doivent bien communiquer entre eux et que, dans l’idéal, une connexion sécurisée serait un plus indéniable.

Pour les entreprises, PME, FabLab ou autres Makerspaces, partager une connexion WI-FI sécurisée avec vos collègues ou vos clients est parfois bien plus facile à dire qu’à faire. En ce qui nous concerne chez Bulb Zone nous occupons un espace partagé, avec un réseau informatique partagé et souvent interrompu par des coupures de toutes sortes ce qui à le don d’irriter pas mal de monde (nous y compris). L’idée était donc de mettre en place notre propre réseau WI-FI sécurisé, sans devoir intervenir sur l’infrastructure informatique et sans devoir faire appel à une société tierce qui va vous facturer un pont ce genre de prestations en somme toute assez simple.

L’idée est donc d’utiliser un simple Raspberry PI muni d’une clé USB WI-FI avec de préférence une antenne digne de ce nom histoire d’assurer une couverture convenable et un débit constant pour un budget minimal.

materiaux

Pour réaliser ce tutos vous aurez besoin de :

  • 1 Raspberry PI (à partir du modèle 2B)
  • 1 Carte SD de 4Gb minimum
  • 1 clé USB WI-FI avec antenne (vous pouvez utiliser la puce WI-FI intégrée dans le modèle PI 3 mais ne vous attende pas à une portée de fou)
  • 1 câble MicroUSB munis de sa prise pour l’alimentation du Raspberry PI

Et pour la mise en place :

  • 1 câble réseau
  • 1 clavier USB
  • 1 souris USB (optionnel)
  • 1 écran HDMI

Vous pouvez également vous passer des composants pour la mise en place et vous connecter à votre Raspberry PI en SSH via votre ordinateur en suivant notre tutoriel : http://learn.bulbzone.net/cours/controler-raspberry-pi-ecran-clavier/

Objectifs

Mettre en place un réseau WI-FI sécurisé avec serveur DHCP intégré.

Installation de l'OS sur la carte SD

Pour ce projet, nous allons partir sur la distribution officielle de Raspbian Jessie disponible sur le site de la Fondation Raspberry. Vous pouvez choisir la version minimale (Lite) mais nous vous recommandons la version complète (Raspbian Jessie with Pixel) qui intègre tous les drivers dont nous allons avoir besoin ainsi qu’une interface graphique pour les allergiques aux lignes de code.

Raspbian Jessie avec PIXEL

Une fois téléchargé, décompressez le fichier sur votre ordinateur dans un emplacement de votre choix. Il ne vous reste plus qu’à copier cette image sur votre carte SD. Pour ce faire, vous êtes libre d’utiliser l’application de votre choix mais si vous en cherchez une simple d’utilisation, essayez donc ETCHER, disponible pour Mac, Windows et Linux 😉

Téléchargez ETCHER

ETCHER permet de copier votre image sur votre carte SD en 3 étapes comme illustré ci-dessous :

En gros, branchez votre lecteur de carte sur votre ordinateur (ou insérez votre carte dans votre ordinateur s’il est muni d’un lecteur de carte intégré), sélectionnez l’image de Raspbian téléchargé précédement, sélectionnez votre carte et cliquez sur le bouton « Flash ».

NB : ETCHER va formater votre carte et toutes les données présentes sur celle-ci seront perdues…

Dès que la copie est terminée, retirer votre carte SD et insérez là dans votre Raspberry PI.

Configuration de votre Raspberry PI

Il est maintenant temps de passer aux choses sérieuses. Insérez votre carte SD dans le Raspberry PI et connectez-le à un écran, clavier et souris sans oublier le câble réseau qui est indispensable dans ce projet. Non seulement vous serez connecté en filaire au réseau ce qui vous permettra de télécharger plus rapidement les différents packages nécessaires mais, comme l’idée est de partager cette connexion avec d’autres utilisateurs, autant s’assurer un débit suffisant pour alimenter tout ce petit monde 😉

N’oubliez pas d’insérer la clé USB WiFi (l’antenne) dans le Raspberry PI et allumez-le en le branchant à son alimentation (prise secteur recommandée mais un câble USB branché à votre ordinateur suffit pour la mise en place). Une fois votre Raspberry PI démarré, vous devriez voir l’écran suivant :

Avant de passer à l’installation des différents logiciels nécessaires à notre projet, familiarisez vous avec l’interface graphique en modifiant les quelques paramètres indispensables comme la configuration de votre clavier ou la date et l’heure en vous rendant dans les Préférences 😉

Installation des logiciels

A partir de maintenant nous allons passer en mode « Ligne de commande », bien plus rapide que le mode graphique. Pour ce faire cliquez sur l’icône ressemblant à l’image ci-dessous :

Vous obtiendrez l’écran suivant :

Commençons par vérifier si vous avez bien une connexion à Internet à l’aide d’un simple ping.

ping 8.8.8.8

Vous devriez voir des lignes apparaître les unes après les autres en défilement continu. Ces lignes indiquent le temps de réponse de votre connexion. Si le message « Destination Host Unreachable » apparaît, vérifiez vos branchements car vous n’irez pas plus loin. Pour interrompre le défilement, enfoncez les touche Ctrl c de votre clavier.

Vérifions ensuite que votre clé USB WiFi est bien reconnue par la ligne de commande suivante :

ifconfig -a

Vous devriez voir le bloc « wlan0 » qui correspond à votre carte WiFi comme illustré ci-dessous :

Si le bloc « wlan0 » n’apparaît pas c’est que votre clé USB WiFi n’est pas reconnue par le Raspberry PI. Dans ce cas, il va falloir consulter la documentation de votre clé USB WiFi afin de trouver les bons pilotes pour le Raspberry PI.

Maintenant que tout est en route, que votre Raspberry PI a bien une connexion Internet et que votre clé est bien reconnue nous allons lancer une commande pour mettre à jour votre système d’exploitation avec les dernières mises à jour disponibles :

sudo apt-get update

Patientez quelques secondes (ou minutes) afin que les mises à jour soient téléchargées et installées.

Lancez ensuite le téléchargement des applications « hostapd » et « dhcp-server » grâce à la commande suivante :

sudo apt-get install hostapd isc-dhcp-server

Il s’agit des applications nécessaires à la configuration de votre réseau ainsi que votre serveur DHCP. Il ne manque plus que l’application qui va servir à définir vos tables d’adressages de manières permanentes, IPTables-Persistent.

sudo apt-get install iptables-persistent

Pendant l’installation, vous verrez 2 écrans de configuration. Contentez-vous de valider les 2 écrans en sélectionnant « YES ».

Vous êtes maintenant prêt à configurer votre serveur DHCP.

Configuration du serveur DHCP

Le serveur DHCP est un simple fichier qui va permettre aux ordinateurs qui se connectent à votre réseau d’obtenir une adresse IP ainsi que le DNS et tous les paramètres nécessaires à la connexion. Pour éditer ce fichier, tapez la ligne suivante :

sudo nano /etc/dhcp/dhcpd.conf

Trouvez dans le fichier les lignes suivantes :

option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;

et commentez les à l’aide de la touche # comme ci-dessous :

#option domain-name "example.org";
#option domain-name-servers ns1.example.org, ns2.example.org;

Trouvez ensuite les lignes suivantes :

# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
#authoritative;

et retirez le # situé devant le mot « authoritative » :

# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative;

Descendez ensuite tout en bas du fichier et introduisez les lignes suivantes :

subnet 192.168.42.0 netmask 255.255.255.0 {
  range 192.168.42.10 192.168.42.50;
  option broadcast-address 192.168.42.255;
  option routers 192.168.42.1;
  default-lease-time 600;
  max-lease-time 7200;
  option domain-name "local";
  option domain-name-servers 8.8.8.8, 8.8.4.4;
}

Vous devriez obtenir l’écran suivant :

Sauvegardez vos changement en enfonçant les touches Ctrl X suivies de Y (pour Yes) et finalement enfoncez la touche « Entrée » de votre clavier.

Il ne vous reste plus qu’à indiquer à votre serveur quelle carte réseau utiliser en modifiant le fichier isc-dhcp-server :

sudo nano /etc/default/isc-dhcp-server

Trouvez la ligne INTERFACES= » » et insérez la carte wlan0 entre les guillemets pour obtenir l’écran suivant :

Sauvegardez vos modifications en appuyant sur les touches Ctrl X, suivi de Y et validez par la touche « Enter ».

 

 

Configuration d'une adresse IP statique pour le Raspberry PI

Maintenant nous allons donner une adresse IP fixe et entrante à notre carte WiFi en modifiant le fichier « interfaces » par la commande suivante :

sudo nano /etc/network/interfaces

Ce fichier peut être différent en fonction des différentes distributions pour le Raspberry PI mais assurez vous d’ajouter les lignes suivantes juste en dessous de la ligne « allow-hotplug wlan0″

iface wlan0 inet static
  address 192.168.42.1
  netmask 255.255.255.0

Vous devez obtenir un fichier identique à celui-ci :

N’hésitez pas à commenter ou supprimer des lignes si nécessaire et sauvegardez vos modifications par les touches Ctrl X, suivi de Y et validez par la touche Enter de votre clavier.

Il ne nous reste plus qu’à attribuer l’adresse IP statique à notre clé USB par la commande suivante :

sudo ifconfig wlan0 192.168.42.1

Et le tour est joué 😉

Configuration du point d'accès (HotSpot)

Passons maintenant à la configuration de notre point d’accès. Pour ce faire, nous devons créer un nouveau fichier de configuration pour hostapd que nous allons appeler « hostapd.conf » en tapant la ligne suivante :

sudo nano /etc/hostapd/hostapd.conf

Un fichier vierge va s’ouvrir et vous devez y copier les lignes suivantes :

interface=wlan0
driver=nl80211
ssid=Pi_AP
hw_mode=g
channel=1
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=Raspberry
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
wpa_group_rekey=86400
ieee80211n=1
wme_enabled=1

Modifiez la ligne « ssid=Pi_AP » par le nom de votre choix pour votre point d’accès ainsi que la ligne « wpa_passphrase=Raspberry » par le mot de passe de votre choix pour s’y connecter. Vous devriez avoir le fichier ci-dessous :

Validez vos modifications en appuyant sur les touches Ctrl X, suivi de Y et ensuite appuyez sur la touche « Enter » de votre clavier.

NB : Si vous n’utilisez pas la même clé USB WiFi que nous, vous serez sans doute amené à modifier la ligne « driver=nl80211″ par le pilote de votre propre clé USB WiFi.

Assurez-vous bien de ne pas avoir d’espace ou de caractère superflu dans ce fichier car il est assez « délicat » et le moindre faux pas aura pour conséquence d’avoir un réseau inaccessible.

Il nous faut à présent indiquer à notre Raspberry PI où se trouve ce fichier en modifiant le fichier « hostapd ». Pour ce faire tapez la ligne suivante :

sudo nano /etc/default/hostapd

Trouvez la ligne « #DAEMON_CONF= » » » et remplacez-là par la ligne suivante :

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

Vous devez obtenir ceci :

 Sauvegardez ensuite vos modifications par Ctrl X, suivi de Y et « Enter ».

Modifiez de la même manière le fichier suivant :

sudo nano /etc/init.d/hostapd

Trouvez et remplacez la ligne :

DAEMON_CONF=

par :

DAEMON_CONF=/etc/hostapd/hostapd.conf

Pour obtenir le fichier suivant :

Courage, nous arrivons presque au bout 😉

Il nous reste à rediriger toutes les connexions entrantes par le biais du WiFi pour qu’elles puissent obtenir les données de notre unique adresse IP. On appelle cela le NAT pour  » Network Address Translation ».

Modifiez le fichier suivant :

sudo nano /etc/sysctl.conf

Descendez tout en bas et ajoutez la ligne suivante :

net.ipv4.ip_forward=1

Pour obtenir le fichier ci-dessous :

Sauvegardez votre fichier en appuyant sur Ctrl X, suivi de Y et ensuite la touche « Enter ».

Lancez la commande suivante afin de l’activer immédiatement :

sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

Il nous reste maintenant à router tout le trafic entre le port Ethernet et le réseau sans fil en lançant les commandes suivantes les unes après les autres :

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

Pour éviter de retaper toutes ces commandes lors de chaque redémarrage, lancez la commande suivante :

sudo sh -c "iptables-save > /etc/iptables/rules.v4"

 

 

Enregistrement de la configuration dans le Raspberry PI

La dernière étape consiste à créer ce qu’on appelle un « deamon », c-à-d un petit programme qui va démarrer automatiquement en même temps que votre Raspberry PI pour activer le point d’accès.

Lancez les commandes suivantes dans l’ordre :

sudo service hostapd start
sudo service isc-dhcp-server start
sudo update-rc.d hostapd enable
sudo update-rc.d isc-dhcp-server enable

Et maintenant… on teste 😀

Première connexion

Maintenant que tout est prêt, il ne nous reste plus qu’à tester tout ça avec notre téléphone portable ou avec n’importe quel ordinateur équipé d’une carte WiFi.

Avant de tenter une connexion lancez la commande suivante sur votre Raspberry PI afin de démarrer les logs et voir « en live » ce qu’il se passe :

tail -f /var/log/syslog

Parcourez maintenant les WiFi disponibles sur votre ordinateur, vous devriez voir le ssid que vous avez choisi lors de la configuration du fichier « hostapd ». Sélectionnez-le et introduisez le mot de passe que vous avez également renseigné dans le fichier « hostapd ».

Dans la fenêtre des logs du Raspberry PI vous devriez voir défilez des lignes vous avertissant qu’un ordinateur essaie de se connecter ainsi que l’adresse IP qui lui a été attribuée, la date et l’heure de la connexion.

N’hésitez pas à lancer une invite de commande DOS si vous utilisez un PC équipé de Windows et lancez la commande ipconfig afin de voir que l’adresse IP attribuée se situe bien dans le range indiqué dans le fichier dhcpd.conf comme illustré ci-dessous :

Et voilà, le tour est joué. Pour la petite histoire, nous utilisons ce système depuis quelques jours et aucun soucis n’est survenu. Nous sommes montés jusqu’à 7 appareils connectés en simultané et la bande passante est amplement suffisante pour tout le monde comme en atteste le petit test de charge suivant :

 

NB : gardons tout de même à l’esprit que ce test est purement à titre indicatif 😉

Et si notre petit boitier illustré en photo vous plait, sachez qu’il s’agit d’un fichier mis à disposition sur Thingiverse par KronBjorn 😉

http://www.thingiverse.com/thing:2084736

Si vous n’avez pas d’imprimante 3D, vous pouvez nous contacter sur hello@bulbzone.net 

HAPPY MAKING!

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *