Raspberry pi en hot-spot wi-fi

Le Raspberry pi en hot-spot wi-fi comme point d’accès sans fil sur un réseau autonome. Je vais utiliser un Raspberry Pi 3 parce qu’il est équipé d’origine d’une fonctionnalité WIFI.

Notez que ce tutoriel a été testé sur un Raspberry Pi 3. Il est possible que certaines dongles USB nécessitent de légers changements dans leurs paramètres. Si vous rencontrez des problèmes avec une clé électronique sans fil USB, veuillez consulter les forums.

Pour fonctionner en tant que point d’accès, le Raspberry Pi devra disposer d’un logiciel de point d’accès, ainsi que d’un logiciel de serveur DHCP permettant aux périphériques de connexion d’accéder à une adresse réseau. Assurez-vous que votre Raspberry Pi utilise une version à jour de Raspbian. Vous trouverez toujours la dernière version ici.

Pour l’installation de Raspbian et sa configuration, vous pouvez suivre ce tutoriel.

Une fois que Raspbian est installé, il est temps d’installer les logiciels requis dnsmasq et hostapd, comme d’habitude avec cette commande:

sudo apt install dnsmasq hostapd

Vous remarquerez que hostapd pose des problèmes et ne démarre pas

Job for hostapd.service failed because the control process exited with error code.
See "systemctl status hostapd.service" and "journalctl -xe" for details.
Created symlink /etc/systemd/system/hostapd.service → /dev/null.

On va s’occuper de ça plus tard.

Configuration d’une adresse IP statique

Je configure un réseau autonome pour qu’il agisse en tant que serveur. Donc, le Raspberry Pi doit disposer d’une adresse IP statique attribuée au port sans fil. Je suppose ici que nous utilisons les adresses IP standard 10.0.0.0 pour notre réseau sans fil. Donc on va attribuer au serveur l’adresse IP 10.0.0.1. Je suppose également que le périphérique sans fil utilisé est wlan0.

Pour configurer l’adresse IP statique, ouvrez le fichier de configuration dhcpcd à l’aide de la commande suivante:

sudo nano /etc/dhcpcd.conf

A la fin du fichier ajouter ce qui suit:

interface wlan0
    static ip_address=10.0.0.1/24
    nohook wpa_supplicant

Maintenant, on redémarre le démon dhcpcd:

sudo systemctl restart dhcpcd

Configuration du serveur DHCP dnsmasq

Le service DHCP est fourni par dnsmasq. Par défaut, le fichier de configuration contient beaucoup d’informations inutiles et il est plus facile de recommencer à zéro. Renommez ce fichier de configuration et créez-en un nouveau:

sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
sudo nano /etc/dnsmasq.conf

Tapez ou copiez les informations suivantes dans le fichier de configuration dnsmasq et enregistrez-le:

interface=wlan0      # Use the require wireless interface - usually wlan0
dhcp-range=10.0.0.2,10.0.0.20,255.0.0.0,24h

Donc, pour wlan0, nous allons fournir des adresses IP comprises entre 10.0.0.2 et 10.0.0.20, avec une durée de bail de 24 heures. Si vous fournissez des services DHCP à d’autres périphériques réseau (par exemple, eth0), vous pouvez ajouter d’autres sections avec l’en-tête d’interface approprié, ainsi que la plage d’adresses que vous avez l’intention de fournir à cette interface.

Rechargez dnsmasq pour utiliser la configuration mise à jour:

sudo systemctl reload dnsmasq

Configuration du logiciel hôte du point d’accès (hostapd)

Il faut maintenant créer un fichier de configuration pour hostapd, il sera situé dans /etc/hostapd/hostapd.conf, pour ajouter les différents paramètres du réseau sans fil.

sudo nano /etc/hostapd/hostapd.conf

Ajoutez les informations ci-dessous au fichier de configuration. Cette configuration suppose que j’utilise le canal 11, avec un nom de réseau ‘lenomdureseauwifi’ et un mot de passe ‘lemotdepasse’. Notez que le nom et le mot de passe ne doivent pas être entourés de guillemets. La phrase secrète doit comporter entre 8 et 64 caractères. Les valeurs possibles pour hw_mode sont:

  • a = IEEE 802.11a (5 GHz)
  • b = IEEE 802.11b (2.4 GHz)
  • g = IEEE 802.11g (2.4 GHz)
  • ad = IEEE 802.11ad (60 GHz)
interface=wlan0
driver=nl80211
ssid=lenomdureseauwifi
hw_mode=g
channel=11
wmm_enabled=0
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=lemotdepasse
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

Nous devons maintenant indiquer au système où trouver ce fichier de configuration.

sudo nano /etc/default/hostapd

Recherchez la ligne avec #DAEMON_CONF et remplacez-la par:

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

Démarrer hostapd

Maintenant, activez et démarrez hostapd:

sudo systemctl unmask hostapd
sudo systemctl enable hostapd
sudo systemctl start hostapd

Et là, hostapd ne devrait poser aucun problème pour démarrer.

Ajouter le routage et les règles IPTable

Éditez le fichier /etc/sysctl.conf et dé-commentez cette ligne:

net.ipv4.ip_forward=1

Ajoutez une règle iptable pour le trafic sortant sur eth0:

sudo iptables -t nat -A  POSTROUTING -o eth0 -j MASQUERADE

Enregistrez la règle iptables.

sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"

De cette façon tout le trafic qui arrive sur le port wlan0 est retransmis sur le port Ethernet eth0 et arrive sur votre box internet

Éditez /etc/rc.local et ajoutez-le juste au-dessus de « exit 0 » pour installer ces règles au démarrage.

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

À l’aide d’un périphérique sans fil, recherchez des réseaux. Le réseau SSID que vous avez spécifié dans la configuration de hostapd devrait maintenant être présent et accessible avec le mot de passe spécifié.

À ce stade, le Raspberry Pi agit comme un point d’accès, une simple passerelle auquel d’autres périphériques peuvent s’associer. Les périphériques associés accéderont au point d’accès Raspberry Pi via son adresse IP pour des opérations telles que rsync, scp ou ssh.

Finalement un redémarrage pour terminer.

sudo reboot