Herramientas simples y útiles para un adminsitrador de red

Existen cientos por no decir miles de pequeñas herramientas que pueden ser más que útil para cualquier administrador de red, o incluso de sistemas, pero quiero enfocarme más en la red.

En el programa de hoy vamos a ver un buen número de herramientas que nos pueden hacer la vida más fácil y que es interesante que vayamos añadiendo poco a poco a nuestro día a día. Seguro que muchos ya usáis muchas de ellas sin ser conscientes que son unas herramientas de fantásticas para ayudarnos en caso de problemas, así que hoy voy a daros unas cuantas pequeñas herramientas para aumentar vuestro repertorio.

Vamos a empezar por una muy facilita, arp, el comando arp -a  nos va a indicar la dirección IP y la mac de lo que tengamos en nuestra tabla de ARP.

edu@thinkpad ~ # arp -a
? (192.168.88.249) en 6c:ad:f8:95:65:ea [ether] en wlp3s0
? (192.168.88.1) en 6c:3b:6b:16:f2:4d [ether] en wlp3s0
? (192.168.88.251) en 00:90:a9:35:69:b0 [ether] en wlp3s0
? (192.168.88.248) en c8:02:10:b3:4c:a1 [ether] en wlp3s0
ronr (10.0.3.252) en 00:16:3e:ca:ca:ab [ether] en lxcbr0

Esta información es muy útil y aunque a primera vista no lo parezca con esto podemos sacar muchísima información.

La salida del comando arp -a nos va a indicar IP, dirección MAC e interfaz por el que lo hemos aprendido.

La dirección IP nos dice qué IP tiene el dispositivo, luego la MAC nos va a indicar qué dispositivo es y el interfaz por el que lo hemos aprendido donde está.

La MAC es un número de 6 octetos separados por dos puntos. Los tres primeros octetos son el OUI y los tres últimos el identificado del equipo, que a priori no nos interesa mucho.

El OUI de la MAC nos va a indicar quien ha fabricado ese equipo. Por ejemplo, en mi casa veo que mi router tiene la mac 6c:3b:6b:16:f2:4d y los tres primeros octetos 6c:3b:6b identifica que es un rango de Routerboard, vamos, Mikrotik, pues ese es mi router y puedo sacar esa información simplemente viendo la tabla de ARP.

Estos prefijos por supuesto son públicos y se pueden consultar, de hecho esta es una tarea muy común que se hace todos los días, de hecho ahora la página que uso es http://aruljohn.com/mac.pl porque la que utilizaba antes no está tan actualizada.

De todos modos si os metéis en Google y ponéis «Mac lookup» os saldrán varios resultados y pueden serviros prácticamente todos.

Si seguimos mirando la tabla de ARP podremos ver que una MAC puede tener varias IPs, pero una IP no puede tener varias MACs, si eso ocurre significa que hay una IP duplicada y al tener las macs simplemente es busar esa mac por los switches hasta encontrarla y eliminar la duplicidad.

Esto es algo muy estúpido, pero os puede ahorrar un montón de horas de trabajo.

Imaginad que podéis pingar a un equipo, pero no podéis entrar en el, no responde ni si quiera a SSH, puede ser que el equipo que esté respondiendo no sea el equipo que debiera.

Pero claro lo más fácil no es ir mirando mac por mac, para eso podéis utilizar la siguiente herramienta, nmap y con un nmap -sP, la primera dirección del rango y la máscara podemos descubrir los elementos de la red.

root@thinkpad:~# nmap -sP 192.168.88.1/24

Starting Nmap 7.01 ( https://nmap.org ) at 2017-03-19 17:12 CET
Nmap scan report for 192.168.88.1
Host is up (0.016s latency).
MAC Address: 6C:3B:6B:16:F2:4D (Unknown)
Nmap scan report for 192.168.88.248
Host is up (0.010s latency).
MAC Address: C8:02:10:B3:4C:A1 (LG Innotek)
Nmap scan report for 192.168.88.251
Host is up (0.010s latency).
MAC Address: 00:90:A9:35:69:B0 (Western Digital)
Nmap scan report for 192.168.88.254
Host is up.
Nmap done: 256 IP addresses (4 hosts up) scanned in 28.17 seconds

En mi caso lo acabo de hacer en mi casa y qué he detectado, pues el router, la tele y el disco duro en red, no hay más ahora mismo.

Por supuesto para nmap hay un cliente en modo gráfico y está disponible para Linux, Windows, Mac e incluso para Amiga. El programa en cuestión se llama Zenmap.

Este cliente os permitirá ejecutar el escaneo que queráis sin tener que preocuparos demasiado por el comando y nos os hará menos hombres por no usar una consola, que nadie se vuelva loco.

Esto es más avanzado que el simple arp, pero una vez ejecutado ya veréis como vuestra tabla de ARP ha crecido pues ha tenido que haber peticiones de ARP.

He pasado por alta al amigo ping, ese que todos creemos conocer de sobra. Ping tiene una sintaxis diferente dependiendo del sistema operativo, las diferencias son pequeñas pero existen, por ejemplo, en linux ping envía paquetes hasta que se corta y en windows manda 4 paquetes y tontadas de estas a patadas.

  1. En windows -f es sin fragmentar, en linux inundación
  2. En windows -r es contar cuantos paquetes, en linux es ignorar la tabla de routing

Ya sabéis antes de usar un ping os aconsejo revisar la ayuda del sistema operativo para que no os llevéis a engaño con los resultados.

Ping también nos sirve para descubrimientos, usando ping -b de broadcast o incluso para probar la velocidad de los enlaces. Si ponemos ping -f la ip que sea y luego -s y el tamaño podremos ir ajustando para hacer transmisiones realmente importantes y podríamos incluso llegar a saturar un enlace, con un ping, más fácil imposible.

Ahora vamos a hablar de traceroute y similares. Lo primero quizás es saber que traceroute va enviando datagramas UDP para ir descubriendo el path, que no es lo mismo que hace Windows con su tracert que envío ICMPs, esto tenedlo en cuenta porque no es lo mismo.

Luego tenemos el tcptraceroute que lo hace con tcp en vez udp.

y finalmente a nuestro amigo mtr, una opción muy visual sin duda y que nos muestra de forma fácil y rápida el resultado

Obviamente estas herramientas nos ayudan a evaluar por donde está pasando el tráfico y son útiles para evaluar problemas de routing o para algo tan sencillo como por ejemplo saber por qué salida a internet estamos saliendo en caso de tener varias.

Ahora pasamos a herramientas para capturar tráfico, para mi Wireshark es la número 1, si no tenemos entorno gráfico tcpdump y para tener una visual de la red etherape, aunque esta sólo funciona en linux.

Wireshark es el antiguo ethereal y nos permite ver el contenido de cada paquete, su cabecera, todo. Seguro que a muchos esta información os parecerá excesiva, pero no, no lo es porque podemos ver si hay segmentos retransmitidos, lo cual puede indicar que algún cable está mal y hay que cambiarlo, podemos ver si se lanzan peticiones contra algún host que no responde, etc…

Vamos a  poner algún ejemplo concreto, imaginad que estáis trabajando en un ayuntamiento y tenéis un software que de repente ha dejado de funcionar, y no tenéis ni idea de por qué, pero sabéis que el software hace peticiones a una base de datos remota. Ponéis el wireshark y veis que el remoto no os está respondiendo a las peticiones que sí que lanzáis. En este caso podría ser que el servidor remoto haya caído, que haya un problema de la red, o cualquier otra cosa, pero al ordenador y al software en principio no le pasa nada, ¿cuánto tiempo nos ahorramos con esto? un montón.

Os he ido dejando varias capturas de Wireshark en las notas del programa para que podáis verlo, es el que tiene un montón de líneas con paquetes.

Este software ya os digo, es muy visual y nos permite hacer cosas como por ejemplo seleccionar un segmento TCP y darle a follow TCP Stream y nos mostrará el contenido de la conversación completa.

Ahora, si no tenéis entorno gráfico podéis usar el tcpdump y luego la información recolectada abrirla desde el wireshark indicando que es un fichero pcap.

Y mi favorito sin duda es el etherape, el cual de forma visual nos dice de donde a donde van los paquetes en nuestra red. Realmente nos pinta un dibujo con el tráfico de nuestra red con origen y fin.

Podremos pinchar en cada uno de los nodos dibujados y nos indicará qué tipo de tráfico hay y cuanto, una maravilla