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
[Match]
MACAddress=c0:4a:00:xx:xx:xx

[Link]
Name=wifiwan0

Configuration de la puce Wifi intégré pour la connexion LAN

vim /etc/systemd/network/10-wifilan0.link
[Match]
MACAddress=b8:27:eb:xx:xx:xx

[Link]
Name=wifilan0

Configuration de la clé 4G pour la connexion WAN

vim /etc/systemd/network/10-ethwan0.link
[Match]
MACAddress=0c:5b:8f:xx:xx:xx

[Link]
Name=ethwan0

Configuration de l'interface RJ45 pour la connexion LAN

vim /etc/systemd/network/10-ethlan0.link
[Match]
MACAddress=00:23:57:9c:14:20

[Link]
Name=ethlan0

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
#Ethernet USB
auto ethlan0
iface ethlan0 inet static
	address 192.168.1.254
	netmask 255.255.255.0

#Clé 4G Huawei E3372H (route par défaut)
auto ethwan0
iface ethwan0 inet dhcp

#Wifi intégré
auto wifilan0
iface wifilan0 inet static
	address 192.168.67.254
	netmask 255.255.255.0

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
# Contenu de /etc/hostapd/hostapd.conf
# 1. Parametres de l'interface d'écoute
interface=wifilan0
driver=nl80211

# 2. Parametres du démon hostapd
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0

# 3. Configuration du réseau Wifi
ssid=Raspi
channel=6
hw_mode=g
ieee80211n=1

# 4. Sécurité du réseau Wifi
wpa=2
wpa_passphrase=VOTREMOTDEPASSE
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
rsn_pairwise=CCMP

# 5. Logs
logger_syslog=-1
logger_syslog_level=4
logger_stdout=-1
logger_stdout_level=2

# 6. Autres parametres
beacon_int=100
auth_algs=3
wmm_enabled=1

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
# Partie commune
domain-needed
expand-hosts
bogus-priv
interface=wifilan0,ethlan0

# 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
# Pour distribuer une IP statique
#dhcp-host=00:40:F4:6C:43:AF,machinefixe,192.168.1.10

# Partie cache DNS
cache-size=256

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 #net.ipv4.ip_forward=1 du fichier /etc/sysctl.conf.

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 
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"
}

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.