Configurer le réseau sous Linux

Demander un devis
Je souhaite télécharger le programme ou imprimer le programme
  • Imprimer

Routage IP

Réseau IP

[ Cette explication est abordée lors de notre formation Linux Administrateur, n'hésitez pas à nous contacter ! ]

 

On appelle réseau IP un ensemble d'équipements informatiques interconnectés. Ces équipements sont capables de se joindre les uns les autres à l'aide de leur configuration IP que nous allons détailler dans les sections suivantes.

 

Une machine peut être désignée sur le réseau :

  • par une adresse IP (par exemple 66.249.92.104),
  • par un hostname (par exemple www.google.fr), qui permet de déduire une adresse IP.

Une machine joignable sur le réseau a au moins une adresse IP. Une machine peut être désignée par zéro ou plusieurs hostnames.

Interface réseau

 

Une interface réseau et un nom associé à une carte réseau physique (carte wifi, carte ethernet, modem...) ou virtuelle (boucle locale, VPN...). Linux ne fournit une interface réseau pour un matériel réseau que si le noyau Linux ou un module prend en charge ce matériel.

 

Les interfaces réseaux suivent généralement les conventions de nommage suivantes :

  • lo : boucle locale (interface de loopback) : elle sert à manipuler la machine comme une machine
  • eth0, eth1, .... : interface ethernet ou les cartes wifi intel
  • ra0, ... : certaines cartes wifi ralink
  • ath0, ... : certaines cartes wifi atheros
  • wlan0, ... : cartes wifi
  • tun0, tap0 : interface VPN (créés par exemple avec openvpn)
  • ppp, pppoe : connexion modem, 3G...
  • vboxnet0, ... : interface réseau pour communiquer avec une machine virtuelle VirtualBox.

On peut afficher les interfaces réseau reconnues grâce à la commande :

 

/sbin/ifconfig -a

 

Exemple :

 

(mando@silk) (~) $ /sbin/ifconfig -a
eth0      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx 
          UP BROADCAST 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:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interruption:29

lo        Link encap:Boucle locale  
          inet adr:127.0.0.1  Masque:255.0.0.0
          adr inet6: ::1/128 Scope:Hôte
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:25651 errors:0 dropped:0 overruns:0 frame:0
          TX packets:25651 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:0
          RX bytes:3402444 (3.2 MiB)  TX bytes:3402444 (3.2 MiB)

wlan0     Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx 
          inet adr:192.168.1.149  Bcast:192.168.1.255  Masque:255.255.255.0
          adr inet6: fe80::721a:4ff:fe2e:bea8/64 Scope:Lien
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:47325 errors:0 dropped:0 overruns:0 frame:0
          TX packets:38793 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000
          RX bytes:33374700 (31.8 MiB)  TX bytes:6458887 (6.1 MiB)
          Interruption:17 Mémoire:f8da8000-f8da810

 

Ici le PC dispose de trois interfaces réseaux :

  • une interface de boucle locale (lo)
  • une interface ethernet (eth0)
  • une interface wifi (wlan0)

Notez que cette commande permet également de récupérer les informations relatives à chaque interface réseau, en particulier :

  • son adresse IP (quand elle en a une),
  • son adresse physique (adresse MAC, champ HWAddr).

L'adresse MAC est une adresse qui est stockée dans la carte réseau et qui sauf intervention de votre part, ne change pas. Elle est sensée être unique parmi l'ensemble de toutes les cartes réseaux qui existent.

 

Elle peut aussi être utilisée pour "sécuriser" un réseau sans fil (l'étape d'association que vous avez pu être amené à faire avec certains modules de routeurs consiste à la référencer dans votre routeur) et pour configurer un serveur DHCP (présenté plus loin).

 

L'adresse IP est l'adresse utilisé pour identifier une interface réseau dans son réseau. Selon le réseau auquel vous vous connectez, celle-ci peut varier.

 

Réseau local

 

Internet est en fait une collection de réseaux IP. A priori seules certaines machines parmi toutes celles qui sont sur Internet disposent d'une adresse IP publique, universelle partout sur Internet. C'est typiquement le cas de votre routeur. Si cette IP ne varie pas au cours du temps, on dit que c'est une adresse IP fixe. Ces machines sont directement joignables par n'importe quelle machine connectée à Internet.

 

Les autres machines constituant ce réseau utilise un adressage qui n'a de sens que dans leur réseau local. Elles utilisent pour cela des adresses IP locales. Étant données qu'elle n'ont de signification que dans leur propre réseau, deux machines appartenant à deux réseaux différents peuvent utiliser la même IP locale sans interférer. Par contre, deux machines appartenant à un même réseau doivent avoir des adresses locales distinctes.

 

Ceci dit, une machine n'a besoin ni d'une IP publique, ni d'une IP fixe pour faire office de serveur sur Internet (voir DynDNS et redirections de port).

 

Adresses IP

 

Chaque interface connectée à un réseau doit avoir une IP afin d'être identifiable sur ce réseau. Dans l'exemple ci-dessus, l'interface wlan0 s'est vue affecter l'adresse IP 192.168.1.49.

 

On distingue deux catégories d'adresses IP :

  • les adresses IPv4 généralement écrites sous la forme de 4 valeurs comprises entre 0 et 255,
  • les adresses IPv6 généralement écrites sous la forme de 8 groupes de 4 caractères hexadécimaux. Dans ce qui suit nous parlerons seulement d'adresses IPv4 pour plus de simplicité, mais le principe reste le même en IPv6.

Les adresses IP suivent les conventions suivantes :

  • 127.xxx.xxx.xxx : désigne la machine sur laquelle on travaille.
  • 192.168.xxx.xxx : désigne une machine appartenant au réseau local sur lequel on travaille. Certains réseaux locaux utilisent des adresses en 10.xxx.xxx.xxx ou en 172.xxx.xxx.xxx.
  • 169.254.xxx.xxx : sert à vous avertir qu'une erreur DHCP est survenue (voir plus loin).
  • Les autres IP désignent des adresses IP publiques.

Passerelle (gateway)

 

Une passerelle est une machine qui sert d'intermédiaire entre deux réseaux IP. Si vous connectez votre PC à Internet via un routeur, votre routeur fait office de passerelle. Dans ce cas votre PC et votre routeur ont tout deux une IP locales distinctes, par exemple 192.168.1.149 et 192.168.1.1. Votre routeur dispose en plus d'une IP publique.

 

Si vous vous connectez à Internet avec un modem, la notion de réseau local et de passerelle n'apparaît pas. Tout se passe comme si le modem et le PC ne faisaient qu'un (même si ce sont deux équipement physiquement distincts). Votre système Linux utilisera une IP au niveau d'une interface ppp.... qui se verra attribuer une adresse IP publique.

 

Routes IP

 

Une route IP est ce qu'un panneau directionnel est à un réseau routier. C'est quelque chose qui indique quelle "direction" (quelle interface) emprunter pour joindre un ensemble de destination (un ensemble d'adresse IP). De la même façon que l'on croise parfois des panneaux "autres directions", on peut définir une route par défaut.

 

Lorsqu'on veut décrire une plage d'adresses IP contigües (par exemple toutes les IP de 192.168.1.0 à 192.168.1.255) on utilise l'une des deux notations suivante.

  • Les préfixes : on indique combien de bits sont fixés (en partant de la gauche). Comme une adresse IPv4 est codée sur 32 bits (8 par chiffre compris entre 0 et 255), écrire 192.168.1/24 indique bien que les trois premières valeurs sont fixées, soit n'importe quelle IP commençant par 192.168.1.
  • Une IP + un masque : on indique explicitement quels bits sont fixés (représentés par un 1 dans le masque) et non fixés (représentés par un 0 dans le masque). En binaire 255 s'écrit 1111 1111 et 0 s'écrit 0000 0000. Ainsi, écrire 192.168.1.0/255.255.255.0 revient bien à décrire n'importe quelle IP commençant par 192.168.1.

Sous Linux vous croiserez surtout la seconde notation, en particulier si vous tapez la commande :

 

/sbin/route -n

 

Cette commande affiche la table de routage. Lorsqu'on veut joindre une destination, on commence par déterminer son adresse IP si celle-ci a été décrite par un hostname. On regarde ensuite séquentiellement chaque route référencée dans la table de routage. On évalue chaque route séquentiellement jusqu'à en trouver une qui correspond à la destination qu'on veut joindre.

 

Exemple :

 

(mando@silk) (~) $ /sbin/route -n
Table de routage IP du noyau
Destination     Passerelle      Genmask         Indic Metric Ref    Use Iface
192.168.1.0     0.0.0.0         255.255.255.0   U     2      0        0 wlan0
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 wlan0

 

Ici on a définit une première route qui concerne toutes les IP commençant par 192.168.1 (192.168.1.0/255.255.255.0). Pour les joindre on utilise l'interface wlan0 et on n'a pas besoin de passerelles. C'est en fait la route qui permet de joindre toutes les machines du réseau local dont les IP commencent par 192.168.1.

 

Étant donné son masque (0.0.0.0), la seconde route permet de joindre n'importe quelle destination (sous-entendu qui n'a pas déjà été traité par une route située avant dans la table de routage). C'est la route par défaut.  Dans le cas présent, cette route sera donc utilisée pour toutes les IP qui ne commençant pas par 192.168.1, et indique que la machine 192.168.1.1 peut faire office de passerelle pour joindre la destination. La passerelle est valide car elle est routable grâce à la première route.

 

Alias réseaux

 

Dénommer des machine avec exclusivement des adresses IP serait rapidement peu pratique et fastidieux, surtout si ce nombre de machine devient important. C'est la raison pour laquelle on a mis en place un système de nommage qui permet d'associer un hostname à une adresse IP. Historiquement, cette association se faisait grâce au fichier "hosts".

 

Exemple :

 

(mando@silk) (~) $ cat /etc/hosts
127.0.0.1       localhost
127.0.1.1       silk
192.168.1.10    aldur

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

 

Ici, les trois premières lignes associent respectivement "localhost" à l'adresse IP 127.0.0.1, "silk" à 127.0.1.1 et aldur à 192.168.1.10. Les deux premiers alias sont générés automatiquement à l'installation de Linux et le troisième a été rajouté par l'administrateur (root).

  1. Le premier alias permet de se connecter à un serveur réseau de la machine directement, sans être victime de certaines considérations réseaux (pare-feu etc...) et même si la machine ne dispose d'aucune carte réseau.
  2. Le second alias permet de se connecter à sa propre machine mais reproduit une connexion réseau qui provient d'une autre machine.
  3. Le dernier alias a été rajouté, il désigne une machine du réseau local qui n'est pas référencé dans un DNS.

DNS

 

Bien entendu, il serait complètement inenvisageable de référencer tous les hostnames de toutes les machines sur Internet dans le fichier /etc/hosts. Cela forcerait à mettre à jour régulièrement ce fichier en fonction des apparitions et disparitions de sites. On utilise donc une sorte d'annuaire, le DNS.

 

Un DNS est une machine sur le réseau dont le rôle est de donnée l'adresse IP associée à un hostname. On peut reproduire le comportement d'une requête DNS avec la commande nslookup.


(mando@silk) (~) $ nslookup www.google.fr
Server:         80.10.246.1
Address:        80.10.246.1#53

Non-authoritative answer:
www.google.fr   canonical name = www.google.com.
www.google.com  canonical name = www.l.google.com.
Name:   www.l.google.com
Address: 66.249.92.104

 

Ici par exemple, le serveur DNS (dont l'IP est 80.10.246.1) a répondu que www.google.fr pouvait être joint via l'IP 66.249.92.104. On peut effectivement constater que http://66.249.92.104 affiche bien la page d'accueil de google.

 

Le ou les DNS sont renseignés dans /etc/resolv.conf. Quand on utilise deux DNS, ceux-ci sont appelés DNS primaire et secondaire. Ainsi, si l'un des deux serveurs venait à être indisponible, on peut continuer à utiliser le second.

 

(mando@silk) (~) $ cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 80.10.246.1
nameserver 81.253.149.2

 

Dans cet exemple, on utilise deux serveurs DNS : 80.10.246.1 et 81.253.149.2. On retrouve donc le DNS qui figurait dans le résultat de la commande nslookup.

Récapitulatif

 

Supposons que je souhaite joindre http://www.googe.fr avec son navigateur Internet. On suppose que la configuration réseau est celle présentée au cours des sections précédentes.

  1. On effectue une requête DNS : on essaye de joindre le DNS 80.10.246.1
  2. Pour joindre le DNS on examine la table de routage : c'est la deuxième route qui correspond, et il faut au préalable passer par la passerelle 192.168.1.1.
  3. Pour joindre cette passerelle on examine la table de routage : on utilise la première route, et on s'aperçoit que l'on peut directement joindre cette machine car elle est dans le même réseau local.
  4. On émet la requête DNS vers la passerelle (192.168.1.1) qui transmet vers le DNS 80.10.246.1.
  5. Le serveur DNS répond que www.google.fr est joignable à l'IP 66.249.92.104.
  6. On émet une requête HTTP vers 66.249.92.104. Pour cela on utilise la seconde route qui indique que l'on doit traverser la passerelle 192.168.1.1.
  7. On joint la passerelle à l'aide de la première route.
  8. On émet la requête HTTP vers la passerelle (192.168.1.1) qui la transmet vers la machine 66.249.92.104.
  9. Le serveur HTTP de google répond en transmettant le contenu de la page www.google.fr.

Si cet enchaînement est bien maitrisé, vous devriez être capable de trouver quel point est bloquant au niveau de votre configuration réseau quand vous n'arrivez pas à joindre une machine sur le réseau (route mal configurée, DNS injoignable etc...).

DHCP

 

DHCP a été créé pour permettre de configurer automatiquement une machine qui arrive sur un réseau IP (quelle IP locale utiliser, quelles routes utiliser, quels DNS utiliser etc...). Une telle machine émet une requête DHCP auprès des machines de son réseau local. Si l'une d'elle fait office de serveur DHCP, alors elle lui transmet ces informations.  Si vous vous connectez à Internet à l'aide d'un routeur (une box par exemple), celui-ci fait très probablement office de serveur DHCP dans votre réseau local. Il ne devrait y avoir qu'un seul serveur DHCP dans votre réseau local.

 

Sous Debian, en root, pour lancer une requête DHCP avec l'interface wlan0, on tape :

 

dhclient wlan0

 

Notez que cette commande corrige /etc/resolv.conf conformément au résultat de la requête DHCP, sous réserve bien entendu que le serveur DHCP indique quel(s) DNS utiliser.

 

Remarque :

  1. Certaines distributions utilise un autre client DHCP : dhcpcd.
  2. Dans l'absolu, on peut tout à fait définir manuellement une IP pour une interface (avec la commande ifconfig), des routes (avec la commande route), des DNS (en corrigeant /etc/resolv.conf) comme le montre la configuration statique de la section suivante. Cela suppose de ne pas se tromper et en particulier de ne pas utiliser une adresse IP qui entrerait en conflit avec une autre machine sur le réseau. Cela suppose également d'avoir un plan d'adressage précis : chaque machine doit utiliser une IP bien précise et ne doit pas interférer avec les autres machines en utilisant une IP déjà allouée.

 

Exemple de routage statique

 

Si l'on reprend l'exemple présenté au cours des sections précédentes, voici les commandes qu'il faudrait utiliser :


ifconfig wlan0 192.168.1.149

route add -net 192.168.1.0 netmask 255.255.255.0 wlan0

route add default gw 192.168.1.1 wlan0

echo "80.10.246.1" > /etc/resolv.conf

echo "81.253.149.2" >> /etc/resolv.conf

 

Sans script ou fichier de configuration pour l'automatiser, c'est relativement fastidieux. C'est la raison pour laquelle on utilise très souvent un serveur DHCP.

 

Notions spécifiques au wifi

 

Le wifi est la méthode classiquement utiliser pour établir une connexion sans fil entre deux machines (par exemple entre votre PC et votre routeur).

Interface wifi

 

Comme n'importe quelle carte réseau, les cartes wifi sont représentées sous Linux à l'aide d'une interface qui apparaît avec la commande :

 

/sbin/ifconfig -a

 

Une interface wifi s'appelle souvent eth..., ra..., ath..., wlan... selon le driver utilisé et le constructeur de la carte. On peut voir les informations spécifiques à une carte wifi (le réseau sans fil auquel elle est connectée par exemple) avec la commande :

 

/sbin/iwconfig

 

Remarque : sous Debian, iwconfig n'est pas forcément installé de base. Vous devrez au préalable installer le paquet wireless-tools.

 

Exemple :

 

(mando@silk) (~) $ /sbin/iwconfig
lo        no wireless extensions.

eth0      no wireless extensions.

wlan0     802.11bg  ESSID:"xxxxxx"  Nickname:"rtl8191SEVA2"
          Mode:Managed  Frequency=2.462 GHz  Access Point: xx:xx:xx:xx:xx:xx  
          Bit Rate=48 Mb/s   
          Retry:on   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality=88/100  Signal level=-53 dBm  Noise level=-114 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

Ici on s'aperçoit que la seule interface wifi est wlan0. Cette commande donne des informations supplémentaire que nous allons à présent détailler.

 

Si votre carte n'apparaît pas, vérifiez qu'elle est allumée ou supportée par votre noyau ou vos modules Linux.

ESSID

 

L'ESSID est le nom associé à un point d'accès wifi (typiquement votre box). Ce nom est sensible à la casse (minuscule/majuscule).

 

De la même façon que les stations radios ont des noms, il en va de même pour un réseau wifi. Vous pouvez voir les réseaux sans-fils alentour avec la commande iwlist. Si votre carte wifi s'appelle wlan0, il suffit de taper :

 

/sbin/iwlist wlan0 scan

 

Remarque : sous Debian, iwlist n'est pas forcément installé de base. Vous devrez au préalable installer le paquet wireless-tools.

 

Sécurisation du réseau sans fil

 

Étant donné qu'un signal wifi est un signal radio, il peut être capté par des personnes géographiquement proche (par exemple vos voisins). Une personne malveillante peut alors commencer à scanner les machines présentes sur votre réseau sans fils et tenter de s'y connecter en s'affranchissant complètement des règles de sécurité configurées au niveau de votre passerelle. De plus, si cette connexion n'est pas sécurisée, le signal transmis entre votre PC et votre point d'accès wifi

 

C'est la raison pour laquelle un réseau sans fil devrait toujours être sécurisé. Nous allons à présent voir quelles sont les approches que l'on peut mettre en place.

 

Association et filtrage MAC

 

Si un point d'accès met en place un filtrage MAC, celui-ci n'autorise que certaines carte wifi à se connecter à lui. Rappelons que toute carte réseau stocke une adresse physique (l'adresse MAC) qui lui est propre. Le principe d'association consiste à enregistrer l'adresse MAC d'une carte réseau supplémentaire dans une liste de carte autorisée.

 

Si vous utilisez une Livebox, c'est typiquement ce qui se passe quand vous cliquez sur le bouton association (celui qui fait clignoter la diode wifi). Pendant ce laps de temps, le filtrage MAC est désactivé. Toute nouvelle interface wifi qui parvient à se connecter entretemps voit son adresse MAC enregistrée auprès de la Livebox. Une fois que la diode ne clignote plus, seule les interfaces wifi renseignées dans cette liste peuvent se connecter en wifi sur la Livebox.

 

La sécurisation par adresse MAC n'est pas très sûre, car on peut facilement changer l'adresse MAC d'une carte réseau. On complète généralement cette sécurisation à l'aide d'une authentification WEP ou  WPA (idéalement WPA).

 

Authentification WEP

 

L'authentification WEP consiste à forcer quelqu'un qui essaye de se connecter au point d'accès à saisir un "mot de passe" (la clé WEP). Une clé WEP se présente sous la forme d'une séquence de caractères hexadécimaux. Les communications entre les deux machines est chiffrée.

 

Une authentification WEP est relativement facile à casser avec des outils comme aircrack. Vous ne devriez donc jamais utiliser une authentification WEP et préférer une authentification WPA, sauf si vous y êtes contraint. En effet certains appareils (console de jeu...) ne supportent que l'authentification WEP.

 

Authentification WPA

 

L'authentification WPA est nettement plus sûre que l'authentification WEP, suffisamment pour que vous puissiez la considérer comme quasiment incassable. En effet, le temps requis pour casser un réseau utilisant une authentification WPA est considérable. Pour plus de détails vous pouvez consulter cette page :

http://fr.wikipedia.org/wiki/Wi-Fi_Protected_Access

 

Contrairement à une clé WEP, une clé WPA peut se présenter sous la forme d'une passphrase (phrase secrète) et pas forcément sous la forme d'une séquence hexadécimale.

 

Sous Linux, le WPA est géré grâce à WPA supplicant.

 

Remarque : sous Debian le support du WPA n'est pas forcément installé par défaut, vous devrez au préalable installer le paquet wpa-supplicant.

 

Faire fonctionner sa carte wifi

 

Normalement si vous êtes arrivé à installer Linux avec un CD de netinstall (installation par le réseau), votre réseau devrait déjà être opérationnel. Toutefois, il se peut que ceci ne suffise pas. Par exemple, si vous avez installé Debian à l'aide d'une connexion ethernet, il y a des forte chances que votre carte wifi soit loin de fonctionner. Si vous êtes dans cette situation, cette partie nécessite d'être à l'aise avec le mode texte. Pour plus de détails vous pouvez consulter cet article.

 

Quel que soit le type de carte réseau (ethernet, wifi...), votre système linux doit disposer d'une interface pour la manipuler. Si ce n'est pas le cas, c'est que votre noyau (et les modules actuellement chargés) ne prennent pas en charge votre carte réseau.

 

Dans cette section nous allons nous attacher plus particulièrement à comment faire fonctionner une carte wifi sous Debian. On suppose que dans ce qui suit, vous disposez d'une connexion Internet (par exemple ethernet) opérationnelle el temps de faire fonctionner le wifi. Pour aborder les sections qui suivent, vous devez savoir utiliser votre gestionnaire de paquets.

Quel que soit le modèle de carte wifi

 

Commencez par installer les paquets permettant de gérer le wifi sous Debian.

 

aptitude update

aptitude safe-upgrade

aptitude install wireless-tools wpasupplicant

 

Repérez quel modèle de carte vous utilisez avec la commande :

 

lspci | grep -i network

 

Si votre carte wifi se présente sous la forme d'un dongle USB :

 

lsusb

 

Si vous souhaitez vous connecter en wifi à l'aide d'une interface graphique, vous devriez en profiter pour installer wicd ou network-manager (voir section "En mode graphique").


Très souvent vous devrez ensuite installer un driver qui va prendre en charge votre carte wifi. La procédure d'installation diffère d'un modèle à l'autre. Voici par ordre de préférence comment vous devriez procéder :

  1. essayez ensuite de voir si un firmware est disponible pour votre carte wifi,
  2. regardez si module-assistant vous permet de construire facilement un module pour votre carte,
  3. allez sur le site du constructeur ou sur un site de documentation (par exemple doc.ubuntu-fr.org) pour voir s'il existe un driver Linux pour votre carte,
  4. récupérez un driver windows et utilisez ndiswrapper pour le convertir sous forme d'un module Linux. Vous devriez installer ndiswrapper via module-assistant.

Installation d'un firmware : cartes Intel, ralink, atheros, qlogic, broadcom...

 

Les firmwares sont généralement des paquets propriétaires, qui ne sont pas indexés par défaut par votre gestionnaire de paquets. Vous devrez donc au préalable probablement activer les dépôts propriétaires comme indiqué dans cet article.

 

Pour voir les firmwares disponibles, lancez la commande :

 

apt-cache search firmware | grep firmware

 

Exemple :

 

(mando@silk) (~) $ lspci | grep -i network
03:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8191SEvB Wireless LAN Controller (rev 10)

 

Ici on voit que la carte est de type Realtek (ici il faut le savoir, mais un pilote 8192 marche aussi pour cette carte).

 

(mando@silk) (~) $ apt-cache search firmware | grep firmware

...

firmware-realtek - Binary firmware for Realtek RTL8192 wireless cards

...

 

Pour installer ce paquet :

 

aptitude install firmware-realtek

 

Construction du module via module-assistant

 

Vous pouvez vous reportez à ce tutoriel. Il est orienté pour la construction du module nvidia, mais le principe reste le même pour une carte wifi.

 

Construction du module à partir de sources fournies par le constructeur

 

Certains constructeurs (atheros, ralink, realtek...) mettent à disposition les sources nécessaire pour compiler vous-même le module prenant en charge votre carte wifi. Avant de partir sur cette méthode, assurez-vous que le module ne peut pas être récupéré par votre gestionnaire de paquet (firmware) ou via module-assistant. Si c'est effectivement le cas, vous pouvez consulter cet article.

 

Utiliser ndiswrapper

 

N'utilisez cette méthode qu'en dernier recours, car les méthodes précédentes fournisse un driver de meilleur qualité. Le but du jeu est de récupérer dans le driver windows le fichier ".inf" qu'il contient. Nous allons ensuite traiter ce fichier à l'aide de ndiswrapper en vue de produire un module.

 

Récupérer le driver windows

 

Un pilote windows est souvent mis à disposition sous forme d'une archive (zip...). Il suffit de décompresser et dans laquelle on trouve le fameux fichier .inf. Pour voir comment décompresser un fichier vous pouvez consulter ce tutoriel.

 

Si le driver windows se présente sous la forme d'un exécutable windows (.exe) ou d'une archive .cab, vous aurez sans doute besoin de cabextract. En root :

 

aptitude install cabextract

 

Pour extraire le contenu du fichier .cab ou .exe :

 

cabextract /le/chemin/vers/le/fichier

 

Installation de ndiswrapper

 

Vous pouvez installer ndiswrapper via votre gestionnaire de paquet ou le reconstruire avec module-assistant (cette seconde méthode est plus sûre).

 

aptitude install module-assistant

m-a a-i ndiswrapper-source

 

Configuration de ndiswrapper

 

Lancez en root :

 

ndiswrapper -i /le/chemin/vers/le/fichier.inf

ndiswrapper -l

 

Cette seconde commande doit écrire "Hardware present". Sinon c'est que le fichier .inf ne permet pas de prendre en charge votre carte wifi. Si c'est le cas :

 

ndiswrapper -m

modprobe ndiswrapper

 

Votre carte doit à present fonctionner avec les commande iwconfig et iwlist. Si c'est le cas, on rajoute le module ndiswrapper dans /etc/modules afin qu'il soit automatiquement chargé au démarrage :

 

grep -q ^ndiswrapper /etc/modules || echo ndiswrapper >> /etc/modules

 

Configuration réseau en mode texte

 

Cette partie nécessite d'être à l'aise avec le mode texte. Pour plus de détails vous pouvez consulter cet article. Vous aurez besoin de savoir lancer un éditeur texte en root, comme par exemple nano.

Sous Debian (/etc/network/interfaces)

 

Jusqu'à il y a peu, on configurait intégralement le réseau sous Debian via ce fichier. Sur un PC domestique disposant d'un environnement graphique (KDE, gnome...) et sur lequel vous avez insatllé network-manager, il n'est plus nécessaire de modifier ce fichier pour se connecter à son réseau sans fil ou son réseau ethernet. Vous pouvez vous rendre directement à la section dédiée à network-manager si vous êtes dans ce cas.

 

Sous Debian (ou une distribution qui en dérive comme par exemple Ubuntu) on configure le réseau essentiellement via le fichier /etc/network/interfaces. Ce fichier indique le comportement à adopter par Debian pour chaque interface

  • il indique comment les utiliser (dhcp, configuration statique)
  • il précise lesquels configurer au démarrage (mots-clés auto / allow-hotplug).

Nous allons à présent voir comment configurer Debian dans le cadre d'un routage DHCP (cas le plus fréquent) ou dans le cadre d'un e configuration statique. Dans un premier temps, nous verrons comment configurer une interface ethernet. Dans un second temps, nous verrons comment adapter cette configuration à une interface wifi.

 

Une fois le fichier /etc/network/interfaces corrigé, on peut utiliser les commandes ifup et ifdown pour configurer une interface réseau conformément à ce fichier.

 

Notez que ce fichier existe déjà et a été configuré conformément à la configuration réseau que vous avez utilisé lors de l'installation de votre système.

 

Exemple : en root :

  • Désactiver l'interface eth0

ifdown eth0

  • Activer l'interface eth0

ifup eth0

 

Configuration dynamique (DHCP)

 

Dans cet exemple on part du principe que l'on utilise une interface de boucle locale (lo) et une interface ethernet (eth0) que l'on configure grâce à DHCP.

 

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
 
 # The loopback network interface
auto lo
iface lo inet loopback
 
auto eth0
iface eth0 inet dhcp


Configuration statique

 

On configure les routes et notamment la passerelle (192.168.1.149), l'IP locale à utiliser (par exemple 192.168.1.49). Ici on suppose que le réseau local est constitué des IP commençant par 192.168.1 (d'où les champs network et netmask). L'adresse de broadcast est par convention généralement l'IP finissant par 255 (d'où sa valeur à 192.168.1.255). Elle sert à envoyer un message vers l'ensemble des machines du réseau local.

 

Dans ce cas on corrige dans /etc/network/interfaces le paragraphe concernant eth0 indiqué ci-dessous :

 

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback
 
# Carte ethernet eth0 avec ip attribuée manuellement
auto eth0
iface eth0 inet static
  address 192.168.1.149
  netmask 255.255.255.0
  network 192.168.1.0
  broadcast 192.168.1.255
  gateway 192.168.1.1

 

La ligne auto eth0 indique que Debian essaiera de configurer eth0 conformément à cette description au démarrage.

 

Il faut ensuite configurer les DNS en corrigeant /etc/resolv.conf. Si par exemple on utilise les DNS 80.10.246.1 et 81.253.149.2

 

domain mondomaine.fr
search mondomaine.fr
nameserver 80.10.246.1
nameserver 81.253.149.2

 

La première ligne (optionnelle) que votre machine appartient au domaine de sous réseau mon domaine.fr (et s'appelle par exemple velvet.mondomaine.fr si c'est ce nom qui a été renseigné dans /etc/hostname)..

 

La seconde ligne indique (optionnelle) indique que si on essaye de joindre "machine.mondomaine.fr", alors on peut se contenter de taper "machine".

 

Les deux dernières lignes renseignent les DNS à utiliser. On peut ne configurer qu'un seul DNS.


Quel que soit le contexte (configuration statique ou dynamique)

 

Le mot clé "auto" indique que la carte eth0 sera configurée au démarrage du système. Pour configurer eth0, on peut désormais lancer les commandes suivantes en root :

 

ifconfig eth0 down

ifup eth0

 

La première commande va éteindre eth0 indépendamment de eth0 et supprimer les routes relatives à eth0 de la table de routage.  La seconde configure eth0 conformément à /etc/network/interfaces. Par la suite, pour désactiver eth0, on n'utilisera plus ifconfig mais ifdown :

 

ifdown eth0

 

N'oubliez pas que vous pouvez compléter votre configuration réseau en vous inspirant de la documentation (le man):

 

man resolv.conf

man interfaces

 

Interfaces wifi

 

Même si ce n'est pas indispensable, il est recommandé d'utiliser un assistant comme network-manager ou wicd (présenté dans la section suivante). Nous allons toutefois voir comment configurer une interface wifi sans utiliser ni wicd, ni network-manager. On part du principe dans ce qui suit que l'interface wifi est configurée par DHCP (ce qui est généralement le cas).

 

On suppose dans ce qui suit que :

  • l'ESSID de réseau sans fil est MonEssiD
  • la clé est 1234567890ABCDEF

En WEP

Il suffit de corriger dans /etc/network/interfaces.

 

iface wlan0 inet dhcp
  wireless-essid MonEssiD
  wireless-key 1234567890ABCDEF

 

Attention à la casse dans l'ESSID : la distinction entre minuscules et majscules est importante.

Attention à ne pas mettre de séparateur entre les caractères hexadécimaux (pas de : ou de -).

En WPA

La configuration WPA est référencée dans /etc/network/interfaces, mais déportée dans /etc/wpa_supplicant/wpa_supplicant.conf. Pour cela on configure /etc/network/interfaces comme suit :

 

auto eth1
  iface eth1 inet dhcp
  wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

 

... et etc/wpa_supplicant/wpa_supplicant.conf comme ceci :

 

ctrl_interface=/var/run/wpa_supplicant
eapol_version=1
ap_scan=1
fast_reauth=1
 
network={
  ssid="Mon_EssiD"
  scan_ssid=1
  proto=WPA
  key_mgmt=WPA-PSK
  psk=1234567890ABCDEF
  priority=5
}

Network-manager

 

Commencez par installer cnetworkmanager, qui permet de configurer network-manager en mode texte. Pour cela, sous Debian, lancez en root :

 

aptitude install cnetworkmanager

 

Pour utiliser cnetworkmanager, vous pouvez vous référer à cette page :

http://vidner.net/martin/software/cnetworkmanager/

 

Exemples : En root :

 

cnetworkmanager -C MyEssiD --wpa-psk-hex 234567890ABCDEF

cnetworkmanager -C MyEssiD --wpa-pass=KEY

Configuration réseau en mode graphique

 

Il existe plusieurs assistant pour vous connecter via une interface graphique. Nous allons présenter brièvement network-manager et wicd. Dans le doute, vous devriez utiliser network-manager qui est l'outil habituellement utilisé et utiliser wicd si network-manager ne vous convient pas.

wicd

 

wicd

 

wicd permet de gérer facilement ses connexions réseau et en particulier les connexions wifi.

 

Si vous utilisez wicd, vous ne devez plus utiliser network-manager. Pour l'installer, tapez en root :

 

dpkg -l | grep network-manager | cut -d' ' -f3 | xargs aptitude remove

aptitude install wicd

 

Puis lancez avec l'utilisateur qui a lancé la session graphique wicd soit via les menus de votre environnement graphique, soit via la commande :

 

wicd-gtk

network-manager

Installation

 

Pour installer network-manager passez par votre gestionnaire de paquet. Par exemple sous Debian, lancez en root l'une des commandes qui suit.

  • Vous utilisez KDE, privilégiez le paquet plasma-widget-networkmanagement au paquet network-manager-kde, il sera mieux intégré à votre environnement KDE :
aptitude install plasma-widget-networkmanagement
  • Vous utilisez Gnome ou un environnement autre que KDE (XFCE...) :

aptitude install network-manager-gnome


Remarque : vous pouvez installer les deux paquets si vous avez installé Gnome et KDE.

 

Lancement

 

Si aucune n'est apparue concernant network-manager, lancez-le via les menus de votre interface graphique (par exemple sous KDE4 : K -> Applications -> Système -> Outil de gestion du réseau).

 

Vous pouvez directement lancer cette interface via un terminal avec l'utilisateur qui a lancé la session graphique.

  • Version KDE : si vous avez installé le paquet plasma-widget-networkmanagement, relancez votre session KDE si network-manager n'apparaît pas dans votre boîte à miniatures. Si vous avez installé le paquet network-manager-kde, lancez :
knetworkmanager
  • Version Gnome : vous pouvez d'ores et déjà lancer l'applet de network-manager via la commande suivante (network-manager sera lancé automatiquement la prochaine fois que vous ouvrirez une session sous gnome)

nm-applet

 

Configuration

 

A priori vous n'avez rien à faire, sauf si vous avez modifié /etc/network/interfaces et que la connexion ne s'établit pas automatiquement.

 

Dans ce cas, commencez par modifier en root (par exemple avec nano) le fichier /etc/NetworkManager/NetworkManager.conf (anciennement /etc/NetworkManager/nm-system-settings.conf) :

 

nano /etc/NetworkManager/NetworkManager.conf

 

Corrigez ce fichier de sorte à avoir :

 

[main]
plugins=ifupdown,keyfile
 
[ifupdown]
managed=true

 

Le fait de mettre managed à "true" permet à network manager gérer correctement les interfaces marquées "auto" dans /etc/network/interfaces. Redémarrez ensuite votre ordinateur.

 

Utilisation (version KDE)

 

Si vous vous connectez en wifi assurez-vous que :

  • votre carte wifi est allumée,
  • que la case "enable wireless" est cochée.

Dans la capture d'écran ci-dessous, une connexion sécurisée a été établie :

 

knetworkmanager

 

Ici il s'agit d'une connexion sur un réseau enregistré auprès de network-manager (d'où la présence d'un coeur) et utilisant une authentification WPA (bouclier vert).

 

Pour vous connecter à un réseau sans fil qui n'a pas encore été enregistré, voici comment procéder :

  1. Si le point d'accès utilise une "association" (filtrage MAC) (typiquement s'il s'agit d'une livebox) et si vous ne vous êtes jamais connecté à ce point d'accès auparavant, basculez votre routeur en mode association.
  2. Dans le menu de network-manager, cliquez sur "Connect to network". Choisissez votre réseau sans fil puis cliquez sur "Connect" (voir capture d'écran suivante).
  3. Saisissez la clé si ce réseau si ce réseau est protégé. Vous pouvez également nommer comme vous le souhaitez ce profil de connexion pour le rendre plus parlant (voir capture d'écran suivante).
  4. Cochez la case "connect automatically" pour ne plus avoir à renseigner ultérieurement ces informations. Ceci va créer un profil au sein de network-manager pour cette connexion.
  5. Cliquez sur OK.

knetworkmanager : Sélection du réseau sans fil

 

knetworkmanager_key

Complément : si vous utilisez une Livebox et que la connexion semble lente

Suis-je concerné ?

 

Les livebox font office de relai DNS. Si vous regardez votre fichier /etc/resolv.conf, vous verrez que le DNS renseigné est sûrement 192.168.1.1. Si c'est le cas, vérifiez que les résolutions DNS sont rapides avec la commande :

 

nslookup www.google.fr

 

Si la réponse n'est pas instantanée, vous êtes victime d'un bug fréquent qui provoque une lenteur DNS. Ceci se traduit par un comportement poussif de votre navigateur qui met quelques secondes avant de commencer à afficher un site.

 

Pour y remédier, nous allons directement interroger les DNS fournis par orange. Vous pouvez récupérer directement leur adresse en allant sur http://192.168.1.1 et en allant dans la bonne section (qui change en fonction de chaque modèle de Livebox !). Voici typiquement deux DNS que vous devriez pouvoir utiliser : 80.10.246.1 et 81.253.149.2. Notez que vous ne pouvez utiliser ces DNS que si vous utilisez une connexion fournie par Orange.

 

Vous travaillez en mode texte

 

Comme vous vous connectez en DHCP, le fichier /etc/resolv.conf est écrasé à chaque fois que vous vous reconnectez. Ainsi, le corriger ne résoudra le problème que temporairement. On peut demander à dhclient de systématiquement utiliser les DNS fournis par Orange en corrigeant la configuration de dhclient par exemple avec nano. Pour cela lancez en root :

 

nano /etc/dhcp3/dhclient.conf

 

Ensuite ajoutez la ligne :

 

supersede domain-name-servers 80.10.246.1,81.253.149.2;

 

Sauvez, quittez et testez que tout va bien. Si par exemple vous vous connecez à votre Livebox avec l'interface eth0, lancez en root :

 

dhclient eth0

cat /etc/resolv.conf

nslookup www.google.fr

 

La seconde commande doit vous afficher les DNS que vous avez renseigné. La troisième commande est sensée être désormais plus rapide.

 

Remarque : cette modification impacte toutes vos requêtes DHCP. Si vous utilisez une connexion chez un autre fournisseur d'accès, ses DNS seront ignorés et votre connexion de fonctionnera pas. Pour remédiez au problème, commentez ou supprimez la ligne que vous avez ajouté dans /etc/dhcp3/dhclient.conf et relancez la commande en root la commande :

 

dhclient eth0

 

Vous travaillez avec un environnement graphique

 

Nous allons uniquement comment  régler le problème avec network-manager sous KDE. Adaptez la méthode présentée si vous utilisez la version gnome ou wicd.

 

 

knetworkmanager

 

Dans le menu contextuel de network-manager, cliquez sur "Manage Connections...". Selon que la connexion est filaire (wired) ou sans fil (wireless) allez dans l'onglet adéquat. Sélectionnez le profil de connexion adéquat. Dans la capture d'écran qui suit, on configure un profil de connexion qu'on a appelé "Orange" pour une connexion filaire :

 

knetworkmanager : modification du profil de connexion

 

Ensuite, on indique les DNS à utiliser comme indiqué ci-dessous :

 

knetworkmanager : configuration des DNS

 

Validez en cliquant sur OK et reconnectez-vous (vous pouvez pour cela éteindre et rallumer votre carte wifi ou débrancher et rebrancher votre câble ethernet).

.
X
 
 
 
 
 

You havecharacters left.