Salutations

J'ai longtemps cherché un condensé clair des vicissitudes de la configuration réseau sous GNU/Linux... Beaucoup de sites donnent des informations tres intéressantes, mais on déplore souvent une spécification de celles-ci, pour un problème particulier. Certains dirons que ceux qui ont un réseau à configurer, n'ont qu'a utiliser nm-applet ou wicd... Mais nm-applet ne satisfait que ceux qui ne jurent que par les interfaces graphiques, et wicd, s'il est de qualité, il faut bien le dire, bug assez souvent, et on ne sait pas toujours pourquoi!

J'ai donc décidé de rédiger mon propre petit tutoriel concernant la configuration réseau et l'utilisation des outils net-tool. Donc tout devrait être compatible console pure, et permettre à tous de disposer du wifi, ou de l'ethernet, à tout endroit, et à tout moment!

Basiquement

GNU/linux est un système UNIX, dans le sens ou son architecture (micro kernel, système de fichier, utilisateur/Permissions, abstraction) est compatible avec la ""norme"" UNIX. C’est en partie pourquoi le réseau fait partie intégrante de ce dernier.

Plusieurs outils permettent de paramétrer efficacement son réseau.

Les outils

Le gros des outils de paramétrage réseau (protocole IP) sont contenu dans le paquet net-tools, mais pas seulement.

    Outils de base:

  • arp
  • Affiche le contenu de la table ARP. (adresses MAC des machines avec lesquelles on communique au sein d'un réseau)

  • dhclient
  • Établit un dialogue DHCP avec le routeur, DHCP étant un protocole de configuration "automatique" de la connexion. (à l'inverse d'une configuration statique ou la Gateway, le DNS, le masque, et l'IP doivent être précisés)

  • host
  • Effectue une requête auprès du DNS. (récupération d'une IP à partir d'un hostname)

  • ifconfig
  • Outil de configuration principale des interfaces. Permet d'attribuer une IP, un Masque, de modifier une adresse MAC, de passer en mode promiscuous, de désactiver/réactiver des interfaces.

  • ifup/ifdown
  • Recharge le fichier /etc/network/interfaces ou déconfigure les interfaces.

  • ping
  • Envoie une requête ping (UDP) en direction d'un adresse IP, qui, si tout se passe bien, lui répond. Utile pour s'assurer du bon fonctionnement d'une connexion.

    Se trouve dans le paquet iputils-ping

    Outils pour le wireless:

  • iwconfig
  • Équivalent de ifconfig, spécialement adapté aux interfaces wireless.

  • iwlist
  • Outil de découverte des réseaux Wi-Fi disponibles.

    Se trouve dans le paquet wireless-tools
  • wpa_supplicant
  • Gestion des clefs WPA. En effet, les systèmes actuels ne "gèrent" pas nativement ce type de clef. (compatibilité avec les normes IEEE 802.1X, et IEEE 802.11i)

    Se trouve dans le paquet wpasupplicant

    Fichiers de configuration

  • /etc/hosts
  • Association des hostnames locaux, etc.

  • /etc/network/interfaces
  • Configuration des interfaces.

  • /etc/resolv.conf
  • Localisation du/des DNS

    Daemons

  • /etc/networking
  • Daemon de configuration du réseau.

Configurations manuelles basiques:

Attribuer une adresse IP à une interface:

Pour vous connecter à un réseau, il faut tout d'abord que votre interface soit active, et qu'elle ait une adresse. Dans le cas des réseaux configurés en DHCP, pas de problème, un simple # dhclient <interface>suffit. (sauf dans le cas d'un réseau wireless, ou il faut d’abord préciser le point d'acces et le configurer)

Sinon, on procède ainsi:

# ifconfig <interface> down <ip> <masque>
# ifconfig <interface> up

On peut aussi configurer le masque de sous réseau :

# ifconfig <interface> down <ip>
# ifconfig <interface> up

Modifier l'adresse MAC d'une interface:

Il est possible de changer l'adresse MAC d'une interface. L'adresse MAC est l'adresse physique de la carte, et est sensée être unique au monde... Seulement d'une part, il peut être pratique de récupérer les adresses d'anciennes machines, et les attribuer à de nouvelles pour ne pas avoir à reconfigurer un filtrage MAC dans de gros réseaux... D'autre part, le filtrage MAC occasionne souvent de petits désagréments (comme la péremption des certificats d'authentification). Et spoofer une adresse peut rendre de grands services dans ces cas là. (en plus de permettre la mise en lumiere de failles de sécurité dans les réseaux mal configurés)

Et sous GNU/Linux plus qu’ailleurs, c'est d'une simplicité enfantinne:

# ifconfig <interface> down hw ether <mac>
# ifconfig <interface> up

Connaitre toute les machines branchées dans le réseau.

Il peut être utile de dresser une liste des machines voisines dans un réseau. On va utiliser l'adresse IP de diffusion (broadcast), la meme utilisée, par exemple, pour les appels ARP.

La commande ping permet de l'utiliser, à condition d'utiliser l'option -b.

$ ping -b 255.255.255.255

Il peut être nécessaire dans certains cas de modifier l'adresse broadcast au sous-réseau.

Connaitre les adresses MAC des machines voisines.

On peut aussi récupérer les adresses MAC des machines voisinnes. Il peut y avoir plusieurs utilités à ça, nottament au niveau du contournement de filtrage MAC.

Pour faire ça, on va commencer par envoyer un ping en broadcast (l'option -c permet d'arreter l'envoi de requête au bout de 50), puis, consulter le cache ARP qui aura été rempli par le système.

$ ping -b 255.255.255.255 -c 50
$ arp -a

Lister les réseaux Wi-Fi disponnibles

Ne serait-ce que pour la configuration du réseau, il peut être utile de connaitre la liste des réseaux Wi-Fi disponibles. L'outil iwlist permet justement de faire la découverte de ces réseaux.

Et sous GNU/Linux plus qu’ailleurs, c'est d'une simplicité enfantine:

# iwlist <interface> scanning

Et pour ne récupérer que les ESSID, un petit grep tout pourri s'impose:

# iwlist <interface> scanning | grep ESSID

La suite dans pas longtemps!