# [CERRADO] Monitorización del tráfico de una red entera

## Sparkster

Hola chicos. Os cuento mi situación:

En mi casa hay 2 ordenadores conectados a ADSL mediante un router Zyxel prestige 643. Uno es el mío y otro el de mi hermano. Ambos tienen IP fija con respecto al router. Por razones filial-familiares en las que no quiero profundizar, cada uno de nosotros tiene una franja horaria determinada para hacer uso intensivo de la conexión. El problema está en que mi hermano, que es muy listo él, hace uso no sólo de sus horas, sino también de las mías para tirar de la burra todo lo que quiere. Como en mi casa el benjamín siempre tiene la razón a no ser que haya pruebas concluyentes, necesito monitorizar el tráfico de ambos ordenadores.

El router lo compré yo (para más inri), por lo que tengo acceso al mismo. Lo único que necesito es saber la cantidad de datos que entra en cada ordenador en cada momento (preferiría que fuese en kB, pero también me vale en paquetes). Idealmente me gustaría tener una gráfica, pero bueno, eso no es estrictamente necesario. El problema radica en que no puedo instalar nada en su equipo (además de que usa Windows, ajjjj).

Al grano: ¿Es posible monitorizar desde mi equipo (contando con que tengo acceso al router) el tráfico que en cada momento entra en cada uno de los 2 ordenadores en función de la hora del día?

Leí en otro hilo algo referente al IPTraf. Llevo un rato echándole una ojeada, pero no tengo nada claro que me valga para lo que busco. ¿Alguien sabe cómo hacerlo?Last edited by Sparkster on Mon Sep 25, 2006 7:14 pm; edited 1 time in total

----------

## Stolz

Creo que es el tercer hilo preguntando lo mismo en menos de un mes ¿no sería de más utilidad concentrar las dudas y la información en un solo hilo?

Leyendo la página de IPTraf, parece ser justo lo que necesitas y hay documentacion abundante en español de páginas de reputación:

http://www.google.es/search?hl=es&q=IPTraf&meta=lr%3Dlang_es

En Bulma también mencionan EthStatus y TrafShow, y en hilos similares mencionan Iftop (todos disponibles en Portage).

----------

## abasme

puedes usar ntop tambien que te crea graficas, estadisticas y demas.

----------

## Sertinell

como ya dije en los otros hilos, si sus paqetes no pasan por tu NIC, y tu ruter no puede hacer logg de todo, no puedes obtener nada  :Sad: .

----------

## kabutor

Como que no? Solo tienes q hacer ARP poisoning al router

De hecho lo mejor en este caso es hacer ARP poisoning, de tal manera q toda la comunicacion de todos los pcs de la casa pasen por el tuyo, tu rediriges los paquetes, y en las horas q te correspondan le cortas el trafico de ciertos puertos con un par de reglas de iptables y a correr.

Y si me apuras, el resto del tiempo con otras reglas de iptables le cortas el ancho de banda  :Smile: 

----------

## Sertinell

si, esa es una manera de hacer qe sus paqetes pasen por ti nic  :Smile: . la lastima es qe probablemente el ruter no recurra al arp para saber donde esta cada PC, el ruter puede saber cual es la mac del pc conectado a ese puerto y asociarla con la ip mirando los paqetes salientes de ese pc ...

----------

## abasme

bueno ntop monitorea todo lo que pasa por tu red incluyendo arp, nic, ip, host, etc...

----------

## Sertinell

La NIC es la tarjeta de red, repito qe si un paqete no pasa por ella, o por el canal al qe ella esta conectada ( HUB ), la unica manera de cojer su trafico es aprovechando esa vulnerabilidad del arp, aun asi, solo serviria para controlar el trafico entrante y solo si puedes configurar tu ruter para qe no "aprenda las mac's" conectadas a los puertos. Estoy supniendo qe hablamos de conexiones full duplex y qe el ruter no es gilipoyas xD

----------

## jmp_

El ARP Poisoning, altamente efectivo en redes conmutadas (con switches y demás) se puede evitar con Switches inteligentes, y con tablas estáticas ARP a nivel del router/switch/host de forma más o menos sencilla. Esto último no es viable si tu red es enorme.

Ni que decir tiene que esta forma de sniffar el tráfico de red, implica ciertos riesgos de seguridad, y dependiendo de los puntos en los que falsifiques las asociaciones MAC-IP (para interceptar el tráfico) se puede caer la red con una facilidad grande. Aparte, los IDS saltaran con una probabilidad muy elevada.

A nivel 2 de red, hackear es un juego de niños debido al diseño excesivamente confiado de la pila TCP/IP, se puede hacer de todo prácticamente, en el momento en el que puedes crear paquetes personalizados y enviarlos a la red (Ethernet normalmente). Supongo que muchos conocéis la herramienta "Yersinia".

Una buena herramienta para monitoreo de redes y servicios es "Nagios" para quien no haya escuchado nunca nada al respecto.

un saludo.

----------

## Sertinell

A eso me referia yo, en una red de 2 ordenadores lo normal es qe el router/swicht tenga una tabla estatica en la qe asocie IP/MAC/Puerto, y si no es estatica la habra aprendido a traves de los paqetes de salida por lo qe si el router no es muy configurable la tecnica del arp no funcionara.

Tengo qe mirar yo el yersinia ese y el nagios ....

----------

## jmp_

El router la sabe porque o bien al asignarle la IP al host mediante DHCP se ha guardado la MAC-IP o bien porque al hacer la primera comunicación se ha preguntado. No creo que la tabla sea estática porque no pueden saber la MAC de tu ordenador desde la fábrica y obviamente configurarla tu a mano sería tedioso para los usuarios no-expertos.

La técnica del ARP poisoning funciona si el router no está bien configurado, algunas veces se falla al segmentar VLAN's... o si los switches no son sofísticados y tiene el caché ARP dinámico (se debería resetear cada cierto tiempo). En la mayoría de casos el ARP funciona traspasando distintos segmentos incluso (hay que tener en cuenta el Reverse ARP también) por lo que tráfico no visible a nivel IP se puede ver mediante ARP Poisoning a nivel 2 de red. Dentro de un segmento de red sniffar el trafico es fácil, prácticamente basta con poner la tarjeta de red en modo promiscuo.

saludos.

----------

## Sertinell

Si, en la primera comunicacion PC--> router , el pc hara una peticion ARP al ruter y el ruter apuntara la mac/ip del pc. Vamos, supongo qe los ruters trabjaran asi... pero a saber.

P.D. Me pongo con el ethreal a ver cuantos paqetes arp pasan por mi nic xD.

----------

## kabutor

Yo tengo entendido q el router/switch pide la equivalencia ARP-IP una vez al principio y supongo q a lo largo del tiempo, ahi te aprovechas tu enviando constantemente cambios a la tabla ARP y engañando tanto al router como al pc, a los dos les tienes q envenenar la tabla ARP.

De hecho una de las formas de detectar este tipo de ataques es cuando el trafico ARP es excesivo, aunque jmp_ esta mucho mas enterado que yo y seguro q nos puede aclarar un par de conceptos.

----------

## Sertinell

Hombre, una manera facil de detectar arp poisonning, es qe haya dos IP's de la misma red con la misma Mac. Suele ser un indicio claro.

----------

## Sparkster

Buffff... chicos, la verdad es que me estoy enterando de bien poco.

Instalé el ntop como decís por ahí, pero tras ver el --help y el man estoy más perdido que un pulpo en un garaje.

Veamos... el router tiene IP 172.16.0.1, y el equipo que quiero analizar, 172.16.0.6.

Probé a arrancar con "ntop -n" a ver qué salía y con "ntop -m 172.16.0.6" "ntop -m 172.16.0.1", aunque me da que hice un par de disparates.

¿Alguien puede guiarme en mi ignorancia?

----------

## jmp_

Yo personalmente con el ntop no te puedo ayudar ya que no lo he usado de forma habitual.

Respecto al ARP-Poisoning, siempre que un host en la red tiene que comunicarse con otro -sino tiene en su tabla ARP al host de destino - hará el ARP request y recibirá un ARP reply con la información que necesita. Los routers harán ReverseARP cuando sea necesario si el host de destino no es accesible directamente en el segmento y cuando esté permitido.

Una vez ya sabe la IP/MAC del host con el que desea comunicarse la guarda en su tabla para el futuro y ya no será necesario hacer la petición ARP. Los mismo harán otros dispositivos de red, la tabla ARP de los switches se limpia cada cierto periodo de forma automática siempre que no esté establecida de forma estática, lo mismo podemos hacer en cada host de la red. La caché ARP puede "flushearse" cuando queramos con los comandos que el sistema nos facilite.

saludos.

----------

## Sparkster

A ver, os comento cómo va evolucionando la cosa. Leí por ahí que podía hacer algo con el MRTG así que estoy intentando usarlo.

Estoy intentando seguir ésta guía.

El primer paso que manda es crear un fichero de configuración con la herramienta cfgmaker. El comando que utilizo es:

```

cfgmaker --global "workdir: /mnt/datos/descargas/caca/workdir" --global "Options[_]: bits,growright" --output /mnt/datos/descargas/caca/configuracion.cfg 172.16.0.1

```

La ip es la del router. En el router, en la sección de SNMP tengo ésto:

```

                  SNMP:

                    Get Community= public

                    Set Community= public

                    Trusted Host= 0.0.0.0

                    Trap:

                      Community= public

                      Destination= 0.0.0.0

```

Cuando introduzco éste comando, obtengo el siguiente error:

```

SNMP Error:

no response received

SNMPv1_Session (remote host: "172.16.0.1" [172.16.0.1].161)

                  community: "public"

                 request ID: 1957387067

                PDU bufsize: 8000 bytes

                    timeout: 2s

                    retries: 5

                    backoff: 1)

 at /usr/bin/../lib/mrtg2/SNMP_util.pm line 627

SNMPWALK Problem for 1.3.6.1.2.1.1 on public@172.16.0.1::::::v4only

 at /usr/bin/cfgmaker line 918

WARNING: Skipping public@172.16.0.1: as no info could be retrieved

```

Tengo el snmpd, pero no está funcionando (supongo que por eso obtengo ese error). Cuando intento arrancarlo me sale ésto:

```

fenix sparkster # snmpd

snmpd: error while loading shared libraries: libnetsnmpagent.so.9: cannot open shared object file: No such file or directory

```

Probé a hacer un "equery b" con esa librería, pero no encontró nada. También lo busqué por todo el disco, pero sin resultado. ¿Alguien tiene alguna idea?

----------

## jmp_

Te recomiendo el cliente "scli" para el SNMP.

----------

## abasme

Para ver los resultados que quieres con el ntop es mas facil usarlo en su forma web de la siguiente manera

http://localhost:3000

Suerte

----------

## Sparkster

Estoy echándole una ojeada al Ntop con el consejo de abasme, pero me pasa lo que me pasa siempre. Me analiza el tráfico local (eso sí, muy completo) pero nada más que eso. Incluso figura el router, por lo que intenté analizar el tráfico de mi hermano comparando lo que pasa por el router con lo que se va a mi ordenador, pero claro, en el router me pone que tras un par de horas descargando, el tráfico es de 8kB (supongo que porque no se queda nada allí), así que tampoco me vale. En las conexiones al router sólo me figura mi equipo :S

abasme, ¿tienes idea de qué podría hacer ahora? Si necesitas algún pantallazo de algo, te lo pongo sin problemas.

----------

## abasme

Mira yo lo tengo en un servidor que funciona como gatway y luego pasa al router, una solucion que no se si puedes implementar es ponerle otra tarjeta de red a tu maquina y forzar que la otra maquina pase por tu maquina poniendo tu maquina como puerta de enlace de la otra para salida a internet para poder tener una idea de todo lo que tu hermano hace tanto como paginas que visita hora y fecha.

----------

## Sparkster

Hum... es una solución un poco complicada. La idea era gestionarlo tal como está ahora, ya que mi hermano será rehacio a hacer cualquier cosa que lo pueda delatar. Intentaré usar el scli que dice jmp_, a ver qué tal...

----------

## Sparkster

Bueno, gracias al scli descubrí que mi hermano se cambió la IP (o eso creo, lo averiguaré localmente, pero supongo que sí). Ya es un avance poder ver eso. ¿Alguna idea de cómo proceder ahora?

EDITADO: con el scli, el mrtg arranca correctamente. Creo que tenía una interfaz web también. ¿Alguien sabe cómo acceder?

----------

## Sparkster

Vale, un avance más. Poco a poco va triunfando la cosa.

El MRTG ya me funciona. Los pasos que seguí fueron los siguientes:

1.- instalé el scli para evitar el error del mrtg.

2.- arranqué el scli y conecté con el router a grito de "open 172.16.0.1"

3.- creé el fichero de configuración del mrtg con "cfgmaker --global "workdir: /mnt/datos/descargas/caca/workdir" --global "Options[_]: growright" --output /mnt/datos/descargas/caca/configuracion.cfg 172.16.0.1"

4.- ejecuté el mrtg con "mrtg /mnt/datos/descargas/caca/configuracion.cfg"

De esta forma puedo ver el tráfico que pasa por el router en una gráfica la mar de molona. Lo ideal sería ver el de mi hermano, y en caso de no ser posible, ver el del router y el de mi equipo para calcular a ojo que el resto está yendo hacia su equipo. El problema está en que si pongo otra IP que no sea la del router, vuelvo a obtener el error que puse arriba, donde figura un error de SNMP (ejemplo con "localhost" en lugar de la IP del router):

```

fenix sparkster # cfgmaker --global "workdir: /mnt/datos/descargas/caca/workdir" --global "Options[_]: growright" --output /mnt/datos/descargas/caca/configuracion2.cfg localhost

SNMP Error:

no response received

SNMPv1_Session (remote host: "localhost" [127.0.0.1].161)

                  community: "public"

                 request ID: 102336718

                PDU bufsize: 8000 bytes

                    timeout: 2s

                    retries: 5

                    backoff: 1)

 at /usr/bin/../lib/mrtg2/SNMP_util.pm line 627

SNMPWALK Problem for 1.3.6.1.2.1.1 on public@localhost::::::v4only

 at /usr/bin/cfgmaker line 918

WARNING: Skipping public@localhost: as no info could be retrieved

```

¿Alguien sabe cómo solucionarlo?

----------

## jmp_

Yo ahora mismo la verdad es que no, pero en todo caso...

Si quieres controlar tu red y por dónde navega tu hermano o quien sea, usa SQUID como proxy-caché transparente.

----------

## Sparkster

Bueno, al final lo solucioné de una forma bastante sencilla. Os comento cómo lo monté:

1.- Instalé el MRTG

2.- Instalé el servicio SNMP incluido en Windows en el otro equipo (si no, no podía obtener los datos).

3.- Creé el fichero de configuración del MRTG a grito de "cfgmaker --global "workdir: <directorio de trabajo>" --global "Options[_]: growright" --output <fichero de configuracion> <ip del otro equipo>   

4.- Ejecuto cada 5 minutos con un script o con cron el comando "mrtg <fichero de configuracion>" y me crea las gráficas en <directorio de trabajo>

El truco al final estaba en el paso 2, ya que sin eso, no podía obtener los datos del otro equipo, y no lo sabía. 

Gracias a todos por la ayuda, y perdonad si me repetí mucho con respecto a otros hilos, pero es que no encontraba nada que me ayudase.

----------

## Sertinell

Je, tienes suerte de qe tu hermano no se dedique a pasear por los servicios  :Wink: 

----------

