[LinuxFocus-icon]
LinuxFocus article number 361
http://linuxfocus.org

[Photo of Wang Xu]
par Wang Xu
<wangxu[at]linuxfocus.org>

L´auteur:

Wang Xu est doctorant à l'Université des Postes et Télécommunications de Pékin en Chine et s'intéresse plus particulièrement aux communications sans fil. Il est une fervent adepte de Linux depuis 1999 alors qu'il n'était encore qu'un lycéen. A côté de Linux, il s'adonne également à TeX, C/C++, Perl, etc.



Traduit en Français par:
Laurent RICHARD <kouran[at]linuxmail.org>

Réseaux sans fil sous Linux

interconnection sans fil entre des ordinateurs

Résumé:

Dans cet article, l'auteur nous parle des pilotes de plusieurs cartes réseaux sans-fil assez répandues et de quelques problèmes comme l'authentification basée sur le 802.1x.

_________________ _________________ _________________

 

Introduction

Les réseaux sans-fil (IEEE 802.11b/a/g) deviennent de plus en plus populaires à mesure que les périphériques sans-fil deviennent bon marché et que de plus en plus d'organisations fournissent un accès sans-fil à leur personnel ou au public. Quasiment tout nouvel ordinateur portable possède une carte sans-fil intégrée et les plus anciens ont une carte réseau sans-fil PCMCIA. Même les ordinateurs de bureau peuvent avoir des cartes réseaux sans-fil USB, voire des cartes réseaux sans-fil intégrées. D'autre part, les points d'accès (Access Point en anglais ou AP) sans-fil sont déployés sur les campus universitaires, les bâtiments contenant des bureaux, les hôtels, les habitations, etc. Le réseau sans-fil facilite le déploiement de réseaux locaux et permet l'informatisation mobile/nomade, laquelle est une autre révolution de notre vie professionnelle et quotidienne.

De ce fait, dans le monde Linux, il est dès lors tout aussi essentiel de pouvoir avoir accès aux réseaux sans-fil. Le reste de cet article sera organisé de la façon suivante. Tout d'abord, attardons-nous à voir comment les cartes fonctionnent. Ensuite, essayons d'accéder aux réseaux en utilisant l'authentification et donnons une brève introduction sur les outils pour la configuration de l'interface sans-fil. Nous terminerons par une conclusion sur ce que nous aurons appris.

 

Fonctionnement des cartes réseaux sans-fil

Une fois que vous avez une carte réseau sans-fil installée sur votre ordinateur, la première étape est d'installer le pilote et de le faire fonctionner. Une carte réseau sans-fil implémente les fonctions de la couche physique (PHY) et la sous-couche de contrôle d'accès aux médias (MAC) comme spécifié dans au moins une des séries de protocoles IEEE 802.11 pendant que le pilote contrôle la carte et fournit d'autres interfaces de gestion spécifiques du réseau sans-fil.

Il n'existe pas une méthode unique pour installer les pilotes étant donné la multitude de vendeurs et de cartes se trouvant sur le marché. Cependant, la plupart d'entre elles peut fonctionner au travers de 3 méthodes :

Dans les sections suivantes, l'auteur nous illustrera ces méthodes avec des exemples.

Veuillez notez que même si vous utilisez une des deux dernières méthodes, vous devez vous assurer que le support du réseau sans-fil a bien été activé dans la configuration du noyau :

gnawux@APTITUDE:~$ grep CONFIG_NET_RADIO /boot/config-`uname -r`
CONFIG_NET_RADIO=y
Si ce n'est pas le cas, vous devriez reconfigurer le noyau et activer l'option « Wireless LAN (non-hamradio) Drivers and Wireless Extensions ».  

Support du noyau pour le réseau sans-fil

Les pilotes qui sont assez aboutis et qui n'ont pas de problèmes de licences sont introduits dans le noyau Linux. Ainsi, la liste des cartes réseaux sans-fil dépend de la version du noyau et il est donc conseillé de vérifier si le nouveau noyau a un meilleur support de votre carte avant d'installer le pilote.

Dans cette section, l'auteur va illustrer comment utiliser le pilote pour les cartes réseaux sans-fil basées sur les chipsets Intersil Prism (ISL38xx). La liste des cartes supportées peut être trouvée à l'adresse http://prism54.org [2].

Pour utiliser une carte basée sur le chipset Prism, vous aurez besoin du dernier noyau 2.6 et d'activer l'option « Intersil Prism GT/Duette/Indigo PCI/Cardbus » dans la section « Wireless LAN driver » de la configuration du noyau et recompiler le noyau.

Si vous lisez le texte d'aide du module avec attention lorsque vous configurerez le noyau, vous pourrez trouver que vous allez avoir besoin d'un firmware du site Internet du projet prism54.org [2]. Cela provient du fait que la carte n'a pas d'EPROM pour stocker son firmware. Dès lors, il faudra télécharger le firmware lorsque le pilote initialisera la carte. Le firmware ne peut pas faire partie du noyau pour des raisons de conflit de licence. Après avoir récupéré le firmware et l'avoir mis dans « /usr/lib/hotplug/firmware/ », relancer votre ordinateur et vous remarquerez que vous avez une interface ethernet supplémentaire provenant de votre carte réseau sans-fil.

 

Modules indépendants pour les cartes réseaux sans-fil spécifiques

Beaucoup de nouvelles cartes, comme d'autres nouveaux composants, ne possèdent pas de pilotes compatibles GPL qui soient fournis par les vendeurs ou les pilotes développés par la communauté open-source ne sont pas encore assez aboutis pour être inclus dans le noyau. Dès lors, ces pilotes sont fournis en tant que modules et certains d'entre eux seront éventuellement ajoutés dans les prochains noyaux quand ils seront terminés.

Un de ces pilotes les plus célèbres est le ipw2100 [3] pour la carte Intel Pro/Wireless 2100 faisant partie de la technologie Intel Centrino® qui est installée sur beaucoup d'ordinateurs portables. Dans cette section, l'auteur va faire une introduction à l'installation du pilote ipw2100.

D'abord, vous aurez besoin de télécharger le paquet source du pilote ainsi que le firmware sur le site Internet du projet, http://ipw2100.sourceforge.net. Après vous être assuré que votre noyau est assez récent et l'avoir recompilé avec le support des modules, du firware hotplug et du réseau sans-fil comme dit plus haut, décompressez le paquet source :

APTITUDE:/usr/src# tar -zxvf ipw2100-1.0.1.tgz
Ensuite, allez dans le répertoire source pour le compiler et l'installer :
APTITUDE:/usr/src/ipw2100-1.0.1# make
APTITUDE:/usr/src/ipw2100-1.0.1# make install
Après avoir installé les modules, il vous indique que vous devrez installer le firmware :
Don't forget to copy firmware to /usr/lib/hotplug/firmware/ and have the
hotplug tools in place.
Comme le dit si bien le message : décompressez le firmware dans le répertoire hotplug et la procédure d'installation sera terminée. Maintenant, vous pouvez activé le module ipw2100 en faisant :
APTITUDE:/usr/src/ipw2100-1.0.1# modprobe ipw2100
Vous pouvez aussi ajouter ici certains arguments pour vos différentes configurations. Par exemple, l'argument ifname permet de spécifier le nom de l'interface :
APTITUDE:/usr/src/ipw2100-1.0.1# modprobe ipw2100 ifname=wlan0
Ainsi, l'interface sera nommée wlan0. Pour les autres arguments, vous pouvez lire les documents inclus dans le paquet source du pilote ipw2100.  

Faire fonctionner les autres cartes

Malheureusement, certaines cartes ne possèdent pas de pilote pour Linux ou celui-ci ne fonctionne pas pour différentes raisons. Cependant, cela ne veut pas dire que vous ne pouvez pas l'utiliser sous Linux. Au moins, vous avez la sous-couche adaptatrice NDIS [1].

La plupart des cartes réseaux sans-fil pour les ordinateurs de bureau ou les ordinateurs portables supportent Windows 2000/XP, lequel gère le support du réseau sans-fil via une interface standard appelée NDIS. Ainsi, les pilotes pour de telles cartes supportent généralement le NDIS. Dès lors, nous pouvons créer une sous-couche adaptatrice pour le pilote et le faire ainsi fonctionner sous Linux comme si il était sous Windows 2000/XP, ce qui nous mène au projet ndiswrapper.

Dans cette section, l'auteur va installer la sous-couche adaptatrice ndis pour une carte réseau sans-fil Netgear 121 par exemple. D'abord, nous allons télécharger la sous-couche adaptatrice ndis depuis le site Internet du projet http://ndiswrapper.sourceforge.net et préparer le pilote NDIS pour Windows. La sous-couche adaptatrice ndis consiste en un module du noyau ainsi qu'en quelques outils. Vous devez la compiler et l'installer :

APTITUDE:/usr/src/ndiswrapper-0.11# make install
Ensuite, vous pouvez charger le pilote Windows dans la sous-couche adaptatrice
APTITUDE:/usr/src/ndiswrapper-0.11# ndiswrapper -i ../wg121/WG121V200/ndis5/netwg121.inf
où le fichier .inf est le pilote NDIS pour Windows. Après avoir installé le pilote NDIS, vous pourrez voir
APTITUDE:/usr/src/ndiswrapper-0.11# ndiswrapper -l
Installed ndis drivers:
netwg121        driver present

Félicitations ! La procédure d'installation est terminée.

 

Authentification

Si vous accédez à un réseau sans-fil dans un espace public, le réseau sans-fil peut requérir que vous vous identifiiez pour des raisons de sécurité. La plupart des méthodes d'authentification pour les réseaux sans-fil sont basées sur l'IEEE 802.1x (EAP) et l'IEEE 802.11i. Les méthodes basées sur l'EAP sont actuellement les plus populaires.

Il y a beaucoup de méthodes d'authentification basées sur l'EAP, comme par exemple EAP-MD5, EAP-TLS, EAP-TTLS, EAP-SIM, LEAP, etc. Les utilisateurs Linux peuvent utiliser xsupplicant fourni par le projet Open1x [4] afin d'accéder à un réseau nécessitant une authentification basée sur le 802.1x. Dans cette section, l'auteur va utiliser le protocole LEAP qui est fourni par Cisco corp. comme exemple. Note: le fait de savoir si le protocole peut être supporté dépend de la carte et du pilote, par exemple même si votre xsupplicant est correctement installé et configuré, vous serez incapable d'accéder au réseau car votre carte ou le pilote ne le supporte pas.

Vous pouvez télécharger xsupplicant depuis le site Internet du projet, http://open1x.sourceforge.net, et l'installer. Ensuite, modifiez le fichier de configuration /etc/xsupplicant/xsupplicant.conf. Voici un exemple pour LEAP.

#example of /etc/xsupplicant/xsupplicant.conf
#for LEAP protocol

network_list = all
#the list of networks to access

default_netname = default
#the default access network

first_auth_command = <BEGIN_COMMAND>dhclient %i<END_COMMAND>
#The command before authentication, which is usually used to get some info from
#the network

logfile = /var/log/xsupplicant.log
#log file

myssid #here is your network id, may be listed in the network list
{
  type = wireless
  ssid = <BEGIN_SSID>myssid<END_SSID>
  allow_types = all
  identity = <BEGIN_ID>aptitude<END_ID>
  eap-leap {
      username = <BEGIN_UNAME>aptitude<END_UNAME>
      password = <BEGIN_PASS>passwd<END_PASS>
  }#setup for leap
}

LEAP est une méthode simple d'authentification mais il existe beaucoup d'autres configurations pour les autres méthodes. Veuillez donc vous référer aux exemples et au document de xsupplicant.  

Utilitaires pour les réseaux sans-fil

Comme vous le savez, les réseaux sans-fil fournissent une interface identique à celle d'ethernet et vous pouvez l'utiliser comme une autre interface ethernet. D'un autre côté, une carte réseau sans-fil offre bien plus de possibilités qu'une carte ethernet grâce au média sans fil. Ainsi, il y a quelques outils pour configurer le réseau sans-fil et obtenir des renseignements sur son état. Vous pourrez trouver les outils sans-fil sur http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html [5] dont le contributeur est Jean Tourrilhes.

L'outil le plus utile est iwconfig lequel peut être utilisé comme ifconfig. La commande iwconfig sans argument affichera le statut de fonctionnement actuel de la carte :

gnawux@APTITUDE:~$ /sbin/iwconfig wlan0
wlan0     unassociated  ESSID:off/any  Nickname:"ipw2100"
          Mode:Managed  Channel=0  Access Point: 00:00:00:00:00:00
          Bit Rate=0 kb/s   Tx-Power:off
          Retry:on   RTS thr:off   Fragment thr: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

Avec l'argument « mode », vous pouvez changer le mode de fonctionnement de la carte réseau sans-fil :
APTITUDE:/home/gnawux# iwconfig wlan0 mode 1
APTITUDE:/home/gnawux# iwconfig wlan0
wlan0     unassociated  ESSID:off/any  Nickname:"ipw2100"
          Mode:Ad-Hoc  Channel=0  Cell: 00:00:00:00:00:00
          Bit Rate=0 kb/s   Tx-Power:off
          Retry:on   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

Ici, nous changeons la carte réseau sans-fil en mode « Ad Hoc ». Nous pouvons également changer le nom du réseau au travers de l'argument « essid »:
APTITUDE:/home/gnawux# iwconfig wlan0 essid gnawux
APTITUDE:/home/gnawux# iwconfig wlan0
wlan0     IEEE 802.11b  ESSID:"gnawux"  Nickname:"ipw2100"
          Mode:Ad-Hoc  Frequency:2.412 GHz  Cell: 02:0C:F1:0F:11:2A
          Bit Rate=0 kb/s   Tx-Power:off
          Retry:on   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality=60/100  Signal level=-83 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

Vous avez peut-être remarqué que nous avons maintenant plus d'informations sur l'état du fait que nous avons un ESSID valide. Pour les autres arguments de iwconfig, reportez vous à iwconfig(8).

Un puissant outil est iwlist avec lequel vous pouvez obtenir la liste des ressources disponibles. Avec l'argument « scanning », nous pouvons obtenir la liste des points d'accès disponibles :

gnawux@APTITUDE:~$ /sbin/iwlist wlan0 scanning
wlan0     Scan completed :
          Cell 01 - Address: 00:0D:BD:6F:B4:48
                    ESSID:"<hidden>"
                    Protocol:IEEE 802.11b
                    Mode:Master
                    Channel:6
                    Encryption key:on
                    Bit Rate:11 Mb/s
                    Extra: Rates (Mb/s): 1 2 5.5 11
                    Extra: Signal: -70  dBm
                    Extra: Last beacon: 59ms ago
          Cell 02 - Address: 86:CF:C1:34:12:06
                    ESSID:"gnawux"
                    Protocol:IEEE 802.11b
                    Mode:Ad-Hoc
                    Channel:11
                    Encryption key:off
                    Bit Rate:11 Mb/s
                    Extra: Rates (Mb/s): 1 2 5.5 11
                    Extra: Signal: -37  dBm
                    Extra: Last beacon: 2ms ago

</hidden>
Et avec l'argument « frequency » (freq), nous pouvons obtenir la liste des fréquences :
gnawux@APTITUDE:~$ /sbin/iwlist wlan0 freq
wlan0     14 channels in total; available frequencies :
          Channel 01 : 2.412 GHz
          Channel 02 : 2.417 GHz
          Channel 03 : 2.422 GHz
          Channel 04 : 2.427 GHz
          Channel 05 : 2.432 GHz
          Channel 06 : 2.437 GHz
          Channel 07 : 2.442 GHz
          Channel 08 : 2.447 GHz
          Channel 09 : 2.452 GHz
          Channel 10 : 2.457 GHz
          Channel 11 : 2.462 GHz
          Channel 12 : 2.467 GHz
          Channel 13 : 2.472 GHz
          Channel 14 : 2.484 GHz
          Current Channel=1

Et bien sûr, vous pouvez vous référer à iwlist(8) pour les autres arguments.

A coté des deux ci-dessus, il existe d'autres utilitaires comme iwevent, iwgetid, iwpriv ou iwspy pour vous permettre d'obtenir l'état de fonctionnement de votre carte réseau sans-fil et de le gérer.

 

Conclusion

L'auteur nous montrer l'installation du pilote pour différentes cartes réseaux sans-fil et nous montre comment s'authentifier. Les puissants utilitaires pour les cartes réseaux sans-fil sont aussi introduits dans cette article.

Merci à la contribution de la communauté open-source grâce à laquelle nous somme capables d'accéder au réseaux sans fil sous Linux mais également d'en profiter pleinement !

 

Références

  1. Le projet de sous-couche adaptatrice NDIS, http://ndiswrapper.sourceforge.net;
  2. Le projet Prism54, http://prism54.org;
  3. Le projet IPW2100, http://ipw2100.sourceforge.net;
  4. Le projet Open1x, http://open1x.sourceforge.net;
  5. Jean Tourrilhes, outils sans fil, http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html.


Site Web maintenu par l´équipe d´édition LinuxFocus
© Wang Xu
"some rights reserved" see linuxfocus.org/license/
http://www.LinuxFocus.org
Translation information:
cn --> -- : Wang Xu <wangxu[at]linuxfocus.org>
cn --> en: Wang Xu <wangxu[at]linuxfocus.org>
en --> fr: Laurent RICHARD <kouran[at]linuxmail.org>

2005-02-15, generated by lfparser_pdf version 2.51