Bonjour à tous et à toutes, bande de geeks! 😀
Que ce soit pour bricoler, coder, jouer ou pour fouiner, avoir un accès à sa Raspberry Pi est essentiel. De par sa petite taille, elle est très mobile… Enfin, pas totalement. En effet, pour avoir accès à l’invite de commande de la RPi (par SSH), il faut être connecté sur le même réseau que cette dernière (souvent filaire), ce qui n’est pas toujours le cas quand on est en déplacement.
Mais alors, serait-il possible d’y accéder à n’importe quel moment ? La réponse est oui ! Comment ? En la configurant en tant que point d’accès Wifi. D’ici là nous aurons la possibilité d’accéder à notre RPi à n’importe quel moment, sans avoir à passer par un réseau filaire.
Créer un point d’accès (AP) est souvent un sujet à controverse sur Internet. La majorité des tutoriels ne sont pas complets ou n’expliquent pas les méthodes utilisées. Je vais donc tacher de vous expliquer le fonctionnement de ce déploiement, tout en restant très simple dans la réalisation.
Motivés ? Alors c’est parti !
Prérequis
Commençons par le matériel requis pour ce projet:
- Un Raspberry Pi (Non, c’est vrai?)
- Raspbian installé sur la RPi (Jessie)
- Un adaptateur Wifi compatible
En ce qui concerne l’adaptateur Wifi, je vous conseil très chaleureusement l’Edimax EW-7811Un, qui est très performant et à un prix dérisoire (~5€). Une fois reçu, vous n’aurez qu’à le brancher pour le faire fonctionner. Aucune configuration n’est requise. La grande classe!
Au niveau des logiciels nous utiliserons:
- Hostapd (Permet de créer le réseau Wifi)
- DnsMasq (Serveur DHCP et DNS)
Pour être sûr d’avoir ces logiciels tapez la commande:
1 |
sudo apt-get install dnsmasq hostapd |
Configuration des interfaces
La première chose que nous devons faire est de configurer notre interface wlan0 avec une adresse IP statique.
Par défaut la nouvelle version de Raspbian utilise le service dhcpcd afin d’attribuer une adresse IP dynamique à la RPi. Nous devons donc lui dire d’ignorer l’interface wlan0 comme nous voulons la configurer avec une adresse IP statique. Ouvrons le fichier de configuration de dhcpcd avec la commande sudo nano /etc/dhcpcd.conf et ajoutons les lignes suivantes à la fin du fichier:
1 |
denyinterfaces wlan0 |
Maintenant nous devons configurer notre adresse IP statique. Pour ce faire, ouvrons le fichier de configuration des interfaces réseau de la RPi avec la commande sudo nano /etc/network/interfaces et éditons la section wlan0 pour qu’elle ressemble à ceci:
1 2 3 4 5 6 7 |
allow-hotplug wlan0 iface wlan0 inet static address 192.168.1.1 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 # wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf |
Redémarrons dhcpcd avec la commande sudo service dhcpcd restart et rechargeons la configuration pour wlan0 avec sudo ifdown wlan0; sudo ifup wlan0
Configuration de Hostapd
Maintenant, nous devons configurer hostapd afin de créer notre réseau Wifi. Générons son fichier de configuration avec sudo nano /etc/hostapd/hostapd.conf et mettons-y les lignes suivantes:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# Nom de l'interface Wifi interface=wlan0 # Utilise le driver nl80211 driver=nl80211 # Le nom de notre point d'accès ssid=Raspberry-Wifi # Utilise la fréquence 2.4Ghz hw_mode=g # Utilise le canal 6 channel=6 # Active le 802.11n ieee80211n=1 # Active le WMM wmm_enabled=1 # Active les canaux 40MHz avec un intervalle de garde de 20ns ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40] # Accepte toutes les adresses MAC macaddr_acl=0 # Utilise l'authentifiaction WPA auth_algs=1 # Exiger que les clients connaissent le nom du réseau ignore_broadcast_ssid=0 # Utilise WPA2 wpa=2 # Utilise une pre-shared key wpa_key_mgmt=WPA-PSK # Mot de passe du réseau wpa_passphrase=raspberry # Utilise AES, à la place de TKIP rsn_pairwise=CCMP |
Nous pouvons vérifier si notre réseau fonctionne pour le moment en tapant sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf
Si tout va bien, vous devriez voir un réseau Raspberry-Wifi ! Si vous essayez de vous connecter à ce dernier, vous verez des lignes de log apparaître sur votre terminal, sans recevoir aucune adresse IP. C’est normal, car notre RPi n’a pas encore de serveur DHCP de configuré. Pour stopper le test, tapez sur Ctrl+C.
Pour en finir avec Hostapd, nous devons lui préciser le chemin vers son fichier de configuration. Pour ce faire, il faut remplacer dans le fichier /etc/default/hostapd la ligne #DAEMON_CONF=”” avec DAEMON_CONF=”/etc/hostapd/hostapd.conf”
Configuration de DnsMasq
Le fichier de configuration de DnsMasq contient des tonnes d’informations qui peuvent être utiles. Comme nous allons le modifier intégralement, il est plus sage de le sauvegarder avant toute manipulation:
1 2 |
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.backup sudo nano /etc/dnsmasq.conf |
Une fois en train d’éditer le fichier, placez-y ces lignes:
1 2 3 4 5 |
interface=wlan0 # Utilise l'interface wlan0 listen-address=192.168.1.1 # Adresse d'écoute bind-interfaces server=192.168.1.1 dhcp-range=192.168.1.50,192.168.1.150,12h # Assigne des IP entre 50 et 150 pendant un bail de 12H |
Redirection avec IpTables
Enfin, nous devons préciser à notre Raspberry Pi de redireiger les paquets qu’elle reçoit sur son interface wlan0 vers eth0. Pour cela, tapez simplement:
1 2 3 |
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 rendre persistantes ces règles, nous devons simplement installer le logiciel iptables-persistent via la commande:
1 |
sudo apt-get install iptables-persistent |
Terminé !
Ah bon déjà ?! Je commençais tout juste à m’échauffer ! 🙁
Désolé de te décevoir, mais notre réseau Wifi est totalement opérationnel. Pour que tous les changements soient bien pris en compte, redémarrez la RPi avec sudo reboot
Rappelez-vous, votre RPi a l’adresse 192.168.1.1 sur son réseau Wifi. Une fois connecté au réseau, vous pouvez y accéder comme sur n’importe quel autre réseau.
Dans un prochain article je vous apprendrai à mettre en place un serveur Samba afin de partager des fichiers sur le réseau très facilement (encore une fois). 🙂
J’espère que ce tutoriel vous a plut! Si c’est le cas, n’hésitez pas à le partager et à me le dire 🙂 Je vous donne rendez-vous pour un nouvel article, en attendant Stay Tuned!
Hello
Ça fait longtemps que je cherche comment faire ce 🙂
Merci