lundi 26 septembre 2016

RPi 3 - Point d'accès WIFI

Introduction


Cet article résume comment installer un d'accès WIFI sur une Raspberry Pi 3 Model B.
Il faudra installer puis configurer deux packets supplémetaires.

hostapd

hostapd sera le service en charge de la création du point d'accès WIFI.

dnsmasq

dnsmasq est un serveur léger pour fournir les services DNS, DHCP, Bootstrap Protocol et TFTP sur un petit réseau. Il sera utilisé dans notre cas pour la affecter des adresses IP dynamiques aux clients qui vont se connecter sur le point d'accès WIFI, par l'intermédiaire du service hostapd.

Configuration DHCP


DHCP est désormais pris en charge par un nouveau paquet appelé dhcpcd. Dans ce cas, le fichier de configuration des interfaces réseaux /etc/network/interfaces ne comprend plus la ligne d'instruction iface eth0 inet dhcp. Celle-ci est remplacée par la ligne d'instruction iface eth0 inet manual.

/etc/network/interfaces

Pour définir une adresse IP statique, le fichier /etc/network/interfaces reste désormais inchangé. Il faudra ajouter les instructions suivantes à la fin du fichier /etc/dhcpcd.conf
# Static IP configuration for eth0.
interface eth0
static ip_address=192.168.1.xxx/24
static routers=192.168.1.1

# Dynamic IP configuration for wlan0
allow-hotplug wlan0
iface wlan0 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

/etc/dhcpd.conf

Lorsque la carte réseau possède une adresse IP définie de manière statique, la résolution de noms (DNS) ne se fait plus et le fichier de configuration /etc/resolv.conf est vide ! Dans ce cas, il sera nécessaire d'ajouter les entrées de DNS dans le fichier de configuration /etc/dhcpcd.conf qui prendra finalement la forme suivante:
# Static IP configuration for eth0.
interface eth0
static ip_address=192.168.1.xxx/24
static routers=192.168.1.1
static domain_name_servers=8.8.4.4 8.8.8.8

Vérification adressage IP

Les commandes ifconfig et ip addr permettent d'afficher les infomations sur les interfaces réseau configurées:

hosapd et dnsmasq


Installation des packages nécessaires

apt-get update
apt-get install hostapd
apt-get installdnsmasq

Desactiver le démarrage automatique

update-rc.d -f hostapd remove update-rc.d -f dnsmasq remove 
ou bien:
update-rc.d hostapd disable
update-rc.d dnsmasq disable

Configurer le service hostapd

Créer un fichier /etc/hostapd/hostapd.conf avec le contenu suivant:

# 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=Pi3-AP
# 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=raspberry
# Use AES, instead of TKIP
rsn_pairwise=CCMP

Configurer le service dnsmasq

Créer un fichier /etc/dnsmasq.conf avec le contenu suivant:

interface=wlan0 # Use interface wlan0
listen-address=172.24.1.1 # Explicitly specify the address to listen on
bind-interfaces # Bind to the interface to make sure we aren't sending things elsewhere
server=8.8.8.8 # Forward DNS requests to Google DNS
domain-needed # Don't forward short names
bogus-priv # Never forward addresses in the non-routed address spaces.
dhcp-range=172.24.1.50,172.24.1.150,12h # Assign IP addresses between 172.24.1.50 and 172.24.1.150 with a 12 hour lease time

Mise en oeuvre


Créer un script de démarrage: wap.sh


#!/bin/bash
if [ "$(whoami)" != root ]
then
echo "You need administrator privileges to run this script"
exit 1
fi
ifconfig wlan0 down
ifconfig wlan0 172.24.1.1/24
ifconfig wlan0 up
service dnsmasq start
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
service hostapd start

Aucun commentaire:

Enregistrer un commentaire