You are on page 1of 13

UNIVERSIDAD POLITCNICA SALESIANA - SEDE QUITO FACULTAD DE INGENIERAS ESCUELA DE SISTEMAS OCTAVO NIVEL

TRADUCCION PDF2

Carlos Miguel Crdenas Riofro Quito, 15-05-2010

Herramientas de Red Informacin general. En este tutorial, vamos a cubrir las herramientas que se utilizan normalmente las redes de investigacin enfermos (no se mezclen de iones en que l "mundo real" para la depuracin). Comenzamos con netstat y tcpdump, que describe brevemente cmo o usar cada una de esas herramientas mirando una conexin TCP vivir y dar sentido a su produccin. Bueno uso netstat para describir una de yo mismo sutilezas de la mquina de estados TCP. A continuacin, veremos una pareja o de bsqueda basado tom, cavar y whois, que proporcionan informacin acerca de la informacin sobre los hosts DNS, y la informacin de registro acerca de los nombres y las redes, respectivamente. A continuacin, se pasar a la norma de medicin herramientas de red, el ping y, ms interesante, traceroute, que describe cmo funcionan y lo que oye hacer (y no) te dir. Por ltimo, para aquellos de ustedes que no saben perl. Te voy a mostrar cmo "atar cosas juntos", demostrando un perl script simple que toma nuestro rastro y los recuentos de bytes a las direcciones IP de destino y sistemas autnomos. 1 tcpdump y netstat Cmo funciona el tcpdump? Para derivado ncleos de BSD, el Berkeley Packet Filter (BPF) est disponible. El filtro lugares el controlador de dispositivo en modo promiscuo, recibe desde el controlador de recibir todos los paquetes transmitidos y recibidos. Estos paquetes se ejecuta a travs de un filtro especificado por el usuario, de modo que slo los paquetes que el usuario especfica tan interesante se pasar al proceso de usuario. Qu hay de lo costoso que constantemente atrapar al ncleo de las pequeas lee? Un valor de tiempo de espera de proceso por lotes con lecturas resuelve este problema. El filtrado se realiza en el ncleo. Esto limita la cantidad de datos que se deben copiar desde el ncleo hacia el espacio de usuario. Aqu es el viento la salida de tcpdump-i eth0 host aros.ron.lcs Jolt. Edu puerto ssh desde mi mquina se ver as:

Qu est pasando con la opcin de marca de tiempo? Por ejemplo, por qu no marcar un paquete con la hora actual ii fue enviado? (Reloj de sincronizacin requiere.) La informacin incluida en cada lnea: una marca de tiempo, el origen y destino (direccin IP y el puerto), banderas de TCP, informacin de segmento (inicio, final, tamao), reconocimientos, tamao de la ventana, varias otras opciones de TCP. La "p" significa "empujar" los datos recibidos de la aplicacin tan pronto como sea posible. Observe el sentido apretn de manos 3. Adems, observe el proceso de derribar una conexin:

Describa brevemente el diagrama de transicin de estados como el resumen del conjunto de reglas "de cmo se comporta TCP. Por qu la conexin entra en estado de tiempo de espera? Ntese que esta es tambin llamado el "2MSL" (tiempo de vida mximo de segmento) del estado. El final que realiza el cierre activo no sabe si el ACK final fue recibido en su vida, por lo que no sabe que la otra parte ha cerrado la conexin. El hecho de que FIN llega, no podemos asumir que la conexin est cerrada - segmentos pueden llegar fuera de orden. Puedes pensar en varios ataques en TCP? nmero de secuencia secuestro es un ejemplo. una avalancha de ataques SYN es otro? Cmo defenderse de una inundacin SYN? Un enfoque es algo que se llama "SYN cookies", mediante el cual el emisor no establecer el estado de una conexin hasta despus de las tres vas apretn de manos se ha completado (en lugar de entrar en el estado SYN recibido inmediatamente despus de recibir la primera SYN). Esto se se describe en la conferencia en las prximas semanas. 2 Bsqueda de Herramientas: dig y whois excavar es una utilidad de bsqueda de DNS. Es similar a nslookup, dig, pero es ms potente. Usted puede hacer una consulta para los distintos tipos de registros. Lo ms comn (y por defecto) es el registro "A", que asigna un nombre DNS a una direccin IP.

Aqu hay alguna salida de ejemplo para una bsqueda en mi mquina. Observe que la consulta es para un registro "A". Cavar tambin devuelve un montn de informacin til. Por ejemplo, devuelve el "NS" registros lcs.mit.edu. Los registros NS devolver los servidores DNS con autoridad para un dominio en particular. Noten que tambin consigue la "A" para todos los registros de esas mquinas. Por qu hay un punto al final de cada dominio? Debido a que este le dice que el nombre es completamente calificado (intente buscar ia ia vs. En las mquinas MIT). Los nmeros tales como "1800" describe el tiempo que un servidor DNS local debe almacenar en cach el resultado de esa respuesta. Explique lo que la salida se parece a cuando el nombre no se resuelve nada. Explicar el mismo para el DNS inverso, parcialmente calificado nombres de dominio, etc.

Otras cosas que puede ver son los tipos como CNAME. A menudo las personas tienen alias. o varios nombres para una sola mquina. Esto se implementa el uso de nombres cannicos, que se expresan en el DNS a travs de un registro CNAME. Esto se muestra a continuacin:

Tambin se puede utilizar cavar para buscar el servidor de correo de un dominio determinado. Digamos que alguien quera enviar un mail a feamster@lcs.mit.edu, cmo hace su programa de correo encontrar el servidor de correo responsable de entregar el correo a lcs.mit. la educacin? Esto se expresa a travs de un registro MX. Me puede hacer una consulta de este registro, por ejemplo, escribiendo cavar lcs.smit.edu MX. Qu pasa con los nmeros? Expresan su preferencia por un servidor de correo sobre el otro.

Tambin puede utilizar cavar para hacer bsquedas inversas. dig-x es la forma ms sencilla de hacer esto. Cave tambin se puede utilizar en modo batch. Vea la pgina man para ms detalles. whois es tambin una til herramienta que le permite consultar un servidor whois. Hay unos pocos tipos de servidores whois. Uno es el "nic" Los servidores, que suelen darle informacin acerca de quin es un nombre particular registrado. El valor predeterminado whois servidor en mi mquina es whois.crsnic.net. Este servidor whois a continuacin, emite una consulta a un servidor whois que se encarga de registrar ese nombre. Un extracto de la salida es a continuacin:

Whois tambin se puede utilizar para consultar los registros de direcciones, AWN (Amrica del Norte), APNIC (Asia), y RIPE (Europa). Por ejemplo, digamos que yo quera saber ms acerca de la direccin 18.31.0.38:

Tenga en cuenta tambin la fecha en que fue la ltima actualizacin de bases de datos. y cuando el registro de la ltima actualizacin. Esto puede darle una idea acerca de la exactitud de la informacin. Adems de servidores whois que se utilizan para resolver nombres en dominios administrativos, existen servidores whois que ayudan a los nmeros de mapa en dominios administrativos. En concreto, los "nmeros" (es decir, direcciones IP y nmeros AS) son gestionados por las siguientes organizaciones: RIPE: los europeos IP Reseaux AWN: Registro de Nmeros de Internet (tambin se Allica) APNIC: Asia Pacfico Centro de Informacin de Red (y Australia) Si quisiera saber algo sobre alguna direccin IP o el nmero de AS en el MIT. Pude, pues, como el servidor de ARIN whois (whois.arin.net). El servidor whois ARIN tiene un montn de opciones agradables en donde se puede limitar la consulta a un tipo de registro especfico. Digamos que yo quera mirar hacia arriba "AS 701":

Las preguntas sobre superredes Tambin se admiten: Un IC PIN (whoise. APNIC. Netas) y (whois.ripe.net RIPE) trabajo en una manera similar. Cmo debemos ir sobre la bsqueda del sistema autnomo para una red particular o la direccin IP? Hay otra base de datos WHOIS, llamado RADB, que mantiene esta informacin hasta relativamente al da. Tenga en cuenta que as es como se resuelve traceroute-A direccin IP a AS.

3 Instrumentos de medicin: ping y traceroute ping es un sencillo programa que enva un mensaje ICMP "Echo Request" mensaje a una mquina y espera a escuchar una respuesta ICMP Echo''". Es bsicamente til lin-decir si un host en particular es responder (y por tanto, que en realidad es activado. En la red, etc Ping tambin muestra un alto valor de RTT para cada solicitud de par de respuesta, y un nmero de secuencia. Ping har un resumen de la tasa de prdida tambin. Tenga en cuenta que la RTT puede no ser completamente exacto, ya que ICMP no est en el camino rpido para muchos routers. Interesante incIude opcin "f" (inundaciones, requiere a veces de raz), "c" (enviar un cierto nmero de paquetes), "s" (especificar el tamao del paquete, a veces til para mirar a la fragmentacin).

Trate de enviar pings de tamao de paquete grande, y ver el ID de la propiedad intelectual en tcpdump. traceroute es una herramienta para conseguir una idea sobre la ruta que un host en particular se ocupa de un determinado destino. Tracerouter enva un paquete IP con el aumento de los valores TTL (en realidad, el 3 por valor TTL), y la escucha de ICMP "TIMEagotado" las respuestas para cada tramo a lo largo de la ruta de acceso al host. Algunas cosas importantes a observar sobre traceroute: Cada salto se especifica una interfaz (de los que superaron las pginas cuando se present), no un host o un router. Un camino puede atravesar ms de un tramo de un router en particular. Puede darse el caso de que la fuente del tiempo excedido se establece en la direccin IP de la interfaz de salida en el camino de regreso a la acogida, y no la interfaz que el paquete lleg. Esto puede producir algunos resultados sorprendentes. Un fallo en un traceroute no indica una falla en ese momento (necesariamente). Podra indicar un fallo en el camino inverso, por ejemplo. Adems. "*" No indica una condicin de falla, necesariamente, lo que podra significar, por ejemplo, que el router no responde a los mensajes ICMP. Tenga en cuenta que la versin de traceroute en la mayora de las mquinas no es compatible con la "opcin-A". Puede hacerlo manualmente (como arriba), la multa de la RPM o un paquete existente apropiado para su mquina, o descargue el "Nanog Tracerotite" de http://nms.lcs. Mit.edu / 6 .829/other / traceroute- nanog.tar. gz. y compilarlo para su mquina en particular (ya sea traceroute en cuenta que requiere privilegios de superusuario para ejecutar, o bien debe ponerlo en "setuid root", o se obtendr errores de permiso).

4 Perl

En esta seccin, veremos cmo utilizar Perl (un lenguaje de programacin popular) para realizar dos tareas de anlisis en un archivo tcpdump: Cuente el nmero de bytes transferidos desde un host a otro Parcela traza un ack Tenga en cuenta que el siguiente cdigo no le muestra cmo utilizar algunas cosas bsicas, tales como arrays y hashes, que tambin ser de utilidad para el problema planteado. Para obtener esta informacin (y para obtener ms informacin acerca de las expresiones regulares, Peri, etc, un buen libro es de programacin Perl, el libro de O'Reilly por Larry Wall. Las pginas del manual de Perl (tipo "pert hombre en un sistema Unix) son tambin una excelente referencia. El siguiente programa hace dos cosas: tiene una funcin para contar bytes en una traza de tcpdump, dada la tcpdump archivo de seguimiento (en el formato adecuado seguimiento de descarga), y otra funcin para producir un "ACK seguimiento" para que trazan tcpdump. Las dos funciones estn separadas por debajo con fines pedaggicos. He mostrado su aqu para darte una idea de lo que perl Aspecto del producto y cmo hacer las cosas bsicas que son de utilidad para la creacin de redes de investigacin y anlisis, lo que no es un tutorial sobre el lenguaje.
# '/usr/bin/perl use strict;

# variables para la definicin del programa my $gnuplot = "/usr/local/bin/gnuplot"; my $tcpdump = /usr/local/sbin/tcpdump":

# Donde mi tracefile es, y la fuente y sumidero # Es posible que desee especificar en realidad este tipo de cosas # Con una opcin, por ejemplo, utilizando el Getopt:: Paquete de largo my $ trace = "/ home / feamster / rv.tr"; mi fuente $ = "ruta views.oregon-ix.net.telnet"; mi fregadero $ = "ginseng.lcs.mit.edu.3967"; sub calculate_bytes {

# Calcula el nmero de bytes transferres forma el nacimiento hasta la # fregadero, dado un archivo de traza de tcpdump my $ total_bytes = 0 # Abrir un identificador de archivo para leer la salida del proceso. open(F, $tcpdum r $trace |) || die Cantt open $trace: $!\n;

while (<F>) {

# Partido en un patrn especfico, basado en las lneas de tcpdump # Queremos mirar attraffic desde el nacimiento hasta el fregadero en este caso If (/~$source.*$sink.*\((\d+)\)/) {

# Aadir el nmero total de bytes que la bruja fue acompaado por () $total_bytes += $1; } pag 9

) printf "bytes total =% d \ n", $ total_bytes; ) sub_time_to_msec { # takes tcpdump-formatted time and outputs in milliseconds my ($time) = @_; # split into the hours,mins,secs part and the microseconds part, around "." my ($hms. $usec) = split(/\./, $time); # split the hours,mins,secs part and distinct values my ($hms,$min,$sec) = split(/:/.$hms): return( (($hr*60+$min)*60 + $sec)*1000000+$usec)/1000); } sub plot_ack_trace { my ($starttime. $last_time); my $tmpfile = "/tmp/acktrace.dat"; my $gpfile = "/tmp/acktrace.gp"; my $Fngfile = "/tmp/acktrace.png"; # TMP es un archivo de salida mango, donde le enviaremos los datos con formato abierto (TMP-> Stmpfile ") | | die" No se puede abrir $ n tmpfile: $! \ "; # Abrir un identificador de archivo para leer la salida del proceso. open (F,"$ tcpdump-r Strace") die "No se puede abrir la traza $: $ \ n"; while (<F>) (

# Coincidencia en la fecha y hora, y el nmero seguido de "ack" if (/^(\d+:\d+:\d+\.\d+).*$sink.*$source.*ack (\d+)/) { my $timestamp = &time_to_msec($1); # normalize the time, so that the first timestamp is "0"; $starttime = $timestamp if (!defined($starttime)); my $window = $2; printf TMP % lf %d\n", $timestamp-$starttime, $window; $last_time = $timestamp-$starttime; ) ) close (F); close (TMP); # impresin automtica de los comandos de gnuplot open (GPFILE, >$gpfile")|| die "Can't open $gpfile: $!\n; print GPFILE <<EOF _GP; set xlabel "Time (msec)"; set ylatel "Sequence Number (bytes)"; set term png color; set output "$pngfile"; set xrange[10000:12000] ; plot"$tmpfile" using 1:2; set xrange 0:100; EOF_GP close(GP) ; # Llamada al sistema para ejecutar gnuplot e imprimir nuestro grfico system("$gnuplot $gpfile"); } &calculate_bytes(); &plot_ack_tr ace() ; }

&calculate_bytes(); &ack_trace();

calculate_bytes imprime algunos esperamos correcta) nmero (de bytes enviados desde routeviews al ginseng. ack_trace La funcin produce la siguiente figura, (esto es en realidad un zoom sobre la traza completa ACK para la conexin completa):

Por qu el seguimiento de la vista gorda, verdad? Es bsicamente porque estamos viendo el lado del receptor: el emisor se llena la ventana de congestin, estamos ACK-cin ventana de la pena de paquetes, y el proceso se repite.

You might also like