Implementación de una zona DMZ entre Azure e InternetImplement a DMZ between Azure and the Internet

Esta arquitectura de referencia muestra una red híbrida segura que extiende una red local a Azure y también acepta el tráfico de Internet.This reference architecture shows a secure hybrid network that extends an on-premises network to Azure and also accepts Internet traffic. Implemente esta solución.Deploy this solution.

Nota

Este escenario también se puede conseguir mediante Azure Firewall, un servicio de seguridad de red basado en la nube.This scenario can also be accomplished using Azure Firewall, a cloud-based network security service.

Arquitectura de red híbrida segura

Descargue un archivo Visio de esta arquitectura.Download a Visio file of this architecture.

Esta arquitectura de referencia amplía la arquitectura que se describe en implementación de una red perimetral entre Azure y el centro de recursos local.This reference architecture extends the architecture described in Implementing a DMZ between Azure and your on-premises datacenter. Agrega una zona DMZ pública que gestiona el tráfico de Internet, además de la zona DMZ privada que gestiona el tráfico de la red local.It adds a public DMZ that handles Internet traffic, in addition to the private DMZ that handles traffic from the on-premises network.

Los usos habituales de esta arquitectura incluyen:Typical uses for this architecture include:

  • Aplicaciones híbridas donde parte de las cargas de trabajo se ejecutan de forma local y parte en Azure.Hybrid applications where workloads run partly on-premises and partly in Azure.
  • Infraestructura de Azure que enruta el tráfico entrante procedente del entorno local e Internet.Azure infrastructure that routes incoming traffic from on-premises and the Internet.

ArquitecturaArchitecture

La arquitectura consta de los siguientes componentes:The architecture consists of the following components.

  • Dirección IP pública (PIP)Public IP address (PIP). La dirección IP del punto de conexión público.The IP address of the public endpoint. Los usuarios externos conectados a Internet pueden acceder al sistema mediante esta dirección.External users connected to the Internet can access the system through this address.
  • Aplicación virtual de red (NVA) .Network virtual appliance (NVA). Esta arquitectura incluye un grupo independiente de NVA para el tráfico que se origina en Internet.This architecture includes a separate pool of NVAs for traffic originating on the Internet.
  • Azure Load Balancer.Azure load balancer. Todas las solicitudes entrantes de Internet pasan por el equilibrador de carga y se distribuyen a las aplicaciones virtuales de red en la red perimetral pública.All incoming requests from the Internet pass through the load balancer and are distributed to the NVAs in the public DMZ.
  • Subred de entrada de red perimetral pública.Public DMZ inbound subnet. Esta subred acepta las solicitudes del equilibrador de carga de Azure.This subnet accepts requests from the Azure load balancer. Las solicitudes entrantes se pasan a una de las aplicaciones virtuales de red de la red perimetral pública.Incoming requests are passed to one of the NVAs in the public DMZ.
  • Subred de salida de red perimetral pública.Public DMZ outbound subnet. Las solicitudes que apueba la aplicación virtual de red pasan por esta subred y se dirigen al equilibrador de carga interno en el nivel web.Requests that are approved by the NVA pass through this subnet to the internal load balancer for the web tier.

RecomendacionesRecommendations

Las siguientes recomendaciones sirven para la mayoría de los escenarios.The following recommendations apply for most scenarios. Sígalas a menos que tenga un requisito concreto que las invalide.Follow these recommendations unless you have a specific requirement that overrides them.

Recomendaciones para aplicaciones virtuales de redNVA recommendations

Se recomienda usar un conjunto de NVA para el tráfico que se origina en Internet y otro para el tráfico que se origina en el entorno local.Use one set of NVAs for traffic originating on the Internet, and another for traffic originating on-premises. Utilizar únicamente un conjunto de NVA para ambos es un riesgo de seguridad, ya que no proporciona ningún perímetro de seguridad entre los dos conjuntos de tráfico de red.Using only one set of NVAs for both is a security risk, because it provides no security perimeter between the two sets of network traffic. El uso de NVA independientes reduce la complejidad de la comprobación de las reglas de seguridad y deja claro qué reglas se corresponden con cada solicitud de red entrante.Using separate NVAs reduces the complexity of checking security rules, and makes it clear which rules correspond to each incoming network request. Un conjunto de NVA implementa reglas solo para el tráfico de Internet, mientras que otro lo hace solo para el tráfico local.One set of NVAs implements rules for Internet traffic only, while another set of NVAs implement rules for on-premises traffic only.

Incluya una aplicación virtual de red de capa 7 para terminar las conexiones de aplicación en el nivel de NVA y mantener la compatibilidad con los niveles de back-end.Include a layer-7 NVA to terminate application connections at the NVA level and maintain compatibility with the backend tiers. Así se garantiza una conectividad simétrica donde el tráfico de respuesta de los niveles de back-end se devuelve a través de la aplicación virtual de red.This guarantees symmetric connectivity where response traffic from the backend tiers returns through the NVA.

Recomendaciones para el equilibrador de carga públicoPublic load balancer recommendations

Para obtener escalabilidad y disponibilidad, implemente el NVA de red perimetral público en un conjunto de disponibilidad y use un equilibrador de carga orientado a Internet para distribuir las solicitudes de Internet a través de NVA en el conjunto de disponibilidad.For scalability and availability, deploy the public DMZ NVAs in an availability set and use an Internet facing load balancer to distribute Internet requests across the NVAs in the availability set.

Configure el equilibrador de carga para que solo acepte solicitudes en los puertos necesarios con el tráfico de Internet.Configure the load balancer to accept requests only on the ports necessary for Internet traffic. Por ejemplo, limite las solicitudes HTTP entrantes al puerto 80 y las solicitudes HTTPS entrantes al puerto 443.For example, restrict inbound HTTP requests to port 80 and inbound HTTPS requests to port 443.

Consideraciones sobre escalabilidadScalability considerations

Aunque la arquitectura requiera inicialmente una única aplicación virtual de red en la red perimetral pública, se recomienda colocar un equilibrador de carga delante de la red perimetral pública desde el principio.Even if your architecture initially requires a single NVA in the public DMZ, we recommend putting a load balancer in front of the public DMZ from the beginning. De esta manera, será más sencillo escalar a varias aplicaciones virtuales de red si es necesario en el futuro.That will make it easier to scale to multiple NVAs in the future, if needed.

Consideraciones sobre disponibilidadAvailability considerations

El equilibrador de carga accesible desde Internet requiere cada NVA en la subred entrante de la red perimetral pública para implementar un sondeo de Estado.The Internet facing load balancer requires each NVA in the public DMZ inbound subnet to implement a health probe. Un sondeo de estado que no responde en este punto de conexión se considera que no disponible y el equilibrador de carga dirigirá las solicitudes a otras aplicaciones virtuales de red del mismo conjunto de disponibilidad.A health probe that fails to respond on this endpoint is considered to be unavailable, and the load balancer will direct requests to other NVAs in the same availability set. Tenga en cuenta que si ninguna aplicación virtual de red responde, la aplicación dará error, así que es importante tener configurada la supervisión para que DevOps reviva el aviso cuando el número de instancias de NVA en buen estado descienda por debajo de un umbral definido.Note that if all NVAs fail to respond, your application will fail, so it's important to have monitoring configured to alert DevOps when the number of healthy NVA instances falls below a defined threshold.

Consideraciones sobre la manejabilidadManageability considerations

Toda la supervisión y administración de las aplicaciones virtuales de red de la red perimetral pública se debe realizar en el Jumpbox en la subred de administración.All monitoring and management for the NVAs in the public DMZ should be performed by the jumpbox in the management subnet. Como se describe en implementación de una red perimetral entre Azure y el centro de centros de recursos local, defina una única ruta de red desde la red local a través de la puerta de enlace al jumpbox, con el fin de restringir el acceso.As discussed in Implementing a DMZ between Azure and your on-premises datacenter, define a single network route from the on-premises network through the gateway to the jumpbox, in order to restrict access.

Aunque la conectividad de puerta de enlace de la red local a Azure esté fuera de servicio, puede comunicarse con el Jumpbox; para ello, implemente una dirección IP pública, agréguela al JumpBox e inicie sesión desde Internet.If gateway connectivity from your on-premises network to Azure is down, you can still reach the jumpbox by deploying a public IP address, adding it to the jumpbox, and logging in from the Internet.

Consideraciones sobre la seguridadSecurity considerations

Esta arquitectura de referencia implementa varios niveles de seguridad:This reference architecture implements multiple levels of security:

  • El equilibrador de carga accesible desde Internet dirige las solicitudes a las aplicaciones virtuales de red de la subred de la red experimental pública de entrada, y solo en los puertos necesarios de la aplicación.The Internet facing load balancer directs requests to the NVAs in the inbound public DMZ subnet, and only on the ports necessary for the application.
  • Las reglas NSG de las subredes de la red perimetral pública de entrada y salida impiden que las aplicaciones virtuales de red se pongan en peligro, ya que bloquean las solicitudes que se encuentran fuera de estas reglas.The NSG rules for the inbound and outbound public DMZ subnets prevent the NVAs from being compromised, by blocking requests that fall outside of the NSG rules.
  • La configuración de enrutamiento NAT de las aplicaciones virtuales de red dirige las solicitudes entrantes en los puertos 80 y 443 al equilibrador de carga de nivel web, pero omite las solicitudes en todos los demás puertos.The NAT routing configuration for the NVAs directs incoming requests on port 80 and port 443 to the web tier load balancer, but ignores requests on all other ports.

Todas las solicitudes entrantes se deben registrar en todos los puertos.You should log all incoming requests on all ports. Realice auditorías de los registros con regularidad y preste atención a las solicitudes que se encuentran fuera de los parámetros previstos, ya que podrían ser indicio de intentos de intrusión.Regularly audit the logs, paying attention to requests that fall outside of expected parameters, as these may indicate intrusion attempts.

Implementación de la soluciónDeploy the solution

Hay disponible una implementación de una arquitectura de referencia que implementa estas recomendaciones en GitHub.A deployment for a reference architecture that implements these recommendations is available on GitHub.

Requisitos previosPrerequisites

  1. Clone, bifurque o descargue el archivo zip del repositorio de GitHub de arquitecturas de referencia.Clone, fork, or download the zip file for the reference architectures GitHub repository.

  2. Instale la CLI de Azure 2.0.Install Azure CLI 2.0.

  3. Instale Node y NPM.Install Node and NPM

  4. Instale el paquete de npm de bloques de creación de Azure.Install the Azure building blocks npm package.

    npm install -g @mspnp/azure-building-blocks
    
  5. Desde un símbolo del sistema, un símbolo del sistema de Bash o un símbolo del sistema de PowerShell, inicie sesión en su cuenta de Azure como se indica a continuación:From a command prompt, bash prompt, or PowerShell prompt, sign into your Azure account as follows:

    az login
    

Implementación de recursosDeploy resources

  1. Vaya a la carpeta /dmz/secure-vnet-dmz del repositorio de GitHub de las arquitecturas de referencia.Navigate to the /dmz/secure-vnet-dmz folder of the reference architectures GitHub repository.

  2. Ejecute el siguiente comando:Run the following command:

    azbb -s <subscription_id> -g <resource_group_name> -l <region> -p onprem.json --deploy
    
  3. Ejecute el siguiente comando:Run the following command:

    azbb -s <subscription_id> -g <resource_group_name> -l <region> -p secure-vnet-dmz.json --deploy
    

Conexión de las puertas de enlace local y de AzureConnect the on-premises and Azure gateways

En este paso, conectará las dos puertas de enlace de red local.In this step, you will connect the two local network gateways.

  1. En el Azure Portal, desplácese hasta el grupo de recursos que creó.In the Azure portal, navigate to the resource group that you created.

  2. Busque el recurso llamado ra-vpn-vgw-pip y copie la dirección IP que se muestra en la hoja Información general.Find the resource named ra-vpn-vgw-pip and copy the IP address shown in the Overview blade.

  3. Busque el recurso llamado onprem-vpn-lgw.Find the resource named onprem-vpn-lgw.

  4. Haga clic en la hoja Configuración.Click the Configuration blade. En Dirección IP, pegue la dirección IP del paso 2.Under IP address, paste in the IP address from step 2.

    Captura de pantalla del campo de dirección IP

  5. Haga clic en Guardar y espere a que finalice la operación.Click Save and wait for the operation to complete. Puede tardar unos 5 minutos.It can take about 5 minutes.

  6. Busque el recurso llamado onprem-vpn-gateway1-pip.Find the resource named onprem-vpn-gateway1-pip. Copie la dirección IP que se muestra en la hoja Información general.Copy the IP address shown in the Overview blade.

  7. Busque el recurso llamado ra-vpn-lgw.Find the resource named ra-vpn-lgw.

  8. Haga clic en la hoja Configuración.Click the Configuration blade. En Dirección IP, pegue la dirección IP del paso 6.Under IP address, paste in the IP address from step 6.

  9. Haga clic en Guardar y espere a que finalice la operación.Click Save and wait for the operation to complete.

  10. Para comprobar la conexión, vaya a la hoja Conexiones de cada puerta de enlace.To verify the connection, go to the Connections blade for each gateway. El estado debe ser Conectado.The status should be Connected.

Compruebe que el tráfico de red llega al nivel webVerify that network traffic reaches the web tier

  1. En el Azure Portal, desplácese hasta el grupo de recursos que creó.In the Azure portal, navigate to the resource group that you created.

  2. Busque el recurso llamado pub-dmz-lb, que es el equilibrador de carga que hay delante de la red perimetral pública.Find the resource named pub-dmz-lb, which is the load balancer in front of the public DMZ.

  3. Copie la dirección IP pública de la hoja información general y abra esta dirección en un explorador Web.Copy the public IP address from the Overview blade and open this address in a web browser. Debería ver la página principal predeterminada del servidor Apache2.You should see the default Apache2 server home page.

  4. Busque el recurso llamado int-dmz-lb, que es el equilibrador de carga que hay delante de la red perimetral privada.Find the resource named int-dmz-lb, which is the load balancer in front of the private DMZ. Copie la dirección IP privada de la hoja Información general.Copy the private IP address from the Overview blade.

  5. Busque la máquina virtual denominada jb-vm1.Find the VM named jb-vm1. Haga clic en Conectar y use el escritorio remoto para conectarse a la máquina virtual.Click Connect and use Remote Desktop to connect to the VM. El nombre de usuario y la contraseña se especifican en el archivo onprem.json.The user name and password are specified in the onprem.json file.

  6. En la sesión del escritorio remoto, abra un explorador web y vaya a la dirección IP del paso 4.From the Remote Desktop Session, open a web browser and navigate to the IP address from step 4. Debería ver la página principal predeterminada del servidor Apache2.You should see the default Apache2 server home page.