MA311 sous debian.

Par R. Suinot: rsuinux@gmx.fr

Contenu


Installation

L'installation dans le serveur ne pose aucun problème. Après redémarrage, faisont un petit teste:

#lspci -vv
00:0e.0 Network controller: Harris Semiconductor: Unknown device 3873 (rev 01)
        Subsystem: Netgear: Unknown device 4105
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B-
        Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- SERR- 


Configuration du module

La carte de mande, pour être gérer comme un point d'acces, l'installation de hostap-source. L'installation va demander pas mal de travail. Voilà le déroulement des opérations. Installation de hostap-source et compilation dans la foulées (noyo 2.4.22)

# dpkg -i hostap-source_0.1.2-2_all.deb
# cd /usr/src
# tar xzvf hostap-source.tar.gz
# cd linux
# make-kpkg --revision=ncc1701d.0.1 kernel-image
# make-kpkg --revision=ncc1701d.0.1 modules-image
# dpkg -i kernel-image*deb
# dpkg -i hostap*deb
# dpkg -i hostap-modules-2.4.22_0.1.2-2_i386.deb
(Lecture de la base de données... 33727 fichiers et répertoires déjà installés.)
Préparation du remplacement de hostap-modules-2.4.22 1:0.1.2-2 (en utilisant hostap-modules-2.4.22_0.1.2-2_i386.deb) ...
Dépaquetage de la mise à jour de hostap-modules-2.4.22 ...
dpkg : des problèmes de dépendances empêchent la configuration de hostap-modules-2.4.22 :
 hostap-modules-2.4.22 dépend de wireless-tools ; cependant :
  Paquet wireless-tools n'est pas installé.
 hostap-modules-2.4.22 dépend de hostap-utils ; cependant :
  Paquet hostap-utils n'est pas encore configuré.
 hostap-modules-2.4.22 dépend de kernel-pcmcia-modules-2.4.22 ; cependant :
  Paquet kernel-pcmcia-modules-2.4.22 n'est pas installé.
dpkg : erreur de traitement de hostap-modules-2.4.22 (--install) :
 problèmes de dépendances - laissé non configuré
Des erreurs ont été rencontrées pendant l'exécution :
 hostap-modules-2.4.22
# reboot
On voit qu'il faut les paquets suivant AVANT l'installation des modules: wireless-tools, hostap-utils, kernel-pcmcia-modules. Je récupère donc les sources des divers paquets sous forme de sources uniquement, car apparemment, il y a des problèmes de libc6:
(exemple avec l'installation de hostapd_0.1.0-4_i386.deb):
$ sudo dpkg -i /root/hostapd_0.1.0-4_i386.deb
(Lecture de la base de données... 33517 fichiers et répertoires déjà installés.)
Préparation du remplacement de hostapd 1:0.1.0-4 (en utilisant /root/hostapd_0.1.0-4_i386.deb) ...
Dépaquetage de la mise à jour de hostapd ...
dpkg : des problèmes de dépendances empêchent la configuration de hostapd :
 hostapd dépend de libc6 (>= 2.3.2.ds1-4) ; cependant :
   La version de libc6 sur le système est 2.2.5-11.5.
dpkg : erreur de traitement de hostapd (--install) :
 problèmes de dépendances - laissé non configuré
Des erreurs ont été rencontrées pendant l'exécution :
 hostapd
Pour la création des paquets, il faut au moins 2 fichiers:
  1. les sources du paquet (en tar.gz)
  2. le fichier <nomdupaquet>.dsc
Une fois ces fichiers récupérés, il suffit de mettre en route dpkg!
$ dpkg-source -x hostap-utils_0.1.2-1.dsc
$ cd hostap-utils-0.1.2/
$ debuild
$ cd ..
$ dpkg -i hostap-utils_0.1.2-1_i386.deb
Idem pour les paquets suivants:
$ dpkg-source -x hostapd_0.1.0-4.dsc
...
$ dpkg-source -x wireless-tools_26-5.dsc
...
Il a fallut aussi installer pcmcia-cs (je ne sais pas pourquoi, puisque c'est une carte pci!)
Apres ceci, il a suffit d'un petit modconf, ou je vois un repertoire 'net' et dedans, les modules hostap, hostap_crypt_wep, hostap_pci, et hostap_plx. Ce dernier est le seul que je n'ai pu installer:
/lib/modules/2.4.22/net/hostap_plx.o: init_module: No such device
Hint: insmod errors can be caused by incorrect module parameters, including invalid IO or IRQ parameters
/lib/modules/2.4.22/net/hostap_plx.o: insmod /lib/modules/2.4.22/net/hostap_plx.o failed
/lib/modules/2.4.22/net/hostap_plx.o: insmod hostap_plx failed
Première chose à faire ensuite, allez voir dans /var/log/syslog:
# tail -22 /var/log/syslog
Dec 15 15:25:37 ncc1701d kernel:   no bridges found.
Dec 15 15:25:37 ncc1701d kernel: ds: no socket drivers loaded!
Dec 15 15:25:37 ncc1701d cardmgr[4869]: starting, version is 3.1.33
Dec 15 15:25:37 ncc1701d cardmgr[4869]: no pcmcia driver in /proc/devices
Dec 15 15:25:37 ncc1701d cardmgr[4869]: exiting
Dec 15 15:41:35 ncc1701d kernel: hostap_crypt: registered algorithm 'NULL'
Dec 15 15:41:42 ncc1701d kernel: hostap_pci: 0.1.2 - 2003-11-02 (Jouni Malinen )
Dec 15 15:41:42 ncc1701d kernel: PCI: Found IRQ 10 for device 00:0e.0
Dec 15 15:41:42 ncc1701d kernel: hostap_pci: Registered netdevice wlan0
Dec 15 15:41:42 ncc1701d kernel: prism2_hw_init: initialized in 200 ms
Dec 15 15:41:42 ncc1701d kernel: wlan0: trying to read PDA from 0x007f0000: OK
Dec 15 15:41:42 ncc1701d kernel: wlan0: NIC: id=0x8013 v1.0.0
Dec 15 15:41:42 ncc1701d kernel: wlan0: PRI: id=0x15 v1.0.7
Dec 15 15:41:42 ncc1701d kernel: wlan0: STA: id=0x1f v1.3.6
Dec 15 15:41:42 ncc1701d kernel: wlan0: defaulting to host-based encryption as a workaround for firmware bug in Host AP mode WEP
Dec 15 15:41:42 ncc1701d kernel: wlan0: defaulting to bogus WDS frame as a workaround for firmware bug in Host AP mode WDS
Dec 15 15:41:42 ncc1701d kernel: wlan0: Intersil Prism2.5 PCI: mem=0xf4001000, irq=10
Dec 15 15:41:51 ncc1701d kernel: hostap_plx: 0.1.2 - 2003-11-02 (Jouni Malinen )
Dec 15 15:41:51 ncc1701d kernel: hostap_plx: No devices found, driver not installed.
Dec 15 15:42:02 ncc1701d kernel: hostap_crypt: registered algorithm 'WEP'
On voit que hostap_plx ne marche pas, ainsi que le pcmcia n'est pas activé (normal), mais pour le reste, apparemment, pas de problème!

On va à présent faire quelque tests....

# ifconfig wlan0 192.168.3.1
# ifconfig
wlan0     Lien encap:Ethernet  HWaddr 00:09:5B:91:56:F5
          inet adr:192.168.3.1  Bcast:192.168.3.255  Masque:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:100
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Interruption:10 Mémoire:c88fe000-c88ff000
# iwconfig
lo        no wireless extensions.
 
dummy0    no wireless extensions.
  
eth0      no wireless extensions.
   
eth1      no wireless extensions.
    
wlan0     IEEE 802.11b  ESSID:"test"
          Mode:Master  Frequency:2.422GHz  Access Point: 00:09:5B:91:56:F5
          Bit Rate:11Mb/s   Sensitivity=1/3
          Retry min limit:8   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0
# iwconfig wlan0 mode Master
# iwconfig wlan0 channel 11
# iwconfig wlan0 essid "Wifi Starfleet Acces Point 01"
# iwconfig wlan0 nickname "Starfleet Acces Point 01"
# iwconfig wlan0 key s:AP01StarFleet [1]
# iwconfig wlan0
wlan0     IEEE 802.11b  ESSID:"Wifi Starfleet Acces Point 01"  Nickname:"Starfleet Acces Point 01"
          Mode:Master  Frequency:2.462GHz  Access Point: 00:09:5B:91:56:F5
          Bit Rate:11Mb/s   Sensitivity=1/3
          Retry min limit:8   RTS thr:off   Fragment thr:off
          Encryption key:4150-3031-5374-6172-466C-6565-74   Security mode:restricted
          Power Management:off
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0
Cela a l'air de marcher, en plus! Le serveur a l'adresse 192.168.3.1 et donc l'adresse réseau sera 192.168.3.0. Et la carte est configurée en point d'acces avec une clef WEP de 128 bits (104 en fait). Vérifions quelques éléments:
# iwlist wlan0 key
wlan0     2 key sizes : 40, 104bits
          4 keys available :
               [1]: 4150-3031-5374-6172-466C-6565-74 (104 bits)
               [2]: off
               [3]: off
               [4]: off
          Current Transmit Key: [1]
          Security mode:restricted
Nous voyons le mode wep actif, avec une seule clef. Pendant que nous y sommes, faisons un scanning (le portable est connecté):
# iwlist wlan0 scanning
wlan0     Scan completed :
          Cell 01 - Address: 00:09:5B:92:D2:65
                      Mode:Managed
                      Quality:239/92  Signal level:-27 dBm  Noise level:-34 dBm
(l'addresse mac de la carte réseau du portable est 00:09:5B:92:D2:65, cf la doc
wifiwg511.php)
Dans les log du serveur lorsqu'une carte est insérée dans le portablie, on apperçoit tout de suite l'arrivée de celui-ci:
Jan 15 19:10:17 ncc1701d kernel: wlan0: 00:09:5b:92:d2:65 auth_cb - STA authenticated
Jan 15 19:10:17 ncc1701d kernel: wlan0: assoc from 00:09:5b:92:d2:65 with extra data (10 bytes) [<32><08><0c><12><18><24><30><48><60><6c>]
Jan 15 19:10:17 ncc1701d kernel: wlan0: 00:09:5b:92:d2:65 assoc_cb - STA associated


Configuration du reseau

La plus grande difficulté a été la configuration automatique de la carte avec les outils debian. En effet, après mes premiers testes, j'ai tenté d'utiliser 'ifup wlan0', mais le systeme me renvoyait toujours une erreur 'interface inconnue wlan0=wlan0'. Après quelques recherches, et essais, ça a bien voulu fonctionner, mais en fait, je ne sais pas pourquoi! (en fait, je ne sais pas pourquoi cela ne fonctionnait pas avant). Voici donc la configuration actuelle.
D'abord, j'ai créé un script /usr/local/bin/inet_wireless.sh qui parametre la carte réseau:

#!/bin/bash
# -----------------------------------
# preconfiguration de la carte wifi
# sur le serveur debian woody
# ----------------------------------
 
IFACE=$1
# iwconfig $IFACE nick fang mode Managed
# iwconfig $IFACE rate Auto
# iwconfig $IFACE essid "Wifi Starfleet Acces Point 01"
# iwconfig $IFACE key on
# iwspy $IFACE mac-address
iwconfig wlan0 mode Master
iwconfig wlan0 channel 11
iwconfig wlan0 essid "Wifi Starfleet Acces Point 01"
iwconfig wlan0 nickname "Starfleet Acces Point 01"
iwconfig wlan0 key s:AP01StarFleet [1]
exit 0
le seul parametre à lui passer, c'est l'adresse de la carte (ici, c'est wlan0, trouvé avec iwconfig sans autre argument). Ensuite, il faut renseigner le réseau comme n'importe quelle carte, dans /etc/network/interfaces:
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)

# The loopback interface
# automatically added when upgrading
auto lo eth1 wlan0
iface lo inet loopback

# configuration du modem adsl sur port eth1
iface eth0 inet static
        address 192.168.1.2
        netmask 255.255.255.0
        network 192.168.1.0

# configuration de la carte ethernet interne n° 2
iface eth1 inet static
        address 192.168.2.1
        netmask 255.255.255.0
        network 192.168.2.0

# configuration du reseau wifi sur la crate ma311 (wlan0)
iface wlan0 inet static

pre-up /usr/local/bin/inet_wireless.sh wlan0

        address 192.168.3.1
        netmask 255.255.255.0
        network 192.168.3.0
Une fois ceci fait, il suffit d'utiliser ifup wlan0 pour que cela fonctionne!

Voila au démarage de la machine, ce que donne syslog:

Jan 25 16:25:00 ncc1701d kernel: hostap_crypt: registered algorithm 'NULL'
Jan 25 16:25:00 ncc1701d kernel: hostap_pci: 0.1.2 - 2003-11-02 (Jouni Malinen )
Jan 25 16:25:00 ncc1701d kernel: PCI: Found IRQ 10 for device 00:0e.0
Jan 25 16:25:00 ncc1701d kernel: hostap_pci: Registered netdevice wlan0
Jan 25 16:25:00 ncc1701d kernel: prism2_hw_init: initialized in 200 ms
Jan 25 16:25:00 ncc1701d kernel: wlan0: trying to read PDA from 0x007f0000: OK
Jan 25 16:25:00 ncc1701d kernel: wlan0: NIC: id=0x8013 v1.0.0
Jan 25 16:25:00 ncc1701d kernel: wlan0: PRI: id=0x15 v1.0.7
Jan 25 16:25:00 ncc1701d kernel: wlan0: STA: id=0x1f v1.3.6
Jan 25 16:25:00 ncc1701d kernel: wlan0: defaulting to host-based encryption as a workaround for firmware bug in Host AP mode WEP
Jan 25 16:25:00 ncc1701d kernel: wlan0: defaulting to bogus WDS frame as a workaround for firmware bug in Host AP mode WDS
Jan 25 16:25:00 ncc1701d kernel: wlan0: Intersil Prism2.5 PCI: mem=0xf4001000, irq=10
Jan 25 16:25:00 ncc1701d kernel: hostap_crypt: registered algorithm 'WEP'




S'il vous arrivait de vous servir de cette doc, envoyez moi un petit mot, merci!