Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Commande pour savoir de manière sûre si une interface est en mode promiscuité

3 réponses
Avatar
Francois Lafont
Bonjour à tous,

Je cherche une commande qui me dirait de manière _sûre_ si une
interface est en mode promiscuité ou non. On voit un peu partout
sur le web la commande « netstat -i » avec la présence d'un
flag P qui indique si l'interface est en mode promiscuité. Et
effectivement, j'ai bien :

netstat -i # Je n'ai pas de flag P sur eth0.
ip link set eth0 promisc on # j'active le mode promiscuité.
netstat -i # Et le flag P fait son apparition.

Seulement voilà, ce n'est pas forcément indiqué dans certains cas.
Par exemple si je fais un tcpdump sur eth0, la commande tcpdump
par défaut active le mode promiscuité sur l'interface. Et pourtant,
le flag P n'apparaît pas dans la commande « netstat -i ». Ceci
est d'ailleurs conforté par ça :

http://www.tcpdump.org/faq.html#q7

où on peut lire :

The form of promiscuous mode that libpcap (the library that programs
such as tcpdump use to do packet capture) turns on will not necessarily
be shown if you run ifconfig on the interface on a UNIX system;
(ils auraient donc pu ajouter "netstat -i" à ifconfig).

Même chose lorsqu'on fait du bonding de 2 interfaces. On peut lire ici
https://www.kernel.org/doc/Documentation/networking/bonding.txt entre
autres :

For the active-backup, balance-tlb and balance-alb modes, the
promiscuous mode setting is propagated only to the active slave.

[...]

For the active-backup, balance-tlb and balance-alb modes, when
the active slave changes (e.g., due to a link failure), the
promiscuous setting will be propagated to the new active slave.

Dans ce cas aussi, on a donc au moins une interface en mode promiscuité
mais on ne voit rien avec « netstat -i », pas de flag P (testé).

D'où ma question initiale : y a-t-il une commande qui me dirait de
manière _sûre_ si une interface est en mode promiscuité ou non ?
De manière sûre signifiant notamment que ça doit marcher dans les
2 cas particuliers présentés ci-dessus (ie tcpdump et le bonding).

Merci d'avance pour votre aide.

--
François Lafont

3 réponses

Avatar
Damien Wyart
* Francois Lafont in
fr.comp.os.linux.configuration:
Je cherche une commande qui me dirait de manière _sûre_ si une
interface est en mode promiscuité ou non.



Il y a des éléments ici, qui reposent plus sur des tests externes que
sur la machine concernée, mais ça ne peut pas être fiable à 100% :

http://security.stackexchange.com/questions/3630/how-to-find-out-that-a-nic-is-in-promiscuous-mode-on-a-lan

--
DW
Avatar
Francois Lafont
Bonjour,

On 13/11/2015 16:14, Damien Wyart wrote:

Il y a des éléments ici, qui reposent plus sur des tests externes que
sur la machine concernée, mais ça ne peut pas être fiable à 100% :

http://security.stackexchange.com/questions/3630/how-to-find-out-that-a-nic-is-in-promiscuous-mode-on-a-lan



Merci de ta réponse. Évidemment, j'aurais vraiment préféré un test
avec une commande en local à la machine mais peut-être que ça n'existe
tout simplement pas.

Une des méthodes proposées dans ton lien consisterait à envoyer une
trame vers la carte réseau avec une adresse MAC de destination différente
de celle de la carte réseau, trame qui encapsulerait un paquet IP avec
comme IP de destination l'IP de la carte. En gros, une sorte de ping où
l'on choisit l'adresse MAC de destination. Seulement je ne sais absolument
pas faire cela sous Linux.

--
François Lafont
Avatar
Pascal Hambourg
Francois Lafont a écrit :

Une des méthodes proposées dans ton lien consisterait à envoyer une
trame vers la carte réseau avec une adresse MAC de destination différente
de celle de la carte réseau, trame qui encapsulerait un paquet IP avec
comme IP de destination l'IP de la carte. En gros, une sorte de ping où
l'on choisit l'adresse MAC de destination. Seulement je ne sais absolument
pas faire cela sous Linux.



Avec un générateur de paquet arbitraire, ou bien en créant une entrée
ARP statique pour l'adresse IP en question avec arp ou ip neigh.