Catégories
Sysadmin

Cache ARP MAC/IP pour Linux / Windows / MacOS

Le protocole ARP peu connu est fondamental dans le fonctionnement des réseaux ethernet / IP. Il permet de découvrir comment joindre une adresse IP locale par l’association avec une adresse physique des cartes réseaux.

Qu’est-ce que le protocole ARP, la table associée, son rôle et comment l’utiliser?

L’ARP (Adress Resolution Protocol) est un protocole qui permet de faire correspondre une adresse IP avec une adresse MAC. Lorsqu’un hôte envoie un paquet à une autre machine, il doit d’abord vérifier si l’adresse MAC de la machine est dans sa table ARP. Si l’adresse n’est pas présente dans la table, l’hôte envoie un message ARP à toutes les machines connectées au réseau pour demander l’adresse MAC de la machine destinataire.

La table ARP est une table de correspondance entre les adresses IP et les adresses MAC. Elle est utilisée par les routeurs, les commutateurs mais également tous les terminaux : ordianteurs, smartphones, IoT, … pour acheminer les paquets IP vers leur destination. Les entrées dans la table ARP sont créées lorsque les appareils communiquent entre eux.

Après la connaissance de la table ARP, vous pourriez avoir besoin de connaître le fichier /etc/hosts, comment le gérer et l’utiliser au quotidien.

Pourquoi vider le cache ARP en informatique?

Imaginons qu’un équipement vienne de changer d’adresse IP, Cela arrive lorsque vous avez fait un changement de box Internet ayant la même adresse IP ou si dans une infrastructure de serveurs vous avez des IPs flottantes qui peuvent basculer entre plusieurs serveurs en fonction de l’état des systèmes subjacents.

Dans ces situations, il se peut parfois que le cache ARP ne se mette pas à jour immédiatement. Il est alors possible de supprimer une ou plusieurs entrées du cache DNS.

Cela peut également être une action volontaire lors de la bascule d’une IP flottante, on peut ajouter la suppression du cache ARP dans les serveurs qui doivent communiquer avec cette IP.

Comment afficher le cache ARP et avec quelle commande faire une requête?

Pour consulter le cache ARP sur une machine sous différents OS du marché, il faut utiliser la commande arp. Cette commande permet au niveau de chaque système d’exploitation d’afficher, manipuler et gérer les correspondances découvertes par le système d’exploitation. Ces découvertes sont alors stockées dans une table locale et forme un cache utilisé par le système pour ne pas interroger à nouveau le réseau local.

Comment consulter le cache ARP sous Linux, Windows, MacOS?

Pour consulter le cache ARP sous les différents systèmes d’exploitation Windows, MacOS ou Linux : Debian, Ubuntu, Fedora, RedHat, Suse, Kali vous pouvez utiliser la commande suivante :

arp
Commande ARP sous Linux avec affichage du résultat
Commande ARP sous Linux avec affichage du résultat

Procédure pour afficher la table ARP sous Linux

La commande va alors afficher la ou les correspondances entre les adresses IP et adresses MAC connues et sur quelle interface elles ont été trouvées. Cette commande va tenter également de résoudre les IPs des hôtes au niveau DNS par défaut.

Si vous avez beaucoup d’entrées dans votre cache ARP ou si tous les hôtes n’ont pas de reverse DNS vous pouvez utiliser l’option -n avec la commande arp.

arp -n

Comment supprimer une entrée dans le cache ARP sous Linux?

Pour supprimer une seule entrée ARP vous pouvez utiliser la commande arp avec une option de suppression suivie de l’adresse IP à ne plus considérer. Pour cette commande il faut être administrateur soit être root.

sudo arp -d 192.168.0.1

Comment vider tout le cache ARP sous Linux?

Pour supprimer tout le cache ARP en une seule fois il va falloir passer par une autre commande, en effet arp ne gère pas la suppression totale. On va utiliser la commande ip qui permet de gérer toute la stack de connectivité d’un système Linux moderne.

sudo ip neigh flush all

Procédure pour afficher et vider le cache ARP avec cmd sous Windows

  1. Démarrer une ligne de commande en tant qu’administrateur
  2. Aller dans le menu démarrer
  3. Entrer « cmd »
  4. Clique droit sur « Interpréteur de commande » puis « Lancer en tant qu’administrateur »
  5. Cliquer sur « Oui » à la question de sécurité

Une fois le terminal ouvert en tant qu’administrateur sous Windows, vous pouvez consulter la table ARP avec la commande :

arp -a

Et vider intégralement le cache ARP de votre système Windows avec la commande :

arp -d

Procédure pour afficher et vider le cache ARP sous MacOS X

Sous MacOS il faut ouvrir le Terminal de MacOS qui se trouve dans les applications, il faut également être administrateur y compris pour la consultation.

Pour consulter la table ARP il faut entrer la commande :

sudo arp -a

Pour supprimer tout le contenu de la table ARP il faut entrer la commande :

sudo arp -d -a

C’est quoi une attaque ARP par empoisonnement? Que va obtenir un attaquant?

Une attaque ARP est une forme d’attaque informatique qui consiste à envoyer des requêtes ARP falsifiées à une machine afin de lui faire croire que l’adresse IP d’une autre machine est en fait l’adresse IP de l’attaquant. Cela fait parti des règles de base dans la gestion au niveau cybersécurité des réseaux.

Un attaquant pourra se faire alors passer pour un autre ordinateur sur le réseau local. Cela est une grave attaque sur un réseau car on peut imaginer un attaquant faire un vrai faux site Internet d’un intranet / application pour récupérer les identifiants de personnes.

L’empoisonnement ARP est très facile sur des réseaux non protégés et permet notamment sur des réseaux WIFI de commettre des méfaits à distance en dehors des structures de l’entreprise.

Usurpation d’identifiants professionnels comme personnels : banques, compte email, réseaux sociaux, intranet, extranet, applications, …

C’est pour cela qu’il est déconseillé d’utiliser des équipements grand public sur un réseau d’entreprise mixant des intérêts professionnels et personnels de différentes personnes. Ces fonctions de protections sont coûteuses et c’est une des raisons pour lesquelles un switch commutateur peut avoir une telle différence de prix entre une gamme grand public et une gamme entreprise.