Raspberry Pi : Créer un point d’accès WiFi

Avec son faible encombrement et sa faible consommation, le Raspberry Pi est la machine parfaite dans une utilisation serveur. Nous allons donc le configurer en point d’accès wifi sécurisé (ce tuto fonctionne également sur autre chose qu’un Raspi 😉 )

A l’aide de sa carte WiFi, il créera un point d’accès sécurisé permettant de nous y connecter avec un ordinateur, un smartphone ou n’importe quoi d’autre (comme un mac :p ).
Sa seconde carte réseau (WiFi ou cable) permettra à notre Raspberry de se connecter à un réseau existant pour profiter de sa connexion.

Nous aurons besoin de plusieurs composants :
– un Raspberry Pi
– une ou 2 cartes WiFi : une pour le point d’accès, la seconde optionnelle pour connecter le Pi à un réseau

Dans ce tutoriel, j’utilise 2 cartes wifi (identiques, par simplicité) :
– wlan0 : se connecte à un réseau wifi à proximité
– wlan1 : héberge le point d’accès wifi
Si vous n’utilisez qu’une seule carte wifi et la carte ethernet, alors remplacez simplement wlan0 par eth0, et wlan1 par wlan0, dans tous les scripts et les fichiers de configuration de ce tutoriel.

Au niveau logiciel :
– hostapd : c’est lui qui va nous servir à créer un réseau wifi avec toutes les sécurités nécessaires sur l’interface wifi wlan1
– dnsmasq : il permettra à notre raspberry de jouer le rôle de serveur DHCP, pour attribuer des adresses IP automatiquement aux périphériques autorisés à se connecter au point d’accès
– iptables : iptables sert à créer des rêgles de routage. C’est grâce à ces rêgles que nous pourrons rediriger la connexion d’une interface réseau vers une autre.

Une fois les cartes wifi branchées et le Pi démarré, nous pouvons commencer :

sudo apt-get update
sudo apt-get install hostapd iptables dnsmasq
  • hostapd

Si vous avez une carte wifi basée sur un chipset Realtek RTL8188CUS (il y a de grandes chances que ce soit le cas), vous aurez besoin d’une mise à jour du driver wifi et une version spéciale de hostapd.
Pour connaitre votre chipset de carte wifi :

lsusb

si comme dans mon cas vous voyez RTL8188CUS dans une des lignes, alors suivez la procédure suivante pour installer le driver et compiler/installer le patch d’hostapd. Dans le cas contraire, vous pouvaez passer directement à la configuration de hostapd

cd /tmp
sudo wget http://fichiers.touslesdrivers.com/39144/RTL8188C_8192C_USB_linux_v4.0.2_9000.20130911.zip
sudo unzip RTL8188C_8192C_USB_linux_v4.0.2_9000.20130911.zip
cd RTL8188C_8192C_USB_linux_v4.0.2_9000.20130911
cd wpa_supplicant_hostapd
sudo tar -xvf wpa_supplicant_hostapd-0.8_rtw_r7475.20130812.tar.gz
cd wpa_supplicant_hostapd-0.8_rtw_r7475.20130812
cd hostapd
sudo make

… pause café …

sudo make install
sudo mv hostapd /usr/sbin/hostapd
sudo chown root.root /usr/sbin/hostapd
sudo chmod 755 /usr/sbin/hostapd

Si la commande wget de départ ne fonctionne pas, vous pouvez télécharger le pilote manellement sur le site de Realtek et continuer la procédure avec le unzip.

Nous allons maintenant configurer hostapd :

sudo nano /etc/hostapd/hostapd.conf

Copiez la configuration suivante, en remplaçant les valeurs MON_SSID et MON_PASSWORD par le nom de réseau wifi et le mot de passe que vous désirez :

ctrl_interface=/var/run/hostapd
driver=rtl871xdrv
ieee80211n=1
ctrl_interface_group=0
beacon_int=100
interface=wlan1
ssid=MON_SSID
hw_mode=g
channel=6
auth_algs=1
wmm_enabled=1
eap_reauth_period=360000000
macaddr_acl=0
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=MON_PASSWORD
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
  • dnsmasq
sudo nano /etc/dnsmasq.conf
interface=wlan1
dhcp-range=192.168.200.100,192.168.200.200,255.255.255.0,12h

Nos clients wifi se connectant sur l’interface wlan1 se verront attribuer une IP entre 192.168.200.100 et 192.168.200.200, avec un masque de sous-réseau 255.255.255.0, et un bail de 12 heures

  • IPtables

Activons le port forwarding :

sudo nano /etc/sysctl.conf

ajouter :

net.ipv4.ip_forward=1

On redirige la connexion venant de wlan0 vers wlan1 :

sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
sudo iptables -A FORWARD -i wlan0 -o wlan1 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan1 -o wlan0 -j ACCEPT
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
  • Configuration réseau

Il nous reste à configurer nos interfaces réseau :

sudo nano /etc/network/interfaces
allow-hotplug wlan0
auto wlan0
iface wlan0 inet dhcp
pre-up wpa_supplicant -B w -D wext -i wlan0 -c /etc/wpa.conf
post-down killall -q wpa_supplicant

allow-hotplug wlan1
iface wlan1 inet static
address 192.168.200.1
netmask 255.255.255.0
network 192.168.200.0
broadcast 192.168.200.255

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

Pensez à attribuer une adresse dans le même sous-réseau que vous avez configuré la plage d’attribution DHCP, dans le chapitre dnsmasq.

Il ne reste plus qu’à rebooter, et lancer le tout :

sudo service dnsmasq start
sudo service hostapd start

Si vous pouvez vous connecter au point d’accès du Raspberry Pi depuis un autre ordinateur, alors c’est gagné !

Si vous le désirez, vous pouvez lancer le pont d’accès comme daemon au démarrage du système :

sudo nano /etc/default/hostapd

Remplacez la ligne #DAEMON_CONF= » » par DAEMON_CONF= »/etc/hostapd/hostapd.conf »

A propos Captain Stouf

Spécialiste en systèmes informatiques, Développeur matériel et logiciel, Inventeur, Maker : électronique, Systems on Chip, micro-controlleurs, Internet of Things, Modélisation / Scan / Impression 3D, Imagerie...

17 réflexions au sujet de « Raspberry Pi : Créer un point d’accès WiFi »

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.