Emezeta.com

Controlar conexiones activas de la red


Para cualquier usuario que gusta de tener cierto control de su sistema, una buena táctica es tener control de todos los procesos que se ejecutan en su ordenador. Esto, bajo windows se puede solventar facilmente con la pestaña Procesos del Administrador de tareas, o para los más exigentes, el uso de Process Explorer (también controla handlers, DLL, etc...).

Sin embargo, algo complementario a esto (y todavía más importante), es el control de los procesos que están accediendo, a través de la red, a internet. Aquí entra en juego una utilidad elemental llamada netstat (disponible tanto en windows, linux como en otros) que nos muestra las conexiones actuales de nuestro equipo.

netstat

Pero como casi todo en este mundo entra por los ojos, necesitamos una utilidad que represente con una GUI sencilla y compacta la misma información de una forma más visible e intuitiva.

En su tiempo salieron sencillos front-end como los clásicos X-Netstat o Netstat Viewer. O incluso, mucho más tarde el genial TCPView de Sysinternals, antes de que adquiriera la empresa Microsoft.

Currents Ports

Aún así, después de todos los mencionados, el mejor a mi criterio es el CurrPorts (Current Ports) de Nirsoft, gracias a su impresionante personalización y flexibilidad.

currports nirsoft

Entre la información de las conexiones que muestra, se encuentran las siguientes:

  • Process Name: Nombre del ejecutable que ha abierto la conexión. Aunque las últimas versiones de netstat de windows permiten identificar esta característica, CurrPorts lo muestra junto al icono del ejecutable, para una identificación más rápida.
  • Process ID o PID: Número de identificación del proceso en el sistema operativo.
  • Local Address/Port/Name: Información acerca de la conexión desde «nuestro lado». Esto es, la IP privada (en el caso de una red local) o pública y el puerto de la conexión. Opcionalmente, el nombre del servicio ofrecido usualmente por ese puerto.
  • Remote Address/Port/Name: Análogo al punto anterior, pero con respecto al otro «lado» de la conexión. En este caso la IP remota (siempre la pública) y el puerto remoto de la conexión. También opcionalmente, el nombre del servicio remoto ofrecido usualmente por ese puerto.
  • Protocol: Naturaleza de la conexión: transmisión (TCP) o datagrama (UDP).
  • Remote hostname: El nombre de host (también conocido como DNS inverso) como resultado de resolver mediante DNS la IP remota.
  • State: Estado de la conexión: estabilizada, en escucha o cerrada.
  • Process Path: Ruta del proceso, es decir, carpeta en la que se encuentra. Muy útil para identificación.
  • Module Filename: Nombre del módulo específico (DLL), si consta, que está abriendo la conexión.
  • Remote IP Country: Opcional, pero uno de los más interesantes. Te indica en que pais está el usuario con el que se ha establecido la conexión (ver más adelante).

Además de estas características, existen otras menos importantes como versión del proceso, nombre o compañía que también pueden resultarnos utiles.

Visualización y flexibilidad

Sin embargo, la verdadera utilidad de este programa radica en su capacidad de flexibilidad. Una de las principales características es que (al contrario de otros programas similares) no muestra ese molesto efecto flicker o parpadeo, resultado de la actualización de datos y refresco de información que hace que si estamos mirando alguna fila o columna, nos pierda la información actual.

Generalmente sólo deseamos mostrar las conexión establecidas en el momento actual, por lo que mediante las opciones (o las teclas de CTRL+1, CTRL+2 y CTRL+3) activar o desactivar las conexiones establecidas, en escucha y cerradas, entre muchas otras opciones similares como soporte para conexiones IPv6 o conexiones con datos desconocidos.

Además, podemos activar y desactivar los campos anteriores según los que nos interesen y establecer la frecuencia con la que queramos que el programa actualice las conexiones (Options / Auto Refresh): Desactivado, 2 seg, 4 seg, 6 seg, 8 seg o 10 seg. Las conexiones nuevas que se vayan creando, se verán sobre una franja verde pastel.

Personalización

La aplicación nos permitirá en cualquier momento terminar la conexión (o conexiones) TCP que seleccionemos (Close selected TCP connections, o CTRL+T), o incluso matar el proceso que ha abierto la conexión (Kill processes of Select Ports).

Posee una opción que genera informes de la actividad actual del programa en formato HTML, para su posterior procesado o análisis, así como grabar información en formato TXT o copiar la IP remota en el portapapeles.

Nirsoft tiene también otra aplicación llamada IPNetInfo, que si se coloca en la misma carpeta que CurrPorts, este último permite comunicarse con el primero y mostrar información Whois del dominio, así como el CIDR y otra información de contacto.

Geolocalización

Una de las características más interesantes de este programa, es la de la geolocalización, o lo que es lo mismo, permite identificar el pais a donde se está realizando cada conexión. Para activarla, sólo hay que acceder a la página de GeoIP webnet77 y descargar la base de datos de la columna inferior derecha. Colocaremos el fichero IpToCountry.csv en la misma carpeta del programa y listo.

Quizás la única mejora factible que se me ocurre, es que se pudiera incluir la bandera del pais de forma similar a como se hizo con el icono del programa.

Filtro avanzado

Pero he dejado la mejor característica para el final. Este programa permite establecer una serie de filtros con los cuales podemos incluir o excluir ciertas conexiones. Por ejemplo, si queremos que en la lista no aparezcan las conexiones actuales realizadas con el emule, escribimos en el gestor de filtros (F9): exclude:process:emule.exe. Así, también podemos excluir determinadas direcciones, por puertos, rangos, etc.

Finalmente, el programa se puede descargar desde la página web de Nirsoft: