Esta orden se utiliza para visualizar el estado de diversas estructuras de datos
del sistema de red, desde las tablas de rutado hasta el estado de todas las
conexiones a y desde nuestra máquina, pasando por las tablas ARP, en 
función de los parámetros que reciba.
En temas referentes a la seguridad, netstat se suele utilizar, aparte de
para mostrar las tablas de rutado de ciertos sistemas (con la opción -r,
como hemos visto antes), para mostrar los puertos abiertos que escuchan 
peticiones de red y para visualizar conexiones a nuestro equipo (o desde él)
que puedan salirse de lo habitual. Veamos un ejemplo de información mostrada
por netstat:
anita:/# netstat -P tcp -f inet -a
TCP
   Local Address        Remote Address    Swind Send-Q Rwind Recv-Q  State
-------------------- -------------------- ----- ------ ----- ------ -------
      *.*                  *.*                0      0     0      0 IDLE
      *.sunrpc             *.*                0      0     0      0 LISTEN
      *.*                  *.*                0      0     0      0 IDLE
      *.32771              *.*                0      0     0      0 LISTEN
      *.ftp                *.*                0      0     0      0 LISTEN
      *.telnet             *.*                0      0     0      0 LISTEN
      *.finger             *.*                0      0     0      0 LISTEN
      *.dtspc              *.*                0      0     0      0 LISTEN
      *.lockd              *.*                0      0     0      0 LISTEN
      *.smtp               *.*                0      0     0      0 LISTEN
      *.8888               *.*                0      0     0      0 LISTEN
      *.32772              *.*                0      0     0      0 LISTEN
      *.32773              *.*                0      0     0      0 LISTEN
      *.printer            *.*                0      0     0      0 LISTEN
      *.listen             *.*                0      0     0      0 LISTEN
      *.32774              *.*                0      0     0      0 LISTEN
      *.*                  *.*                0      0     0      0 IDLE
      *.6000               *.*                0      0     0      0 LISTEN
      *.32775              *.*                0      0     0      0 LISTEN
localhost.32777      localhost.32775      32768      0 32768      0 ESTABLISHED
localhost.32775      localhost.32777      32768      0 32768      0 ESTABLISHED
localhost.32780      localhost.32779      32768      0 32768      0 ESTABLISHED
localhost.32779      localhost.32780      32768      0 32768      0 ESTABLISHED
localhost.32783      localhost.32775      32768      0 32768      0 ESTABLISHED
localhost.32775      localhost.32783      32768      0 32768      0 ESTABLISHED
localhost.32786      localhost.32785      32768      0 32768      0 ESTABLISHED
localhost.32785      localhost.32786      32768      0 32768      0 ESTABLISHED
localhost.32789      localhost.32775      32768      0 32768      0 ESTABLISHED
localhost.32775      localhost.32789      32768      0 32768      0 ESTABLISHED
localhost.32792      localhost.32791      32768      0 32768      0 ESTABLISHED
localhost.32791      localhost.32792      32768      0 32768      0 ESTABLISHED
localhost.32810      localhost.6000       32768      0 32768      0 ESTABLISHED
localhost.6000       localhost.32810      32768      0 32768      0 ESTABLISHED
anita.telnet         luisa.2039           16060      0 10136      0 ESTABLISHED
anita.telnet         bgates.microsoft.com.1068 15928 0 10136      0 ESTABLISHED
localhost.32879      localhost.32775      32768      0 32768      0 TIME_WAIT
      *.*                  *.*                0      0     0      0 IDLE
anita:/#
Por un lado, en este caso vemos que hay bastantes puertos abiertos, esto es, 
escuchando
peticiones: todos los que presentan un estado LISTEN, como telnet,
finger o smtp (si es un servicio con nombre en /etc/services
se imprimirá este nombre, y si no simplemente el número de puerto).
Cualquiera puede conectar a este servicio (como veremos en el siguiente punto)
y, si no lo evitamos mediante TCP Wrappers, utilizarlo para enviarle 
peticiones.
Aparte de estos puertos a la espera de conexiones, vemos otro gran número de
conexiones establecida entre nuestro sistema y otros (como antes hemos dicho,
desde nuestro equipo o hacia él); casi todas las establecidas (estado ESTABLISHED) son de nuestra máquina contra ella misma, lo que a priori no
implica consecuencias de seguridad. Otra de ellas es desde un equipo de la
red local contra nuestro sistema, lo que también es bastante normal y no
debe hacernos sospechar nada14.4; sin embargo, hay una conexión que sí puede 
indicar que alguien ha accedido a nuestro sistema de forma no autorizada: si
nos fijamos, alguien conecta por telnet desde la máquina bgates.microsoft.com. Es raro que tengamos a un usuario allí, por lo 
que deberíamos monitorizar esta conexión y las actividades que esta 
persona realice; es muy probable que se trate de alguien que ha aprovechado la
inseguridad de ciertos sistemas para utilizarlos como plataforma de ataque 
contra nuestros Unix.
© 2002 Antonio Villalón Huerta