Note:
- Este tutorial requiere acceso a Oracle Cloud. Para registrarse para obtener una cuenta gratuita, consulte Introducción a la cuenta gratuita de Oracle Cloud Infrastructure.
- Utiliza valores de ejemplo para credenciales, arrendamiento y compartimentos de Oracle Cloud Infrastructure. Al finalizar la práctica, sustituya estos valores por otros específicos de su entorno en la nube.
Adición de seguridad a la arquitectura del sistema de nombres de dominio mediante el firewall pfSense
Introducción
OraStage es una empresa líder en el sector energético, especializada en soluciones de energía renovable y tecnologías de energía innovadoras, y anunció la decisión estratégica de migrar sus cargas de trabajo a Oracle Cloud Infrastructure (OCI) para mejorar el rendimiento, la escalabilidad y la seguridad.
Teniendo en cuenta las necesidades y condiciones específicas que OraStage ha descrito, la empresa requiere una solución híbrida de sistema de nombres de dominio (DNS) en la nube, y por híbrido aquí significa utilice su propio sistema de DNS Berkeley Internet Name Domain versión 9 (BIND9) además del servicio de DNS de OCI, donde la arquitectura final que buscan crear se muestra en la siguiente imagen.
OraStage Requisitos de DNS:
-
La compañía tiene varios dominios y subdominios internos, todos ellos deben resolverse mediante su DNS BIND9 en OCI, donde OraStage gestionará todas las zonas y registros relacionados. Uno de estos dominios es
orastage.com
que vamos a utilizar en este tutorial. Por lo tanto, cualquier consulta aorastage.com
se debe reenviar a su BIND9. -
Todavía necesitan resolver dominios nativos de OCI (
oraclevcn.com
,oraclecloud.com
, etc.) en algunos casos, y esto se hará mediante componentes de DNS privados de OCI: vistas privadas, reenvío de puntos finales y reglas, y recepción de puntos finales. -
Todas las consultas deben ser inspeccionadas por una instancia de firewall pfSense.
-
Para evitar un único punto de fallo, OraStage planea utilizar otro servidor DNS y aprovechar OCI Load Balancer para distribuir consultas entre DNS principal y secundario.
Esta serie de tutoriales le guiará paso a paso para lograr los requisitos descritos anteriormente, creando toda la solución desde cero. Puede navegar fácilmente a cada tutorial desde la siguiente lista:
-
Tutorial 1: Configuración de DNS BIND9 en OCI. Descubra cómo instalar y configurar BIND9 en una instancia informática, convirtiéndolo en el servidor DNS local para dos entornos de prueba en OCI. Estos entornos constarán de servidores "Frontend" y "Backend", cada uno alojado en una red radial independiente. El servidor BIND9 manejará todas las consultas DNS dirigidas a
orastage.com
. -
Tutorial 2: Implantación de alta disponibilidad en el escenario de DNS BIND9 en OCI. Este tutorial se centra en la adición de un servidor BIND9 secundario y la configuración de un equilibrador de carga de red (NLB) para distribuir el tráfico DNS entre ambos servidores. Las consultas DNS a
orastage.com
se dirigirán a la IP de NLB, que equilibrará la carga entre los servidores BIND9 principal y secundario. Si un servidor deja de estar disponible, la resolución de DNS continuará sin interrupción del servicio. -
Tutorial 3: Uso de OCI DNS para resolver dominios nativos. Centrándonos solo en un caso de uso específico, donde utilizamos componentes de DNS nativos en OCI, en caso de que sea necesario resolver dominios nativos como
oraclevcn.com
yoraclecloud.com
. BIND9 DNS no se utiliza en este tutorial. -
Tutorial 4: Adición de seguridad a la arquitectura de DNS mediante el firewall pfSense. Centrarse en la instalación de un firewall pfSense en la VCN de hub en OCI y realizar la configuración de red necesaria para enrutar todo el tráfico de este a oeste, incluidas las consultas DNS (hechas en los tutoriales anteriores) a través del firewall que se va a inspeccionar.
Descripción general
En este tutorial, exploraremos cómo mejorar la seguridad de nuestra arquitectura DNS aprovechando pfSense, una plataforma de enrutador y firewall de código abierto.
El DNS es un componente crítico de la infraestructura de red, pero a menudo es vulnerable a ataques como la suplantación de identidad de DNS, la intoxicación por caché y la denegación de servicio distribuida (DDoS). Al integrar pfSense con las medidas de seguridad de DNS, puede agregar una capa sólida de protección, lo que garantiza que el tráfico DNS de su red sea seguro y resistente. Por lo tanto, se recomienda configurar el firewall de manera que filtre las consultas DNS, bloquee los dominios maliciosos y fortalezca la integridad general de DNS.
¿Cuál es la ventaja adicional de colocar un firewall pfSense frente a un servidor DNS?
-
Filtrado de tráfico y control de acceso
-
El firewall puede restringir el acceso a su servidor DNS, lo que permite que solo las direcciones IP autorizadas o redes específicas envíen consultas DNS. Esto evita que usuarios o sistemas no autorizados consulten o exploten el servidor.
-
Puede aplicar políticas de control de acceso para garantizar que solo el tráfico DNS legítimo llegue al servidor, bloqueando el tráfico potencialmente dañino o no deseado.
-
-
Protección contra ataques basados en DNS
-
Prevención de ataques de amplificación/reflexión de DNS: los firewalls pueden detectar y mitigar los ataques de amplificación de DNS, donde los atacantes envían solicitudes falsificadas para abrumar al servidor. Al limitar o limitar el tráfico de consultas de DNS, el firewall minimiza el impacto de dichos ataques.
-
Prevención de falsificación de DNS: los firewalls pueden bloquear respuestas de DNS fraudulentas o maliciosas, que se utilizan en ataques de suplantación de identidad de DNS o envenenamiento para redirigir de forma incorrecta a usuarios a sitios web fraudulentos.
-
Mitigación de DDoS: los firewalls proporcionan mecanismos de defensa contra ataques distribuidos de denegación de servicio (DDoS) mediante la supervisión y limitación de volúmenes de tráfico DNS anormales, lo que evita que los atacantes abrumen su infraestructura de DNS.
-
-
Registro e inspección de consultas DNS
- El firewall puede inspeccionar las consultas DNS en busca de patrones sospechosos, como consultas de dominios maliciosos conocidos. Puede bloquear estas consultas antes de que lleguen al servidor DNS, lo que ayuda a evitar el acceso a sitios peligrosos.
- Los logs de consultas DNS se pueden registrar con fines de auditoría, lo que permite detectar comportamientos anormales o investigar posibles incidentes de seguridad de forma más eficaz.
-
Prevención del túnel de DNS
- El túnel DNS es una técnica utilizada por los atacantes para filtrar datos o comunicarse con sistemas comprometidos a través de consultas DNS. Un firewall puede detectar y bloquear las actividades de túnel de DNS, cerrando un vector de fuga de datos significativo.
-
Limitación de frecuencia y protección de recursos
- El firewall puede limitar el número de solicitudes DNS procedentes de un único origen (límite de velocidad), lo que evita la sobrecarga del servidor DNS. Esto ayuda a proteger contra ataques de consulta de DNS excesivos o de fuerza bruta que podrían degradar el rendimiento o la disponibilidad del servidor.
-
Segmentación de Red
- Al colocar el servidor DNS detrás de un firewall, puede aislarlo dentro de un segmento de red protegido (por ejemplo, DMZ), asegurándose de que, incluso si el servidor DNS se ve comprometido, el acceso del atacante al resto de su red esté restringido.
-
Compatibilidad con protocolos de DNS seguros
- Los firewalls pueden aplicar protocolos DNS seguros como DNS sobre HTTPS (DoH) o DNS sobre TLS (DoT), lo que garantiza que el tráfico DNS esté cifrado. Esto evita la intrusión o la manipulación de las consultas y respuestas de DNS, protegiendo a los usuarios de los ataques "man-in-the-middle".
-
Reducción de la superficie de ataque
- Al ocultar la dirección IP real del servidor DNS detrás del firewall, reduce su exposición a posibles atacantes. El firewall actúa como intermediario, presentando una capa de defensa entre la red pública de Internet y la infraestructura de DNS.
En general, colocar un firewall frente a su servidor DNS mejora la seguridad, el rendimiento y la resiliencia del servidor al evitar el acceso no autorizado, detectar el tráfico malicioso y ofrecer una protección sólida contra una amplia gama de amenazas relacionadas con DNS.
Objetivos
-
El objetivo principal de este tutorial es enrutar todo el tráfico este-oeste, incluidas las consultas DNS, a través de un firewall pfSense para inspeccionar. Además, supervisaremos algunas solicitudes mediante la función de captura de paquetes del firewall.
-
También desplegaremos un servidor de salto de Windows público, que servirá como punto de acceso para gestionar otras instancias privadas dentro de OCI VCN, en particular el firewall pfSense.
-
Al final de este tutorial, nuestro objetivo es establecer un modelo de arquitectura de red radial y hub. Esta configuración mejorará la seguridad, optimizará la gestión de red para OraStage mediante la centralización del control de enrutamiento entre redes a través del hub y aumentará la escalabilidad, lo que permitirá a la empresa agregar nuevas redes al hub existente en cualquier momento.
Nota:
En este tutorial no se tratan las capacidades de protección contra ataques específicos de DNS. En su lugar, nos centramos en desplegar el firewall pfSense e integrarlo en el entorno existente para enrutar todo el tráfico a través de él (por ejemplo, FE-VM a BE-VM, FE-VM a DNS-NLB, etc.). También demostraremos cómo configurar reglas básicas de control de acceso en el firewall.
Todavía puedes seguir este tutorial incluso si ya tienes otro tipo de solución de firewall como OCI Network Firewall o un firewall de red de marketplace como Palo Alto o FortiGate, entre otros.
Arquitectura final
Requisitos
-
Acceso a un arrendamiento de OCI y permisos para gestionar los servicios de red, recursos informáticos y almacenamiento de objetos necesarios.
-
Conocimientos básicos de enrutamiento y seguridad de red de OCI y sus funcionalidades: red virtual en la nube (VCN), tabla de rutas, gateway de direccionamiento dinámico (DRG), lista de seguridad, bastión y equilibrador de carga de red de OCI.
-
Conocimientos básicos de DNS en general.
-
Asegúrese de completar los siguientes tutoriales:
-
Se necesita una VCN, asegúrese de crearla con el asistente para obtener todos los componentes por defecto necesarios en la VCN y asociarla al DRG. Para obtener más información, consulte Tarea 1.3: Conexión de VCN al DRG.
- VCN de hub: la subred pública alojará el servidor de salto y la subred privada alojará el firewall pfSense.
-
En función de los requisitos anteriores, ya debería haber creado la siguiente arquitectura.
Tarea 1: Configuración de los componentes de enrutamiento y red de seguridad
Tarea 1.1: Creación de una red virtual en la nube (VCN de hub)
Asegúrese de que ya ha creado la VCN de hub (10.4.0.0/16
), que contiene Hub-Private-Subnet (10.4.0.0/24
) y Hub-Public-Subnet (10.4.1.0/24
).
-
Haga clic en el menú de hamburguesa (≡) en la esquina superior izquierda.
- Haga clic en Red.
- Haga clic en Redes virtuales en la nube.
-
Podemos ver la VCN en su lugar, como se ha mencionado, asegúrese de crearla mediante el asistente, para que obtenga los siguientes componentes por defecto: tres gateways, una subred pública con una tabla de rutas y una lista de seguridad asociada a ella, y una subred privada con una tabla de rutas y una lista de seguridad asociada a ella.
Nota:
A partir de ahora, en algunas partes de la configuración de las tablas de rutas y las listas de seguridad, vamos a agregar todas las redes: DNS-VCN (
10.0.0.0/16
), Frontend-VCN (10.1.0.0/16
), Backend-VCN(10.2.0.0/16
), LSN-VCN (10.3.0.0/16
), Hub-VCN (10.4.0.0/16
), en solo un bloque de direcciones (10.0.0.0/8
), solo para una gestión más sencilla, ya que esto reducirá el número de reglas.En algunos escenarios, dentro de una topología de hub y radios, las redes radiales pueden necesitar obtener acceso a Internet desde la red de hub, para que el tráfico pase a través del firewall para una mejor seguridad, es por eso que en el nivel de subredes radiales vamos a enrutar todo el tráfico al DRG. Sin embargo, en este tutorial, no estamos demostrando escenarios de acceso a Internet.
Tarea 1.2: Configuración del enrutamiento y la seguridad para la VCN de hub
-
Esto se debe realizar en cada una de las dos subredes. Vaya a la página VCN y haga clic en Hub-VCN.
-
Vamos a empezar con la subred pública, haga clic en ella.
-
Haga clic en Tabla de rutas, que es una tabla de rutas asignada.
-
Agregue la siguiente regla.
0.0.0.0/0
- Gateway de Internet: para tener acceso bidireccional a Internet. Necesitamos que acceda al servidor de salto con su dirección IP pública.
-
Hagamos la seguridad de la subred pública. Vaya a la página Detalles de subred y haga clic en la lista de seguridad asignada.
-
Permitir tráfico de entrada: tráfico RDP (TCP/puerto 3389) desde cualquier lugar.
-
Permita todo el tráfico de salida.
-
Vuelva a la página de la VCN y haga clic en la subred privada.
-
Haga clic en Tabla de rutas, que es una tabla de rutas asignada.
-
Agregue las siguientes reglas.
-
0.0.0.0/0
- Gateway de NAT: para tener acceso unidireccional a Internet, para instalar paquetes o parches si es necesario. No es un componente crítico tener en este tutorial, pero bueno tenerlo si pfSense necesita acceso a Internet. -
10.0.0.0/8
- DRG: enrute el tráfico destinado a Frontend-VCN, Backend-VCN, DNS-VCN o LSN-VCN al DRG, ya que cuando el firewall termine con la inspección del tráfico, reenviará el tráfico permitido, que utilizará esta tabla de rutas y lo enviará al DRG.
-
-
Hagamos la seguridad de la subred privada. Vaya a la página Detalles de subred y haga clic en la lista de seguridad asignada.
-
Permitir tráfico de entrada: todos los tipos de tráfico de VCN de frontend, VCN de backend, DNS-VCN y LSN-VCN.
-
Permita todo el tráfico de salida.
Tarea 1.3: Configuración del enrutamiento y la seguridad para la VCN de LSN
-
Esto se debe realizar en el nivel de subred. Navegue a la página VCN y haga clic en LSN-VCN.
-
Haga clic en la subred privada.
-
Haga clic en Tabla de rutas, que es una tabla de rutas asignada.
-
Eliminaremos todas las reglas.
-
Sustituiremos todas las siguientes reglas por una sola regla.
0.0.0.0/0
- DRG: enrute todo el tráfico al DRG, que incluye el tráfico que va a cualquiera de las otras VCN y el tráfico que va a Internet.
-
Hagamos la seguridad ahora. Vaya a la página Detalles de subred y haga clic en la lista de seguridad asignada.
-
Suprimiremos todas las reglas de entrada que permiten el tráfico DNS.
-
Sustituiremos las siguientes reglas por solo estas dos reglas.
Nota: No cambie nada en las reglas de salida.
Tarea 1.4: Configuración del enrutamiento y la seguridad para DNS-VCN
-
Esto se debe realizar en el nivel de subred. Navegue a la página VCN y haga clic en DNS-VCN.
-
Haga clic en la subred privada.
-
Haga clic en Tabla de rutas, que es una tabla de rutas asignada.
-
Eliminaremos todas las reglas siguientes.
-
Sustituiremos las siguientes reglas por una sola regla.
0.0.0.0/0
- DRG: enrute todo el tráfico al DRG, que incluye el tráfico que va a cualquiera de las otras VCN y el tráfico que va a Internet.
-
Hagamos la seguridad ahora. Vaya a la página Detalles de subred y haga clic en la lista de seguridad asignada.
-
Suprimiremos todas las reglas de entrada que permiten el tráfico DNS.
-
Sustituiremos las siguientes reglas por solo estas dos reglas.
Nota: No cambie nada en las reglas de salida.
Tarea 1.5: Configuración del enrutamiento y la seguridad para la VCN de frontend
-
Esto se debe realizar en el nivel de subred. Vaya a la página VCN y haga clic en Frontend-VCN.
-
Haga clic en la subred privada.
-
Haga clic en Tabla de rutas, que es una tabla de rutas asignada.
-
Eliminaremos todas las reglas siguientes.
-
Sustituiremos las siguientes reglas por estas dos reglas.
-
0.0.0.0/0
- DRG: enrute todo el tráfico al DRG, que incluye el tráfico que va a cualquiera de las otras VCN y el tráfico que va a Internet. -
Todos los servicios LIN de Oracle Services Network - Gateway de servicios: para proporcionar acceso a los servicios de Oracle en la región de Milán, esto es necesario para mantener la conectividad con el servicio OCI Bastion, si lo hace no tiene una regla aquí para acceder a Internet o a los servicios de Oracle, se enfrentará a un error con el plugin de bastión, donde no podrá utilizar bastión para acceder a FE-VM.
Nota: No cambie nada en las reglas de entrada y salida.
-
Tarea 1.6: Configuración del enrutamiento y la seguridad para la VCN de backend
-
Esto se debe realizar en el nivel de subred. Navegue a la página VCN y haga clic en VCN de backend.
-
Haga clic en la subred privada.
-
Haga clic en Tabla de rutas, que es una tabla de rutas asignada.
-
Eliminaremos todas las reglas siguientes.
-
Sustituiremos las siguientes reglas por estas dos reglas.
-
0.0.0.0/0
- DRG: enrute todo el tráfico al DRG, que incluye el tráfico que va a cualquiera de las otras VCN y el tráfico que va a Internet. -
Todos los servicios LIN de Oracle Services Network - Gateway de servicios: para proporcionar acceso a los servicios de Oracle en la región de Milán, esto es necesario para mantener la conectividad con el servicio OCI Bastion, si lo hace no tiene una regla aquí para acceder a Internet o a los servicios de Oracle, se enfrentará a un error con el plugin de bastión, donde no podrá utilizar el bastión para acceder a BE-VM.
-
Nota: No cambie nada en las reglas de entrada y salida.
Tarea 1.7: Configurar el enrutamiento de VCN de Spoke en DRG
El propósito de esta tarea es asegurarse de que todo el tráfico enviado desde cualquiera de las redes (DNS/LSN/Frontend/Backend) y recibido en el DRG, se enrute hacia el hub, donde será inspeccionado por el firewall.
-
Haga clic en el menú de hamburguesa (≡) en la esquina superior izquierda.
- Haga clic en Red.
- Haga clic en Gateway de enrutamiento dinámico.
-
Haga clic en DRG.
- Haga clic en Asociaciones de VCN. Una asociación de VCN representa un enlace que conecta la VCN al DRG para permitir el tráfico de red entre la VCN y las redes externas u otras redes virtuales en la nube.
- Se dará cuenta de que tenemos todos los VCN adjuntos.
- Haga clic en Tablas de rutas de DRG.
- Haga clic en Crear tabla de rutas de DRG.
- Introduzca un nombre para la tabla de rutas.
- Agregar una regla de ruta: seleccione
0.0.0.0/0
y Asociación de VCN de hub que enruta todo a la asociación de hub. - Haga clic en Crear tabla de rutas de DRG.
- La tabla de rutas se ha creado correctamente.
-
Asigne la tabla de rutas a todas las asociaciones de VCN radial, empezando por la asociación de VCN de backend y haga clic en ella.
- Haga clic en Editar.
- Haga clic en Mostrar opciones avanzadas.
- Haga clic en Tabla de rutas de DRG.
- Seleccione Spoke-DRG-RT.
- Haga clic en Guardar cambios.
- La tabla de rutas de DRG se ha asignado correctamente a la asociación de VCN de backend. Ahora todo el tráfico que sale de la VCN de backend al DRG se enrutará a la VCN de hub.
-
Repita los pasos del 1 al 6 en el resto de los anexos.
Tarea 2: Aprovisionamiento de un servidor Jump de Windows
-
En esta tarea, aprovisionaremos una nueva instancia informática de Windows y la utilizaremos para conectarse con otros recursos privados. Los usos previstos incluyen:
-
(Obligatorio) Para acceder y gestionar el firewall pfSense mediante el explorador (HTTP/S).
-
(Opcional) Para acceder a la instancia de FE-VM y realizar la prueba. Puede utilizar el servicio OCI Bastion o puede utilizar este servidor como nuevo cuadro de salto.
-
-
Haga clic en el menú de hamburguesa (≡) en la esquina superior izquierda.
- Haga clic en Calcular.
- Haga clic en Instancias.
-
Haga clic en Crear instancia.
-
Introduzca un nombre para la instancia.
- Haga clic en Cambiar imagen.
- Seleccione Windows.
- Seleccione la imagen Windows Server 2016 Standard.
- Seleccione esta opción para aceptar las condiciones de uso.
- Haga clic en Seleccionar imagen.
- El sistema operativo (SO) de la instancia se ha cambiado a Windows Server 2016 Standard correctamente.
-
En la sección Información de VNIC principal, introduzca la siguiente información.
- Seleccione Hub-VCN.
- Seleccione la subred pública para que a la instancia se le asigne una dirección IP pública.
- Asigne a la instancia una dirección IP privada
10.4.1.5
.
- Observará una nota al crear el equipo Windows, indicando que se generará una contraseña inicial después de la creación de la instancia. La diferencia es que con el sistema operativo Linux, las claves SSH se utilizan para la autenticación.
- Haga clic en Crear.
-
La instancia informática de Jump-Server se ha creado correctamente. Anote los siguientes detalles. Los utilizará al acceder a la instancia.
- Dirección IP pública.
- Nombre de usuario.
- Contraseña inicial.
-
Para acceder al servidor de salto desde la computadora personal de Windows, abra Conexión de escritorio remoto, introduzca la IP pública de la instancia y haga clic en Conectar.
-
Haga clic en Sí.
-
Introduzca la contraseña inicial proporcionada en la página de la instancia y haga clic en Siguiente.
-
Se debe cambiar la contraseña antes de iniciar sesión y hacer clic en Aceptar.
-
Introduzca la nueva contraseña dos veces.
-
La contraseña se ha cambiado correctamente. Haga clic en Aceptar para continuar.
-
Introduzca la nueva contraseña y haga clic en Next (Siguiente).
-
Está conectado al servidor de salto correctamente.
-
La arquitectura debe tener el aspecto que se muestra en la siguiente imagen.
Tarea 3: Instalación y Configuración del Firewall pfSense
Nota: Si ya tiene otro tipo de solución de firewall, puede omitir la tarea 3.1 a 3.7 y continuar desde la 3.8.
Tarea 3.1: Descarga de la imagen pfSense
-
Descargue la imagen pfSense del sitio web de Netgate. Asegúrese de descargar la versión
memstick-serial
. El nombre de archivo de la imagen que estamos utilizando espfSense-CE-memstick-serial-2.7.2-RELEASE-amd64.img.gz
. Para obtener más información, consulte Netgate. -
El archivo instalado tendrá el formato
.gz
. Después de extraerlo, notará que el nombre de archivo de imagen espfSense-CE-memstick-serial-2.7.2-RELEASE-amd64.img
.
Tarea 3.2: Creación de un cubo de OCI Object Storage
En esta tarea, crearemos un cubo de OCI Object Storage que se utilizará para cargar la imagen pfSense y utilizar esta imagen de objeto para crear una imagen personalizada en OCI.
-
Haga clic en el menú de hamburguesa (≡) en la esquina superior izquierda.
- Haga clic en Storage.
- Haga clic en Cubos.
- Haga clic en Crear cubo.
- Introduzca un Nombre de depósito.
- Seleccione el nivel de almacenamiento Estándar como Nivel de almacenamiento por defecto.
- Haga clic en Crear.
-
Observe que se crea el cubo de almacenamiento.
Tarea 3.3: Carga de la imagen pfSense en el cubo de almacenamiento
-
Vaya a la página Detalles de bloque.
- En la página del cubo, desplácese hacia abajo.
- Haga clic en Cargar.
-
En la página Cargar objetos, introduzca la siguiente información.
- Haga clic en seleccionar archivos y seleccione la imagen pfSense.
- Haga clic en Cargar.
-
Mientras se carga la imagen pfSense en el cubo de almacenamiento, puede supervisar el progreso.
- Cuando la imagen pfSense se carga por completo, el estado del progreso será Finalizado.
- Haga clic en Cerrar
Tarea 3.4: Creación de una imagen personalizada
Hemos cargado la imagen pfSense. Ahora, necesitamos crear una imagen personalizada de OCI a partir de ella. Esta imagen personalizada se utilizará para crear la instancia de firewall pfSense.
-
Haga clic en el menú de hamburguesa (≡) en la esquina superior izquierda.
- Haga clic en Calcular.
- Haga clic en Imágenes personalizadas.
-
Haga clic en Importar imagen.
-
En la página Importar imagen, introduzca la siguiente información.
- Introduzca un Nombre.
- Seleccione Linux genérico como Sistema operativo.
- Seleccione Importar desde un cubo de almacenamiento de objeto.
- Seleccione el cubo de almacenamiento en el que ha cargado la imagen.
- En Nombre de objeto, seleccione el objeto que hemos cargado en el cubo (imagen pfSense).
- Seleccione VMDK como Tipo de imagen.
- Seleccione Modo paravirtualizado.
- Haga clic en Importar imagen.
-
La imagen personalizada es IMPORTING.
-
Después de unos minutos, el estado es Disponible.
Tarea 3.5: Creación de una instancia con la imagen pfSense personalizada
-
Haga clic en el menú de hamburguesa (≡) en la esquina superior izquierda.
- Haga clic en Calcular.
- Haga clic en Instancias.
-
Haga clic en Crear instancia.
-
Introduzca un nombre para la instancia de firewall.
- Haga clic en Cambiar imagen.
- Seleccione Mis imágenes.
- Haga clic en Imágenes personalizadas.
- Seleccione la imagen personalizada creada en la tarea 3.4.
- Haga clic en Seleccionar imagen.
- Observe que la imagen pfSense está seleccionada.
-
En la sección Información de VNIC principal, introduzca la siguiente información.
- Seleccione Hub-VCN.
- Seleccione la subred privada.
- Asigne a la instancia una dirección IP privada
10.4.0.5
.
- Seleccione Sin claves SSH.
- Haga clic en Crear.
-
La instancia informática del firewall pfSense se ha creado correctamente.
Tarea 3.6: Instalación de pfSense en la instancia
Necesitamos realizar la instalación inicial y la configuración del firewall pfSense. Ya tenemos la instancia en ejecución.
-
Para instalar el software de firewall pfSense, necesitamos crear una conexión de consola. En la página de instancia de firewall, desplácese hacia abajo.
- Haga clic en Conexión de consola.
- Haga clic en Iniciar conexión de Cloud Shell.
-
Aparecerán algunos mensajes de inicio. Pulse INTRO.
-
Lea los mensajes de copyright, seleccione Accept (Aceptar) y pulse ENTER (Intro).
- Seleccione Install pfSense.
- Seleccione OK (Aceptar) y pulse ENTER (Intro).
- Seleccione Manual Disk Setup (experts) (Configuración manual de disco [expertos]).
- Seleccione OK (Aceptar) y pulse ENTER (Intro).
- Seleccione da0 - 47 GB MBR.
- Seleccione Create (Crear) y pulse ENTER (INTRO).
- En Tipo, introduzca freebsd.
- En Tamaño, introduzca 46 GB.
- Introduzca Mountpoint.
- Seleccione OK (Aceptar) y pulse ENTER (Intro).
- En da0s4, seleccione 46 GB de BSD.
- Seleccione Create (Crear) y pulse ENTER (INTRO).
- En Tipo, introduzca freebsd-ufs.
- En Tamaño, introduzca 40 GB.
- En Punto de montaje, introduzca /.
- Seleccione OK (Aceptar) y pulse ENTER (Intro).
- Observe que el punto de montaje se crea para
/
. - En da0s4, introduzca 46 GB de BSD.
- Seleccione Create (Crear) y pulse ENTER (INTRO).
- En Tipo, introduzca freebsd-swap.
- En Tamaño, introduzca 5670 MB.
- Introduzca Mountpoint.
- Seleccione OK (Aceptar) y pulse ENTER (Intro).
- Observe que el punto de montaje se crea para el intercambio.
- Seleccione Finish (Finalizar) y pulse ENTER (Intro).
-
Seleccione Commit (Confirmar) y pulse ENTER (Intro).
-
Seleccione Reboot (Reiniciar) y pulse ENTER (Intro).
-
Después del primer reinicio, obtendrá algunas opciones de configuración para configurar la interfaz WAN. Para Should VLANS be set up, introduzca n y pulse ENTER.
-
En Introduzca el nombre de la interfaz de WAN o 'a' para la detección automática (vtnet0 o a), introduzca
vtnet0
. -
En esta configuración, estamos creando un firewall con una sola interfaz, por lo que no configuraremos la interfaz LAN. Por lo tanto, para Introducir el nombre de la interfaz LAN o 'a' para detección automática, pulse INTRO para omitir esta configuración de interfaz.
- Verifique el nombre de la interfaz WAN.
- En Do you want to continue (¿Desea continuar?), introduzca y (sí) y pulse ENTER (Intro).
-
Observe algunos mensajes y se realizará la configuración. El sistema operativo pfSense realizará un inicio completo.
- Verá que la dirección IP se configurará mediante DHCP.
- Observe el menú pfSense para realizar alguna configuración básica adicional.
-
La arquitectura debe tener el aspecto que se muestra en la siguiente imagen.
Tarea 3.7: Conexión a la interfaz de usuario gráfica web (GUI) pfSense y finalización de la configuración inicial
La instalación ha terminado, ahora necesitamos conectarnos a la GUI web del firewall pfSense. Pero antes, asegúrese de permitir el tráfico HTTP/HTTPS procedente de Hub-Public-Subnet, ya que nos conectaremos a la GUI de firewall desde el Jump-Server ubicado allí. Ya permitimos que todo el tráfico de todas las VCN (10.0.0.0/8
) pasara por el firewall en la Tarea 1.2.
-
Introduzca la dirección IP del firewall pfSense.
- En la instancia de Windows, abra un explorador y vaya a la IP de firewall pfSense mediante HTTPS.
- Haga clic en Avanzada.
-
Haga clic en Continuar.
- Introduzca el nombre de usuario por defecto como
admin
. - Introduzca la contraseña por defecto como
pfsense
. - Haga clic en Conectar.
- Introduzca el nombre de usuario por defecto como
-
Haga clic en Siguiente.
-
Haga clic en Siguiente.
- Introduzca un nombre de host.
- Introduzca un nombre de dominio o mantenga el nombre de dominio predeterminado.
- Haga clic en Siguiente.
-
Haga clic en Siguiente.
Nota: La forma en que funciona en este caso concreto es que Oracle reservará la IP estática en su servidor DHCP y asignará esta dirección al firewall pfSense. Por lo tanto, el firewall pfSense siempre obtendrá la misma dirección IP, pero desde la perspectiva de OCI, esta será una IP estática y, desde la perspectiva de pfSense, será una dirección DHCP.
- En la sección Configurar interfaz WAN, seleccione DHCP.
- Desplácese hacia abajo y mantenga todo lo demás como predeterminado y haga clic en Siguiente.
- Introduzca una nueva contraseña de administrador.
- Introduzca Admin Password AGAIN.
- Haga clic en Siguiente.
-
Haga clic en Volver a Cargar.
-
Tenga en cuenta que la configuración del firewall pfSense se está volviendo a cargar.
-
Haga clic en Terminar.
-
Haga clic en Aceptar.
-
Haga clic en Cerrar
Si el firewall pfSense no puede acceder a Internet, la página del panel de control tardará un poco más en cargarse. Sin embargo, esto se puede corregir permitiendo que pfSense acceda a Internet mediante el gateway de NAT de OCI, lo que ya hicimos en la tarea 1.2. En esta imagen, observe que pfSense está instalado y que el panel de control está visible.
Tarea 3.8: Enrutar tráfico al firewall pfSense
En la Tarea 1, configuramos el enrutamiento en nuestras VCN y DRG, de una manera de forzar todo el tráfico enviado desde los radios, para ingresar a la red de concentrador (flecha verde). Esta tarea responde cómo enrutar todo este tráfico al firewall pfSense (flecha roja).
Para ello, crearemos una tabla de rutas de entrada (tabla de rutas de tránsito). Se trata básicamente de una tabla de rutas que crea a nivel de VCN, pero la asigna en el DRG, de modo que el tráfico que entra en el hub se enrutará a un destino específico de su elección (firewall pfSense en nuestro escenario).
-
Navegue a la instancia de firewall pfSense.
- Haga clic en Calcular.
- Haga clic en Instancias.
-
Haga clic en Firewall.
-
Desplazar hacia abajo.
- Haga clic en VNIC asociadas.
- Haga clic en los tres puntos.
- Haga clic en Editar VNIC.
- Seleccione Omitir comprobación de origen/destino. Si ha omitido este paso, se enfrentará a un problema al crear la regla de ruta.
- Haga clic en Guardar cambios.
-
Navegue a la página VCN e introduzca Hub-VCN.
-
Desplazar hacia abajo.
- Haga clic en Tablas de rutas.
- Haga clic en Crear tabla de rutas.
- Introduzca un nombre para la tabla de rutas.
- Haga clic en Another Route Rule.
- Seleccione IP privada como Tipo de destino.
- Introduzca
0.0.0.0/0
como Bloque de CIDR de destino. - Introduzca la IP privada de pfSense.
- Haga clic en Crear.
- La tabla de rutas se ha creado correctamente, ahora tenemos que asignarla.
-
Vaya a la página DRG y haga clic en Asociación de VCN de hub.
-
Haga clic en Editar.
-
Haga clic en Mostrar opciones avanzadas.
- Haga clic en Tabla de rutas de VCN.
- En Asociar tabla de rutas, seleccione Seleccionar existente.
- Seleccione la tabla de rutas que hemos creado.
- Haga clic en Guardar cambios.
-
La tabla de rutas de VCN se ha asignado correctamente.
Nota: En la asociación de DRG, puede asignar dos tipos de tablas de rutas:
- Tabla de rutas de DRG: la que hemos creado para las asociaciones de radio en la tarea 1.7. Esta tabla se comprobará cada vez que se envíe fuera el tráfico de la asociación de VCN.
- Tabla de rutas de VCN: la que hemos creado en esta tarea 3.8. Esta tabla se comprobará cuando se reciba tráfico y llegue a la asociación de VCN.
-
En esta etapa, hemos completado todas las configuraciones relacionadas con OCI, lo que garantiza que el tráfico entre dos recursos cualquiera de esta arquitectura se enrute a través de pfSense para su inspección primero. Ahora, ¿y si hiciéramos una prueba rápida haciendo ping a BE-VM desde FE-VM, debería funcionar?
Como ha observado, pfSense bloqueará todo el tráfico que llega hasta que lo permita explícitamente, lo que vamos a hacer en la próxima tarea.
Tarea 3.9: Permitir que el tráfico pase por pfSense
En este tutorial, vamos a aprovechar dos funciones de pfSense.
-
Reglas de acceso: permite o deniega el tráfico según el protocolo, el número de puerto, la dirección de origen y la dirección de destino.
-
Captura de paquetes: aplique un filtro basado en direcciones IP, tipo de paquete, número de puerto, etc. para analizar el tráfico entrante y saliente en el nivel de paquete que inspeccionará el firewall.
Tenga en cuenta que puede hacer mucho más con pfSense, pero nuestro enfoque aquí es más en instalar pfSense en OCI e integrarlo en nuestra arquitectura de red existente con la implantación del enrutamiento y la seguridad adecuados en OCI.
-
En esta tarea, vamos a permitir el tráfico que será necesario en algunos de nuestros escenarios. Dado que la concentración de esta serie de tutoriales es en DNS, las reglas que agregaremos se relacionarán específicamente con el tráfico DNS (basado en Nativo y BIND9). Ahora, navegue hasta la interfaz de gestión web pfSense.
- Haga clic en Firewall.
- Haga clic en Reglas.
-
Observe las reglas por defecto del firewall pfSense.
Primera regla (opcional):
-
Detalles de la Conexión.
- Origen: Jump-Server (
10.4.1.5
). - Destino: FE-VM (
10.1.0.5
). - Protocolo: SSH.
- Número de Puerto:
22
. - Acción: Aprobado.
- Justificación: queremos acceder a FE-VM desde Jump-Server. Esta es una regla opcional, ya que aún puede utilizar el bastión para conectarse.
- Origen: Jump-Server (
-
Haga clic en Agregar.
- Seleccione Acción para Transferir.
- Seleccione Protocolo para TCP.
- Introduzca Source Address (Dirección de origen) en
10.4.1.5
. - Introduzca Destination Address (Dirección de destino) en
10.1.0.5
. - Introduzca Destination Port (Puerto de destino) en
22
. - Haga clic en Guardar.
- Haga clic en Aplicar cambios.
- Aparecerá un mensaje que indica que los cambios se han aplicado correctamente.
- Regla agregada.
Segunda regla:
-
Detalles de la Conexión.
- Fuente: FE-VM (
10.1.0.5
). - Destino: BE-VM (
10.2.0.5
). - Protocolo: ICMP.
- Acción: Aprobado.
- Justificación: para fines de prueba, debemos activar FE-VM para hacer ping a BE-VM.
- Fuente: FE-VM (
-
Haga clic en Agregar.
- Seleccione Acción para Transferir.
- Seleccione Protocolo en ICMP y Subtipo en cualquiera.
- Introduzca Source Address (Dirección de origen) en
10.1.0.5
. - Introduzca Destination Address (Dirección de destino) en
10.2.0.5
. - Haga clic en Guardar.
- Haga clic en Aplicar cambios.
- Aparecerá un mensaje que indica que los cambios se han aplicado correctamente.
- La regla se agrega.
Tercera regla:
-
Detalles de la Conexión.
- Origen: hacia delante de VCN de frontend (
10.1.0.6
). - Destino: LSN (
10.3.0.6
). - Protocolos: TCP y UDP.
- Número de Puerto:
53
. - Acción: Aprobado.
- Justificación: queremos que FE-VM pueda resolver BE-VM (
be-vm.beprivatesubnet.backendvcn.oraclevcn.com
). Para ello, FWD de Frontend-VCN debe poder consultar el listener. Por lo tanto, se debe permitir el tráfico DNS.
- Origen: hacia delante de VCN de frontend (
-
Haga clic en Agregar.
- Seleccione Acción para Transferir.
- Seleccione Protocol para TCP/UDP.
- Introduzca Source Address (Dirección de origen) en
10.1.0.6
. - Introduzca Destination Address (Dirección de destino) en
10.3.0.6
. - Introduzca Destination Port (Puerto de destino) en
53
. - Haga clic en Guardar.
- Haga clic en Aplicar cambios.
- Aparecerá un mensaje que indica que los cambios se han aplicado correctamente.
- Regla agregada.
Cuarta regla:
-
Detalles de la Conexión.
- Origen: hacia delante de VCN de frontend (
10.1.0.6
). - Destino: DNS-NLB (
10.0.0.110
). - Protocolos: TCP y UDP.
- Número de Puerto:
53
. - Acción: Aprobado.
- Justificación: queremos que FE-VM pueda resolver BE-VM (
be.orastage.com
). Para ello, FWD de Frontend-VCN debe poder consultar el DNS-NLB, que enviará el tráfico a uno de los servidores DNS BIND9 de backend. Por lo tanto, se debe permitir el tráfico DNS.
- Origen: hacia delante de VCN de frontend (
-
Haga clic en Agregar.
- Seleccione Acción para Transferir.
- Seleccione Protocol para TCP/UDP.
- Introduzca Source Address (Dirección de origen) en
10.1.0.6
. - Introduzca Destination Address (Dirección de destino) en
10.0.0.110
. - Introduzca Destination Port (Puerto de destino) en
53
. - Haga clic en Guardar.
- Haga clic en Aplicar cambios.
- Aparecerá un mensaje que indica que los cambios se han aplicado correctamente.
- Regla agregada.
Quinto artículo:
-
Detalles de la Conexión.
- Origen: avance de VCN de backend (
10.2.0.6
). - Destino: LSN (
10.3.0.6
). - Protocolos: TCP y UDP.
- Número de Puerto:
53
. - Acción: Aprobado.
- Justificación: queremos que BE-VM pueda resolver FE-VM (
fe-vm.feprivatesubnet.frontendvcn.oraclevcn.com
). Para ello, FWD de VCN de backend debe poder consultar el listener. Por lo tanto, se debe permitir el tráfico DNS.
Nota: Repita los pasos realizados en la tercera regla, pero esta vez el origen es diferente, que es hacia delante de la VCN de backend (
10.2.0.6
). - Origen: avance de VCN de backend (
Sexta regla:
-
Detalles de la Conexión.
- Origen: avance de VCN de backend (
10.2.0.6
). - Destino: DNS-NLB (
10.0.0.110
). - Protocolos: TCP y UDP.
- Número de Puerto:
53
. - Acción: Aprobado.
- Justificación: queremos que BE-VM pueda resolver FE-VM (
fe.orastage.com
). Para ello, para reenviar la VCN de backend, debe poder consultar el DNS-NLB, que enviará el tráfico a uno de los servidores DNS BIND9 de backend. Por lo tanto, se debe permitir el tráfico DNS.
Nota: Repita los pasos realizados en la Cuarta regla, pero esta vez el origen es diferente, que es FWD de VCN de backend (
10.2.0.6
). - Origen: avance de VCN de backend (
Tarea 4: Prueba y validación
-
Solo realizaremos pruebas desde la instancia FE-VM.
Nota: (Opcional) Vamos a utilizar el servidor de salto de Windows para conectarse a FE-VM, aún puede conectarse a través de bastión si es lo que prefiere.
- Copie la clave privada que hemos utilizado en OCI Cloud Shell de los tutoriales anteriores en la instancia de Windows.
- Instale OpenSSH en el servidor. Para obtener más información, consulte Technical: Install OpenSSH SFTP on Windows Server 2016.
- Ejecute el comando SSH.
- Nos hemos conectado a la instancia de FE-VM correctamente.
Escenario de prueba 1
-
Pruebe los dominios nativos
*.oraclevcn.com
. La máquina cliente FE-VM debe poder resolverbe-vm.beprivatesubnet.backendvcn.oraclevcn.com
. Ya hemos permitido este tráfico en pfSense. En esta prueba, utilizaremos la función Captura de paquetes en pfSense para asegurarnos de que el tráfico se transfiere a través de ella. -
Tráfico de reenvío:
-
Tráfico de respuesta:
-
Acceda a pfSense desde el equipo Windows.
- Haga clic en Diagnósticos.
- Haga clic en Captura de paquetes.
- Rellene la IP de origen (FWD: 10.1.0.6) y la IP de destino (LSN: 10.3.0.6).
- Introduzca
53
como Número de puerto. - Haga clic en Start.
- Puede supervisar el tráfico DNS que va de FWD a LSN.
-
En FE-VM, haga ping al dominio nativo
be-vm.beprivatesubnet.backendvcn.oraclevcn.com
de BE-VM. -
En la captura de paquetes, notará que cada vez que hacemos ping en ella se realizará una consulta.
-
Cambie el filtro para supervisar el tráfico de ping.
-
Tráfico de reenvío:
-
Tráfico de respuesta:
- Rellene la IP de origen (FE-VM - 10.1.0.5) y la IP de destino (BE-VM - 10.2.0.5).
- Introduzca Protocol como ICMPv4.
- Haga clic en Start.
- Puede supervisar el tráfico de ping que va de FE-VM a BE-VM.
-
En FE-VM, realice otro ping a BE-VM
be-vm.beprivatesubnet.backendvcn.oraclevcn.com
. -
En la captura de paquetes, observará el tráfico de ping.
-
Desplácese hacia arriba y haga clic en Stop (Parar) para detener la captura de paquetes cuando termine la prueba.
-
Haga clic en Borrar capturas para iniciar otra captura.
Nota: Puede seguir los mismos pasos en la prueba, pero en la dirección opuesta, de BE-VM a FE-VM
fe-vm.feprivatesubnet.frontendvcn.oraclevcn.com
. Como el tráfico ya está permitido para este escenario.
Escenario de prueba 2
-
Pruebe el dominio gestionado BIND9 de la compañía
*.orastage.com
. La máquina cliente FE-VM debe poder resolverbe.orastage.com
. Ya hemos permitido este tráfico en pfSense. En esta prueba, utilizaremos la función de captura de paquetes en pfSense para asegurarnos de que el tráfico pasa a través de ella. -
Tráfico de reenvío:
-
Tráfico de respuesta:
-
Acceda a pfSense desde el servidor de salto.
- Haga clic en Diagnósticos.
- Haga clic en Captura de paquetes.
- Rellene la IP de origen (FWD: 10.1.0.6) y la IP de destino (DNS: NLB: 10.0.0.110).
- Introduzca
53
como Número de puerto. - Haga clic en Start.
- Puede supervisar el tráfico DNS que va de FWD a DNS-NLB.
-
En FE-VM, haga ping al dominio
be.orastage.com
de BE-VM. -
En la captura de paquetes, notará que cada vez que hacemos ping en ella se realizará una consulta.
-
Cambie el filtro para supervisar el tráfico de ping.
-
Tráfico de reenvío:
-
Tráfico de respuesta:
- Rellene la IP de origen (FE-VM - 10.1.0.5) y la IP de destino (BE-VM - 10.2.0.5).
- Introduzca Protocol como ICMPv4.
- Haga clic en Start.
- Puede supervisar el tráfico de ping que va de FE-VM a BE-VM.
-
En FE-VM, realice otro ping a BE-VM
be.orastage.com
. -
En la captura de paquetes, observará el tráfico de ping.
-
Desplácese hacia arriba y haga clic en Stop (Parar) para detener la captura de paquetes cuando termine la prueba.
-
Haga clic en Borrar capturas, ya que hemos completado la prueba.
Nota: Puede seguir los mismos pasos en la prueba, pero en la dirección opuesta, de BE-VM a FE-VM
fe.orastage.com
. Como el tráfico ya está permitido para este escenario.
Conclusión
¡Enhorabuena! Finalmente hemos llegado al final de nuestro viaje de DNS.
En este tutorial, nos centramos en mejorar la arquitectura DNS de OraStage con pfSense, que proporciona una capa crucial de defensa contra una variedad de ataques y vulnerabilidades basados en DNS. Mediante el filtrado del tráfico, la aplicación de protocolos DNS seguros y el bloqueo de dominios maliciosos, OraStage puede garantizar que sus servidores DNS funcionen de forma segura y eficiente.
A lo largo de la serie, ha adquirido algunas habilidades importantes en OCI. Cada tutorial se ha basado en el último, lo que le proporciona una base sólida en OCI al tiempo que confía en un enfoque de aprendizaje progresivo. Estas habilidades le ayudarán a gestionar y optimizar su infraestructura en la nube de manera eficaz:
- Configure el enrutamiento y la seguridad de la red virtual en la nube (VCN).
- Configure un gateway de direccionamiento dinámico (DRG).
- Configure y utilice OCI Bastion para acceder a instancias privadas.
- Configure y utilice un servidor de salto de Windows para acceder a instancias privadas.
- Instalar y configurar la solución de DNS BIND9 en OCI.
- Configure y utilice OCI Network Load Balancer para una alta disponibilidad.
- Configure y utilice los componentes de DNS privado de OCI para resolver dominios nativos.
- Instale y configure el firewall pfSense en OCI, integrándolo en una arquitectura de hub y radio.
Agradecimientos
- Autor: Anas abdallah (especialista en redes en la nube)
Más recursos de aprendizaje
Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de formación gratuita en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en un explorador de Oracle Learning.
Para obtener documentación sobre el producto, visite Oracle Help Center.
Adding Security to the Domain Name System Architecture using pfSense Firewall
G19395-02
Copyright ©2025, Oracle and/or its affiliates.