Auditoría de sistemas UNIX. Parte 17. Rutas del sistema

La revisión de rutas es rápida, ya que es un punto de control sencillo sobre el que no hay que ejecutar scripting ni extraer largos listados a fichero. Los que sigáis estos artículos seguramente hayáis comprobado que Felipe daba una pincelada sobre el tema en los comentarios de otro artículo de este pequeño curso.

Las rutas del sistema son las vías de comunicación que éste tiene con otros hosts. Son, por así decirlo, los caminos que puede seguir una máquina para establecer comunicación con otras. Las rutas del sistema se invocan mediante el utilísimo comando netstat. Emplearemos este comando más veces, especialmente cuando analicemos servicios en activo y TCP wrappers, entre otros. La sintaxis básica para conocer las rutas es:

netstat -r

Es frecuente ejecutar el comando netstat acompañado de los parámetros -ran:

    -r indica que queremos conocer la tabla de rutas (–route)
    -a es el parámetro de totalidad «all» que muestra todos los sockets (–all)
    -n indica que no queremos resolver nombres (–numeric)

Ejemplo práctico

Lanzamos en el sistema el comando netstat -arn

Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.98.0 0.0.0.0 255.255.255.0 U 40 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 40 0 0 lo
0.0.0.0 192.168.1.79 0.0.0.0 UG 40 0 0 eth0

Bajo ciertas circunstancias, puede resultar interesante obtener el contenido del caché de rutas. Este caché contiene un conjunto de datos que incluye las rutas empleadas con anterioridad. En este caso sí vamos a sacar las rutas a fichero, en previsión de que el caché sea largo (rara es la ocasión en la que no se precisa de scroll para ver este caché):

netstat -rnC >> cache.txt

En nuestro ejemplo, el caché estaba vacío (lo limpié antes de hacer estas ejecuciones, lo siento)

Otros usos del comando netstat

netstat se emplea para análisis de todo tipo. Desde la localización de rootkits hasta el análisis de servicios, colas y protocolos. No los veremos todos en este curso introductorio sobre auditoría UNIX, con lo que citaremos aquí algunos:

Mostrar dirección de origen, destino, protocolo y estado de la comunicación:

netstat –inet -n

Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 192 192.168.98.82:22 192.168.99.35:40991 ESTABLISHED
tcp 0 0 192.168.98.82:42929 192.168.100.17:993 ESTABLISHED
tcp 96 0 127.0.0.1:40863 127.0.0.1:6010 ESTABLISHED
tcp 0 0 127.0.0.1:6010 127.0.0.1:40863 ESTABLISHED
tcp 0 0 127.0.0.1:38502 127.0.0.1:6010 ESTABLISHED

Protocolos, direccion de origen y destino, estado, usuario, inode y programa empleado con PID asociado

netstat -p -e –inet –numeric-hosts

Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp 0 0 192.168.100.254:ssh 192.168.100.17:49796 ESTABLISHED root 25453 6326/sshd
tcp 0 240 192.168.99.254:ssh 192.168.99.35:42948 ESTABLISHED root 171748 31535/sshd

Desplegar tabla de masquerading (si se usa)

netstat -Mn

Otras combinaciones y usos pueden ser consultadas en el manual de netstat.

Curiosidades sobre netstat

  1. La ejecución de netstat -ie muestra los mismos resultados que ifconfig -a
  2. netstat es uno de los pocos comandos cuya sintaxis es equivalente en Windows y en UNIX, con la excepción de que en los entornos Windows, la información se presenta de manera distinta, y los parámetros varían, siendo menor el número de parámetros disponibles en plataformas Microsoft.
  3. netstat es el acrónimo de NETwork STATistics, o estadísticas de red.
  4. netstat permite trabajar con los protocolos tcp, udp, icmp, ip, tcpv6, udpv6, icmpv6, o ipv6
  5. En Windows, netstat es un comando que sólo está disponible si, para un adaptador de red cualquiera, existe una definición de servicios TCP/IP. En caso contrario, no es posible ejecutarlo.

Resumen

El comando netstat tiene numerosas aplicaciones. En este punto de la auditoría, lo utilizaremos para determinar cuáles son las rutas del sistema, con el objetivo de determinar si estas vías de comunicación son las deseables en el entorno que estemos considerando.

Otros análisis paralelos pueden ser el estudio del caché de enrutamiento, así como el análisis de servicios y protocolos, que serán abordados en futuras entregas.

6 comentarios sobre “Auditoría de sistemas UNIX. Parte 17. Rutas del sistema

  1. Gracias por la referencia del primer párrafo. Realmente, cuando hice aquel comentario no sabía lo que tenías reservado para el futuro :-)

    Dos comentarios:

    1. ¿Podrías poner el texto dentro de las cajas grises en un tipo de letra de espacio fijo, como Courier? Se lee bastante mal con un tipo de letra de espaciado variable, sobre todo porque se pierde la estructura columnar.

    2. Con respecto al caché de rutas, comentar que su principal uso es no sólo para acelerar el proceso de encaminamiento, sino para permitir hacer balanceo de carga por paquete o por destino.

  2. Josu,

    Gracias por el elogio.

    De momento, descansamos un poco el tutorial, para no saturar a todos los lectores. Pero volveré a la carga en menos de lo que canta un gallo :)

    Saludos,

  3. Está muy bien lo que pones, es muy útil pero, hombre, cuando se ponen ejemplos se explican un poquito.

  4. Por cierto, ¿en qué archivo hay que reflejar las rutas para que se mantengan en el reboot?
    Thx.

Comentarios cerrados.