.. 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`_. .. _Atheros AR2425: http://madwifi-project.org/wiki/Chipsets#a2425Swan .. _ath5k: http://wireless.kernel.org/en/users/Drivers/ath5k .. _Debian ath5k: http://wiki.debian.org/ath5k .. _Linksys WRT54GL: http://wiki.openwrt.org/toh/linksys/wrt54gl .. _hostapd: http://w1.fi/hostapd/ .. _hostapd de kernel.org: http://wireless.kernel.org/en/users/Documentation/hostapd .. _hostapd de mad-wifi: http://madwifi-project.org/wiki/UserDocs/ath5kAccessPoint .. _packages hostapd: http://packages.debian.org/search?lang=en&searchon=names&keywords=hostapd .. _Insignificant Bits: http://bobcopeland.com/blog/ .. _Ath5k AP Mode: http://bobcopeland.com/blog/2009/11/ath5k-ap-mode/