Hoy hablaremos de unos de los mejores emuladores de sistemas de red, que no puede faltar a la hora de preparar nuestras PoC de ciberseguridad. En este caso, os lo acercamos con la instalación de un firewall Fortinet, y un pequeño ejemplo, pero los conceptos del post, podremos trasladarlo a cualquier otro fabricante, incluso sistema. Hay cientos de dispositivos de red compatibles con gns3 para que podáis contruir vuestros laboratorios. Donde el Firewall FortiGate está entre ellos. Podemos instalar el firewall de FortiGate en gns3 obteniendo la imagen de KVM del sitio web de FortiGate e instalarla directamente en el servidor remoto gns3vm o GNS3.
Para un mejor rendimiento, os recomiendo que instaleis el firewall FortiGate en un servidor remoto en lugar de gns3vm.
El problema con gns3vm es que hace virtualización anidada, lo que significa virtualización sobre virtualización. Esto degradará el rendimiento del propio firewall ( Todo dependerá de donde queramos llevar nuestra PoC ). Si no nos preocupa el rendimiento, podemos continuar con la instalación de FortiGate VM en GNS3VM, pero como os digo, todo dependerá de la hasta que punto queramos llevar nuestros laboratorios. Por ejemplo, si queremos probar firmas, reglas snort, módulos de IDS/IPS o solo probar algún concepto de VPN, Configuración propia del FW o similar.
Cómo instalar un firewall FortiGate en GNS3.
- Descargar la imagen KVM de FortiGate.
- Descargar el archivo del disco duro vacío.
- Instalar FortiGate en GNS3.
- Establecer la contraseña para el Fortigate.
- Obtener la interfaz y la IP de los equipos.
Descargar la imagen KVM de FortiGate
Una de las mejores cosas de FortiGate es que, a diferencia de otros proveedores, el tamaño de su software es muy pequeño ( aproximadamente 73 Mb ), es sorprendente cómo agregan tantas funciones a un paquete de software tan pequeño. Además, y de ahí por lo que he elegido Forti, no necesita tener un acuerdo de servicio para descargar la imagen, lo cual es realmente bueno para quien no tenga otras opciones.
Para descargar la imagen de FortiGate,
- Ir al enlace aquí .
- Iniciar sesión en la página, y si no disponeros de una cuenta, podéis registraros para obtener una, volviendo al enlace anterior para iniciar sesión.
- Después de iniciar sesión, obtendremos múltiples opciones para descargar el software FortiGate, haciendo clic en las imágenes de VM:
- Posteriormente, podremos elegir el producto Fortigate que necesitemos en el lado izquierdo y KVM como plataforma:
En el momento de escribir este posts, 7.2.0 es la última versión. Haz clic en descargar en la nueva opción de implementación entre las dos opciones de descarga, Actualizar ( Si disponemos de otra versión ) y Nuevo despliegue, que será nuestro caso.
Descargar el archivo del disco duro vacío.
Podemos descargar el archivo del disco duro virtual vacío desde este repositorio , también podríamos crear el archivo de disco duro vacío dentro de GNS3, pero como no es el fin del posts, creo que es mejor que optemos por su descarga directamente.
Con la imagen de FortiGate y la descarga del archivo del disco duro virtual, ya podemos instalar la máquina virtual de FortiGate en GNS3.
Instalción del FW FortiGate en GNS3.
Abre GNS3 en el ordenador. En este caso, vamos a optar por la parte más sencilla, que es obtenerlo de las propias plantillas, pero recordar que podríamos instalar y que en algún caso recomendamos la propia maquina ( recordando la problemática de la virtualización aninada )
- Haz clic en File.
- En dispositivos de seguridad, haga clic en Nueva plantilla.
- En el asistente Nueva plantilla,
- Elige Instalar un dispositivo desde GNS3 VM (En mi caso lo tengo asi por defecto) y hacemos clic en Siguiente.
- Buscamos nuestros dispositivo FortiGate.
- Cuando comiences a escribir FortiGate, verás el dispositivo FortiGate debajo del firewall, pero como podeís ver, la versión de la que dispone GNS3, posiblemente sea inferior a la que nos bajamos, por lo que procederemos a instalar la que nos hemos bajado:
Tras darle a crear una nueva versión, recibiremos otro aviso para nombrar el disco duro virtual principal de FortiGate. Y es aquí donde dentra en juego la última versión que nos hemos descargado. Cuando nos descargamos el fichero de Fortigate, tenemos que extraer el archivo, donde el nombre del archivo era fortios.qcow2 (Lo dejamos así, pero podría renombrarse).
Por ello, escribimos fortios.qcow2 y hacemos clic en Aceptar. ( No es necesario dejar el archivo en algun Path concreto, ya que GNS3 procederá a realizar la búsqueda ):
En el segundo disco duro virtual, dejamos el nombre de disco predeterminado 'empty30G.qcow2' y hacemos clic en Aceptar:
Una vez que se haya importado, ya estaremos listos para instalar el software. Elegimos la versión y hacemos clic en instalar:
En el aviso, nos indicará ¿Le gustaría instalar FortiGate versión 7.2.0? Elegimos sí y haga clic en Finalizar. Recibiremos la confirmación de que la instalación ya ha finalizado y podremos encontrar las imágenes en dispositivos de seguridad:
Os dejo un video en el que explica muy bien, como configurar GNS3 VM para virtualizar fuera del propio GNS3, con las consiguientes ventajas:
Establecer la contraseña para el fortigate
Tras instalar la máquina en GNS3, nos indica que la contraseña del equipo es admin y sin contraseña, por lo que lo ideal (Teniendo en cuenta que es una PoC) , es cambiar la password. Hemos instalado con éxito el firewall FortiGate en gns3, por lo que ya podemos crear un nuevo proyecto, para ello, arrastramos y soltamos el firewall FortiGate a la topología.
Hacemos clic derecho en FortiGate VM e iniciamos. O podemos hacer doble clic en el firewall de FortiGate para ingresar a la CLI.
Nos pedirá que ingresemos las credenciales, ingresamos el nombre de usuario como "admin" y dejamos la contraseña en blanco, nos pedirá que configuremos una nueva contraseña. Ingresamos la nueva contraseña y confirmamos la contraseña con enter:
Con esto, ya hemos cambiado con éxito la contraseña de la máquina virtual.
Cada vez que arrastremos y soltemos un nuevo firewall FortiGate en la topología, activará una nueva máquina virtual sin ninguna configuración, por lo que deberemos restablecer la contraseña cada vez que deseemos configurar un laboratorio.
Obtener la interfaz y los detalles de IP
Podemos validar que la instalación se realizó correctamente ingresando a la configuración del equipo.
Para obtener los detalles de configuración de la interfaz escribimos:
show system interface
Como podemos ver, el puerto 1 está habilitado con acceso de administración como HTTPS y SSH.
IMPORTANTE: Como no tenemos la licencia de FortiGate, no podemos acceder a la GUI de FortiGate mediante HTTPS, por lo que debemos tener en cuenta agregar http para permitir el acceso en la interfaz de administración.
Como dato curioso, el no disponer de licencia, tambien nos limita no solo el numero de cores, si no en un caso que me pasó recientemente , tambien el cifrado que podemos poner en las VPNs, claro está, a fin de no dejarlo en producción.
A diferencia de otros proveedores, si desea ver la dirección IP de nuestro firewall FortiGate, debemos escribir el comando:
diagnose IP address list
Como podemos ver, ninguna IP está configurada ahora mismo en el equipo, y si hemos conectado el puerto 1 a un servicio dhcp, hubiésemos obtenido una dirección IP y podríamos ver los detalles de la dirección IP aquí, pero todo ello, lo veremos mientras montamos nuestro laboratorio.
Crear un laboratorio de FortiGate con GNS3
Ya hemos visto, cómo poder construir nuestro laboratorio instalando un Firewall Fortigate, pero un equipo por si solo, nos sirve de poco, por lo que montaremos un escenario realista a fin de ver como podríamos usar GNS3 para nuestros laboratorios.
Esta es la topología de red que vamos a construir:
La interfaz WAN del firewall FortiGate está conectada a Internet y el lado LAN está conectado a un conmutador que atiende el tráfico LAN. Los usuarios de LAN saldrán a Internet utilizando el firewall FortiGate al final de la configuración. Podemos ampliar aún más el laboratorio agregando varios firewalls FortiGate mediante IPsec VPN por ejemplo para simular la conectividad de una sucursal, o incluso metiendo otra capa de FW a mayores distinta. Las posibilidades son infinitas.
Antes de continuar, debemos asegurarnos que hemos descargado e instalado el firewall FortiGate en Gns3 como hemos visto anteriormente.
Creando un nuevo proyecto GNS3
Una vez instalado con éxito FortiGate en GNS3. Ya podemos poner en marcha un pequeño laboratorio con la topología de red indicada.
Cuando agregamos el firewall FortiGate al GNS3, se nos agregarán diez interfaces virtuales (Las del propio equipo). Sin embargo, no requerimos las diez interfaces para este laboratorio. Podríamos usar el Port1 para la red LAN más la red de gestión. Port2 para la conexión a internet.
En producción, debemos tener una LAN y la interfaz de administración separadas.
- En GNS3, hacemos clic en File y hacemos clic en "nuevo proyecto en blanco".
- Proporcionamos un nombre de proyecto y la ubicación donde deseamos guardar los archivos del proyecto y haciendo clic en Aceptar posteriormente.
Configuración inicial de Fortigate
Primero configuraremos y prepararemos el firewall FortiGate, y cuando este listo, conectaremos cada puerto.
Encender el cortafuegos
Parece algo logico, pero sería el primero de los pasos, para ello, arrastra y suelte el firewall en la topología como hemos visto, sobre el mismo, hacemos clic derecho sobre él y clic en Iniciar.
Después de unos segundos, el firewall se cargará y solicitará el nombre de usuario.
Cambiar contraseña Fortigate
Lo hemos visto un poco más arriba, pero lo refrescamos de nuevo, para seguir la secuencia correctamente. Por defecto en Fortigate, debemos ingresar el nombre de usuario como "admin", y dejarmos la contraseña en blanco.
Nos pedirá que configuremos una contraseña en nuestro FortiGate. Ingresamos la nueva contraseña y confirmamos la misma. Después de cambiarla, podremos iniciar sesión en nuestra "máquina virtual de FortiGate" con el nombre de usuario admin y la contraseña que acabamos de crear.
Configurar el Port1 y habilitar HTTP en Fortigate
Tenemos que configurar la dirección IP en la interfaz LAN. De esa manera, podemos acceder a la GUI web usando la IP de LAN. De manera predeterminada, el firewall de FortiGate tiene habilitado el acceso HTTPS (Como debe ser) para fines de administración en el Port1. Sin embargo, no podemos usar la GUI web usando HTTPS porque estamos ejecutando una licencia de prueba que será válida solo por 16 días, por lo tanto, debemos habilitar http en el Port1.
Podemos escribir:
show system interface port1
y podemos ver que el puerto uno, está habilitado con ping, https, ssh y fgfm:
El puerto 1 del firewall está habilitado con el modo estático, sin embargo, no se configura ninguna dirección IP. Vamos a configurar 10.1.1.1/24 en el puerto LAN del Fortigate, también haremos que el rol del puerto LAN sea LAN.
Config system interface
Edit port1
set mode static
set ip 10.1.1.1 255.255.255.0
set role lan
Posteriormente podremos habilitar el acceso http en el Port1 con los siguientes comandos:
config system interface
edit "port1"
set allowaccess ping http ssh fgfm
next
end
IMPORTANTE: Debemos asegurarnos de agregar todos los puertos que deseemos, si solo agregamos http, se eliminarán los otros protocolos.
Antes de continuar, verificamos la configuración en el puerto 1 escribiendo el comando "show system interface port1":
Configurar el Port2 para WAN en Fortigate
Usaremos el servicio DHCP en el lado WAN del firewall y, de forma predeterminada, como podéis ver, no está configurado:
Por lo que lo configuraremos para usar DHCP:
config system interface
edit "port2"
set mode dhcp
set role wan
end
Con esto, tendríamos la configuración inicial del equipo Fortigate, pudiendo continuar.
Necesitamos configurar el host LAN para comunicarse con el lado LAN del firewall, para eso tenemos que ser parte de la red 10.1.1.0/24. Configurando cualquier dirección IP de esa subred y deberíamos poder llegar al lado LAN del Fortigate. Podremos llegar al Fortigate a través de ICMP, porque ya permitimos hacer ping en el lado de la LAN.
Con ello, y sabiendo que llegamos al equipo, podemos escribir http://10.1.1.1 en nuestros equipo LAN para acceder a la GUI web del cortafuegos.
IMPORTANTE: No intentes acceder a la GUI mediante HTTPS. Recuerda que como no tenemos licencia, no podemos acceder a ella y, además, eliminamos anteriormente el HTTPS de la configuración del puerto.
Ingresamos el nombre de usuario y la contraseña que establecimos anteriormente.
Hemos configurado la dirección IP de la máquina con Windows de forma estática, pero esa no es la forma correcta de administrar la dirección IP en el lado de la LAN. En su lugar, necesitamos usar un servidor DHCP o habilitar el servicio DHCP en el puerto LAN.
En la GUI > LAN >Port1 > Hacemos doble clic sobre él.
Nos desplazaremos hacia abajo y marcamos la casilla del servidor DHCP. Podríamos cambiar el rango de direcciones si queremos, en nuestro caso, estamos dejando todo esto por defecto.
Claro está, después de la configuración, hacemos clic en Aceptar.
Una vez configurado, verificamos la configuración del DHCP. En este momento, ya podemos agregar otro host con DHCP habilitado para conectarse al lado LAN del firewall o eliminar la IP estática en el host de Windows y permitir DHCP. Aunque podríamos conectar otro host, cambiaremos la dirección IP de Windows a DHCP.
Después de realizar los cambios, como podemos ver, el host de Windows obtuvo una dirección IP 10.1.1.2 del servicio DHCP de FortiGate. Los servidores DNS que ve son de los firewalls de FortiGate.
Conectar el Firewall Fortigate a Internet
Hemos configurado el lado LAN del firewall Fortigate, de forma que, cuando agreguemos más y más hosts, el FortiGate comenzará a actuar como servidore DHCP y entregará las direcciones IP. Pero esos hosts no pueden salir a Internet porque no hemos conectado el firewall a Internet. Estamos esperando que el ISP proporcione conectividad pública a Internet.
Tan pronto como Cloud1 se conectó al puerto WAN (Port2) del firewall, obtuvimos una dirección IP.
Dado que adquirimos la dirección IP a través de DHCP, también tendremos configurada la puerta de enlace predeterminada que actuará como una ruta predeterminada para el firewall, por lo que cuando intentemos hacer ping en Internet, deberíamos obtener respuesta.
Configurando el lado LAN de FortiGate para el acceso a Internet
El acceso a Internet ahora está disponible en el lado del Fortigate. Aún así, debemos configurar la política de seguridad y la configuración del NAT para que el host LAN salga a Internet utilizando el enlace de Internet de FortiGate.
Al crear la Política, debemos llamar a la subred de la interfaz LAN a la Política, por lo que es mejor mantener el objeto de dirección listo antes de continuar con la creación de la política en: Política y Objetos > Direcciones >Crear Nuevo >Dirección
Como hemos indicado, una vez creado el objeto, crearemos el NAT para permitir el acceso. La política de seguridad permitirá el tráfico de adentro hacia afuera, pero cuando el tráfico sale de la LAN sería una dirección IP privada, y cuando tiene que salir, la dirección IP debe traducirse a una dirección IP pública. Por lo tanto, necesitamos configurar el NAT en la misma política de seguridad.
En Firewall/Opciones de red, marcamos la opción NAT y en Configuración del conjunto de direcciones IP: Usar dirección de interfaz saliente (Que será nuestra IP Pública).
Estamos usando una IP privada en el lado WAN del firewall, por lo que cuando la IP privada 192.168.137.0/24 sale del firewall, se traduce nuevamente a la dirección IP del host y la dirección IP del host se traduce a mi dirección IP WAN del router y luego va a Internet, es una locura cuando lo piensas, pero así es como funciona.
Para ver los registros de tráfico, podemos consultarlos LogAllowedTraffic y eligiendo "Todas las sesiones". Policy & Objects > IPv4 Policy
Antes de hacer clic en Aceptar, podemos comenzar a hacer ping a cualquier IP pública desde nuestro host LAN, y tan pronto como apliquemos la configuración, deberíamos obtener una respuesta.
Hacemos clic en Aceptar y, como podemos ver, recibimos una respuesta al ping, lo cual es fantástico.
Podemos verificar la ruta de seguimiento (tracert) y deberíamos ver que el tráfico está pasando por su firewall Fortigate.
También podemos ver los registros en Log Report > Forwarded Traffic, para ver todo el tráfico que se inicia desde el host de Windows que conectamos al firewall:
Hemos implementado con éxito el laboratorio de firewall FortiGate en GNS3, y ahora, podemos expandir desde este punto en otro laboratorio, por ejemplo a configurar IPsec VPN, configurar el HA entre dos equipo, etc. Cuanto más nos manchemos las manos, mejor comprenderemos la tecnología.
Pero antes de profundizar en alguna tecnología, a ver si os puedo traer esta misma configuración para otros equipos. Estoy pensando en Palo Alto, que me viene genial por un proyecto en el que estoy inmerso, y que el cliente lo agradecería notablemente. Espero que disfrutéis de GNS3, que nos da un sinfín de posibilidades de montar nuestros laboratorios.