Cómo capturar todos los paquetes entrantes a la NIC, incluso aquellos paquetes que no me pertenecen

Cómo capturar todos los paquetes entrantes a la NIC, incluso aquellos paquetes que no me pertenecen

AFAIK, la NIC recibe todos los paquetes del cable en una red de área local pero rechaza aquellos paquetes cuya dirección de destino no es igual a su IP.

Quiero desarrollar una aplicación que monitoree el uso de Internet de los usuarios. Cada usuario tiene una dirección IP fija.

Yo y algunas otras personas estamos conectados a unDES-108 Conmutador de escritorio no administrado Fast Ethernet de 8 puertos

Como dije antes, quiero capturar todo el tráfico de todos los usuarios, no solo los paquetes que me pertenecen.

¿Cómo debo forzar a mi NIC u otros componentes a recibir todos los paquetes?

Respuesta1

AFAIK, la NIC recibe todos los paquetes del cable en una red de área local pero rechaza aquellos paquetes cuya dirección de destino no es igual a su IP.

Corrección: rechaza aquellos paquetes cuyo destinoMACla dirección no es igual a suDirección MAC(o multidifusión o cualquier dirección adicional en su filtro.

Las utilidades de captura de paquetes pueden poner trivialmente el dispositivo de red en modo promiscuo, es decir, que se omite la verificación anterior y el dispositivo acepta todo lo que recibe. De hecho, este suele ser el valor predeterminado: con tcpdump, debe especificar la -popción para podernohazlo.

La cuestión más importante es si los paquetes que le interesan se transportan por el cable hasta su puerto de rastreo. Dado que está utilizando un conmutador Ethernet no administrado, es casi seguro que no lo sea. El conmutador decide eliminar los paquetes que no le pertenecen de su puerto antes de que su dispositivo de red pueda verlos.

Para poder hacer esto, debe conectarse a un puerto de duplicación o monitoreo especialmente configurado en un conmutador Ethernet administrado.

Respuesta2

En las primeras versiones de los concentradores Ethernet (no de los conmutadores), los paquetes enviados están disponibles para todos los hosts de la subred, pero se supone que los hosts que no son el destinatario previsto los ignoran.

Obviamente, las subredes no tardaron mucho en saturarse, por lo que nació la tecnología de conmutación para resolver los problemas, y una de las cosas que hicieron fue hacer que el conmutador de red solo enrutara los paquetes destinados a ese host a ese puerto (más el tráfico de transmisión de Andy). ).

Esto complica el monitoreo/rastreo de la red porque solo puede rastrear paquetes que son para su host. Esto se consideró algo bueno desde el punto de vista de la seguridad, pero no tan bueno desde el punto de vista del monitoreo de la red. Para que el monitoreo de la red funcione, los proveedores implementan una función llamada duplicación de puertos. Esto debe configurarse en el conmutador de red y el siguiente enlace debería indicarle la dirección correcta para los productos D-link. Lo encontrará en algún lugar del software de administración de conmutadores o de la interfaz de administración web. Si no encuentra estas funciones, es posible que la funcionalidad no se proporcione en ese dispositivo específico.

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

Respuesta3

Primero necesitas cambiar tu NIC al modo promiscuo. Supongamos que su interfaz NIC es eth0.

root@linux#ifconfig eth0 promesc

Si está en una red de conmutador, su rastreo se reduce al dominio de colisión que se conecta al puerto de su conmutador. Puede ejecutar macofpara abrumar la tabla de reenvío del conmutador.

root@linux#macof -i eth0

Luego puedes usar wiresharko tcpdumppara capturar todo el tráfico.

root@linux#tcpdump -i eth0 -w outputfile

Si no estás en una red conmutada, simplemente habilita el modo promiscuo y usa tcpdump.

Respuesta4

Estás reinventando la rueda.

Suponiendo que tiene una red simple con clientes que se conectan a conmutadores, con una puerta de enlace predeterminada a Internet, entonces solo necesita monitorear en ese dispositivo de puerta de enlace predeterminada. Este será un punto de estrangulamiento para mostrar todo el tráfico entre un cliente LAN e Internet.

Supongo que el tráfico de cliente LAN a cliente LAN no es de interés, porque con todas las direcciones IP dentro de la misma subred IP, el tráfico local no toca la puerta de enlace predeterminada.

Si realmente desea ver todo el tráfico, cada usuario debe estar en su propia red IP y el tráfico a las otras redes se realiza a través de la puerta de enlace predeterminada. Puede asignar un /28 a cada persona y pueden tener 14 IP para ellos mismos.

Su enrutador doméstico promedio no soportará mucho de esto; necesitará explorar una distribución de firewall dedicada. Personalmente, pfsense sería mi opción, pero hay muchas opciones.

información relacionada