1
Anthony Benavides Erique, Bryam Peralta Navarro, Henry Granda López.
Implementación y Configuración de una Red
Virtualizada con Servicios de Seguridad y
Balanceo de Carga (Febrero de 2024)
GNS3 desde su sitio web oficial, lo que proporciona una base
Resumen - Este informe documenta la creación y configuración de para ejecutar las simulaciones de red. Una vez instalada la
una red compuesta por tres routers y dos servidores Linux en una máquina virtual, procederemos a instalar el software de GNS3
máquina virtual GNS3. Se utiliza una dirección IP clase C para en nuestros sistemas operativos locales. La funcionalidad de
establecer 8 subredes y asignar direcciones a cada servidor. Los GNS3 nos permitirá crear topologías de red virtuales de
servicios de SSH, DNS, DHCP y un firewall personalizado son
manera intuitiva a través de una interfaz gráfica. Utilizaremos
implementados y configurados con restricciones específicas. Además,
se configura un balanceador de carga HAProxy y se establece un esta plataforma para emular dispositivos de red reales, integrar
sistema de detección de intrusos con Snort. El monitoreo de la red y máquinas virtuales y realizar pruebas exhaustivas de
servicios se realiza mediante Nagios. Se documentan las pruebas de configuraciones antes de implementarlas en entornos de
ataque y los resultados del monitoreo. producción. GNS3 será una herramienta invaluable para
simular escenarios de red complejos y verificar la viabilidad y
Abstract - This report documents the creation and configuration of a eficiencia de nuestras configuraciones antes de su despliegue
network consisting of three routers and two Linux servers within a final.
GNS3 virtual machine. A Class C IP address is used to establish 8
subnets and assign addresses to each server. SSH, DNS, DHCP
services, and a custom firewall are implemented and configured with B. Integración de maquinas virtuales de Virtual box en
specific restrictions. Additionally, an HAProxy load balancer is set GNS3
up and an intrusion detection system with Snort is established.
Network and service monitoring is conducted using Nagios. Attack 1. Configuración de virtual box: Abre VirtualBox y
tests and monitoring outcomes are documented. asegúrate de que las máquinas virtuales que deseas
utilizar estén creadas y configuradas correctamente.
Asegúrate de que las máquinas virtuales estén
I. INTRODUCCION apagadas antes de intentar integrarlas con GNS3.
E n la era actual, la habilidad para construir y asegurar redes
2. Configuración de GNS3: Abre GNS3 en tu sistema
y ve a la pestaña "Preferences" (Preferencias). En la
sección "VirtualBox VMs" (Máquinas Virtuales de
informáticas es esencial. Este proyecto final aborda esta
necesidad mediante el despliegue de una red virtualizada en VirtualBox), haz clic en "New" (Nuevo) para agregar
GNS3, centrada en servicios de seguridad y balanceo de carga. una nueva máquina virtual.
El proyecto se basa en una dirección IP clase C y comprende
la configuración de servicios esenciales como SSH, DNS,
DHCP, junto con medidas de seguridad avanzadas como un 3. Configuración de la Máquina virtual: Selecciona
firewall personalizado y detección de intrusos. El objetivo es la máquina virtual de VirtualBox que deseas agregar
diseñar una red robusta y segura, mientras se proporciona alta de la lista desplegable. Asigna un nombre y una
disponibilidad y se monitorean los servicios y el rendimiento ubicación para la máquina virtual en GNS3.
de la Configura los parámetros de la máquina virtual según
sea necesario, como la cantidad de memoria RAM y
el número de interfaces de red.
C. Creación de la topología
II. RESOLUCION DEL PROYECTO
La topología de red fue implementada utilizando la
herramienta de simulación de redes GNS3. Se inició creando
A. . Instalación y funcionalidad de GNS3 un nuevo proyecto dentro de la aplicación y procediendo con
la adición de nodos de red.
GNS3, abreviatura de "Graphical Network Simulator 3", es
una plataforma de simulación de redes que será fundamental 1. Inserción de Routers: Se agregaron tres routers al
en nuestro trabajo para diseñar, configurar y probar redes espacio de trabajo de GNS3, denominados R1, R2 y
complejas en un entorno virtual. La instalación de GNS3 R3. Estos routers son emulaciones de dispositivos
implica descargar e instalar primero la máquina virtual de IOS de Cisco, cada uno equipado con interfaces
FastEthernet.
Documento entregado el 24 de enero de 2024.
2
2. Añadido de Servidores y Cliente: Se incorporaron laboratorio. Se añadieron rutas estáticas en cada
dos nodos de servidor y un nodo cliente al proyecto. router para dirigir el tráfico a las subredes apropiadas.
Los servidores se conectaron a los routers R2 y R3,
respectivamente, mientras que el nodo cliente se 3. Pruebas de Conectividad: Utilizamos comandos
conectó al router R1. ping y traceroute desde la consola de cada router para
verificar la correcta implementación del
3. Interconexión de Dispositivos: Mediante la enrutamiento. La conectividad fue confirmada entre
herramienta de conexión, se establecieron enlaces todos los nodos de la red.
entre los routers para formar una red troncal. Las
conexiones adicionales entre los routers y los nodos
de servidores/cliente se configuraron según la
E. Configuración del servicio SSH
estructura de red requerida.
El Servicio de Shell Seguro (SSH) se configuró en dos
4. Asignación de Direcciones IP: Se asignaron servidores distintos, denominados Servidor A y Servidor B,
direcciones IP estáticas y máscaras de subred a todas para proporcionar un método cifrado de administración
las interfaces de los dispositivos de acuerdo con el remota. Las siguientes subsecciones describen las
esquema de direccionamiento IP definido. Las configuraciones específicas aplicadas a cada servidor.
subredes se diseñaron para optimizar el uso del
espacio de direcciones disponible en la red de clase C 1. Servidor A
proporcionada. Configuración del Puerto: El servidor SSH
en el Servidor A fue configurado para
5. Persistencia de la Configuración: Se guardó el escuchar en el puerto 3030 en lugar del
proyecto para asegurar la persistencia de la topología puerto predeterminado 22. Esto se logró
y las configuraciones de dispositivos realizadas. modificando la directiva Port en el archivo
de configuración SSH
(/etc/ssh/sshd_config), seguido por el
reinicio del servicio
Desactivación de Autenticación por
Contraseña: Para mejorar la seguridad y
cumplir con los requisitos del proyecto, se
deshabilitó la autenticación por contraseña.
Esto se realizó estableciendo la directiva
PasswordAuthentication a no en el archivo
de configuración SSH, lo cual obliga al uso
de claves públicas y privadas para la
autenticación.
Reinicio del Servicio SSH: Tras la
modificación de la configuración, se ejecutó
el comando sudo systemctl restart sshd para
aplicar los cambios.
Figura 1. Topologia.
2. Servidor A
D. Configuración de Enrutamiento
Configuración del Puerto: Se configuró el
El enrutamiento entre los distintos segmentos de la red se puerto 3131 para el servicio SSH en el
estableció para permitir la comunicación entre todas las Servidor B mediante la misma metodología
subredes. utilizada en el Servidor A.
Restricción de Intentos de Autenticación:
1. Acceso y Configuración Inicial: Se iniciaron los Se limitó el número de intentos de
routers y se accedió a cada uno a través de la consola autenticación fallidos a tres para mejorar la
de terminal. En el modo de configuración global, se seguridad contra intentos de acceso no
asignaron direcciones IP específicas a las interfaces autorizado. Se añadió la directiva
de cada router. MaxAuthTries 3 al archivo de configuración
SSH.
2. Enrutamiento Estático: Optamos por enrutamiento
estático por su simplicidad y control en un entorno de
3
Reinicio del Servicio SSH: Se reinició el
servicio para implementar la nueva
configuración usando el comando sudo
systemctl restart sshd.
Figura 3. DNS
G. Configuración del servicio DHCP
El servidor A fue configurado para ofrecer servicios de
configuración dinámica de host (DHCP) a la red, asignando
direcciones IP y otros parámetros de red necesarios para los
clientes.
Figura 2. SSH
1. Instalación del Servidor DHCP: Se seleccionó el
F. Configuración del servicio DNS software ISC DHCP Server para su robustez y
facilidad de configuración. La instalación se llevó a
Se estableció el servidor B como el servidor de nombres de cabo con el comando: sudo apt-get install isc-dhcp-
dominio (DNS) principal para el dominio operativosfinal.com, server
utilizando el software BIND9 para la resolución de nombres
de dominio dentro de la red simulada. 2. Configuración del ISC DHCP Server: Se modificó
el archivo de configuración /etc/dhcp/dhcpd.conf
1. Instalación de BIND9: Utilizando el gestor de para definir el rango de direcciones IP disponibles
paquetes APT, se llevó a cabo la instalación del para la asignación dinámica, junto con las opciones
servidor DNS BIND9 en el servidor B con el de red como la máscara de subred, la puerta de enlace
comando: predeterminada y la información del servidor DNS.
sudo apt-get install bind9
3. Especificación de Rango de Direcciones: De
2. Creación del Archivo de Zona: Se configuró la acuerdo con el esquema de direccionamiento IP
zona para operativosfinal.com creando el archivo de proporcionado, se configuró un rango de direcciones
zona db.operativosfinal.com en el directorio IP específico dentro de la subred asignada al servidor
/etc/bind. Este archivo contiene los registros A.
necesarios, incluyendo SOA, NS, y registros A para
el dominio. 4. Asignación de Interfaz y Reinicio del Servicio: Se
asignó la interfaz de red correcta al servidor DHCP
3. Declaración de la Zona en BIND: Se añadió la editando el archivo /etc/default/isc-dhcp-server y se
configuración de la zona al archivo reinició el servicio para aplicar la configuración: sudo
/etc/bind/named.conf.local en el servidor B. systemctl restart isc-dhcp-server.
4. Reinicio del Servicio y Verificación: Después de la
configuración, el servicio BIND9 se reinició con: 5. Verificación de Funcionalidad: Se realizaron
sudo systemctl restart bind9 pruebas para confirmar la funcionalidad del servidor
DHCP. Se conectó un cliente de prueba a la red y se
comprobó que recibía una dirección IP dentro del
rango definido, junto con los parámetros de red
apropiados.
4
los parámetros de balanceo de carga. Se configuraron
los modos de escucha para el tráfico HTTP y las
reglas para distribuir la carga entre los servidores
web disponibles.
3. Backend Configuration: Se configuró un backend
con dos servidores web, asignando un peso para la
distribución de carga.
4. Alta Disponibilidad: Se aseguró la alta
disponibilidad mediante la configuración de
verificaciones de salud regulares para los servidores
web. En caso de falla de uno, el tráfico se redirige
automáticamente al servidor operativo.
Figura 4. DHCP
5. Reinicio de HAProxy: Para aplicar la configuración,
se reinició el servicio con el comando: sudo systemctl
H. Configuración del servicio Firewall restart haproxy
Para proteger la red y controlar el acceso a los servicios, se
establecieron reglas de firewall en los servidores A y B
utilizando iptables, un sistema de filtrado de paquetes
integrado en el kernel de Linux.
1. Restricciones en el Servidor A:
Bloqueo ips: Se bloqueo la Ip del servidor B
y la Ip de un supuesto cliente para que no se
puedan realizar ping correctamente.
Ejemplo: iptables -A INPUT -s
192.168.150.40 -j DROP .
2. Restricciones en el Servidor B:
Bloqueo ips: Se bloqueo la Ip del servidor Figura 6. HAProxy
A y la Ip de un supuesto cliente para que no
se puedan realizar ping correctamente.
Ejemplo: iptables -A INPUT -s J. Deteccion de intrusos
192.168.150.39 -j DROP . Snort fue implementado como una solución de detección de
intrusos en la red para reforzar la seguridad del perímetro. Se
configuró para monitorear el tráfico de red y alertar sobre
actividades sospechosas o maliciosas.
1. Instalación de Snort: El software Snort se instaló en
un nodo dedicado de la red. La instalación se realizó
Figura 5. FIREWALL
a través del gestor de paquetes con el siguiente
comando: sudo apt-get install snort
I. Instalar y configurar HAProxy
2. Configuración de Snort: Se llevó a cabo la
HAProxy se implementó en la infraestructura de red para configuración básica de Snort para definir la política
proporcionar balanceo de carga y funciones de servidor proxy, de detección de intrusos. Se editó el archivo
aumentando así la disponibilidad y la escalabilidad de los /etc/snort/snort.conf para establecer las reglas de
servicios web. detección y se configuró Snort para operar en modo
NIDS.
1. Instalación de HAProxy: Se instaló HAProxy en el
servidor designado utilizando el gestor de paquetes 3. Definición de Reglas: Se definieron reglas
del sistema con el comando: sudo apt-get install específicas para detectar intentos de conexión SSH
haproxy no autorizados y escaneos de puertos.
2. Configuración de HAProxy: Se editó el archivo de 4. Pruebas de Ataques: Se realizaron varias pruebas de
configuración /etc/haproxy/haproxy.cfg para definir intrusión para verificar la eficacia de Snort. Estas
5
pruebas incluyeron intentos de conexión SSH al real de todos los hosts y servicios configurados. La
puerto restringido. interfaz web también se utilizó para realizar ajustes
adicionales y para verificar la configuración de
5. notificaciones.
Figura 7. Deteccion de errores
Figura 8. Monitoreo
L. Tabla de subredes
K. Monitoreo
Nagios Core fue elegido e implementado para proporcionar
monitoreo en tiempo real de los servicios y recursos de la red,
permitiendo una visión integral del estado y rendimiento de la
infraestructura.
1. Instalación de Nagios Core: Se instaló Nagios Core
en un servidor dedicado utilizando los recursos
proporcionados por el gestor de paquetes del sistema
operativo. La instalación se realizó mediante el
siguiente comando: sudo apt-get install nagios3.
2. Configuración de Nagios: Se configuró Nagios para Figura 9. Tabla de subredes
monitorear los servicios críticos, como SSH y DNS,
en los servidores A y B. Además, se configuraron los
M. Comandos
hosts y servicios en los archivos de configuración de
Nagios ubicados en /etc/nagios3/conf.d/. SSH (Secure Shell)
3. Definición de Hosts y Servicios: Se definieron los Comando: ssh [email protected] -p 3131
hosts y servicios a monitorear. Por ejemplo, se Descripción: Este comando se utiliza para establecer una
configuraron host objects para los servidores A y B y conexión segura y cifrada con el servidor ubicado en la
service objects para SSH en el puerto 3030 y 3131, y dirección IP 192.168.150.20, utilizando el puerto 3131. El
para el servicio DNS. usuario para esta conexión es b.
DNS (Domain Name System)
4. Configuración de Contactos y Notificaciones: Se
establecieron contactos en Nagios para recibir Comando: nslookup servidor.operativosfinal.com
notificaciones de alertas. Se configuraron las Descripción: nslookup es una herramienta para consultar
notificaciones por correo electrónico para informar al servidores de nombres DNS y obtener información sobre
equipo de TI sobre cualquier problema detectado por dominios. Este comando en particular consulta la dirección IP
Nagios. y otros detalles del dominio servidor.operativosfinal.com.
Estado del Servicio DNS
5. Pruebas de Monitoreo: Se realizaron pruebas para
confirmar la eficacia del monitoreo de Nagios, Comando: sudo systemctl status bind9
simulando fallos en los servicios y observando las Descripción: Este comando verifica el estado del servicio
alertas y notificaciones generadas. bind9, que es un software ampliamente utilizado para la
implementación de servidores DNS en sistemas Linux.
6. Interfaz Web de Nagios: Se accedió a la interfaz Estado del Servicio SSH
web de Nagios para visualizar el estado en tiempo
6
Comando: sudo service sshd status herramienta de monitoreo de sistemas, redes y servicios de
Descripción: Comprueba el estado del servicio sshd, que es el infraestructura.
demonio del servidor SSH, encargado de escuchar las
conexiones entrantes y manejar la autenticación y III. CONCLUSIÓN
establecimiento de sesiones seguras.
Configuración del Servidor DHCP El proyecto logró configurar con éxito una red virtualizada
que integra servicios críticos y asegura la comunicación entre
Comando: sudo nano /etc/dhcp/dhcpd.conf servidores y clientes. La implementación de restricciones de
Descripción: Abre el archivo de configuración del servidor firewall específicas y el balanceo de carga con HAProxy
DHCP (dhcpd.conf) en el editor de texto nano para su contribuyen a una red más segura y eficiente. La detección de
modificación. El servidor DHCP asigna direcciones IP y otros intrusos con Snort y el monitoreo con Nagios aseguran la
parámetros de red a los dispositivos en la red. vigilancia constante y la capacidad de respuesta ante
Estado del Servicio DHCP incidentes. Este proyecto demuestra que, con las herramientas
adecuadas, es posible crear una infraestructura de red segura y
Comando: service isc-dhcp-server status resiliente en un entorno virtualizado.
Descripción: Muestra el estado actual del servicio isc-dhcp-
server, que es el demonio del servidor DHCP en sistemas REFERENCES
Linux.
Firewall - Visualizar Reglas
Comando: iptables -L -v Gamarra, Á. I., Sánchez, E., & Arias Figueroa, D.
Descripción: Lista todas las reglas actuales en las tablas de (2021). Simulación de enrutamiento BGP con GNS3.
iptables, mostrando detalles como el número de paquetes y In XXIII Workshop de Investigadores en Ciencias de la
bytes que han coincidido con cada regla. Computación (WICC 2021, Chilecito, La Rioja).
Firewall - Borrar Restricción
Zurita Maldonado, I. A. (2022). Implementación de
Comando: iptables -D INPUT 1 prácticas de enrutamiento con equipos virtualizados de
Descripción: Elimina la primera regla en la cadena INPUT de networking de huawei en GNS3 y ENSP. (Bachelor's
iptables, lo que puede afectar la manera en que el firewall thesis, Quito, 2022).
maneja los paquetes entrantes.
Configuración de HAProxy CARROLL, J., Díaz, L. G., & Sanchez, C. C. G. (2020).
Metodología de Cloud Computin VPN con Graphical
Comando: sudo nano /etc/haproxy/haproxy.cfg Network Simulator (GNS3). Memorias.
Descripción: Abre el archivo de configuración de HAProxy
para su edición. HAProxy es un balanceador de carga y proxy Florez Quiceno, C. A. Configuración del Servicio IPTV
para aplicaciones TCP y HTTP. en GNS3.
Estado del Servicio HAProxy
Comando: sudo systemctl status haproxy
Descripción: Verifica el estado del servicio haproxy, para
saber si está activo, inactivo o si presenta algún error.
Configuración de Reglas de Snort
Comando: sudo nano /etc/snort/rules/local.rules
Descripción: Edita el archivo de reglas locales de Snort, un
sistema de prevención de intrusiones (IPS) y de detección de
intrusiones en red (NIDS).
Estado del Servicio Snort .
Comando: /etc/init.d/snort status
Descripción: Muestra el estado actual del servicio Snort,
proporcionando información sobre su funcionamiento y
actividad.
Estado del Servicio Nagios
Comando: sudo service Nagios status
Descripción: Verifica el estado del servicio Nagios, una