Pruebas de conceptoRedes

GNS3: WAN, administración y Firewalling con Sophos UTM

Buenos días conejetes! Hoy vamos a continuar con nuestras pruebas de laboratorio con GNS3. Recordad que el otro día montábamos un laboratorio completo contando con un par de elementos centrales de red, dos redes de usuarios con dos equipos Windows y una pequeña red DMZ con un servidor Apache sobre Debian.

Recordemos lo que tenemos montado en el siguiente diagrama:

Echadle un vistazo a la entrada anterior si no habéis comenzado por ahí 🙂

Continuando con ésto, hoy vamos a realizar varios pasos importantes para seguir completando nuestro laboratorio:

  • Conexión del laboratorio a Internet, mediante un aplicativo de GNS3 de tipo NAT que representará y servirá de enlace a Internet.
  • Configuración más específica del aplicativo Sophos UTM Home, permitiendo la salida de los dispositivos de usuario a Internet bajo ciertas condiciones.

Sin más dilación, ponemos en marcha las máquinas de los elementos centrales SophosUTM y CumulusCore. Además arrancaremos USR1_WIN7_10, desde la que haremos pruebas de conectividad, y nos ponemos a ello.

Conexión del laboratorio a Internet

Lo primero será arrastrar al proyecto MADRIGUERA un aplicativo tipo NAT, que nos permitirá realizar la salida a Internet como indica el nombre a través de una NAT corriendo sobre la máquina virtual GNS3 que tenemos corriendo en VMware (o el sistema de virtualización que eligiésemos).

Tendremos que hacer click en el botón End Devices del panel lateral izquierdo, elegir el aplicativo tipo NAT y arrastrarlo al lienzo. Le pondremos el nombre INTERNET, bastante autoexplicativo.

Lo siguiente será conectarlo mediante la herramienta Add a Link a la interfaz eth1 del Sophos UTM, que es la típicamente utilizada para enlaces WAN o de salida. Conectaremos además a la boca nat0 del aplicativo NAT.

Vemos que aparece inmediatameante la conexión como establecida, aunque realmente para que esto ocurra debemos realizar un par de configuraciones en el SophosUTM. Para ello accedemos al WebAdmin del mismo a través de la máquina Windows de la red USR1 que tenemos arrancada. Recordemos que hay que hacerlo a través de la dirección https://192.168.10.1:4444.

Una vez en la configuración, nos dirigiremos a Interfaces & Routing -> Interfaces y haremos click en Net Interface, nombrándola WAN y estableciendo tipo Ethernet en el hardware eth1.

Dado que el aplicativo NAT funciona dentro del direccionamiento 192.168.122.0/24 con el mismo funcionando en 192.168.122.1, nos asignaremos la dirección 192.168.122.2/24 y haremos click en la opción IPv4 Default GW. Rellenamos además el campo IPv4 Default GW address que aparece con la dirección 192.168.122.1, declarando que esta conexión se considerará el Default Gateway del SophosUTM.

Esto quiere decir, como ya sabréis, que todas las conexiones a redes externas y/o desconocidas se realizarán a través de esta interfaz y a través del aplicativo NAT. Hacemos click en Save para guardar los cambios.

Desde este momento nuestro SophosUTM debería tener conectividad a internet. Vamos primero el ping desde el Firewall marcando la opción Ping from gateway en Network Protection -> Firewall -> ICMP y haciendo click en Apply.

Podemos comprobar conectividad yendo en el panel lateral a Support -> Tools -> Ping Check. Esto nos permite ejecutar un ping desde el aplicativo. Escribiremos 8.8.8.8, el servidor DNS de Google, como objetivo del ping y dejaremos el resto tal cual. La conexión saldrá por la conexión WAN al ser ésta el default gateway y se nos mostrará que se realiza con éxito la prueba al clicar Apply y esperar unos instantes.

Sin embargo, podemos comprobar que si hacemos la misma prueba desde una consola de USR1_WIN7_10 no conseguimos salir a Internet. Esto se debe a que primero debemos configurar una NAT dinámica con PAT en el SophosUTM que permitirá la comunicación de las redes de usuarios con el exterior.

Nota: Si tenemos el Web Filter activado, al funcionar éste de por sí como una NAT (en realidad es el Firewall quien realiza la petición) y estar conectando el Firewall con Internet con el aplicativo NAT de GNS3, podríamos llegar ya a Internet mediante navegación web. Lo mismo ocurre para los ping si tenemos configurado Gateway forwards pings. Lo que haremos aquí es que esto mismo ocurra para todos los servicios, no solamente éstos que con esas configuraciones se ponen de forma automática 🙂 Probad que sin ello no podríais acceder a estos servicios.

A modo de recordatorio rápido, una NAT o Network Address Translation es un mecanismo que permite la interconexión de una red con otra. Funciona traduciendo la dirección IP origen del host, normalmente de un rango privado, con la dirección IP que tiene asignada en la red externa el router (o Firewall en este caso) o un conjunto de ellas.

Recordemos además que la NAT es necesaria cuando conectamos rangos privados de direcciones IP con el exterior al no ser rangos asignados a nuestra organización por la IANA y/o nuestro proveedor de servicios, y por tanto no tener forma de llegar a ellas mediante enrutamiento desde redes del exterior.

El PAT o Port Address Translation, también llamado a veces NAT Overload o sobrecarga sobre todo en aplicativos Cisco, permite que varias IPs de la red origen se traduzcan a una sola de la red externa, haciendo uso de la traducción de puerto TCP/UDP origen además de la dirección IP.

En la práctica, esto nos permitirá que las redes de usuarios conecten con el aplicativo NAT haciendo uso de la dirección IP 192.168.122.2 que tiene SophosUTM asignada en ese segmento.

Nos dirigiremos a Network Protection -> NAT -> Masquerading para crear una NAT de este tipo haciendo click en New Masquerading Rule. Masquerading es otra forma de llamar a una NAT dinámica con PAT en una terminología más utilizada en sistemas Linux, también llamada One-to-Many (1:Many). Indica que se «enmascaran» las direcciones internas utilizando una única externa.

Haremos click en el icono + del apartado Network en el formulario para añadir la NAT para añadir una nueva definición de red de tipo Network Group llamada USR_NETS. Esta definición englobará las dos redes de usuarios y podremos utilizarlo para aquellas reglas y configuraciones que les apliquen como conjunto. Haciendo click en icono de carpeta del diálogo de creación de Network Definition podremos agregar desde un panel lateral las redes Internal-USR1 e Internal-USR2, opcionalmente con un comentario aclaratorio. Haremos click en Save para guardar la definición.

Por último seleccionaremos la interfaz WAN como interfaz salida de la NAT y un pequeño comentario, tras lo cual guardaremos la configuración haciendo click en Save.

Para aplicar la nueva regla NAT tendremos que hacer click en el botón deslizante de la regla y así dejarla activada.

Tras esto, nuestros equipos de las redes de usuario ya pueden conectar a Internet. Pero… ¿por qué no llego a Google, ni siquiera con un ping? Hay dos razones. La primera es que los equipos de usuario no tienen configurado un servidor DNS al cual lanzar consultas. La segunda es que el Firewall de forma predeterminada no permite ping al exterior a no ser que lo indiquemos explícitamente. Sí que permite, como vimos en la entrada anterior, el acceso Web, DNS y de correo, porque configuramos las reglas necesarias.

Si queremos permitir el ping hacia el exterior, debemos dirigirnos a Network Protection -> Firewall -> ICMP y marcar la opción Gateway forwards pings.

Detalle importante es que esto permite solamente ping, no todo ICMP como ocurriría si marcamos Allow ICMP through gateway más arriba, lo cual puede llegar a ser más peligroso. De hecho en producción puede considerarse una buena opción impedir también ping hacia el exterior para evitar posibles vías de exfiltración (como nos explica este hacker malo).

Podemos ahora ejecutar un ping a una dirección IP externa desde nuestra máquina en USR1 en una consola, por ejemplo a 8.8.8.8:

Podemos comprobar incluso que tenemos acceso a Google o cualquier otra página web escribiendo en el navegador su dirección IP en vez de su nombre de dominio. Sin embargo, lo idóneo es configurar un servicio DNS. Lo que haremos será configurar el servicio DNS interno del SophosUTM para que permita resolver direcciones para las redes de usuarios.

Para ello, nos dirigimos a Network Services -> DNS y en la pestaña Global configuramos el servicio para el grupo USR_NETS, permitiendo así el uso de SophosUTM como servidor DNS para las redes de usuarios. Eliminaremos de la lista la red Internal-USR1 que figura de forma default; es redundante una vez añadido el grupo. Por último haremos click en Apply.

Vamos a fijarnos ahora en la pestaña Forwarders para entender bien cómo va a funcionar el servicio. Los forwarder son servidores DNS a las que reenviaremos las peticiones desconocidas que nos lleguen y que nos devuelvan la respuesta, la cual reenviaremos de vuelta al usuario.

Veremos que no hay ningún forwarder añadido, pero está marcada la opción User forwarders assigned by ISP, y más abajo se nos indica que se usa 192.168.122.1. Éste es el gateway de nuestra interfaz WAN, el aplicativo NAT que simula Internet, el cual marcamos como default gateway del SophosUTM. De forma predeterminada, éste asume que es el router que nos proporciona el proveedor de servicios para darnos conectividad al exterior, y que será capaz de hacer el reenvío de peticiones DNS (lo más normal). Tenemos suerte y es que el aplicativo NAT de GNS3 efectivamente se comporta de esta manera. Todo bien.

Configuraremos ahora en nuestro equipo de usuario en USR1 la dirección 192.168.10.1, la misma que el default gateway de la red, como servidor DNS. Tras esto, podemos comprobar que podemos acceder a nuestras páginas favoritas mediante su nombre de dominio correctamente.

Administración de Sophos UTM

Vamos ahora a realizar un pequeño recorrido por varias configuraciones y características de SophosUTM que nos permitirán dejar nuestro aplicativo mejor securizado y además nos servirá para aprender bastante sobre su funcionamiento.

Configuración organizacional y Hostname

Podemos cambiar la información de la organización y el hostname del aplicativo en las pestañas correspondientes si nos dirigimos a Management -> System Settings. Ésto ya lo configuramos en el setup inicial, pero podríamos querer variarlo en el futuro.

Configuración de fecha y hora

Podemos configurar la fecha y hora del sistema en Management -> System Settings y en la pestaña Time and Date. Vemos además en la parte inferior el servidor NTP con el que sincronizaremos la hora como cliente NTP. Si no quisiésemos utilizar servidores NTP externos, podríamos eliminar los servidores de la lista y dejar simplemente la fecha configurada manualmente.

Configuración de acceso por SSH

Podemos configurar el acceso al aplicativo por SSH si nos dirigimos a Management -> System Settings y la pestaña Shell Access. Aquí podemos activar el servicio SSH mediante el deslizante superior, además de configurar las contraseñas de los usuarios root y loginuser, éste último usuario no privilegiado.

Interesante además dejar configuradas las redes permitidas, impidiendo el acceso en sitios desde los que en principio no vamos a gestionar la red. Podemos permitir tanto redes como hosts particulares. En nuestro caso, crearemos una definición de red haciendo click en el icono +. Agregaremos la definición del equipo USR1_WIN7_10 para permitir la gestión por SSH únicamente desde el mismo.

Hecho esto eliminaremos Any de la lista y haremos click en Apply, tras lo cual configuraremos las contraseñas de los usuarios SSH y marcaremos la activación con el botón deslizante superior. Dejaremos tal cual el apartado Authentication que vemos más abajo, permitiendo la autenticación mediante contraseña pero solamente con el usuario no privilegiado (No root access).

 

Podremos utilizar cualquier cliente SSH desde el equipo de usuario para lograr acceder a la consola SSH del sistema.

Restaurar contraseñas y volver a la configuración de fábrica

Podemos restaurar las contraseñas de sistema y/o devolver el SophosUTM a la configuración de fábrica en la pestaña Reset Configuration or Passwords dentro de System Settings. Esto, como ya supondréis, puede servir si queremos reubicar el aplicativo con una configuración totalmente diferente, si vamos a realizar una devolución, u otros casos extremos.

Ajustes de WebAdmin

Una configuración importante es establecer desde qué redes podemos acceder a WebAdmin. Estableceremos en Management -> WebAdmin Settings en el apartado General -> Allowed Networks que únicamente se podrá acceder a éste a través del equipo USR1_WIN7_10, igual que en el acceso SSH. Aplicamos el cambio clicando en Apply.

Dejaremos como está el resto de configuraciones, entre las que están los administradores permitidos o Allowed Administrators definido como el grupo SuperAdmins, que únicamente contiene a nuestro usuario admin. Además no configuraremos nuevos tipos de usuario o restricciones de control como puede hacerse desde ls pestaña Access Control, no siendo necesario para nuestra infraestructura simple con un solo administrador.

 

Licenciamiento

Dentro del apartado Management -> Licensing podemos ver los detalles de nuestra licencia, que en nuestro caso es de tipo Home. Esto quiere decir que tenemos limitación de direcciones IP que gestionar, concretamente 50, además de que tenemos algunas características deshabilitadas. Lo más interesante es revisar las direcciones IP que se han detectado actualmente en uso por el Firewall desde la pestaña Active IP Addresses, con más o menos precisión.

Backup manual y automático

En el apartado Management -> Backup/Restore podemos realizar una copia de seguridad de la configuración del aplicativo, que podemos guardar y descargar a local. Posteriormente podremos volver a importarla y dejar todo como estaba en el momento del backup.

Además, podemos ver en la pestaña Automatic Backups que de forma predeterminada se enviarán semanalmente copias de seguridad automáticamente a la dirección de correo del administrador que se configuró en el setup inicial. Tenemos además la opción de cifrar el contenido de estas copias de seguridad con una contraseña.

Configuración del portal de usuarios

Podemos configurar un portal a través del cual los usuarios de nuestra red puedan acceder a una serie de servicios proporcionados por el Firewall. El primero y más importante es la posibilidad de descargar el certificado TLS del Firewall, de forma que al presentarse una pantalla de bloqueo al intentar acceder a un sitio no permitido por el filtro web no se tenga que añadir una excepción de seguridad.

Otros servicios accesibles desde aquí pueden ser la VPN de acceso remoto, recuperación de mensajes de correo, gestión de acceso a redes inalámbricas, etc.

Podemos habilitarlo para las redes de usuarios introduciendo la definición correspondiente y dejando marcada la opción Allow all users, dado que de momento no tenemos configurados usuarios concretos y mucho menos integrado un directorio activo.

En la pestaña Advanced podemos ver que se puede seleccionar un lenguage predeterminado (lo dejaremos en inglés), permitir las cookies, deshabilitar de forma explícita ciertos servicios y configurar el puerto de acceso. Cabe destacar que al ser una versión Home no podemos personalizar el mensaje de bienvenida del portal. De momento dejaremos todos estos valores predeterminados.

Accederemos desde el equipo de usuario a la dirección https://192.168.10.1 (puerto HTTPS predeterminado, no el 4444 de gestión). Se nos presentará un formulario de acceso al que accederemos como usuario admin con los mismos credenciales que en el WebAdmin.

Podemos ver que de forma predeterminada se nos presenta una pantalla de bienvenida con algunas de las cosas que potencialmente pueden hacerse desde aquí.

Destacamos que de momento únicamente podemos cambiar la contraseña del usuario, en este caso admin, y acceder al Web Filtering para descargar el certificado del mismo, necesario si el filtro descifra tráfico HTTPS. Volveremos aquí más tarde cuando configuremos esto.

Apagado o reinicio del aplicativo

Podemos apagar o reiniciar el dispostivo de forma remota desde Management -> Shutdown/Restart.

Definiciones de red y servicios

Si nos dirigimos a Definitions & Users -> Newtork Definitions podemos ver una lista de todas las definiciones de red que hemos creado y utilizado hasta ahora.

De forma automática Sophos UTM crea una definición de dirección IP, red y broadcast de cada una de sus interfaces y subinterfaces configuradas. Además encontramos definiciones que cubren cualquier dirección o Any, y sus correspondientes especificando IPv4 e IPv6 (Any IPv4, Any IPv6).

Asimismo, por ejemplo, podemos ver las definiciones del host USR1_WIN7_10  y el grupo USR_NETS que creamos anteriormente. Una gran ventaja de Sophos UTM es que permite como vimos la creación en el acto de nuevas definiciones en los diálogos de configuración.

Podemos agregar nuevas definiciones haciendo click en New Network Definition y el proceso es el mismo que cuando lo hicimos desde otros diálogos.

Podemos ir además a Definitions & Users -> Service Definitions y de forma muy similar ver las definiciones de servicio, identificándolos mediante puerto TCP, UDP, tipo ICMP… además de poder crear grupos de servicios de forma similar a grupos de red. Hemos utilizado antes estas definiciones para autorizar el paso de conexiones de navegación web, correo y DNS en las reglas de Firewall.

Creación de usuarios y grupos locales

Nos dirigimos ahora a Definitions & Users -> Users & Groups, donde podemos ver que podemos crear tanto usuarios como grupos locales en el sistema. Además, aquí posteriormente podríamos gestionar diferentes usuarios y grupos de integración con Active Directory. Vamos a crear un usuario local llamado conejo como prueba y para poder posteriormente probar y configurar de forma adecuada el filtro HTTP/S.

Una vez clicamos en Save automáticamente aparece el usuario activado.

Vamos además en la pestaña Groups a crear un nuevo grupo llamado LocalUsers con el usuario conejo.

Configuración de la protección de red (Network Protection)

Vamos ahora a entrar un poco más en materia y comenzar a revisar la configuración de seguridad de red de la infraestructura.

Reglas de Firewall

La primera parte y más representativa podemos encontrarla en Network Protection -> Firewall. Encontramos las reglas que ya habíamos configurado en el setup inicial, que permiten conexiones DNS, de correo electrónico y de navegación web a las redes de usuarios. Vamos primero a cambiar la declaración de estas reglas para que cubran las redes de usuario como grupo USER_NETS en vez de cada red individualmente como las teníamos.Esto nos ahorrará trabajo de cara a futuro si agregamos nuevas redes de usuario al grupo.

Digamos que ahora queremos desde nuestro equipo de usuario USR1_WIN7_10 acceder al servicio SSH del servidor DEBIAN_WEB que tenemos colocado en la DMZ porque el administrador quiere acceder desde allí. Vamos a crear una regla, haciendo click en New Rule, que permita el acceso SSH exclusivamente al servidor y solamente desde dicho equipo.

Recordemos que creamos anteriormente la definición del host, pero tendremos que crear la de DEBIAN_WEB con su dirección IP. Seleccionaremos el servicio SSH en el diálogo de selección de servicios al clicar al icono de la carpeta, igual que hacíamos con las redes.

Haremos click en Save y activaremos la regla con el botón deslizante de la misma. Podemos ahora comprobar que tenemos acceso SSH desde el equipo USR1_WIN7_10 utilizando por ejemplo Putty.

Si queréis, comprobad que por ejemplo desde USR1_WIN10_11 o cualquier otro equipo no tenéis acceso, dado que no hay regla configurada para ello.

Bloqueo por país

Una configuración que dependiendo del contexto podría resultarnos útil es el bloqueo de conexiones por país de la pestaña Country Blocking dentro de las configuraciones de Firewall. Bloqueará aquellas conexiones desde un país, hacia él o ambas. Podemos seleccionar ésto a nivel de continente o de país  una vez activada la característica.

Podemos además en la pestaña siguiente, Country Blocking Exceptions, seleccionar páginas web concretas como excepción a los bloqueos según el país. No nos entretendremos mucho en esto y no lo dejaremos configurado porque no tenemos especiales manías 🙂 pero me parecía interesante describirlo.

Bloqueo y permisos ICMP

En la siguiente pestaña de las configuraciones Firewall tenemos posibilidad de realizar configuraciones para el protocolo ICMP. Dentro de cada apartado tenemos una breve explicación de las diferentes opciones.

El primero describe ajustes globales de ICMP, mientras que el segundo se centra en ping y el tercero en traceroute. Configuraremos SophosUTM de forma que se permita lanzar exclusivamente mensajes ICMP de tipo ping (Echo Request y Echo Reply), pero no mensajes ICMP en general, que puede llegar a ser peligroso o permitir exfiltrar información.

Así, dejaremos sin marcar las opciones:

  • Allow ICMP on gateway, que permite al sistema responder a mensajes ICMP en general.
  • Allow ICMP through gateway, que permite pasar mensajes ICMP a través del aplicativo entre redes internas.
  • Allow ICMP through Gateway from external networks, que permite recibir mensajes ICMP desde el exterior.

Dejaremos las siguientes marcadas, permitiendo concretamente ping (sobreescribe lo anterior exclusivamente para este tipo):

  • Gateway is ping visible, que permite que las redes internas le envíen mensajes ping.
  • Ping from gateway, que permite la salida de Echo Request con origen el mismo SophosUTM, para labores principalmente de troubleshooting.
  • Gateway forwards pings, que permite dejar pasar mensajes ping entre redes internas.

Dejaremos además activadas las dos opciones de Traceroute, que permiten responder a este tipo de mensajes y dejarlos pasar entre redes.

Podemos comprobar los ajustes lanzando algunos comandos tracert y ping desde el equipo usuario.

Reglas NAT

Más arriba configuramos ya una NAT tipo Masquerade para permitir la salida al exterior de las redes de usuario. Ahora lo que haremos es ofrecer el servicio web de DEBIAN_WEB al exterior mediante la configuración de una regla tipo Destiny NAT o DNAT.

Lo que hace este tipo de regla es la inversa a una de tipo Source NAT, con la que estamos más acostumbrados a trabajar. Lo que hace es realizar una traducción de la dirección destino de la conexión, en vez de la dirección origen como ocurría en Masquerade.

Estableceremos que para toda aquella conexión proveniente de Internet IPv4 (que se define como cualquiera proveniente de aquella interfaz definida como default gateway, en nuestro caso la WAN) con destino la dirección WAN 192.168.122.2, que es la externa de nuestro Firewall, y con servicios destino de tipo Web Surfing (HTTP, HTTPS…) se traducirá a la dirección de DEBIAN_WEB con ese mismo servicio destino (para no traducirlo se deja en blanco).

Marcamos además Automatic firewall rule, que creará de forma automática las reglas de Firewall necesarias para permitir el acceso a esos servicios desde el exterior.

Activaremos la regla para poner en funcionamiento la traducción.

Podemos comprobar la regla automática de Firewall yendo a la configuración del mismo en Network Protection -> Firewall y en el desplegable del filtrado de reglas indicar que se muestren las Automatic firewall rules.

Puede verse claramente la regla automática que permite el Web Surfing desde Internet hacia DEBIAN_WEB.

Un problema que tenemos ahora es que no podemos probar la regla tal como está, al no tener manera de conectar en nuestra infraestructura MADRIGUERA en GNS3 un equipo de usuario en el lado WAN, conectado directamente al aplicativo INTERNET de tipo NAT. En futuras entradas modificaremos este lado WAN para permitir equipos externos y probar las diferentes configuraciones desde el lado atacante 🙂

Nota: Si quisiéramos probar la regla ahora mismo, podríamos cambiar temporalmente el campo For traffic from a USR1_WIN7_10 y tras guardar intentar acceder al servicio web introduciendo la dirección http://192.168.122.2, la dirección WAN del SophosUTM. Veremos que se nos muestra correctamente la página web, probando que la dirección IP externa del mismo redirige al servicio web de DEBIAN_WEB. De otra forma, no conseguiríamos llegar a un servicio web en dicha IP desde la red interna.

 

Conclusiones

Hasta aquí hemos llegado en la entrada de hoy 🙂 Hemos profundizado más en las diversas opciones de configuración de la administración de Sophos UTM tras haber podido conectar los diversos elementos de la infraestructura a Internet con las reglas adecuadas.

En las próximas entregas completaremos un poco el lado WAN de la infraestructura para tener equipos externos desde los cuales poder lanzar pruebas y además configuraremos el Web Filtering y las funciones de detección de intrusiones de Sophos UTM.

Espero como siempre que os haya gustado la entrada y os sirva para aprender. Stay tuned!!

2 comentarios en “GNS3: WAN, administración y Firewalling con Sophos UTM

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Los datos introducidos se guardarán en nuestra base de datos como parte del comentario publicado, como se indica en la política de privacidad.