Auditoría de sistemas UNIX. Parte 15. Interfaces de red

Después de haber hecho un barrido elemental por las generalidades de un UNIX, así como por las verificaciones básicas relacionadas con ficheros, vamos a entrar en el capítulo de análisis de red.

network

Cualquier sistema operativo tiene capacidad para el trabajo en redes, bien sean locales, metropolitanas o de área extensa. UNIX no iba a ser la excepción, con lo que analizar las capacidades de operación de una máquina en uno o varios entornos de red es fundamental.

La primera verificación que podemos hacer es aquella en la que miramos el fichero de hosts, y por otro lado, los resultados que arroja la ejecución del comando de identificación de interfaces de red, que generalmente será ifconfig. Este comando es muy variable, con lo que tendremos que tirar de la Piedra Rosetta UNIX cuando sea preciso. Esto es especialmente interesante en ciertos sistemas en los que convendrá ejecutar algo más que un enumerador de interfaces, como puede ser algún que otro netstat.

El fichero /etc/hosts (ubicación variable en función al sistema que consideremos) contiene un mapeo de nombres de host a direcciones IP que, en ausencia de DNS, facilita la resulución de nombres con los que nuestra máquina debe comunicarse. El comando ifconfig permite configurar o mostrar la configuración de los distintos interfaces de red, a través de los parámetros clásicos como la dirección IP, la máscara de red y la dirección de broadcast. Nosotros no vamos a configurar, ya que esto no es un curso de administración, con lo que nos limitaremos a enumerar.

El objetivo de auditoría será comprobar qué interfaces aparecidos en la ejecución de ifconfig -a tienen su correspondencia en el fichero /etc/hosts.

Ejemplo práctico

Extraemos la ejecución de ifconfig -a a fichero:

ifconfig -a >> ifconfig.txt

En nuestro ejemplo:

lo0: flags=1010283 mtu 5242 index 1
inet 127.0.0.1 netmask ff000000
de2: flags=1010732
mtu 1600 index 2
inet 192.168.1.2 netmask ffffff00 broadcast 192.168.1.1
ether 0:0:be:a9:44:c9
de3: flags=1010732
mtu 1600 index 3
inet 192.168.1.3 netmask ffffff00 broadcast 192.168.1.1
ether 0:0:be:a9:44:c9
de4: flags=1010732
mtu 1600 index 3
inet 192.168.1.4 netmask ffffff00 broadcast 192.168.1.1
ether 0:0:be:a9:44:c9

Extraemos los contenidos de /etc/hosts a fichero:

cat /etc/hosts >> etchosts.txt

En nuestro ejemplo:

#Definicion del loopback
127.0.0.1 localhost

# Enlaces a otras maquinas
#
192.168.1.2 servidor.de.correo.sahw.com
192.168.1.3 servidor.http.sahw.com
192.168.1.4 servidor.ldap.sahw.com

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Empleamos un script Bash no optimizado (muestra a propósito todos los pasos, incluyendo la generación de un fichero intermedio de clasificación) para comprobar qué interfaces aparecidos en ifconfig -a aparecen también en /etc/hosts.

#!/bin/bash
#Script ejemplo para el análisis de interfaces de red
grep inet ifconfig.txt | awk ‘{print $2}’ >> intermedio.txt
for i in $(awk ‘{print $1}’ intermedio.txt); do
grep $i etchosts.txt
done

Con el siguiente resultado:

127.0.0.1 localhost
192.168.1.2 servidor.de.correo.sahw.com
192.168.1.3 servidor.http.sahw.com
192.168.1.4 servidor.ldap.sahw.com

Cuando el listado de hosts e interfaces es pequeño, se puede hacer la clasificación manualmente. Nótese que si ejecutamos el script varias veces, convendrá añadir la línea rm etchosts.txt al comienzo del script, de modo que nos aseguremos que el fichero intermedio se borra cada vez que ejecutamos el programa. De todos modos, crear el fichero intermedio no es necesario, optimizando ese código Bash es posible no depender de él (ejercicio que queda pendiente para los lectores interesados).

Resumen

Analizar los interfaces de red surge como consecuencia de poder evaluar el tipo de actividad y las interconexiones en red que la máquina a auditar tiene en el momento del análisis.

Para ello, analizaremos la información completa de interfaces de red (ifconfig -a) y comprobaremos que la definición del fichero de hosts es la adecuada, y que existe sintonía entre ambos.

Autor: Sergio Hernando

Sergio Hernando es una persona interesada en las tecnologías de la información, haciendo de éstas su campo laboral principal. Estos articulos fueron publicados desde 2004 hasta 2012.

7 opiniones en “Auditoría de sistemas UNIX. Parte 15. Interfaces de red”

  1. Te está quedando una saga muy buena ;). Por cierto, con que software has hecho el esquema de red? No me suena a MS Visio, ni a DIA… y me gusta el resultado final. Si es alguna aplicación para Mac OS X, me vendrá bien para tener en el portátil.

  2. Hombre, yo creo un buen análisis del subsistema de red debería incluir (1) la tablas de rutas, así como (2) los procesos que están escuchando en cada uno de los puertos:

    (1) netstat -anr
    (2) netstat -nlp

    Y puede que incluso la (3) configuración del firewall:

    (3) iptables -nvL
    (3) iptables -t nat -nvL

    :-)

Comentarios cerrados.