Banner 1

Mostrando entradas con la etiqueta trafico. Mostrar todas las entradas
Mostrando entradas con la etiqueta trafico. Mostrar todas las entradas

Tcpick. Capturando y visualizando impresiones en red con -wR desde fichero .pcap.

0 comentarios
Ya vimos en su momento que la herramienta Tcpick realiza el seguimiento de flujos TCP, los ordena y reensambla, mostrando información de estados de conexión, información de payload o carga últil, datos de conexiones FTP, HTTP, download de archivos involucrados en una captura, etc.  Subrayo lo de mostrar información de payload o carga últil porque, en esta ocasión, vamos a usar esta característica de Tcpick para visualizar información de archivos de impresiones en red.

Antes que nada.

Antes que nada, aquí (https://seguridadyredes.wordpress.com/2012/06/06/tcpick-un-sniffer-que-realiza-seguimiento-y-reensamblado-de-flujos-tcp-mostrando-datos-payload/) tenéis toda la información para instalar Tcpick y su forma de uso.
Usaremos -wR para volcar los datos capturados en archivo. Este comando volcará información de llado del cliente y del servidor. Para nuestro objetivo, es suficiente la parte del servidor (*serv.dat). Aunque como ya vimos podemos discriminar:
-wRS (para información de llado del servidor y -wRC(par ael lado del cliente).
En esta ocasión usaré -wR.

Información previa.

Tenemos un archivo de captura de red .pcap. En esta captura hay gran cantidad de información y tenemos que filtrar. La comunicación del servidor de impresión con la impresora se realiza usando el puerto 9100. Por tanto, tendremos que crear un filtro en Tcpick. Quedará de esta forma:
tcpick -r captura4.pcap -wR “port 9100

Analizando y extrayendo la información.

Una vez realizado esto, se crean dos archivos .dat que son:
  • tcpick_192.168.1.250_192.168.1.201_9100.clnt.dat
  • tcpick_192.168.1.250_192.168.1.201_9100.serv.dat
Como hemos dicho nos interesa el segundo. Lo editamos….:
Tenemos varios tipos de información. Se puede ver que se trata de un fichero .ps PostScript.
Para identificar corretamente el formato del archivo, estudiamos el formato .ps (http://partners.adobe.com/public/developer/ps/index_specs.html ) concretamente estehttp://www.adobe.com/products/postscript/pdfs/PLRM.pdf
Así que lo que nos queda es preparar el archivo para que sea un .ps (PostScriptválido.
Para ello borramos todo lo que hay por encima de:
%!PS-Adobe-3.0
y todo lo que hay por debajo (no se ve en la captura del ejemplo) de:
 %%EOF
Salvamos con la extensión .ps y abrimos con un visor de ps:
========
Y hasta aquí por hoy. Hasta la próxima.

Fuente: https://seguridadyredes.wordpress.com/2012/09/19/tcpick-capturando-y-visualizando-impresiones-en-red-con-wr-desde-fichero-pcap/

Suricata IDS/IPS 1.2.1 Extracción de ficheros de sesiones HTTP tráfico de red.

0 comentarios
Ya hemos visto en artículos anteriores como instalar, configurar, incluso añadir un sensor suricata a un SIEM Prelude. Esto lo hicimos con la versión 1.0.2 de Suricata.
En esta ocasión instalaremos y configuraremos la versión 1.2.1 de Suricata pero, además, añadiremos la funcionalidad de extracción de ficheros de sesiones HTTP.
Ya hemos hablado en varias ocasiones de la forma que tenemos de extraer ficheros de datos Binarios / Objetos HTTP a partir de una captura de tráfico de red, e incluso la forma de extraer fichero de impresión en red. También la forma de hacerlo con Tcpxtract, Justniffer, Assniffer, con Xplico, etc.
Al lio..

Instalación de Suricata 1.2.1

Yo ya tengo todos los prerequisitos e instalo directamente. Cualquier problema o para una primera instalación de suricata teneis más información sobre instalación y resolución de errores aquí: IDS / IPS Suricata. Instalación, configuración y puesta en marcha.
wget http://www.openinfosecfoundation.org/download/suricata-1.2.1.tar.gz
tar -xvzf suricata-1.2.1.tar.gz
cd suricata-1.2.1
./configure –enable-prelude
–enable-prelude por si usamos suricata como un sensor prelude que es mi caso.
Ahora, si no tememos las carpetas creadas por otra instalación anterior de suricata hacemos:
mkdir /var/log/suricata/
mkdir /etc/suricata
cp suricata.yaml /etc/suricata
cp classification.config /etc/suricata
make
sudo make install
cd /etc/suricata
Vamos a descargar las rules o reglas Emerging-Threats:
wget http://www.emergingthreats.net/rules/emerging.rules.tar.gz
tar xzvf emerging.rules.tar.gz

La extracción de ficheros de sesiones HTTP en suricata se realiza mediante reglas. Un ejemplo de estas reglas (files.rules) las descargaremos y ubicaremos en /etc/suricata/rules :
wget https://redmine.openinfosecfoundation.org/projects/suricata/repository/revisions/master/raw/rules/files.rules
Editamos files.rules y descomentamos las reglas que queramos usar.

Modificación de archivo de configuración suricata.yaml

Editamos /etc/suricata/suricata.yaml
Aunque no es necesario para la extracción de ficheros, yo he realizado la modificación siguiente:
  – pcap-log:
      enabled:  yes
      filename: log.pcap
Para la extracción de ficheros nos hará falta:
  – file:
      enabled: yes
      log-dir: files
      force-magic: no
log-dir files hará que los ficheros extraidos se depositen en /var/log/suricata/files
También en la sección stream:
stream:
  memcap: 32mb
  checksum_validation: no
  inline: no                  
  reassembly:
    memcap: 64mb
    depth:  
    toserver_chunk_size: 2560
    toclient_chunk_size: 2560
depth en 0, es decir, sin límite.
En cualquier caso también nos hará falta:
  • threshold-file: /etc/suricata/threshold.config
  • default-rule-path: /etc/suricata/rules/
  • classification-file: /etc/suricata/classification.config
  • reference-config-file: /etc/suricata/reference.config
En la sección libhtp:
libhtp:
   default-config:
     personality: IDS
     # Can be specified in kb, mb, gb.  Just a number indicates
     # it’s in bytes.
     request_body_limit: 0
     response-body-limit: 0
   server-config:
     – apache:
         address: [192.168.1.0/24, 127.0.0.0/8, "::1"]
         personality: Apache_2_2
         # Can be specified in kb, mb, gb.  Just a number indicates
         # it’s in bytes.
         request_body_limit: 0
         response-body-limit: 0
     – iis7:
         address:
           – 192.168.0.0/24
           – 192.168.10.0/24
         personality: IIS_7_0
         # Can be specified in kb, mb, gb.  Just a number indicates
         # it’s in bytes.
         request_body_limit: 0
         response-body-limit: 0
En la sección rule-files, que es donde se indican las rules a cargar, comentamos o descomentamos las reglas de nuestro interés y, además, añadimos la regla que anteriormente descargamos files.rules:
 - files.rules
Otras modificaciones pueden ser la ubicación de puertos de servicios que se encuentran con la indicación de puertos por defecto, nuestra HOME-NET, etc.
y listo.
Sobre algunas características de suricata ya escribí algo aquí: IDS / IPS Suricata. Entendiendo y configurando Suricata. Parte I

Extracción de ficheros con suricata.

Ya solo nos queda ejecutar suricata:
sudo suricata -c /etc/suricata/suricata.yaml -r ../pcap1/ids_2.pcap
Vemos la salida de información en consola:
Ejecutando Suricata 1.2.1 para extracción ficheros sesiones HTTPVamos a /var/log/suricata y vemos:
Logs de suricata 1.2.1 en /var/log/suricata y ficheros extraidos en files
Ya, en otro capítulo de Suricata IDS/IPS os hablé de los logs:
IDS / IPS Suricata. Instalación, configuración y puesta en marcha.
Dentro de la carpeta /var/log/suricata/files tendremos una serie de ficheros extraídos de la forma:
Suricata 1.2.1 fichers extraidos.
Tendríamos ficheros de texto, pfd, imágenes .js, etc ,etc ,etc,
Si editamos, por ejemplo, (estaría más a bajo del listado) file.9984.meta:
TIME:              12/07/2011-12:16:52.887378
PCAP PKT NUM:      869016
SRC IP:            195.xxx.152.xx
DST IP:            192.168.101.240
PROTO:             6
SRC PORT:          80
DST PORT:          36908
FILENAME:          /hphotos-xp-cpd4/381174_249112748_148457649_683242_1878105586_a.jpg
MAGIC:             JPEG image data, JFIF standard 1.02, comment: "*"
STATE:             CLOSED
SIZE:              10356
Tenemos información de la extracción respecto a origen, destino, puerto, etc. El archivo meta hace referencia, en este caso a file.9984.
En el explorador veríamos los ficheros:
suricata 1.2.1 extracción ficheros sesiones HTTP.

Relacionado con suricata IDS / IPS:

======
Y hasta aquí por hoy. Hasta lá próxima-

Fuente:https://seguridadyredes.wordpress.com/2012/02/01/suricata-idsips-1-2-1-extraccion-de-ficheros-de-sesiones-http-trafico-de-red/

Wireshark. Herramientas CLI. Datos estadísticos completos de todos nuestros ficheros cap/pcap a CSV / Excel.

0 comentarios
Ya vimos en su momento como obtener información de un determinado fichero pcap / cap con la herramietna CLI de Wireshark Capinfos.
capinfos a csv
En esta ocasión vamos a recopilar información estádistica de todos nuestros ficheros para volcarlo a . archivo .CSV y de este, por ejemplo, a una hoja Excel, LibreOfficce, etc.

En el anterior artículo sobre capinfos os conté:
“Respecto a la información idependiente que podemos sacar de cada fichero tenemos:
  • -t tipo. (porque puede leer varios tipos)
  • -E tipo de encapsulado
  • -c número de paquetes
  • -s tamaño archivo captura
  • -d tamaño archivo datos
  • -u duración captura
  • -a tiempo comienzo y -e final de captura
  • -S los dos datos de comienzo y final
  • Promedios
    • -y promedio datos (in bytes/sec)
    • -i promedio datos (in bits/sec)
    • -z promedio tamaño paquetes (in bytes)
    • -x promedio  paquetes (in packets/sec)
Para formatear los datos, tablas, etc, tenemos una serie de opciones. Las vemos con ejemplos:
Queremos crear una tabla con los datos de tipo, tipo encapsulado, número de paquetes de todos nuestros archivos. Usamos para ello -T para crear la tabla…..”
Pues bien ahora vamos a obtenr una serie de datos de todos nuestros ficheros pcap / cap y lo volcamos a .CSV:
capinfos -tcausx -T -m *.*cap > mis_capturas.csv
el resultado es:
capinfos a csv
una vez que tenemos el archivo .csv, importamos desde una hoja de cálculo:
capinfos a csv
Tendremos de esta forma una relación de todos nuestros ficheros de captura, tipos, fechas, estadísticas ,etc.
===
Hasta aquí por hoy. Hasta la próxima.

fuente:https://seguridadyredes.wordpress.com/2011/03/09/wireshark-herramientas-cli-datos-estadisticos-completos-de-todos-nuestros-ficheros-cappcap-a-csv-excel/

Representación gráfica Apache access.log con apache2dot y Graphviz

0 comentarios
Hemos visto muchas formas de representar el tráfico de red, alertas Snort, scan nmap, etc, de forma gráfica usando AfterGlow y Graphviz (dot, neato, circo, etc).
En esta ocasión vamos a parsear un fichero access.log de Apache para convertirlo en un fichero .dot y crear una gráfica a partir de éste.
Para ello vamos a descargar el fichero script de perl: apache2dot.pl que se encuentra aquí: http://www.chaosreigns.com/code/apache2dot/apache2dot.pl
Parseamos el access.log de esta forma:
cat /var/log/apache/access.log | perl apache2dot.pl > access.dot
para Windows podemos reemplazar el cat por type.
Una vez tengamos el fichero .dot, solo nos resta usar neato, circo, fdp, etc, para crear la gráfica:
neato -Tpng -o access.png access.dot
el resultado:

si hacemos un zoom:

===============================
Agradecimiento a javcasta.com @javcasta por su colaboración en este artículo.

Relacionado:

===============================
Y hasta aquí por hoy. Hasta la próxima.
===============================

Fuente:https://seguridadyredes.wordpress.com/2011/07/06/representacion-grafica-apache-access-log-con-apache2dot-y-graphviz/

Visualización interactiva de tráfico de red con INAV.

0 comentarios
Seguimos con la serie dedicada a Visualización gráfica de tráfico de red. En esta serie hemos visto InetVis , InetVis para detección de escan de puertos (representación tridimiensional de tráfico de red), NetGrok, Representación gráfica de tráfico de red con Argus Xplot /Jplot, Afterglow, TNV, etc, e icluso geolocalización con Snort / snoge, geolocalización con prelude correlator, Xplico, …

En esta ocasión vamos a ver una herramienta de visualización interactiva, en tiempo real, con una arquitectura cliente-servidor. Se trata de INAV (Interactive Network Active-Traffic Visualization).INAV (Interactive Network Active-Traffic Visualization). es una herramienta, como hemos comentado, del tipo cliente-servidor. El cliente desarrollado en Java y, por tanto, multiplataforma.
INAV nos muestra información del tráfico activo por nodos (host activos), la relación o conversación entre hosts, resolución DNS, rendimiento, etc.

Instalación de INAV.

Para el cliente no es necesario requisito alguno. Se trata de una aplicación en Java, por tanto multiplataforma. En este artículo ejecuraré INAV en un sistema Windows XP.
Lo descargamos (cliente) desde aquí: http://inav.scaparra.com/download/client/
Para el servidor es necesario:
  • libpcap0.8
  • libpcap0.8-dev
  • g++
Requisitos que ya tendremos resuelto si hemos seguido otros artículos similares para instalar herramietnas de tráfico de red.
Voy a instalar el server, en este caso, en un sistema GNU/Linux Security Onion. Puede ser cualquiera, también he instalado el server en un Ubuntu Linux.
Vamos a ello:
01alfon@alfonubuntu:~$ wget http://inav.scaparra.com/files/server/INAV-Server-0.3.7.tar.gz
02--2011-06-15 18:43:21--  http://inav.scaparra.com/files/server/INAV-Server-0.3.7.tar.gz
03Resolviendo inav.scaparra.com... 69.163.242.195
04Conectando a inav.scaparra.com|69.163.242.195|:80... conectado.
05Petición HTTP enviada, esperando respuesta... 200 OK
06Longitud: 93012 (91K) [application/x-tar]
07Guardando en: «INAV-Server-0.3.7.tar.gz»
08 
09100%[==============================================================>] 93.012      31,2K/s   en 2,9s
10 
112011-06-15 18:43:24 (31,2 KB/s)-«INAV-Server-0.3.7.tar.gz» guardado [93012/93012]
12 
13alfon@alfonubuntu:~$ tar xzvf INAV-Server-0.3.7.tar.gz
14INAV-Server-0.3.7/
15INAV-Server-0.3.7/README.txt
16INAV-Server-0.3.7/server/
17INAV-Server-0.3.7/server/minorVersion.txt
18INAV-Server-0.3.7/server/build.txt
19INAV-Server-0.3.7/server/clientComm.cpp
20INAV-Server-0.3.7/server/inputPlugin.hpp
21INAV-Server-0.3.7/server/edge.hpp
22INAV-Server-0.3.7/server/makefile
23INAV-Server-0.3.7/server/pcapSniffer.hpp
24INAV-Server-0.3.7/server/rectangle.cpp
25INAV-Server-0.3.7/server/ethernet.cpp
26INAV-Server-0.3.7/server/udp.cpp
27INAV-Server-0.3.7/server/log.h
28INAV-Server-0.3.7/server/constants.h
29INAV-Server-0.3.7/server/data.hpp
30INAV-Server-0.3.7/server/snifferData.cpp
31INAV-Server-0.3.7/server/sniffer.h
32INAV-Server-0.3.7/server/node.hpp
33INAV-Server-0.3.7/server/bandwidthMonitor.cpp
34 
35fon@alfonubuntu:~/INAV-Server-0.3.7/server$ make
36g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o clientComm.o clientComm.cpp
37g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o clientCommData.o clientCommData.cpp
38g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o baseData.o baseData.cpp
39g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o snifferData.o snifferData.cpp
40g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o sniffer.o sniffer.cpp
41g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o ethernet.o ethernet.cpp
42g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o ip.o ip.cpp
43g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o tcp.o tcp.cpp
44g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o packet.o packet.cpp
45g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o filterData.o filterData.cpp
46g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o graphData.o graphData.cpp
47g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o bandwidthMonitor.o bandwidthMonitor.cpp
48g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o ../common/semaphore.o ../common/semaphore.cpp
49g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o icmp.o icmp.cpp
50g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o traceroute/tracerouteData.o traceroute/tracerouteData.cpp
51g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o traceroute/tracerouteThread.o traceroute/tracerouteThread.cpp
52g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o ../common/commandLineParser.o ../common/commandLineParser.cpp
53g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o ../common/xmlParser.o ../common/xmlParser.cpp
54g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o helper.o helper.cpp
55g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o udp.o udp.cpp
56g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o ../common/parseCommas.o ../common/parseCommas.cpp
57g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o debugThread.o debugThread.cpp
58g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o ../common/mutex.o ../common/mutex.cpp
59g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o ../common/threads.o ../common/threads.cpp
60g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o dataQueue.o dataQueue.cpp
61g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o inavServer.o inavServer.cpp
62g++ -lpthread -lpcap -o inavd clientComm.o clientCommData.o baseData.o snifferData.o sniffer.o ethernet.o ip.o tcp.o packet.o filterData.o graphData.o bandwidthMonitor.o ../common/semaphore.o icmp.o traceroute/tracerouteData.o traceroute/tracerouteThread.o ../common/commandLineParser.o ../common/xmlParser.o helper.o udp.o ../common/parseCommas.o debugThread.o ../common/mutex.o ../common/threads.o dataQueue.o inavServer.o
63alfon@alfonubuntu:~/INAV-Server-0.3.7/server$
Como el server está instalado en un Security Onion, ahora hay que abrir el puerto 5000 para que el cliente se pueda establecer la comunicación:
iptables -A INPUT -p tcp –dport 5000 -j ACCEPT

Ejecutando INAV.

Vamos a ejecutar el servidor de la forma:

Ahora desde mi Windows XP o desde donde tenga el cliente ejecutamos el archivo java:

En la consola, del servidor aparecerán las conexiones, nodos, etc:

Visualizando la actividad de los hosts activos en el cliente.

Ya hemos ejecutado el archivo java y aparecerá una interface gráfica que, en unos segundos, comenzará a tener actividad de forma interactiva, aparfciendo los nodos, relaciones entre ellos, etc.
Eso sí, antes tendremos que indicar el la parte superior el host donde se encuentra el servidor y el puerto (por defecto el 5000).  Pulsamos en connect y

La información que muestra INAV es clara y tampoco necesita mayor explicación.
Se visualizarán solo los nodos o host que estén activos, cuando no lo estén desaparecerán de la zona de visualización de nodos.
Abajo vemos la relación entre uno de las puertas de enlace del laboratorio con otros host externos, el ancho de banda indicado por código de colores, puertos usados..:

Los host irán apareciendo y despareciendo, mostrando información, relaciones, ancho de banda, … todo en tiempo real.
INAV es capaz de gestionar grandes volúmenes de información y representación de nodos. Eso sí, necesitamos tener una buena “máquina”.
===
Y hasta aquí por hoy. Hasta la próxima.

fuente:https://seguridadyredes.wordpress.com/2011/06/16/visualizacion-interactiva-de-trafico-de-red-con-inav/

Wireshark. Extracción ficheros binarios y Objetos HTTP.

0 comentarios
Cuando en Wireshark realizamos una captura de paquetes relacionada con el protocolo HTTP, podemos ver, e incluso guardar, todos los objetos transmitidos durante la conexión. También es posible extraer ficheros binarios de una captura determinada.

Extracción binarios en Wireshark.
Lo vemos con un ejemplo muy básico y sencillo. Tenemos una captura .pcap de una sesión FTP en la que se ha descargado un archivo:
wireshark extaccion ficheros binarios raw
Si nos situamos en el paquete 44 y hacemos un Follow TCP Stream, obtenemos:
wireshark extaccion ficheros binarios raw follow tcp stream
Tenemos marcada la opción Raw. Salvamos el archivo con estensión .jpg ya que hemos visto que se trata de un fichero .jpg (JFIF).
Vemos el contenido del archivo que se trata de, como hemos visto, una imagen jpg:
nmap
.
Export Selected Packet Bytes.
Otra forma es usando la exportación de Bytes del campo DATA.
Si nos situamos en el campo DATA y Botón derecho ratónExport Selected Packet Bytes:
wireshark extaccion ficheros binarios raw export select bytes DATA
Lo hacemos con los dos paquetes con datos en DATA y lo unimos, de esta forma obtenemos tambíen:
nmap
.
Extracción objetos HTTP en Wireshark.
Durante la transmisión de datos en una captura bajo el protocolo HTTP, podemos visutalizar objetos  HTTP y exportarlos.
Esto lo podemos hacer desde File> Export > Objects > HTTP y nos paparece una ventana:
wireshark extaccion ficheros objetos http
Tan solo nos queda situarnos sobre el objeto que nos interese y Save As o Save All.

Fuente: https://seguridadyredes.wordpress.com/2010/03/22/wireshark-extraccion-ficheros-binarios-y-objetos-http/

IPerf. Midiendo ancho de banda entre dos hosts.

0 comentarios
Para la evaluación de rendimientos en las comunicaciones en nuestra red local y posterior optimización de los parámetros, disponemos de multitud de herramientas multiplataforma. Una de ellas es IPerf.
Con IPerf podemos medir el ancho de banda y rendimiento de una conexión entre dos host. Se trata, pues, de una herramienta cliente-servidor.
NOTA: Ya tenéis la segunda parte de este artículo: Jperf. El frontend gráfico de iperf. Rendimiento de la red.
Actualizado en enlace descarga para Windows.

Podemos descargar Iperf desde aquí. Y para win32 y otras plataformas desde aquí.
Al tratarse de una herramienta cliente-servidor, tendremos que ejecutar Iperf en dos máquinas. Una hará de Servidor y otra de Cliente.
IPerf como servidor.
La forma más básica de ejecución como servidor es:
>iperf -s
————————————————————
Server listening on TCP port 5001
TCP window size: 8.00 KByte (default)
————————————————————

En este momento IPerf se encuentra a la “escucha” en le puerto 5001.
IPerf como cliente.
En la máquina cliente IPerf, de la forma más sencilla lo ejecutamos de esta manera:
>iperf -c 192.168.1.250
————————————————————
Client connecting to 192.168.1.250, TCP port 5001
TCP window size: 63.0 KByte (default)
————————————————————

Conectamos con el servidor (192.168.1.250) y se envian una serie de paquetes para calcular el ancho de banda en la conexión. El resultado es el siguiente:
>iperf -c 192.168.1.250
————————————————————
Client connecting to 192.168.1.250, TCP port 5001
TCP window size: 63.0 KByte (default)
————————————————————
[844] local 192.168.1.30 port 3545 connected with 192.168.1.250 port 5001
[ ID] Interval Transfer Bandwidth
[844] 0.0-10.0 sec 113 MBytes 94.8 Mbits/sec

94.8 Mbits/sec en una red a 100 Mbits.
Claramente vemos el rendimiento de la conexión.
Configurando IPerf.
Podemos configurar tanto el cliente como el servidor para personalizar un poco las mediciones.

Como servidor.
A parte de la opción -s que deja a IPref a la escucha, podemos usar:
  • -D como servicio
  • -R remover servicio
  • -u recibir datagramas UDP en vez de TCP por defecto.
  • -P x número de conexiones simultáneas
  • -m muestra MTU (depende del sistema operativo )
  • -w specifica el tamaño de Ventana (TCP window size). Muy útil para ir calculando nuestro tamaño de ventana más óptimo según las mediciones de ancho de banda.
  • -f[bkmBKB] mostrar resultados en bits/s, kilobits/s, megabytes/s, Bytes/s, KiloBytes/s, MegaBytes/s (s=segundos). Tanto en cliente como servidor:
>iperf -c 192.168.1.250 -f B
————————————————————
Client connecting to 192.168.1.250, TCP port 5001
TCP window size: 64512 Byte (default)
————————————————————
[844] local 192.168.1.30 port 3591 connected with 192.168.1.250 port 5001
[ ID] Interval Transfer Bandwidth
[844] 0.0-10.0 sec 118792192 Bytes 11860687 Bytes/sec

Como cliente.
Lo más básico es -c IP pero podemos establecer otras opciones, las más importantes:
  • -f[bkmBKB] (igual que lo comentado como servidor)
  • -w (lo mismio que para servidor)
  • -m muestra MTU (depende del sistema operativo)
  • -T ttl especifica valor TTL
  • -i segundos especifica un intervalo, medido en segundos, en el cual se volverá a realizar la medición.
  • -t segundos tiempo duración transmisión. Hace más fiable la medida.
>iperf -c 192.168.1.250 -t 60
————————————————————
Client connecting to 192.168.1.250, TCP port 5001
TCP window size: 63.0 KByte (default)
————————————————————
[844] local 192.168.1.30 port 3670 connected with 192.168.1.250 port 5001
[ ID] Interval Transfer Bandwidth
[844] 0.0-60.0 sec 669 MBytes 93.5 Mbits/sec

  • -p especifica puerto en el que escucha el servidor
  • -u envio de UDP en vez de TCP por defecto. Podemos medir también pérdida de paquetes:
cliente:
>iperf -c 192.168.1.250 -u -f MB -t 60
————————————————————
Client connecting to 192.168.1.250, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size: 0.06 MByte (default)
————————————————————
[844] local 192.168.1.30 port 3745 connected with 192.168.1.250 port 5001
[ ID] Interval Transfer Bandwidth
[844] 0.0-60.0 sec 7.50 MBytes 0.12 MBytes/sec
[844] Server Report:
[844] 0.0-60.0 sec 7.06 MBytes 0.12 MBytes/sec 0.000 ms 314/ 5351 (5.9%)
[844] Sent 5351 datagrams

respuesta servidor:
>iperf -s -u -f MB -i1
————————————————————
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size: 0.01 MByte (default)
————————————————————
[1964] local 192.168.1.250 port 5001 connected with 192.168.1.30 port 3744
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[1964] 0.0- 1.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 544436086/ 89 (6.
1e+008%)
[1964] 1.0- 2.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 2.0- 3.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 3.0- 4.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 4.0- 5.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 5.0- 6.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 6.0- 7.0 sec 0.13 MBytes 0.13 MBytes/sec 0.000 ms 0/ 90 (0%)
[1964] 7.0- 8.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 8.0- 9.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 9.0-10.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 0.0-10.0 sec 1.25 MBytes 0.12 MBytes/sec 0.000 ms 0/ 893 (0%)
[1964] local 192.168.1.250 port 5001 connected with 192.168.1.30 port 3745
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[1964] 0.0- 1.0 sec 0.13 MBytes 0.13 MBytes/sec 0.000 ms 0/ 90 (0%)
[1964] 1.0- 2.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 2.0- 3.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 3.0- 4.0 sec 0.13 MBytes 0.13 MBytes/sec 0.000 ms 0/ 90 (0%)
[1964] 4.0- 5.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 5.0- 6.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 6.0- 7.0 sec 0.12 MBytes 0.12 MBytes/sec 0.136 ms 0/ 89 (0%)
[1964] 7.0- 8.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 8.0- 9.0 sec 0.12 MBytes 0.12 MBytes/sec 0.020 ms 0/ 89 (0%)
[1964] 9.0-10.0 sec 0.13 MBytes 0.13 MBytes/sec 0.000 ms 0/ 90 (0%)
[1964] 10.0-11.0 sec 0.12 MBytes 0.12 MBytes/sec 0.062 ms 0/ 89 (0%)
[1964] 11.0-12.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 12.0-13.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 13.0-14.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 14.0-15.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 15.0-16.0 sec 0.13 MBytes 0.13 MBytes/sec 0.000 ms 0/ 90 (0%)
[1964] 16.0-17.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 17.0-18.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 18.0-19.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 19.0-20.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[1964] 20.0-21.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 21.0-22.0 sec 0.13 MBytes 0.13 MBytes/sec 0.000 ms 0/ 90 (0%)
[1964] 22.0-23.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 23.0-24.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 24.0-25.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 25.0-26.0 sec 0.12 MBytes 0.12 MBytes/sec 1.108 ms 0/ 89 (0%)
[1964] 26.0-27.0 sec 0.12 MBytes 0.12 MBytes/sec 0.004 ms 0/ 89 (0%)
[1964] 27.0-28.0 sec 0.13 MBytes 0.13 MBytes/sec 0.840 ms 0/ 90 (0%)
[1964] 28.0-29.0 sec 0.12 MBytes 0.12 MBytes/sec 0.003 ms 0/ 89 (0%)
[1964] 29.0-30.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 30.0-31.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 31.0-32.0 sec 0.12 MBytes 0.12 MBytes/sec 1.986 ms 0/ 89 (0%)
[1964] 32.0-33.0 sec 0.12 MBytes 0.12 MBytes/sec 0.006 ms 0/ 89 (0%)
[1964] 33.0-34.0 sec 0.13 MBytes 0.13 MBytes/sec 0.000 ms 0/ 90 (0%)
[1964] 34.0-35.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 35.0-36.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 36.0-37.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 37.0-38.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 38.0-39.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 39.0-40.0 sec 0.13 MBytes 0.13 MBytes/sec 0.000 ms 0/ 90 (0%)
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[1964] 40.0-41.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 41.0-42.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 42.0-43.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 43.0-44.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 44.0-45.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 45.0-46.0 sec 0.13 MBytes 0.13 MBytes/sec 0.000 ms 0/ 90 (0%)
[1964] 46.0-47.0 sec 0.00 MBytes 0.00 MBytes/sec 0.000 ms 0/ 1 (0%)
[1964] 47.0-48.0 sec 0.00 MBytes 0.00 MBytes/sec 0.000 ms 0/ 0 (-1.$%)
[1964] 48.0-49.0 sec 0.00 MBytes 0.00 MBytes/sec 0.000 ms 0/ 0 (-1.$%)
[1964] 49.0-50.0 sec 0.11 MBytes 0.11 MBytes/sec 3.386 ms 277/ 355 (78%)
[1964] 50.0-51.0 sec 0.12 MBytes 0.12 MBytes/sec 0.011 ms 0/ 89 (0%)
[1964] 51.0-52.0 sec 0.13 MBytes 0.13 MBytes/sec 0.000 ms 0/ 90 (0%)
[1964] 52.0-53.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 53.0-54.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 54.0-55.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 55.0-56.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 56.0-57.0 sec 0.12 MBytes 0.12 MBytes/sec 0.000 ms 0/ 89 (0%)
[1964] 57.0-58.0 sec 0.07 MBytes 0.07 MBytes/sec 2.658 ms 37/ 90 (41%)
[1964] 58.0-59.0 sec 0.12 MBytes 0.12 MBytes/sec 0.009 ms 0/ 89 (0%)
[1964] 0.0-60.0 sec 7.06 MBytes 0.12 MBytes/sec 0.000 ms 314/ 5351 (5.9%)


Fuente:https://seguridadyredes.wordpress.com/2008/06/18/iperf-midiendo-ancho-de-banda-entre-dos-hosts/
Powered by Bad Robot
Helped by Blackubay