Lab0 implementando un laboratorio de Pentesting en GNS3
Vamos a diseñar el laboratorio tratando de que sea lo más realista posible como dice el título se usará GNS3 como herramienta principal.
Arquitectura de la red
Para el diseño de la red vamos a pensar en una organización pequeña y que necesite:
- Una red para servidores expuestos a internet
- Una red pública donde clientes puedan conectarse a internet ya sea por cable o wifi
- Una red para el personal administrativo
- Una red para los desarrolladores
Como vemos tenemos 4 grupos o subredes, ahora algunas condiciones más:
- Desde la red de servidores no debe haber conectividad a las otras redes excepto a internet
- Las demás redes si pueden tener conectividad a los servidores
- La red pública, administrativa y de desarrolladores no deben tener conectividad entre sí excepto a internet esto por razones de seguridad
- Usar los dispositivos adecuados para agregar futuras subredes
Diagrama
Realizamos un diagrama simple con los requisitos que tenemos para cada red:
Explicación:
- La red pública o para clientes además de ofrecer conectividad vía cable ethernet tambíén lo hace vía wifi
- Las redes: desarrolladores, administrativos y de servidores usarán el mismo tipo de topología y conectividad mediante cable Ethernet
Dispositivos:
En todas las redes se implementa:
- Un router
- Un switch
- En el caso de la red pública además un punto de acceso wifi
Internetwork
El diagrama de como se conectarán las redes:
Como vemos en el diagrama de izquierda a derecha primero usamos un firewall en este caso Pfsense que se encargará de evitar posibles intruciones desde la red de servidores, recordemos que estos servidores son de producción, tienen una ip pública y podrían ser por ejemplo un sistema de registro.El firewall está conectado al router de los servidores a esta zona se la conoce como DMZ o zona desmilitarizada(no sé por qué la llaman así y me refiero al nombre no al significado) y a la red interna.
Despúes del firewall tenemos la red interna esta se compone de:
- R1 el router principal que une todas las demás redes
- R2 router de la red pública
- R3 router de la red de administrativos
- R4 router de la red de desarrolladores
Segmentacion de IP’s
Ahora que ya tenemos el diseño de la red podemos establecer las direcciones que tendrán cada red. El rango privado para la red interna será de:
Segmento | Red | Puerta de enlace | DHCP |
---|---|---|---|
172.16.20.0/24 | pública | 172.16.20.1 | si |
172.16.30.0/24 | administrativos | 172.16.30.1 | si |
172.16.40.0/24 | desarrolladores | 172.16.40.1 | si |
Por escalabilidad
- La distancia de 10 es para agregar y/o segmentar más redes dentro de esa subred por ejemplo si quisiéramos agregar una red para administrativos con privilegios altos podríamos crear una red 172.16.31.0/28 así claramente identificamos que esa red pertenece a la red de administrativos(rango de 30-39)
- La máscara 24 es solo por comodidad para este laboratorio evidentemente no habrá 254 máquinas en cada subred
Una amplia explicación sobre direccionamiento y subneting se encuentra en el capítulo 3 del libro:
Routers y firewall
Hay que considerar que solo se usarán 2 ip’s entre routers por lo tanto:
Segmento | Dispositivo | IP | Dispositivo | IP | DHCP |
---|---|---|---|---|---|
10.0.1.0/30 | Pfsense | 10.0.1.1 | R1 | 10.0.1.2 | no |
10.0.2.0/30 | R1 | 10.0.2.1 | R2 | 10.0.2.2 | no |
10.0.3.0/30 | R1 | 10.0.3.1 | R3 | 10.0.3.2 | no |
10.0.4.0/30 | R1 | 10.0.4.1 | R4 | 10.0.4.2 | no |
10.10.10.0/29 | pfsense(DMZ) | 10.10.10.1 | servidores(DMZ) | 10.10.10.0/29 | no |
La zona DMZ solo tendrá un switch que estará conectado directamente al Pfsense no hay necesidad de usar un router por ahora además de que solo habrá direcciones para un máximo de 6 servidores(por la máscara /29).
Implementando NAT
¿Por qué usar el NAT?, ¿Es realmente necesario? sí vemos la Figura 2 en especial el R1, podemos usar este router para:
- Controlar que red puede tener conectividad a internet
- Servidor DHCP para todas las redes
Esto, sería conveniente, ya que así tendríamos un único punto para controlar la conectividad de las redes, ahora que tipo de NAT usar? cómo entre el pfsense y R1 solo hay 2 únicas ip el tipo de NAT a usar es sobrecarga (overloading en ingles o PAT) esto es un tipo de conexión uno a muchos ósea:
El gráfico significa que todas las redes internas solo podrán tener conectividad mediante la ip de R1(10.0.1.2) y pfsense solo reconocerá esa única ip.
Se puede encontrar una explicación más detallada y ejemplos en el capitulo 11 del libro que se recomendó antes:
Diagrama final
El diseño final con todo lo anterior es:
GNS3
En esta guía se asume que el lector ya tiene instalado y configurado GNS3 en su equipo. Una guía ultra detallada (mejor que cualquier contenido online) se encuentra en el libro:
Los dispositivos usados y que se pueden descargar desde la sección Appliances de la Marketplace de GNS3 son:
- Pfsense firewall
- Router CISCO 7200 o equivalente pero debe ser CISCO
- Swich CISCO iosvl2 (ya integrado con GNS3)
ISP
Al igual que VirtualBox debe elegirse una interfaz para permitir la conectividad a internet, esta parte es similar a la sección “modo puente” pero en GNS3 todo dispositivo externo se representa por la nube la cual puede configurarse en la sección “edit>preferences>Cloud nodes” aquí:
- clic en New
- seleccionar “Run the cloud node on your local computer” luego next
- en “name” poner WAN o ISP o el que se desee hacer clic en “finish”
- seleccionamos la nube creada y luego clic en “edit”
- en “Ethernet interfaces” seleccionar la tarjeta de red física por la cual obtendremos conectividad a internet y clic en “add”
- Finalmente clic en “OK”,“Apply” y “OK”
En la sección “End devices” ya podremos ver nuestra nube y solo queda arrastrarla al panel central de GNS3.
Configuración de Pfsense y DMZ
Pfsense debe instalarse antes de poder usarlo, aquí un video de la instalación de Pfsense en el canal REeset2099.
Y la configuración de la red DMZ y la red LAN:
Configuración de routers
R1
Arrastramos el router CISCO al panel de GNS3 y haciendo clic derecho y en “configure>slots” agregamos 4 interfaces Gigabyte como se ve en la siguiente imagen:
Tabla de direccionamiento para R1:
Dispositivo1 | Interfaz | Ip | Dispositivo2 | Interfaz | Ip |
---|---|---|---|---|---|
R1 | GigabitEthernet1/0 | 10.0.1.2 | Pfsense | em2 | 10.0.1.1 |
R1 | GigabitEthernet2/0 | 10.0.2.1 | R2 | GigabitEthernet1/0 | 10.0.2.2 |
R1 | GigabitEthernet3/0 | 10.0.3.1 | R3 | GigabitEthernet1/0 | 10.0.3.2 |
R1 | GigabitEthernet4/0 | 10.0.4.1 | R4 | GigabitEthernet1/0 | 10.0.4.2 |
Tabla de servicios para R1:
Dispositivo | Servicio | Interfaz | Segmento |
---|---|---|---|
R1 | DHCP | GigabitEthernet2/0 | 172.16.20.0/24 |
R1 | DHCP | GigabitEthernet3/0 | 172.16.30.0/24 |
R1 | DHCP | GigabitEthernet4/0 | 172.16.40.0/24 |
R1 | NAT | GigabitEthernet2/0 | 172.16.20.0/24 |
R1 | NAT | GigabitEthernet3/0 | 172.16.30.0/24 |
R1 | NAT | GigabitEthernet4/0 | 172.16.40.0/24 |
Direccionamiento de R1
Ahora que ya tenemos todo definido configuramos las interfaces en el router haciendo clic derecho y console los comandos son:
|
|
Una introducción al uso de comandos CISCO y sus modos se puede encontrar en el libro:
- Cisco Routers for the Desperate, 2ed en el capítulo 1
Los comandos siguientes se realizan para cada interfaz solo cambiando la ip e interfaz correspondiente:
|
|
El resultado final debería ser:
|
|
DHCP en R1
Siguiendo la tabla de segmentación primero separamos las puertas de enlace para cada red:
|
|
Después configuramos las pools para cada red:
|
|
NAT en R1
Primero creamos un pool global y la ip que se usará:
|
|
Después creamos una regla que permita solo las ip’s que están en la lista 1 acceder al pool globalNet:
|
|
Ahora agregamos las redes a la lista de acceso 1 (ACL):
|
|
Para verificar las listas de acceso:
|
|
Como vemos todas las redes lan están en la ACL 1, finalmente establecemos las interaces outside y inside:
|
|
Toda la configuración anterior debe guardarse en memoria para prevenir perdidas al reinicio del dispositivo el comando es:
|
|
Rutas en R1
Las rutas son las siguintes:
|
|
ruta por defecto o puerta de enlace para R1:
|
|
par ver las rutas:
|
|
Hasta este punto si ya estamos conectados al Pfsense deberíamos tener conectividad desde R1 al exterior:
|
|
La configuración más compleja ha terminado!!!
Más información sobre ruteo en CISCO la encontramos en el capítulo 5 del libro:
Routers R2, R3 y R4
Similar a R1 a cada router se le debe agregar una interfaz en sus opciones de Configuración:
Tabla de direcciones para los routers R2, R3 y R4:
Dispositivo | interfaz 1 | ip | interfaz 2 | ip |
---|---|---|---|---|
R2 | GigabitEthernet1/0 | 10.0.2.2 | FastEthernet0/0 | 172.16.20.1 |
R3 | GigabitEthernet1/0 | 10.0.3.2 | FastEthernet0/0 | 172.16.30.1 |
R4 | GigabitEthernet1/0 | 10.0.4.2 | FastEthernet0/0 | 172.16.40.1 |
Solo se mostrará los comandos para R2, ya que los comandos para R3 y R4 son similares, solo se debe cambiar la correspondiente dirección ip:
|
|
La linea de azul permite a esta interfaz obtener una ip por dhcp desde R1, ahora agregamos las rutas:
|
|
Si intentamos hacer ping a una ip externa no tendremos respuesta, ya que la ip del router 10.0.2.2 no está en la ACL del pool de la NAT:
|
|
Hosts
Ahora que tenemos todo configurado debemos agregar el switch CISCO IOSVl2 a la red pública, este switch no necesita configuración alguna por ahora, conectamos una interfaz del switch a la interfaz FastEthernet0 del router R2 y dejamos las demás para los hosts.
En este punto debemos conectar una máquina para verificar la conectividad como se ve en este video:
Prueba de conectividad
Hasta aquí ya deberíamos poder alcazar la ip del router R1 10.0.1.2 desde R2:
|
|
Y desde R1 a la ip 172.16.20.1 (R2):
|
|
Diagrama final en GNS3
Después de aplicar toda la configuración el diagrama final en GNS3 es:
Puntos débiles/fallas
Si bien el diagrama anterior es funcional los puntos débiles son:
- Los routers/switches no están configurados con usuario y contraseña
- Pfsense aún usa credenciales por defecto (esto es sencillo)
- Hay conectividad entre las redes Pública, Administrativa y Desarrolladores
- Aún no hay un punto de acceso wifi
En los siguientes posts cubriré esos puntos.