-
Notifications
You must be signed in to change notification settings - Fork 4
Tracking Network (Autodescubrimiento de dispositivos interconectados en Red)
Sondeo o autodescubrimiento de dispositivos interconectados en infraestructuras de red, bajo GNU / Linux, en un entorno controlado desde un sistema Web, donde se dibuje un mapa (topología) de red.
1- Diseñar el ciberespacio donde se hará el testeo.
2- Aplicar comunicación SSH con autenticación de cifrado RSA.
3- Implementar la herramienta NMap para explorar red.
4- Generar la información, ordenarla y almacenarla en DB.
5- Instalar paquete de PHP, libssh2 para habilitar conexiones SSH.
6- Implementar la librería VIS.js para dibujar la topología de red.
7- Identificar el tipo de dispositivo de telecomunicaciones implementado.
8- Diseñar el menú contextual de los dispositivos en el mapa de red.
Aplicando implementación de algunas herramientas para estructurar y diseñar el ciberespacio, donde se harán todas las pruebas necesarias para que el desarrollo del autodescubrimiento de dispositivos interconectados en infraestructuras de red esté totalmente correcto.
El entorno es totalmente virtualizado, ya que no se cuentan con los dispositivos físicos debido a su coste.
Las herramientas utilizadas son las siguientes:
-
VirtualBox (Herramienta de Virtualización).
-
GNS3 (Simulador para diseñar y configurar redes virtuales).
-
Edraw Max 9.0 para diseñar el mapa de red en una mejor dimensión.
Téngase en cuenta que, para aprovechar el algoritmo de detección de dispositivos de toda una red, se tiene que diseñar no sólo un punto de red, sino más allá de un enrutador.
La Shell Segura o bien, SSH, la necesitamos para la comunicación remota, o véase de otra manera como gestor, agente; esclavo, servidor.
Para ello se necesitan los paquetes de GNU/Linux para distros basados en Debian: openssh-server.
Para que no se nos esté pidiendo la clave de acceso a una máquina remota cada vez que se ejecuta un script o alguna instrucción, se implementa la autenticación con tipo de cifrado RSA, que es un sistema criptográfico de clave pública.
Es una herramienta de código abierto para exploración de red y auditoría de seguridad. Esta tiene gran importancia; se necesita para encontrar los dispositivos, aplicando un sondeo a un punto de red. Aunque no hace el trabajo por sí sólo para encontrar toda la infraestructura, ya que con un algoritmo PHP se realiza la conexión SSH a los hosts encontrados, y se consiguen las tablas IP donde se puede reconocer el otro punto de red que está conectado a las demás interfaces; de esta manera, se logra reutilizar la herramienta y encontrar los dispositivos en el siguiente punto de red.
Cuando se lea el siguiente objetivo, se comprenderá mejor lo que acá se ha mencionado.
Se manipula un gestor de base de datos para almacenar información de relevancia al sondeo de red que se aplica con la herramienta que se describe anteriormente, NMap, además de jugar con los datos utilizando el lenguaje PHP.
Herramientas:
-
NMap
-
PHP
-
MySQL / Compatible con MariaDB
En orden, lo primero que se utiliza es el lenguaje de programación de servidor PHP, para ejecutar una instrucción de Shell Script Bash que llame a la herramienta NMap y que este realice el sondeo en el punto de red actual (donde está alojado el servidor), de esta manera, PHP esperará los resultados que este devuelva, que serían los dispositivos que encontró en el punto de red.
PHP procesa estos datos y los almacena en una tabla de la base de datos escrita con el gestor MySQL. Dicha tabla es exclusivamente para puntos de red con su respectivo rango de red. Se recorre la tabla para aplicar el sondeo a la primera red que se encuentra almacenada, que aún sería el punto de red actual, este enviaría nuevamente una solicitud a NMap para que realice la acción y le devuelva los dispositivos encontrados.
Los dispositivos encontrados en un punto de red, son almacenados en una tabla de la base de datos que es exclusiva para hosts, donde tendrá relación con la tabla de red, para identificar que hosts pertenecen a qué red.
Se entiende que estos dispositivos están en un entorno controlado, por lo que ya tiene conexión SSH con autenticación RSA, por tanto, se puede emplear una comunicación directa. La idea es que, con el lenguaje de servidor, obtenga las direcciones IP de la tabla de host y que luego obtenga la tabla IP de cada uno de ellos y que compruebe si es un enrutador o no. Si la tabla de red indica que se trata de un enrutador, entonces se supone que puede o no tener otra interface de red que contenga conexión a otra red, otra red donde elaborará otro sondeo de red y se repetirá el mismo proceso de almacenado y extraído de la información de la base de datos para que el algoritmo funcione correctamente.
Muchas de las cosas que se mencionan en el apartado anterior, en cuanto a las acciones que elabora PHP para las conexiones SSH, SCP u otras; son dependientes del paquete externo del lenguaje llamado libssh2, que es una biblioteca que permite elaborar este tipo de conexiones.
Una biblioteca de visualización dinámica y basada en navegador. La biblioteca está diseñada para ser fácil de usar, manejar grandes cantidades de datos dinámicos y permitir la manipulación e interacción con los datos. La biblioteca consta de los componentes DataSet, Timeline, Network, Graph2d y Graph3d.
La que se usa en esta práctica, es Network, aunque se puede considerar obvio.
Después de los datos obtenidos con el proceso anterior, sólo se trae la información de la base de datos y armar un algoritmo para generar el mapa o topología de red correctamente.
Para ubicar un conmutador o Switch, se interpreta que, si existen más de 1 host en el mismo rango de red, este debería ocuparlo, por la razón de que un enrutador no puede pasarle 2 cables, ya que estarían en diferentes puntos de red.
Un enrutador está definido si tiene 2 o más interfaces de red y a su vez, si está encaminando. Otra manera es si él es Gateway de otros hosts identificados en la red. Normalmente los hosts finales tienen Gateway apuntando al enrutador y el enrutador no tiene Gateway.
Las máquinas o equipos, son aquellos que son contrarios a los casos anteriormente expuestos.
Como se trata de una obviedad, el sistema se desarrolla en entornos Web, por lo que la estructura y de diseño base, se realiza con los lenguajes interpretados, HTML, CSS.
El punto de esto, está que después que el mapa de red se ha dibujado correctamente, se logre identificar el dispositivo seleccionado y con el evento que atiende el menu-context o bien, el clic derecho del mouse, este haga aparecer un menú contextual con diseño personalizado para luego gestionar el dispositivo seleccionado.
El diseño también se ha elaborado. Se tiene en cuenta que el evento de clic derecho para expulsar un menú contextual, no está adaptado a todos los navegadores, por lo que la otra opción es diseñar en alguna parte superior, un menú donde cada vez que se haga clic en uno de los nodos que representa un dispositivo, este aparezca activado para que se apliquen las opciones tanto dinámico y estático con un menú.
Este es el primero de los desarrollos, los cuáles se detallan acá: https://github.com/SideMasterGM/GNet/wiki/Desarrollos