Mode AP pour ath5k avec Lenny
Contents
Présentation
J'ai un Packard Bell Imax mini N3600 qui me sert de passerelle et de plateforme d'auto-hébergement sous Debian Lenny. Celui-ci possède une carte wifi qui ne me sert pas car la connectivité est fournie par ma connexion ADSL.
Je souhaite utiliser cette carte en tant que point d'accès Wifi, à la place de mon AP Linksys WRT54GL.
Pour ceux qui veulent les grandes lignes sans tout lire:
- installer hostapd 0.6.10 de Squeeze
- utiliser un noyau 2.6.32 de Lenny-backport
- utiliser le guide Ath5k AP Mode d'Insignificant Bits.
La carte wifi
Description
Cette ordinateur inclut une carte wifi intégrée, il s'agit d'une Atheros AR2425 (168c:001c) qui fonctionne avec le driver ath5k:
# lspci -v -s 05:00.0
05:00.0 Ethernet controller: Communications Inc. AR242x 802.11abg Wireless PCI Express Adapter (rev 01)
Subsystem: AMBIT Microsystem Corp. Device 0428
Flags: bus master, fast devsel, latency 0, IRQ 19
Memory at febf0000 (64-bit, non-prefetchable) [size=64K]
Capabilities: [40] Power Management version 2
Capabilities: [50] Message Signalled Interrupts: Mask- 64bit- Queue=0/0 Enable-
Capabilities: [60] Express Legacy Endpoint, MSI 00
Capabilities: [90] MSI-X: Enable- Mask- TabSize=1
Capabilities: [100] Advanced Error Reporting <?>
Capabilities: [140] Virtual Channel <?>
Kernel driver in use: ath5k
Kernel modules: ath5k
Sortie de dmesg:
# dmesg [ 16.735520] ath5k 0000:05:00.0: PCI INT A -> Link[LN4A] -> GSI 19 (level, low) -> IRQ 19 [ 16.735619] ath5k 0000:05:00.0: setting latency timer to 64 [ 16.735706] ath5k 0000:05:00.0: registered as 'phy0' ... [ 19.006496] ath: EEPROM regdomain: 0x65 [ 19.006503] ath: EEPROM indicates we should expect a direct regpair map [ 19.006513] ath: Country alpha2 being used: 00 [ 19.006519] ath: Regpair used: 0x65 ... [ 21.942054] phy0: Selected rate control algorithm 'minstrel' [ 21.943763] Registered led device: ath5k-phy0::rx [ 21.943869] Registered led device: ath5k-phy0::tx [ 21.943938] ath5k phy0: Atheros AR2425 chip found (MAC: 0xe2, PHY: 0x70)
En mode client sous Debian
Avant d'attaquer le mode AP, il faut valider le bon fonctionnement de la carte wifi avec le driver ath5k sur la Debian Lenny.
Pour cela le mieux est de l'utiliser en mode client, le mode le plus standard.
La page Debian ath5k peut vous être utile. Il faut vérifier que la carte est bien reconnue. Si l'OS ne charge pas tout seul le module ath5k, le charger et vérifier que la carte est reconnue, cf la sortie dmesg ci-dessus.
Est-ce que l'interface est bien créée, pour cela il suffit d'installer le package wireless-tools et vérifier la sortie de iwconfig, ici c'est l'interface wlan0 qui est en mode Managed:
# iwconfig
wlan0 IEEE 802.11bg Mode:Managed Access Point: Not-Associated
Tx-Power=0 dBm
Retry long limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Maintenant vous devez la configurer pour se connecter à votre réseau sans-fil (manuellement avec iwconfig, avec wicd ou autre gestionnaire de connexion).
Le mode AP
Description
Les cartes wifi possèdent plusieurs mode de fonctionnement, le plus classique est le mode client (mode Managed) pour se connecter à un réseau wifi.
Mais il existe de nombreux autres modes: le mode AP (Mode Master), le mode écoute (Mode Monitor) utiliser par des outils comme Kismet, le mode ad-hoc (Mode Ad-Hoc) pour faire un réseau direct entre clients sans AP...
Avec les wireless-tools
J'ai déjà utilisé le mode AP avec une carte PCI wifi avec le driver prism54g, il suffisait d'utiliser la commande iwconfig:
iwconfig wlan0 mode Master iwconfig wlan0 essid test iwconfig wlan0 key maclefWEP
Hélas, le driver ath5k ne supporte pas ce mode de configuration. Il faut donc passer par hostapd.
Installation d'hostapd
Il faut installer le package hostapd. Lenny propose la version 5.10 de hostapd qui est trop ancienne. En effet, il faut utiliser le driver nl80211 de hostapd, et cette version ne le supporte pas. Je comptais utiliser la version de lenny-backport, mais ... il n'y en a pas.
J'ai regardé les packages hostapd disponibles, et j'ai essayé celui de la squeeze. J'ai téléchargé le package:
wget http://ftp.fr.debian.org/debian/pool/main/h/hostapd/hostapd_0.6.10-2_i386.deb
et une tentative d'installation m'a indiqué deux conflits libnl1 et libssl. J'ai donc installé libnl1:
apt-get install libnl1
Je suis passé outre le conflit libssl car la version demandée était très proche de celle déjà installée (oui ce n'est pas bien). Donc j'ai forcé l'installation:
dpkg --force-depends-version -i hostapd_0.6.10-2_i386.deb
A noter qu'il est aussi souhaitable d'avoir un noyau >= 2.6.30. J'avais déjà un noyau de lenny-backport : linux-image-2.6.32-bpo.4-686.
Configuration d'hostapd
J'ai modifié le fichier /etc/defaut/hostapd pour indiquer le fichier de configuration:
DAEMON_CONF="/etc/hostapd/hostapd.conf"
Puis j'ai copié le fichier d'exemple:
cp /usr/share/doc/hostapd/examples/hostapd.conf.gz /etc/hostapd/ gunzip /etc/hostapd/hostapd.conf.gz
J'ai suivi le guide hostapd de mad-wifi. Il faut notamment utiliser le driver nl80211 de hostapd (basé sur la pile wifi mac80211 du noyau):
interface=wlan0 driver=nl80211 ssid=test
Puis lancer hostapd:
/usr/sbin/hostapd /etc/hostapd/hostapd.conf
Hélas le guide hostapd de mad-wifi est succinct, et je n'ai pas réussi à configurer correctement hostapd. J'avais un message d'incompatibilité matérielle.
Mon salut est venu du blog d'Insignificant Bits avec l'article Ath5k AP Mode qui est plus détaillé. J'avais oublié de configurer de nombreux paramètres (notamment le mode g au lieu de a), en WPA2:
hw_mode=g channel=5 own_ip_addr=192.168.2.1 wpa=2 wpa_passphrase=MaClefWPA wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP
Puis un nouveau test, qui est passé:
# /usr/sbin/hostapd /etc/hostapd/hostapd.conf Configuration file: /etc/hostapd/hostapd.conf Using interface wlan0 with hwaddr 00:24:2c:78:xx:xx and ssid 'test'
Et la connexion d'un client:
wlan0: STA 00:1b:b1:48:xx:xx IEEE 802.11: authenticated STA 00:1b:b1:48:xx:xx: No WPA/RSN IE in association request wlan0: STA 00:1b:b1:48:xx:xx IEEE 802.11: authenticated wlan0: STA 00:1b:b1:48:xx:xx IEEE 802.11: associated (aid 1) wlan0: STA 00:1b:b1:48:xx:xx RADIUS: starting accounting session 4D44ACF5-00000000 wlan0: STA 00:1b:b1:48:xx:xx WPA: pairwise key handshake completed (RSN)
Il ne reste plus que des manipulations assez simples et très documentées: automatiser le lancement d'hostapd avec /etc/init.d/hostapd, configurer le serveur dhcp pour ce nouveau réseau, modifier la conf iptable pour le nat de ce réseau et le filtrage souhaité.
Je remercie Insignificant Bits pour son article Ath5k AP Mode.
Liens et articles annexes
- Les caractéristiques du driver ath5k pour la carte Atheros AR2425 sur kernel.org
- La page Debian ath5k.
- Les packages hostapd chez Debian.
- Le site officiel hostapd
- Le site hostapd de kernel.org
- Le site hostapd de mad-wifi
- Le guide Ath5k AP Mode d'Insignificant Bits.

|