Table des matières

, , , , , , ,

Configurer un système Linux en point d'accès sans fil (WAP)

apt install hostapd bridge-utils wireless-tools

Créer le fichier de configuration /etc/hostapd/hostapd.conf à partir du fichier exemple ou ex-nihilo:

cp /usr/share/doc/hostapd/examples/hostapd.conf /etc/hostapd/hostapd.conf

Ci-dessous un exemple de fichier minimal:

hostapd.conf
interface=ap
 
driver=nl80211
 
country_code=FR
 
ssid=test
 
hw_mode=g
 
channel=1
wpa=2
ignore_broadcast_ssid=0
wpa_passphrase=Test1234
 
# Algorithmes de gestion des clés
wpa_key_mgmt=WPA-PSK
 
# Set cipher suites (encryption algorithms) ##
# TKIP = Temporal Key Integrity Protocol
# CCMP = AES in Counter mode with CBC-MAC
wpa_pairwise=TKIP
rsn_pairwise=CCMP
 
 
# Accepter toutes les MAC adresses
macaddr_acl=0
 
# Shared key authentification
auth_algs=1

Modifier le fichier /etc/default/hostapd définir la variable DAEMON_CONF

...
# Uncomment and set DAEMON_CONF to the absolute path of a hostapd configuration
# file and hostapd will be started during system boot. An example configuration
# file can be found at /usr/share/doc/hostapd/examples/hostapd.conf.gz
#
DAEMON_CONF="/etc/hostapd/hostapd.conf"
...

Activer et démarrer le service

systemctl unmask hostapd.service
systemctl enable hostapd.service
 
# Afficher l'état du service
systemctl status hostapd.service
 
# Afficher les messages correspondant au service dans les journaux système
journalctl --unit hostapd.service
Tous les matériels ne supportent pas forcément le mode point d'accès (mode Master).

Dans l'exemple ci dessous la problématique s'est produite avec un adaptateur wifi USB TP-Link TL-WN823N, le journal système rapporte que le pilote de la carte ne supporte pas le passage en mode point d’accès “Could not configure driver mode”:

déc. 23 13:31:06 nucleus hostapd[2280]: Configuration file: /etc/hostapd/hostapd.conf
déc. 23 13:31:06 nucleus hostapd[2280]: nl80211: Could not configure driver mode
déc. 23 13:31:06 nucleus hostapd[2280]: nl80211: deinit ifname=wap disabled_11b_rates=0
déc. 23 13:31:06 nucleus hostapd[2280]: nl80211 driver initialization failed.
déc. 23 13:31:06 nucleus hostapd[2280]: wap: interface state UNINITIALIZED->DISABLED
déc. 23 13:31:06 nucleus hostapd[2280]: wap: AP-DISABLED
déc. 23 13:31:06 nucleus hostapd[2280]: wap: CTRL-EVENT-TERMINATING
déc. 23 13:31:06 nucleus hostapd[2280]: hostapd_free_hapd_data: Interface wap wasn't started

Pont ou passerelle

Le mode pont est le plus simple à paramétrer. les paquets sont directement transmis entre les interfaces pontées.

Le mode passerelle réclame davantage de paramétrages mais permet d'isoler et de filtrer les paquets entre les interfaces.

Journalisation

Le fichier exemple /usr/share/doc/hostapd/examples/hostapd.conf contient la description de la configuration des logs:

# Module bitfield (ORed bitfield of modules that will be logged; -1 = all
# modules):
# bit 0 (1) = IEEE 802.11  
# bit 1 (2) = IEEE 802.1X  
# bit 0 (1) = IEEE 802.11  
# bit 0 (1) = IEEE 802.11  
# bit 1 (2) = IEEE 802.1X  
# bit 2 (4) = RADIUS
# bit 3 (8) = WPA
# bit 2 (4) = RADIUS
# bit 3 (8) = WPA
# bit 3 (8) = WPA
# bit 1 (2) = IEEE 802.1X  
# bit 2 (4) = RADIUS
# bit 3 (8) = WPA
# bit 4 (16) = driver interface
# bit 5 (32) = IAPP
# bit 6 (64) = MLME
#
# Levels (minimum value for logged events):
#  0 = verbose debugging
#  1 = debugging
#  2 = informational messages
#  3 = notification
#  4 = warning
#
logger_syslog=-1
logger_syslog_level=1

Ici logger_syslog=-1 active les traces pour tous les modules et logger_syslog_level=1 émet les traces des niveaux degug et supérieur.

Lorsque le filtrage par MAC est actif, seuls les périphériques autorisés produiront des traces.

Traces produites lors d'un échec à l'authentification:

déc. 31 12:28:26 nucleus hostapd[10035]: ap: STA 8c:b8:4a:66:57:32 IEEE 802.11: authenticated
déc. 31 12:28:26 nucleus hostapd[10035]: ap: STA 8c:b8:4a:66:57:32 IEEE 802.11: associated (aid 2)
déc. 31 12:28:35 nucleus hostapd[10035]: ap: STA 8c:b8:4a:66:57:32 IEEE 802.11: deauthenticated due to local deauth request

Traces produites lors d'une authentification réussie:

déc. 31 12:29:30 nucleus hostapd[10035]: ap: STA 8c:b8:4a:66:57:32 IEEE 802.11: authenticated
déc. 31 12:29:30 nucleus hostapd[10035]: ap: STA 8c:b8:4a:66:57:32 IEEE 802.11: associated (aid 2)
déc. 31 12:29:30 nucleus hostapd[10035]: ap: STA 8c:b8:4a:66:57:32 RADIUS: starting accounting session 185FD137F8256549
déc. 31 12:29:30 nucleus hostapd[10035]: ap: STA 8c:b8:4a:66:57:32 WPA: pairwise key handshake completed (RSN)

Traces produites lors d'une déconnexion:

déc. 31 12:34:21 nucleus hostapd[10035]: ap: STA 8c:b8:4a:66:57:32 IEEE 802.11: disassociated
déc. 31 12:34:22 nucleus hostapd[10035]: ap: STA 8c:b8:4a:66:57:32 IEEE 802.11: deauthenticated due to inactivity (timer DEAUTH/REMOVE)

Références