Comment capturer tous les paquets entrants sur la carte réseau, même ces paquets ne m'appartiennent pas

13

AFAIK, la carte réseau reçoit tous les paquets du fil dans un réseau local mais rejette les paquets dont l'adresse de destination n'est pas égale à son adresse IP.

Je souhaite développer une application qui surveille l'utilisation d'Internet par les utilisateurs. Chaque utilisateur a une adresse IP fixe.

I et d'autres personnes sont connectées à un commutateur de bureau non géré Fast Ethernet DES-108 à 8 ports

Comme dit précédemment, je veux capturer tous les trafics de tous les utilisateurs, pas seulement les paquets qui m'appartiennent.

Comment dois-je forcer ma carte d'interface réseau ou d'autres composants pour recevoir tous les paquets?

m.r226
la source
1
Achetez un commutateur bon marché et géré pour environ 30 € et activez la mise en miroir des ports sur le lien vers la passerelle.
Max Ried

Réponses:

27

AFAIK, la carte réseau reçoit tous les paquets du fil dans un réseau local mais rejette les paquets dont l'adresse de destination n'est pas égale à son adresse IP.

Correction: il rejette les paquets dont l' adresse MAC de destination n'est pas égale à son adresse MAC (ou multicast ou toute adresse supplémentaire dans son filtre).

Les utilitaires de capture de paquets peuvent mettre trivialement le périphérique réseau en mode de proximité, c'est-à-dire que la vérification ci-dessus est contournée et le périphérique accepte tout ce qu'il reçoit. En fait, c'est généralement la valeur par défaut: avec tcpdump, vous devez spécifier l' -poption pour ne pas le faire.

Le problème le plus important est de savoir si les paquets qui vous intéressent sont même acheminés par le fil jusqu'à votre port de reniflement. Comme vous utilisez un commutateur Ethernet non géré, ils ne le sont certainement pas. Le commutateur décide d'éliminer les paquets qui ne vous appartiennent pas depuis votre port avant que votre périphérique réseau puisse espérer les voir.

Pour ce faire, vous devez vous connecter à un port de mise en miroir ou de surveillance spécialement configuré sur un commutateur Ethernet géré.

Celada
la source
1
Ou un concentrateur Ethernet ... si vous pouvez en trouver un qui rouille dans le grenier :) Je doute qu'il y en ait cependant pour 1000Base-T, Wikipedia dit que les concentrateurs gigabit ne prennent en charge que les liaisons semi-duplex et ils sont maintenant obsolètes.
chx
1
@chx, tous les vrais concentrateurs ne prennent en charge que le semi-duplex. Personnellement, je n'en ai jamais vu de 1000Base-T.
Celada
Je crois que cela a à voir avec la lente adoption de Gigabit Ethernet - bien que la norme 802.3ab soit sortie en 1999, l'adoption a été très lente jusqu'en 2003/2004 lorsque Intel a publié pour la première fois le chipset 875P avec le bus CSA dédié pour Gigabit Ethernet, puis en 2004, PCI Express a pris le relais avec enfin suffisamment de bande passante pour Gigabit Ethernet. Et d'ici là, les commutateurs étaient assez bon marché.
chx
Le commutateur Ethernet ne diffusera pas toujours les trames. Il a sa propre table de commutation (contient une carte du port de commutateur et de l'adresse MAC) pour unicast le cadre. Si le tableau n'a pas d'entrée pour le MAC dans le cadre, il diffuse / inonde le cadre. Votre bureau ne recevra jamais d'autres cadres. Comme dans la réponse, vous devez utiliser un commutateur spécial pour capturer toutes les images qui arrivent sur votre commutateur.
Valarpirai
8

Dans les premiers mots sur les concentrateurs Ethernet (pas les commutateurs), les paquets envoyés sont disponibles pour tous les hôtes du sous-réseau, mais les hôtes qui ne sont pas le destinataire prévu sont censés ignorer.

Évidemment, les sous-réseaux n'ont pas mis longtemps à saturer, donc la technologie des commutateurs est née pour résoudre les problèmes, et l'une des choses qu'ils ont faites a été de faire en sorte que le réseau ne commute que les paquets de routage destinés à cet hôte vers ce port (plus le trafic de diffusion andy ).

Cela complique la surveillance / reniflement du réseau car vous ne pouvez renifler que les paquets destinés à votre hôte. Cela a été considéré comme une bonne chose du point de vue de la sécurité, mais du point de vue de la surveillance du réseau pas si bon. Pour que la surveillance du réseau fonctionne, les fournisseurs implémentent une fonctionnalité appelée mise en miroir des ports. Cela doit être configuré sur le commutateur réseau, et le lien ci-dessous devrait vous orienter dans la bonne direction pour les produits D-link. Vous le trouverez quelque part dans votre logiciel de gestion des commutateurs ou votre interface d'administration Web. Si vous ne trouvez pas ces fonctionnalités, alors la fonctionnalité peut ne pas être fournie dans cet appareil spécifique.

http://www.dlink.com/uk/en/support/faq/switches/layer-2-gigabit/dgs-series/es_dgs_1210_como_monitorear_trafico_de_un_puerto_port_mirroring

Thomas Carlisle
la source
2

Vous devez d'abord passer votre NIC en mode promiscuous. Supposons que votre interface NIC soit eth0.

root@linux#ifconfig eth0 promesc

Si vous êtes sur un réseau de commutateurs, votre reniflement est réduit au domaine de collision connecté à votre port de commutateur. Vous pouvez exécuter macofpour submerger la table de transfert du commutateur.

root@linux#macof -i eth0

Ensuite, vous pouvez utiliser wiresharkou tcpdumppour capturer tout le trafic.

root@linux#tcpdump -i eth0 -w outputfile

Si vous n'êtes pas sur un réseau commuté, activez simplement le mode promiscuous et utilisez-le tcpdump.

Ahmed chiboub
la source
1
tcpdumpva activer le mode promiscuité pour vous. Vous n'avez pas besoin de le faire (et n'oubliez pas de l'annuler lorsque vous avez terminé) manuellement.
Celada
0

Vous réinventez la roue.

En supposant que vous disposez d'un réseau simple avec des clients se connectant à des commutateurs, avec une passerelle par défaut vers Internet, il vous suffit de surveiller ce périphérique de passerelle par défaut. Ce sera un point d'étranglement pour montrer tout le trafic entre un client LAN et Internet.

Je suppose que le trafic client LAN vers client LAN n'est pas intéressant, car avec toutes les adresses IP à l'intérieur du même sous-réseau IP, le trafic local ne touche pas la passerelle par défaut.

Si vous voulez vraiment voir tout le trafic, chaque utilisateur doit être dans son propre réseau IP et le trafic vers les autres réseaux se fait via la passerelle par défaut. Vous pouvez attribuer un / 28 à chaque personne et ils peuvent avoir 14 adresses IP pour eux-mêmes.

Votre routeur de qualité domestique moyen ne gérera pas beaucoup de cela, vous devrez explorer une distribution de pare-feu dédiée. Personnellement, pfsense serait mon choix, mais il existe de nombreuses options.

Criggie
la source