Comprueba las conexiones en tu servidor Linux con Rustcat

Cuando queremos comprobar la conexión entre un servidor Linux y varios clientes, lo más sencillo es utilizar la popular herramienta Netcat para comprobar si la comunicación se ha establecido correctamente. Este programa es ampliamente usado para comprobar si los firewalls y a nivel de red podemos llegar a nuestro destino, sin embargo, hay una alternativa muy sencilla de utilizar y mucho más intuitiva llamada Rustcat. Si quieres una alternativa al popular Netcat, entonces Rustcat es lo que estás buscando. Hoy en RedesZone os vamos a explicar cómo instalar y utilizarla en vuestros equipos para comprobar las conexiones.

Principales características

Rustcat es un programa que permite abrir un socket en nuestro equipo, con el objetivo de aceptar conexiones entrantes y poder comprobar si hay comunicación con otro equipo que actúe como cliente. Esto se puede hacer con varios propósitos, por ejemplo, para comprobar si a nivel de red está todo correcto, si la tabla de enrutamiento configurada está bien, e incluso si tenemos un firewall permitiendo o denegando las diferentes conexiones TCP y UDP a nuestro dispositivo. Disponer de una herramienta como Netcat o Rustcat cuando vamos a configurar un servidor es algo fundamental, gracias a esta herramienta, podremos comprobar si hay conectividad punto a punto, con tan solo abrir un determinado puerto en el firewall.

Si no tuviéramos herramientas como Netcat o Rustcat, tendríamos que poner a escuchar un servidor web o FTP en diferentes puertos para comprobar si están abiertos correctamente y escuchando, sin embargo, con estos servidores tendríamos que modificar el archivo de configuración, probar con un cliente web o cliente FTP y posteriormente verificar si la conexión se realiza correctamente o no. Programas como Rustcat nos facilitar enormemente esta tarea de comprobar si un determinado puerto está abierto o cerrado, con tan solo ejecutar un comando en el servidor que esté escuchando en un determinado protocolo TCP o UDP, y otro comando en el cliente o los clientes que van a conectarse, para comprobar si hay comunicación punto a punto.

Esta herramienta Rustcat dispone de características muy interesantes, como un completo histórico de comandos ejecutados, es muy fácil de utilizar, más que el popular Netcat que todos conocemos, además, soporta también el protocolo UDP (además de soportar TCP) y es capaz de utilizar colores con el objetivo de que sea realmente intuitivo visualmente de entender. Este programa es compatible con todas las distribuciones de Linux, como Debian, Ubuntu y Arch Linux entre muchas otras. No obstante, si tu sistema operativo no es compatible, siempre vas a poder descargar el código fuente y compilarlo directamente en tu equipo, de esta forma, te debería funcionar sin ningún problema. Por último, este programa permite levantar una shell reversa, de esta forma, podremos ejecutar comandos de forma remota en la máquina que se esté conectando a nuestro servidor.

Instalación y puesta en marcha

En nuestro caso hemos utilizado un sistema operativo basado en Debian última versión para la descarga e instalación de este programa, por tanto, otras distribuciones basadas en Debian como Ubuntu o Kali Linux entre otras muchas, funcionará perfectamente y sin problemas. Lo primero que tenemos que hacer es descargar el archivo .deb en nuestro sistema operativo de la siguiente forma:

wget https://github.com/robiot/rustcat/releases/latest/download/rustcat_amd64.deb

Tal y como podéis ver, se ha descargado este programa desde GitHub directamente, para bajar la última versión disponible del programa que es la v1.0.1 como veréis más adelante.

Una vez descargado, tendremos que instalarlo ejecutando el siguiente comando:

sudo apt install ./rustcat_amd64.deb

También podríamos instalarlo utilizando el popular comando dpkg, pero creemos que haciendo un «apt install» es más sencillo porque es ampliamente utilizado por todos los administradores de sistemas para instalar los programas desde los repositorios.

Una vez que esté instalado, ya podremos empezar a trabajar con él, ejecutando el comando «rc» seguido de las diferentes órdenes, para comprobar que funciona correctamente, podéis ejecutar la ayuda del programa con la siguiente orden:

rc --help

Una vez que lo hayamos ejecutado, veremos todas las órdenes disponibles:

Una vez que hemos comprobado que la instalación ha sido un éxito, vamos a ver todas las opciones de configuración que tenemos disponibles.

Funcionamiento de Rustcat

El funcionamiento de Ruscat es muy sencillo, tan solo es necesario ejecutar el comando «rc» seguido de las diferentes opciones y parámetros, concretamente, la sintaxis que debemos seguir es la siguiente: rc [opciones] [destino] [puerto]. En cuanto a las opcions disponibles, tenemos las siguientes:

  • -h o –help mostrará la ayuda con el listado de opciones disponibles
  • -v o –version mostrará la versión del programa, en nuestro caso, la última versión es la Rustcat v1.0.1.
  • -H o –history mostrará todo el histórico de TCP
  • -l activará el modo escucha para el servidor
  • -p permite seleccionar el puerto
  • -u permite configurar el modo UDP en lugar de protocolo TCP
  • -r activa el modo de shell reversa

Una vez que ya hemos visto la sintaxis y todas las opciones disponibles, os vamos a poner algunos ejemplos básicos y otros más avanzados.

Si queremos ejecutar Rustcat en nuestro equipo (localhost) y en el puerto 33333 con TDP, podemos hacerlo de la siguiente forma:

rc -l -p 33333

También se podría poner de la siguiente forma:

rc -lp 33333

Si queremos ejecutar Rustcat en nuestro equipo (localhost) y en el puerto 33333 con UDP, podemos hacerlo de la siguiente forma:

rc -l -p -u 33333

También se podría poner de la siguiente forma:

rc -lpu 33333

Si queremos ejecutar Rustcat en nuestro equipo (localhost) y en el puerto 33333 con TDP, pero que tengamos un histórico de los comandos ejecutados, podemos hacerlo de la siguiente forma:

rc -l -H -p 33333

También se podría poner de la siguiente forma:

rc -lHp 33333

Si queremos escuchar en una dirección IP determinada y no en todas (0.0.0.0 significa todas las interfaces), deberemos indicarlo así:

rc -l 192.168.1.2 33333

Tal y como podéis ver, gracias a la shell reversa podremos ejecutar diferentes comandos en bash de manera fácil y rápida. Rustcat es una alternativa al popular Netcat muy interesante, aunque no viene instalada de forma predeterminada. Gracias a esta herramienta tan interesante, podremos comprobar si nuestro firewall está filtrando las comunicaciones desde el interior de la red local o desde el exterior, con el objetivo de probar diferentes puertos y ver si tanto TCP como UDP está abierto o cerrado.

Os recomendamos visitar el proyecto Rustcat en GitHub donde encontraréis el código fuente y todos los detalles sobre esta gran herramienta gratuita para nuestros servidores Linux.