Hotspot wifi

De Wiki doc

EN CHANTIER

Article en cours d'écriture et/ou de test. Certains éléments peuvent être incomplets et mener à un résultat non fonctionnel.
Merci de ne pas rager.

La documentation suivante va détailler la mise en place d'un point d'accès Wifi sur une machine Debian.

La machine ayant servis de point d'accès dans cette documentation est un Raspberry Pi Zero W avec un adaptateur Ethernet - USB et une clé Wifi ( TP-Link tl-wn722n avec connecteur antenne rp-sma) en plus de la puce intégré. De plus, une clé 4G est connecté et détecté comme une carte Ethernet (il y a donc 4 interfaces réseau : eth0, eth1, wlan0, wlan1).

Deux façons de faire seront abordées :

  • Le point d'accès source 4G (eth1) vers Wifi + câble Ethernet
  • Le point d'accès source Wifi vers Wifi + câble Ethernet (utile pour capter dans le jardin par exemple)

Fixer le nom des interfaces

Les interfaces réseaux sous Linux sont énumérées eth[0123…]; wlan[0123...], mais ces noms sont attribués dans l'ordre d'initialisation du matériel. Le Raspberry n'étant pas une machine très fiable, les périphériques y étant attaché s'allume dans un ordre relativement aléatoire ce qui cause un sacré souque au niveau des nom des interfaces. Nous allons utiliser la fonction Predictable Network Interface Names, apparue avec la version 197 de Systemd (qui intègre désormais udev) pour fixer les noms (et en profiter pour les personnaliser). Cette notion a été abordée dans cette documentation.

Configuration

Configuration de la clé Wifi pour la connexion WAN

vim /etc/systemd/network/10-wifiwan0.link

<source lang="bash"> [Match] MACAddress=c0:4a:00:xx:xx:xx

[Link] Name=wifiwan0 </source> Configuration de la puce Wifi intégré pour la connexion LAN

vim /etc/systemd/network/10-wifilan0.link

<source lang="bash"> [Match] MACAddress=b8:27:eb:xx:xx:xx

[Link] Name=wifilan0 </source> Configuration de la clé 4G pour la connexion WAN

vim /etc/systemd/network/10-ethwan0.link

<source lang="bash"> [Match] MACAddress=0c:5b:8f:xx:xx:xx

[Link] Name=ethwan0 </source> Configuration de l'interface RJ45 pour la connexion LAN

vim /etc/systemd/network/10-ethlan0.link

<source lang="bash"> [Match] MACAddress=00:23:57:9c:14:20

[Link] Name=ethlan0 </source>

Source de la section

Point d'accès 4G vers Wifi + câble Ethernet

Éléments nécessaires Quantité
Machine sous Debian 1
Clé Wifi 1
Câble Ethernet 1

Configuration des interfaces

vim /etc/network/interfaces

<source lang="bash">

  1. Ethernet USB

auto ethlan0 iface ethlan0 inet static address 192.168.1.254 netmask 255.255.255.0

  1. Clé 4G Huawei E3372H (route par défaut)

auto ethwan0 iface ethwan0 inet dhcp

  1. Wifi intégré

auto wifilan0 iface wifilan0 inet static address 192.168.67.254 netmask 255.255.255.0 </source> Redémarrer le service réseau

service networking restart

vérifier les paramètres

ip a

Installation logiciel

apt install hostapd bridge-utils

Configuration du point d'accès

Le point d'accès se configure via l'unique fichier suivant

vim /etc/hostapd/hostapd.conf

<source lang="bash">

  1. Contenu de /etc/hostapd/hostapd.conf
  2. 1. Parametres de l'interface d'écoute

interface=wifilan0 driver=nl80211

  1. 2. Parametres du démon hostapd

ctrl_interface=/var/run/hostapd ctrl_interface_group=0

  1. 3. Configuration du réseau Wifi

ssid=Raspi channel=6 hw_mode=g ieee80211n=1

  1. 4. Sécurité du réseau Wifi

wpa=2 wpa_passphrase=VOTREMOTDEPASSE wpa_key_mgmt=WPA-PSK wpa_pairwise=CCMP rsn_pairwise=CCMP

  1. 5. Logs

logger_syslog=-1 logger_syslog_level=4 logger_stdout=-1 logger_stdout_level=2

  1. 6. Autres parametres

beacon_int=100 auth_algs=3 wmm_enabled=1 </source> Test des paramètres

hostapd -dd /etc/hostapd/hostapd.conf

INFORMATION

Nous n'avons pas encore mis de serveur DHCP sur notre hotspot. De fait, certains logiciels de connexion Wifi (network-manager si tu m'entend...) vont estimer que l'AP ne fonctionne pas (c'est bien codé ces trucks encore...). Il convient alors de configurer l'interface Wifi en IP statique avant d'initier la connexion pour tester le bon fonctionnement.

Activer le service au démarrage

vim /etc/default/hostapd
DAEMON_CONF="/etc/hostapd/hostapd.conf"
RUN_DAEMON=yes

Installation du serveur DHCP et cache DNS

Nous utiliserons le paquet dnsmasq qui inclue les deux services.

Installation du paquet

apt install dnsmasq

Configuration

vim /etc/dnsmasq.conf

<source lang="bash">

  1. Partie commune

domain-needed expand-hosts bogus-priv interface=wifilan0,ethlan0

  1. Partie DHCP

dhcp-range=wifilan0,192.168.67.1,192.168.67.250,255.255.255.0,12h dhcp-range=ethlan0,192.168.1.1,192.168.1.250,255.255.255.0,12h

  1. Pour distribuer une IP statique
  2. dhcp-host=00:40:F4:6C:43:AF,machinefixe,192.168.1.10
  1. Partie cache DNS

cache-size=256 </source> Redémarrage du service

service dnsmasq restart

Activation du routage

Temporairement

echo 1 > /proc/sys/net/ipv4/ip_forward

Permanent

Pour que le routage soit activé au prochain démarrage, il faut dé-commenter la ligne <source lang="bash" inline>#net.ipv4.ip_forward=1</source> du fichier <source lang="bash" inline>/etc/sysctl.conf</source>.

Le point d'accès Wifi vers Wifi + câble Ethernet

ATTENTION

À faire. Pas le temps pour le moment de détailler mais j'explique le concept pour ceux qui veulent avoir les billes pour trouver eux même

Pour ceux qui tombent dessus et qui ont quand même envie d'avoir de la matière pour faire fonctionner un hotspot Wifi vers Wifi, il faut connecter une interface Wifi au hotspot source (téléphone portable par exemple) avec wpa_supplicant et le configurer comme suit :

vim /etc/wpa_supplicant/wpa_supplicant.conf 

<source lang="bash"> ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1

ap_scan=1

network={

   ssid="SSID-Du-Wifi"
   proto=WPA RSN
   key_mgmt=WPA-PSK
   psk="Clé-Du-Wifi"

} </source> Une fois l'accès Internet aquis, il suffi d'utiliser les configurations de la partie sur le hotspot 4G vers Wifi et d'activer le routage pour que cela fonctionne.

En fin de compte, il faut considérer le Wifi source comme la 4G sauf qu'il y a une étape supplémentaire : la connexion à ce Wifi qui passe par l'utilitaire wpa_supplicant.