Ce cours est visible gratuitement en ligne.

J'ai tout compris !
Comment se connecter manuellement au réseau

Comment se connecter manuellement au réseau

Mis à jour le mardi 19 novembre 2013
  • 1 heure
  • Facile

Bonjour à tous !

S'il est vrai que les utilitaires de gestion des connexions réseaux, tels network manager ou wicd, facilitent la connexion au réseau, il est bon de savoir aussi se connecter manuellement.

En effet, de tels utilitaires ne seront pas toujours à disposition. Vous pourriez aussi, pour une raison x ou y, ne pas vouloir les utiliser. Vous avez peut-être simplement envie de savoir comment on fait.

Le but de ce mini tutoriel est d'expliquer brièvement une procédure permettant de se connecter à son réseau en utilisant uniquement la ligne de commande.

Prise en main des outils

Avant de commencer notre travail, on va rapidement nommer et expliquer le rôle des différentes commandes qu'on va utiliser tout le long de ce tutoriel.

ifconfig

Cette commande permet de configurer les paramètres d'une interface réseau. Cette commande est habituellement utilisée à l’installation afin d’assigner une adresse réseau aux interfaces présentes dans la machine. On peut également l’utiliser à tout moment pour redéfinir les paramètres, telle que l’adresse IP, par exemple, d’une interface.

On peut ainsi assigner une adresse IP à une interface et préciser des paramètres tels que le masque de sous réseau ou encore l'adresse de diffusion.

Cette commande permet également de visualiser le statut des interfaces actives (si utilisée sans aucun paramètre) et le statut de toutes les interfaces (si utilisée avec l'option -a)

La syntaxe de cette commande est la suivante

ifconfig interface [ fam_adresses ] options | adresse

où interface désigne l'interface à configurer, fam_adresses désigne le protocole à utiliser (vous voudrez sans doute utiliser TCP/IP, mettez dans ce cas inet).

Les options couramment utilisées sont les suivantes :

  • up : permet d'activer l'interface

  • down : permet de désactiver l'interface

  • ipAdress : permet d'assigner une adresse IP (à remplacer par l'adresse en question)

  • netmask addr : permet de définir un masque de sous réseau (remplacer addr par l'adresse en question)

  • broadcast addr : permet de préciser l'adresse de diffusion (remplacer addr par l'adresse en question)

Il en existe encore d'autres. Je vous renvoie à la lecture du manuel pour les connaître.

Voici un exemple d'utilisation

# ifconfig eth0 inet ${IP_ADDR} broadcast ${BROADCAST} netmask ${NETMASK}

iwconfig

Iwconfig est calquée sur ifconfig. En conséquence, l'utilisation d'iwconfig est très semblable à ifconfig.

Elle est utilisée pour configurer les interfaces réseaux sans fil.

ping

Cette commande permet de tester la connectivité IP. On utilise très souvent cette commande pour tester si l'interface qu'on vient de configurer fonctionne bien, i.e. si la machine est bien connectée au réseau.

La commande permet aussi de tester la connectivité entre 2 machines. La commande envoit des paquets ICMP à l'ordinateur cible. Si celui ci répond, c'est qu'il existe une route entre les 2 machines.
Vous pouvez voir ça comme le sonar d'un sous-marin.

L'utilisation de la commande est très simple

$ ping address

l'adresse peut-être écrite en toute lettre ou bien sous forme numérique. On peut préciser le nombre de paquets attendus via le paramètre -c suivi du nombre de paquet attendus.

En l'absence de cette précision, le flux de paquet reçu ne s'arrête jamais. On lui enverra alors un signal SIGINT via ctrl+c pour stopper la commande.

Connexion filiaire

La commande ifconfig devrait lister au moins une interface réseau autre que lo (qui signifie loopback, cette interface est utilisée pour se connecter à sa propre machine), eth0 par exemple.

[renaud@renaud-laptop ~]$ ifconfig
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 txqueuelen:1000 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Interrupt:17

Si vous obtenez un message d'erreur tel que

ifconfig eth0
eth0: error fetching interface information: Device not found

c'est que la carte réseau n'a pas été détectée (mais bon, ça ne devrait pas arriver).

Utilisation de DHCP

Si vous êtes connecté à un réseau Ethernet avec un serveur DHCP, il est fort probable qu'il n'y ait rien à faire.

Le DHCP (pour Dynamic Host Configuration Protocol) est, comme son nom l'indique, un protocole de configuration dynamique d'un hôte. Il sert à automatiser la récupération des informations réseaux (telles que l'adresse IP, le masque de réseau, l'adresse de diffusion, la passerelle, etc.).

Lancez donc la commande suivante

# dhcpcd eth0

La commande dhcpcd est une implémentation d'un client DHCP. Elle va aller collecter les informations depuis le serveur DHCP et va configurer l'interface réseau de la machine sur laquelle elle est exécutée.

Elle va ensuite exécuter un script de configuration qui va écrire l'information DNS dans le fichier /etc/resolv.conf

Si vous utilisez une telle méthode, tout devrait normalement fonctionner maintenant.

Utilisation de ifconfig et route

On va commencer par désactiver l'interface sur laquelle on va travailler, via la commande ifconfig.

# ifconfig eth0 inet down

La mise en place du réseau sans utilisation du serveur DHCP va se dérouler en 3 étapes.

  • On va assigner une adresse IP avec ifconfig

  • On va configurer le routage vers la passerelle avec route

  • On va renseigner les adresses des DNS dans le fichier /etc/resolv.conf

On utilise ifconfig comme suit :

# ifconfig eth0 inet ${IP_ADDR} broadcast ${BROADCAST} netmask ${NETMASK}

où ${IP_ADDR} désigne votre adresse IP, ${BROADCAST} votre adresse de diffusion et ${NETMASK} le masque de sous réseau.

Ensuite, on va mettre le routage en place.

# route add default gw ${GATEWAY}

Enfin, on va renseigner les adresses des DNS. Ouvrez le fichier /etc/resolv.conf avec votre éditeur favori. Vous pourriez être tenté d'utiliser OpenDNS qui fournit d'excellents serveurs DNS.

Ajoutez-y les lignes suivantes, si vous utilisez OpenDNS (et sinon, les DNS primaires et secondaires que vous utiliserez).

nameserver 208.67.222.222
nameserver 208.67.220.220

À ce stade ci, il ne vous reste qu'à réactiver l'interface avec

# ifconfig eth0 inet up

Préparation à la connexion sans fil

Mon module est-il chargé ?

Avant de pouvoir configurer une interface, il faut s'assurer que le pilote de périphérique associé soit bien chargé en mémoire.

Parfois, le module a été compilé en dur dans le noyau, parfois il faut que le module soit chargé au boot. L'avantage de la seconde méthode est qu'on peut décharger/charger le module à tout instant via la commande modprobe.

S'il est vrai que beaucoup de progrès ont été faits dans la reconnaissance du matériel, il n'en demeure pas moins que certaines cartes ne sont pas nativement reconnues (c'était le cas de la mienne) par certaines distributions.

La première étape sera donc de s'assurer que les pilotes sont bien chargés en mémoire, sous forme de modules. Si ce n'est pas le cas, on les récupérera et on les chargera ensuite en mémoire. S'ils sont déjà chargés, le reste de cette section ne vous concerne pas.

Comment savoir s'ils sont bien chargés ?

On peut par exemple regarder quels sont les modules chargés en mémoire avec lsmod. Chez moi, ça donne (n'oubliez pas de remplacer iwl3945 par votre pilote)

[renaud@renaud-laptop ~]$ lsmod | grep iwl3945
iwl3945               155569  0 
iwlcore               163163  1 iwl3945
mac80211              182791  2 iwl3945,iwlcore
cfg80211              141568  3 iwl3945,iwlcore,mac80211

On peut aussi rester à l'écoute des messages du noyau, à l'aide de dmesg (enfin, de ceux qui nous interessent).

[renaud@renaud-laptop ~]$ dmesg | grep iwl3945
iwl3945: Intel(R) PRO/Wireless 3945ABG/BG Network Connection driver for Linux, in-tree:s
iwl3945: Copyright(c) 2003-2010 Intel Corporation
iwl3945 0000:06:00.0: enabling device (0000 -> 0002)
iwl3945 0000:06:00.0: PCI INT A -> GSI 19 (level, low) -> IRQ 19
iwl3945 0000:06:00.0: setting latency timer to 64
iwl3945 0000:06:00.0: Tunable channels: 13 802.11bg, 23 802.11a channels
iwl3945 0000:06:00.0: Detected Intel Wireless WiFi Link 3945ABG
iwl3945 0000:06:00.0: irq 29 for MSI/MSI-X
iwl3945 0000:06:00.0: firmware: requesting iwlwifi-3945-2.ucode
iwl3945 0000:06:00.0: loaded firmware version 15.32.2.9

Si les résultats sont similaires chez vous, c'est que le module est bien chargé. Si par contre, vous n'obtenez rien, c'est qu'il ne l'est pas.

D'accord, mais iwl3945 ne me conviendra sûrement pas, comment puis-je alors savoir si mon pilote est chargé en tant que module ?

Il faut connaître le nom du module que vôtre contrôleur de réseau utilise. Si vous ne le connaissez pas, la sous-section suivante explique comment faire.

Quel(s) pilote(s) utiliser ?

Il existe des outils bien utiles qui permettent de connaître le type de matériel dont on dispose. Il faut savoir que chaque composant est relié à un bus de type PCI, USB, ISA.

On va utiliser les commandes lspci, lsusb, lspcmcia dont les noms sont assez évocateurs je pense.

Ils listent tous les composants connectés aux bus USB, PCI, ISA. Votre contrôleur de réseau est nécessairement connecté à un de ces bus.

Si pour quelque raison que ce soit vous ne disposez pas de ces commandes, installez les paquets : pciutils, usbutils, pcmciautils.
On aura par exemple, sous Debian :

# aptitude install pciutils usbutils pcmciautils

On va utiliser les commandes de la façon suivante

$ lspci -v | grep Network

dont le résultat donne chez moi

[renaud@renaud-laptop ~]$ lspci -v | grep Network
06:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG [Golan] Network Connection (rev 02)
        Subsystem: Intel Corporation PRO/Wireless 3945ABG Network Connection

On remarque ici un contrôleur de marque Intel intégré à la carte mère.

Une petite recherche sur l'Internet, en particulier sur la documentation officielle de votre distribution, vous apprendra quel paquet installer, suivant le matériel dont vous disposez.

Maintenant qu'on a récupéré le bon pilote, il suffit de le charger en mémoire.

# modprobe votre_pilote

On est sûr maintenant que le module est bien chargé ?

À priori oui, mais pour en être certain, il faudra reproduire la procédure détaillée en début de section.

Voila, à ce stade ci, le pilote de votre contrôleur réseau devrait être correctement chargé sous forme de module, votre interface réseau sans fil devrait être correctement gérée et prête à être configurée.

Connexion sans fil

On va d'abord récupérer le paquet wireless-tools qui contient les utilitaires nécessaires à la connexion via le wifi. On profitera aussi pour récupérer le paquet wpa-supplicant, bien utile pour se connecter à un réseau sécurisé au moyen du WPA.

Ainsi, sous Debian on fera

# aptitude install wireless-tools wpa-supplicant

On est maintenant certain de disposer des outils nécessaires. On va pouvoir lister les interfaces réseaux sans fil disponibles. Pour cela

[renaud@renaud-laptop ~]$ iwconfig
lo        no wireless extensions.

eth0      no wireless extensions.

wlan0     IEEE 802.11abg  ESSID:"xxxxx"  
          Mode:Managed  Frequency:2.437 GHz  Access Point: yy:yy:yy:yy:yy:yy   
          Bit Rate=36 Mb/s   Tx-Power=15 dBm   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality=49/70  Signal level=-61 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

Comme vous pouvez le voir, tout va bien ici. Il n'y a que wlan0 qui soit une interface wifi (selon les machines, elle s'appelle parfois eth1, eth2, ra0, ath0).

Connexion sécurisée au moyen du WEP

C'est très simple dans ce cas ci. Il suffit de modifier le fichier /etc/network/interfaces avec les privilèges root.

Par sécurité, certains d'entre vous voudront copier leur ancien fichier avant de le modifier, juste au cas où.

cp /etc/network/interfaces /etc/network/interfaces.back

On inversera les opérandes de la commande cp pour restaurer le fichier d'origine.

Maintenant qu'on est sûr de pouvoir le retrouver, ouvrez donc ce fichier avec votre éditeur de préféré, vim par exemple

# vim /etc/network/interfaces

Ne modifiez que la section relative à votre interface réseau (wlan0 dans l'exemple) et ne touchez pas au reste.

auto wlan0
iface wlan0 inet dhcp
    wireless-essid nomDuReseau
    wireless-key motDePasseDuReseau

Voila, il ne vous reste plus qu'à vous connecter au point d'accès désormais.

Connexion sécurisée au moyen du WPA

La procédure est à peine plus compliquée que pour le WEP. À nouveau, il faut modifier le fichier /etc/network/interfaces, que vous aurez pris la peine de sauvegarder, comme expliqué précédemment.

Cette fois, on va de nouveau modifier le paragraphe correspond à votre interface réseau (wlan0 dans cet exemple).

On y mettra les lignes suivantes

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

On va maintenant modifier le fichier wpa_supplicant.conf. On y mettra cela

ctrl_interface=/var/run/wpa_supplicant
eapol_version=1
ap_scan=1
fast_reauth=1

network={
    ssid=nomDuReseau
    scan_ssid=1
    proto=WPA
    key_mgmt=WPA-PSK
    psk=motDePasseDuReseau
    priority=5
}

Il ne reste plus qu'une chose à faire, se connecter au point d'accès.

Connexion au point d'accès

Pour se connecter, il suffit d'executer les commandes suivantes, qui vont connecter votre interface

# ifconfig wlan0 up
# dhcpcd wlan0

Histoire d'être sûr qu'on a bien reçu les routes et les DNS, on va examiner le fichier /etc/resolv.conf et examiner les routes. Vous devriez avoir quelque chose comme

[renaud@renaud-laptop ~]$ cat /etc/resolv.conf 
# Generated by dhcpcd from wlan0
# /etc/resolv.conf.head can replace this line
nameserver 192.168.1.1
# /etc/resolv.conf.tail can replace this line
[renaud@renaud-laptop ~]$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     0.0.0.0         255.255.255.0   U     303    0        0 wlan0
0.0.0.0         192.168.1.1     0.0.0.0         UG    303    0        0 wlan0

On peut aussi voir si on arrive à joindre google (par exemple) via

$ ping -c4 www.google.com

On devrait avoir ce genre de résultat

[renaud@renaud-laptop ~]$ ping -c4 www.google.com
PING www.l.google.com (74.125.77.104) 56(84) bytes of data.
64 bytes from www.google.com (74.125.77.104): icmp_seq=1 ttl=52 time=702 ms
64 bytes from www.google.com (74.125.77.104): icmp_seq=2 ttl=52 time=605 ms
64 bytes from www.google.com (74.125.77.104): icmp_seq=3 ttl=52 time=572 ms
64 bytes from www.google.com (74.125.77.104): icmp_seq=4 ttl=52 time=584 ms

--- www.l.google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3000ms
rtt min/avg/max/mdev = 572.691/616.251/702.683/51.255 ms

Tout devrait être ok désormais.

Désormais, vous devriez pouvoir faire face à l'absence d'utilitaires de gestion des connexions réseaux.

En espérant que ce tutoriel vous ait plu/aidé.

À bientôt !

déroulement d'un cours

  • 1

    Dès aujourd'hui, vous avez accès au contenu pédagogique et aux exercices du cours.

  • 2

    Vous progressez dans le cours semaine par semaine. Une partie du cours correspond à une semaine de travail de votre part.

  • !

    Les exercices doivent être réalisés en une semaine. La date limite vous sera annoncée au démarrage de chaque nouvelle partie. Les exercices sont indispensables pour obtenir votre certification.

  • 3

    À l'issue du cours, vous recevrez vos résultats par e-mail. Votre certificat de réussite vous sera également transmis si vous êtes membre Premium et que vous avez au moins 70% de bonnes réponses.

L'auteur

Exemple de certificat de réussite
Exemple de certificat de réussite