Mise en place d'un Hotspot sous Linux en mode bridge

Mise en place d'un Hotspot sous Linux en mode bridge

Linux Hotspot Hostapd BRIDGE RTL8852BE WLAN Realteck

Mise en place d'un Hotspot sous Linux en mode bridge

Contexte

Le matériel sur lequel mon hyperviseur est installé dispose d'une carte Wi-Fi RTL8852BE. Plutôt que de la laisser inutilisée, j'ai décidé de l'associer à une machine virtuelle et d'en faire un point d'accès Wi-Fi avec Hostapd sous Linux.

Sous Linux, rien ne se perd, tout se transfert… même une carte Wi-Fi 😆

Cette solution me permet de remplacer ma borne Wi-Fi historique tout en réduisant ma consommation électrique. De plus, je souhaite que le hotspot utilise mon serveur DHCP local pour l'attribution des adresses IP.

Prérequis

  • Ma carte Wi-Fi RTL8852BE, étant assez récente, nécessite un noyau Linux récent (6.10 minimum). Je préfère éviter de compiler les pilotes manuellement (disponibles sur certains GitHub).
  • J’ai donc choisi Fedora Server 41 avec une installation minimale sans Cockpit.

Installation


Je vous laisse télécharger et installer Fedora Server 41 par vous-même. Toutefois, veillez à choisir une installation personnalisée pour éviter l'installation par défaut avec Cockpit.

Configuration initiale


Nous allons commencer par désactiver SELinux pour éviter tout problème au prochain redémarrage :

grubby --update-kernel ALL --args selinux=0

La légende raconte que dans les années 2000, SELinux a causé plus de sueurs froides et de vocations abandonnées chez les administrateurs système stagiaires que les pannes de production un lundi matin… 😆

Configuration de NetworkManager


Création du bridge réseau

Nous allons d'abord identifier les interfaces réseau disponibles :

ip a

Dans mon cas :

  • enX0 = interface filaire
  • wls5 = interface Wi-Fi
lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever

enX0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 52:54:00:c7:2c:3e brd ff:ff:ff:ff:ff:ff
    inet 10.10.1.10/24 scope global eth0
       valid_lft forever preferred_lft forever

wls5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state DOWN qlen 1000
    link/ether 52:54:00:c7:2c:3e brd ff:ff:ff:ff:ff:ff
    valid_lft forever preferred_lft forever

Note : Si votre carte Wi-Fi n'apparaît pas, cela signifie qu'elle n'est pas reconnue. Dans ce cas, consultez les forums ou GitHub pour trouver une solution adaptée à votre modèle.

Création du bridge réseau avec une IP fixe et désactivation d'IPv6 :

sudo nmcli connection add type bridge ifname br0 con-name br0 autoconnect yes ipv4.method manual ipv4.addresses 10.10.1.10/24 ipv4.gateway 10.10.1.1 ipv4.dns 10.10.1.2 ipv6.method ignore

Info : Remplacez les adresses IP par celles de votre réseau local.

Nous associons ensuite l'interface filiaire (enX0) au bridge :

sudo nmcli connection add type bridge-slave ifname enX0 master br0

Puis nous faisons de même pour l’interface Wi-Fi (wls5) :

sudo nmcli connection add type bridge-slave ifname wls5 master br0

Activation du forwarding des paquets réseau

Modifions le fichier sysctl.conf :

sudo vi /etc/sysctl.conf

Ajoutons cette ligne pour activer le forwarding IPv4 :

net.ipv4.ip_forward=1

Redémarrons la machine :

sudo reboot

Après redémarrage, le bridge réseau devrait récupérer son adresse IP :

ip a

Vous devriez voir quelque chose comme ceci :

br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP 
    link/ether 40:9c:a7:5a:b6:c8 brd ff:ff:ff:ff:ff:ff
    inet 10.10.1.10/24 brd 10.10.1.255 scope global noprefixroute br0

Installation d'hostapd


Installation des paquets hostapd et iw :

sudo dnf install hostapd iw -y

Info : Le paquet iw est un utilitaire en ligne de commande pour configurer les interfaces sans fil.

Configuration d'hostapd


Éditez le fichier de configuration :

sudo vi /etc/hostapd/hostapd.conf

Exemple de configuration pour un point d’accès Wi-Fi 2.4 GHz :

# Configuration générale
ctrl_interface=/var/run/hostapd
ctrl_interface_group=wheel

# Paramètres Wi-Fi
driver=nl80211
interface=wls5
hw_mode=g
channel=6
ssid=Private_Wireless
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
wpa_passphrase=MyPassword@2025
ieee80211n=1
ieee80211ac=0
wmm_enabled=1
ht_capab=[HT40+][SHORTGI][LDPC]

# Intégration avec le bridge
bridge=br0

Attention : Modifiez les paramètres "driver" et "interface" en fonction de votre matériel. Adaptez la configuration de chiffrement si vous avez des appareils anciens.

Démarrage et vérification

sudo systemctl enable hostapd --now

Démarrez et activez Hostapd :

sudo systemctl status hostapd

Configuration de firewalld


Personnellement, j'ai choisi de le désactiver (parce que pourquoi faire compliqué ?), mais si vous préférez le configurer correctement, voici les commandes :

sudo firewall-cmd --permanent --zone=trusted --add-interface=br0
sudo firewall-cmd --reload

Article précédent