#4sysadmins

Inicio » Comandos para el diagnóstico de la red

Comandos para el diagnóstico de la red

ping/ping6: Verificar la conectividad con un host remoto

ping [opciones] host

Opciones

  • Limitar el número de envíos de paquetes ICMP: -c <num>
  • Indicar un intervalo de tiempo entre el envío de cada paquete ICMP al host remoto: -i <tiempo>
  • Hacer un envío masivo de ping. Envía los paquetes con la misma velocidad que los recibe o cien veces por segundo: -f
  • Muestra solo salidas numéricas: -n
  • Intenta enviar tantos paquetes tan rápido como le sea posible antes de volver a su comportamiento normal: -l
  • Especifica el número de bytes que se van a enviar. La cantidad por defecto es 56 + 8 de la cabecera ICMP: -s

traceroute/traceroute6: Envía una serie de tres paquetes de prueba a cada ordenador entre nuestro sistema y el host remoto especificado, mostrando todos los routers que existen de por medio y los tiempos de respuesta.

traceroute [-6] [opciones] destino

Opciones:

  • Mostrar solo salidas numéricas: -n
  • Especificar por cual interfaz de red queremos enviar los paquetes: -i <interfaz>
  • Especificar el número máximo de saltos: -m <saltos>
  • Indicar una gateway alternativa: -g <gateway>
  • Indicar el tiempo límite de espera para una respuesta: -w

tracepath/tracepath6: Una alternativa a traceroute. Genera una línea de salida por cada paquete de prueba, por lo que su salida es más extensa.

tracepath [opciones] destino

Opciones:

  • Mostrar solo salidas numéricas: -n
  • Mostrar tanto la dirección IP como el nombre de host: -b
  • Especificar el número máximo de saltos: -m <saltos>
  • Indicar el puerto inicial de destino. Esto también es posible hacerlo con traceroute. El puerto de destino se va incrementando en uno a medida que se envían paquetes de pruebas: -p <puerto>

netcat (nc): Es una de las herramientas de diagnostico y seguridad mas populares dentro de la comunidad GNU/Linux. Trabaja tanto con conexiones TCP como UDP y permite hacer cosas como por ejemplo abrir puertos en host remoto quedándose a la escucha de posibles conexiones, rastrear puertos abiertos o realizar transferencias de archivos bit a bit entre dos equipos. Funciona tanto para IPv4 como para IPv6.

  • Para dejar a nc como servidor a la escucha (-l, listen) en un determinado puerto. nc aceptará la conexión de un único cliente y se cerrará:
# nc -l <unpuerto>
  • Para abrir una conexión como cliente del servidor del ejemplo anterior:
# nc <equiposervidor> <unpuerto>
  • Abrir una conexión en el servidor para recibir datos desde un cliente:
# nc -l <unpuerto> > <archivo-donde-se-vuelva-el-contenido>
  • Enviar desde el cliente un archivo para que sea volcado en la conexión del ejemplo anterior:
# nc <equiposervidor> <unpuerto> < <archivo-que-será-volcado-en-el-servidor>
  • Revisar que puertos TCP (opción por defecto) están abiertos dentro de un ranto de puertos determinado (para nuestro ejemplo usaremos el rango 10-50) en un sistema:
# nc -vz <unequipo> 10-50

Netcat acepta algunas opciones entre las que destacamos (a parte de -l, listen y -vz) -p para especificar un puerto, -k para cambiar el comportamiento de escucha del primero de los ejemplos, es decir aceptar infinitas conexiones y evitar que la conexión se cierre, cambiar el protocolo de puerto por defecto TCP a UDP con -u, especificar un retraso (delay) en el envío o recepción de mensajes -i.

netstat: Puede considerarse la herramienta por excelencia para el diagnóstico de red. Dependiendo de los parámetros que le pasemos podrá utilizarse en lugar de muchas otras. Un uso de netstat sin opciones puede mostrarnos gran información, como por ejemplo los puertos que tenemos abiertos con conexiones establecidas o cerrados y ademas los hosts y servicios que se conectan a ellos.

netstat [opciones] host

Opciones:

  • Recibir información sobre nuestras interfaces de red (similar a ifconfig): -i, –interface.
  • Para obtener un listado de la tabla de enrutamiento (similar a route): -r, –route.
  • Informar sobre las conexiones en las que intervenga las funciones de NAT: -N, –masquerade.
  • Podremos usar la siguiente línea para indicar valores específicos:
# netstat -punta <host>

Donde:

-p muestra el PID y el servicio que hace uso del puerto
-u informa de los puertos UDP (además de los TCP, opción por defecto)
-n expresa los host y puertos mediante números (útil si queremos redireccionar la salida con una pipe para buscar un puerto específico con grep),
-t muestra el estado de la conexión (LISTEN, ESTABLISHED, CLOSE, CLOSE_WAIT, etc..)
-a muestra todas las conexiones y puertos de escucha.
Si queremos encontrar directamente servidores que escuchan conexiones podemos agregar -l a -p

lsof: Identifica que archivos están abiertos en el sistema: archivos regulares, directorios, tuberías, librerías o socket de red entre otros, quién accede a ellos, nombre e ID del proceso, la ruta absoluta del archivo, su descriptor, etc… útil por ejemplo si queremos desmontar un sistemas de archivos (incluso los de red) pero existen conexiones abiertas a determinados archivos y queremos tener información al respecto.

lsof [opciones] archivo

Opciones

  • Listar los ficheros abiertos por un proceso: -c <proceso>
  • Listar los procesos que están usando un directorio: +D <directorio>
  • Mostrar todos los ficheros de red utilizados por procesos de red: -i
lsof -i :21
lsof -i :ftp
  • Informar sobre todos los hilos TCP con su correspondientes programas ejecutados: -i tcp

Truco: Averiguar cuantos ficheros tiene abiertos cada proceso:

lsof | awk '{ print $1 }' | sort | uniq -c | sort -n

Con awk cortamos la primera columna (la de los servicios), la ordenamos con sort para tenerlos todos agrupados. Con uniq -c añadimos el prefijo a la línea con el número de ocurrencias y por último ordenamos por número de ocurrencias. Podemos terminar con |grep <servicio o programa> para concretar:

lsof | awk '{ print $1 }' | sort | uniq -c | sort -n |grep smbd

Nota: Este comando también se utiliza para la detección de intrusión.

nmap: El utilitario nmap es un escaner de puertos abiertos tanto del ordenador local como de un ordenador remoto.  El comando nmap trabaja por defecto con paquetes SYN, paquetes que intentan abrir conexiones bajo TCP. Cuando escaneamos puertos con nmap podemos encontrarnos con tres estados diferentes del puerto: OPEN (abierto), CLOSE (cerrado) o FILTERED (puerto no accesible, un cortafuego lo está filtrando).

nmap [opciones] host

Opciones:

  • Evitar conversiones DNS: -n
  • Realizar un escáner que no deja registro en el sistema:  -sS
  • Realizar un barrido de puertos TCP: -sT
  • Provocar un barrido de puertos UDP útil si necesitamos conocer puertos de nivel superior que pueden estar tras un firewall: -sU
  • Usar paquetes ACK para lograr que el sistema responda (muchos firewall no filtran estos mensajes, por lo que podemos detectar puertos abiertos mas sutilmente): -sA
  • Intentar pasar un firewall mal configurado y permitirnos ver que servicios se están ejecutando en el sistema: -sN o -sF
  • Intenta identificar los servicios en relación con los puertos abiertos (puede detectar vulnerabilidades): -sV

tcpdump: Vuelca el tráfico de la red

tcpdump puede interceptar paquetes de red para registrarlos o mostrarlos por pantalla o, incluso almacenar los resultados en un archivo para su posterior estudio, siempre que empleemos la opción -w.

Opciones:

  • Si queremos mostrar el contenido de los paquetes en código ASCII: -A
  • Para mostrar una lista de interfaces en las que puede escuchar tcpdump: -D
  • Mostrar solo salidas numéricas: -n
  • Mostrar información ampliada: -vv y -vvv

Deja un comentario, Gracias!

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: