Tutorial: Creación de una puerta de enlace de aplicaciones con un firewall de aplicaciones web mediante Azure Portal

En este tutorial se muestra cómo usar Azure Portal para crear una instancia de Application Gateway con un firewall de aplicaciones web (WAF). WAF usa reglas de OWASP para proteger la aplicación. Estas reglas incluyen protección frente a ataques, como la inyección de SQL, ataques de scripts entre sitios y apropiaciones de sesión. Después de crear la puerta de enlace de aplicaciones, pruébela para asegurarse de que funciona correctamente. Con Azure Application Gateway, puede dirigir el tráfico web de la aplicación a recursos específicos mediante la asignación de agentes de escucha a los puertos, la creación de reglas y la adición de recursos a un grupo de back-end. Para simplificar, en este tutorial se usa una configuración sencilla con una dirección IP de front-end pública, un cliente de escucha básico para hospedar un único sitio en esta puerta de enlace de aplicaciones, dos máquinas virtuales Linux que se usan con el grupo de back-end y una regla de enrutamiento de solicitudes básica.

En este tutorial, aprenderá a:

  • Crear una puerta de enlace de aplicaciones con WAF habilitado
  • Crear las máquinas virtuales que se utilizan como servidores back-end
  • Crear una cuenta de almacenamiento y configurar los diagnósticos
  • Prueba de la puerta de enlace de aplicaciones

Diagrama del ejemplo de Firewall de aplicaciones web.

Nota:

Se recomienda usar el módulo Azure Az de PowerShell para interactuar con Azure. Consulte Instalación de Azure PowerShell para empezar. Para más información sobre cómo migrar al módulo Az de PowerShell, consulte Migración de Azure PowerShell de AzureRM a Az.

Prerrequisitos

Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.

Inicio de sesión en Azure

Inicie sesión en Azure Portal.

Creación de una puerta de enlace de aplicaciones

  1. Seleccione Crear un recurso en el menú de la izquierda de Azure Portal. Aparece la ventana Nuevo.

  2. Seleccione Redes y Application Gateway en la lista Destacados.

Pestaña Aspectos básicos

  1. En la pestaña Aspectos básicos, especifique estos valores para la siguiente configuración de puerta de enlace de aplicaciones:

    • Grupo de recursos: Seleccione myResourceGroupAG como grupo de recursos. Si no existe, seleccione Crear nuevo para crearlo.

    • Nombre de la puerta de enlace de aplicaciones: Escriba myAppGateway como nombre de la puerta de enlace de aplicaciones.

    • Nivel: seleccione WAF V2.

    • Directiva WAF: seleccione Crear nueva, escriba un nombre para la nueva directiva y, a continuación, seleccione Aceptar. De esta forma, se crea una directiva WAF básica con un conjunto de reglas básico (CRS) administrado.

      Captura de pantalla de la pestaña de aspectos básicos de la página Crear una puerta de enlace de aplicación.

  2. Para que Azure se comunique entre los recursos que se crean, se necesita una red virtual. Puede crear una red virtual o usar una existente. En este ejemplo, creará una nueva red virtual a la vez que crea la puerta de enlace de aplicaciones. Se crean instancias de Application Gateway en subredes independientes. En este ejemplo se crean dos subredes: una para la puerta de enlace de aplicaciones y la otra para los servidores back-end.

    En Configurar la red virtual, seleccione Crear nuevo para crear una nueva red virtual. En la ventana Crear red virtual que se abre, escriba los valores siguientes para crear la red virtual y dos subredes:

    • Name: Escriba myVnet como nombre de la red virtual.

    • Nombre de subred (subred de Application Gateway): La cuadrícula Subredes mostrará una subred llamada Predeterminada. Cambie el nombre de esta subred a myAGSubnet.
      La subred de la puerta de enlace de aplicaciones solo puede contener puertas de enlace de aplicaciones. No se permite ningún otro recurso.

    • Nombre de subred (subred de servidor de back-end): En la segunda fila de la cuadrícula Subredes, escriba myBackendSubnet en la columna Nombre de subred.

    • Intervalo de direcciones (subred de servidor de back-end): En la segunda fila de la cuadrícula Subredes, escriba un intervalo de direcciones que no se superponga al intervalo de direcciones de myAGSubnet. Por ejemplo, si el intervalo de direcciones de myAGSubnet es 10.21.0.0/24, escriba 10.21.1.0/24 para el intervalo de direcciones de myBackendSubnet.

    Seleccione Aceptar para cerrar la ventana Crear red virtual y guarde la configuración de la red virtual.

    Captura de pantalla de Creación de una nueva puerta de enlace de aplicaciones: Creación de una red virtual.

  3. En la pestaña Aspectos básicos, acepte los valores predeterminados para las demás opciones y seleccione Siguiente: Front-end.

Pestaña Front-end

  1. En la pestaña Front-end, compruebe que Tipo de dirección IP de front-end esté establecido en Pública.
    Puede configurar la dirección IP de front-end para que sea Pública o Ambas, según el caso de uso. En este ejemplo, elegimos una IP de front-end pública.

    Nota

    En el caso de la SKU v2 de Application Gateway, los tipos de dirección IP de front-end Pública y Ambas se admiten hoy en día. Actualmente no se admite la configuración de IP de front-end que sea solo Privada.

  2. En Dirección IP pública, seleccione Agregar nueva y escriba myAGPublicIPAddress como nombre de la dirección IP pública y, luego, elija Aceptar.

    Captura de pantalla de Crear una puerta de enlace de aplicación (Application Gateway): front-ends.

  3. Seleccione Siguiente: Back-end.

Pestaña Back-end

El grupo de back-end se usa para enrutar las solicitudes a los servidores back-end, que atienden la solicitud. Los grupos de back-end pueden constar de NIC, conjuntos de escalado de máquinas virtuales, direcciones IP públicas e internas, nombres de dominio completos (FQDN) y servidores back-end multiinquilino como Azure App Service. En este ejemplo, creará un grupo de back-end vacío con la puerta de enlace de aplicaciones y, luego, agregará destinos de back-end al grupo de back-end.

  1. En la pestaña Back-end, seleccione Agregar un grupo de back-end.

  2. En la ventana Agregar un grupo de back-end, escriba los valores siguientes para crear un grupo de back-end vacío:

    • Name: Escriba myBackendPool para el nombre del grupo de back-end.
    • Agregar grupo de back-end sin destinos: Seleccione para crear un grupo de back-end sin destinos. Agregará destinos de back-end después de crear la puerta de enlace de aplicaciones.
  3. En la ventana Agregar un grupo de back-end, seleccione Agregar para guardar la configuración del grupo de back-end y vuelva a la pestaña Back-end.

    Captura de pantalla de Crear una puerta de enlace de aplicación (Application Gateway): back-ends.

  4. En la pestaña Back-end, seleccione Siguiente: Configuración.

Pestaña Configuración

En la pestaña Configuración, conecte el grupo de front-end y back-end que ha creado con una regla de enrutamiento.

  1. Seleccione Agregar una regla de enrutamiento en la columna Reglas de enrutamiento.

  2. En la ventana Agregar una regla de enrutamiento que se abre, escriba myRoutingRule para el Nombre de regla.

  3. En Prioridad, escriba un número de prioridad.

  4. Una regla de enrutamiento necesita un cliente de escucha. En la pestaña Cliente de escucha de la ventana Agregar una regla de enrutamiento, escriba los valores siguientes para el cliente de escucha:

    • Nombre del cliente de escucha: Escriba myListener para el nombre del cliente de escucha.

    • Dirección IP de front-end: Seleccione Pública para elegir la dirección IP pública que ha creado para el front-end.

      Acepte los valores predeterminados para las demás opciones de la pestaña Cliente de escucha y, a continuación, seleccione la pestaña Destinos de back-end para configurar el resto de opciones de la regla de enrutamiento.

    Captura de pantalla de la pestaña Cliente de escucha de la página Crear una puerta de enlace de aplicación.

  5. En la pestaña Destinos de back-end, seleccione myBackendPool para el Destino de back-end.

  6. En Configuración de back-end, seleccione Agregar nuevo para crear una nueva configuración de back-end. Esta configuración determina el comportamiento de la regla de enrutamiento. En la ventana Agregar configuración back-end que se abre, escriba myBackendSetting como Nombre de la configuración de back-end. Acepte los valores predeterminados de las demás opciones de la ventana y seleccione Agregar para volver a la ventana Agregar una regla de enrutamiento.

    Captura de pantalla de la página Crear una puerta de enlace de aplicación, configuración de backend.

  7. En la ventana Agregar una regla de enrutamiento, seleccione Agregar para guardar la regla de enrutamiento y volver a la pestaña Configuración.

    Captura de pantalla de la página Crear una puerta de enlace de aplicación, regla de enrutamiento.

  8. Seleccione Siguiente: Etiquetas y, a continuación, Siguiente: Review + create (Revisar y crear).

Pestaña Revisar y crear

Revise la configuración en la pestaña Revisar y crear y seleccione Crear para crear la red virtual, la dirección IP pública y la puerta de enlace de aplicaciones. Azure puede tardar varios minutos en crear la puerta de enlace de aplicaciones.

Espere hasta que finalice la implementación correctamente antes de continuar con la siguiente sección.

Agregar destinos de back-end

En este ejemplo, se usan máquinas virtuales como back-end de destino. Pueden usarse máquinas virtuales existentes o crear otras nuevas. En este ejemplo, se crean dos máquinas virtuales que Azure usa como servidores back-end para la puerta de enlace de aplicaciones.

Para ello, necesitará lo siguiente:

  1. Crear dos VM Linux, myVM y myVM2, que se usarán como servidores back-end.
  2. Instalar NGINX en las máquinas virtuales para comprobar que la puerta de enlace de aplicaciones se ha creado correctamente.
  3. Agregar los servidores back-end al grupo de back-end.

Creación de una máquina virtual

  1. En Azure Portal, seleccione Crear un recurso. Aparecerá la ventana Crear un recurso.

  2. En Máquina virtual, seleccione Crear.

  3. Especifique estos valores en la pestaña Datos básicos de la siguiente configuración de máquina virtual:

    • Grupo de recursos: Seleccione myResourceGroupAG como nombre del grupo de recursos.
    • Nombre de la máquina virtual: Especifique myVM como nombre de la máquina virtual.
    • Imagen: Ubuntu Server 20.04 LTS: Gen2
    • Tipo de autenticación: contraseña
    • Nombre de usuario: Escriba un nombre de usuario para el administrador.
    • Contraseña: Escriba una contraseña para el administrador.
    • Puertos de entrada públicos: seleccione Ninguno.
  4. Acepte los valores predeterminados y haga clic en Siguiente: Discos.

  5. Acepte los valores predeterminados de la pestaña Discos y seleccione Siguiente: Redes.

  6. En la pestaña Redes, compruebe que myVNet está seleccionada como red virtual y que la subred es myBackendSubnet.

  7. En IP pública, seleccione Ninguno.

  8. Acepte los valores predeterminados y haga clic en Siguiente: Administración.

  9. Seleccione Siguiente: Supervisión y establezca Diagnósticos de arranque en Deshabilitar. Acepte los demás valores predeterminados y seleccione Revisar y crear.

  10. En la pestaña Revisar y crear, revise la configuración, corrija los errores de validación y, después, seleccione Crear.

  11. Espere a que se complete la creación de la máquina virtual antes de continuar.

Instalación de NGINX para pruebas

En este ejemplo se instala NGINX en las máquinas virtuales con el fin de comprobar que Azure creó correctamente la puerta de enlace de aplicaciones.

  1. Abra Cloud Shell de Bash. Para ello, seleccione el icono Cloud Shell en la barra de navegación superior de Azure Portal y, a continuación, seleccione Bash en la lista desplegable.

    Captura de pantalla que muestra el Cloud Shell de Bash.

  2. Ejecute el siguiente comando para instalar NGINX en la máquina virtual:

     az vm extension set \
     --publisher Microsoft.Azure.Extensions \
     --version 2.0 \
     --name CustomScript \
     --resource-group myResourceGroupAG \
     --vm-name myVM \
     --settings '{ "fileUris": ["https://raw.githubusercontent.com/Azure/azure-docs-powershell-samples/master/application-gateway/iis/install_nginx.sh"], "commandToExecute": "./install_nginx.sh" }'
    
  3. Cree una segunda máquina virtual e instale NGINX con los pasos que acaba de completar. Utilice myVM2 para el nombre de la máquina virtual y para el valor --vm-name del cmdlet.

Incorporación de servidores back-end a un grupo de back-end

  1. Seleccione Todos los recursos y, después, seleccione myAppGateway.

  2. Seleccione los grupos back-end en el menú de la izquierda.

  3. Seleccione MyBackendPool.

  4. En Tipo de destino, seleccione Máquina virtual de la lista desplegable.

  5. En Destino, seleccione la interfaz de red de myVM en la lista desplegable.

  6. Repita la operación con myVM2.

    Incorporación de servidores back-end

  7. Seleccione Guardar.

  8. Espere a que la implementación se complete antes de continuar con el paso siguiente.

Prueba de la puerta de enlace de aplicaciones

Aunque no es necesario instalar NGINX para crear la puerta de enlace de aplicación, se ha instalado para comprobar que Azure la creó correctamente. Use el servicio web para probar la puerta de enlace de aplicación:

  1. Busque la dirección IP pública de la puerta de enlace de aplicaciones en la página de información general. Captura de pantalla de la dirección IP pública de Application Gateway en la página Información general.

    También puede seleccionar Todos los recursos, escribir myAGPublicIPAddress en el cuadro de búsqueda y, luego, seleccionar este recurso en los resultados. Azure muestra la dirección IP pública en la página de información general.

  2. Copie la dirección IP pública y péguela en la barra de direcciones del explorador.

  3. Compruebe la respuesta. Una respuesta válida corrobora que la puerta de enlace de aplicaciones se ha creado correctamente y puede conectarse correctamente con el back-end.

    Captura de pantalla de la prueba de la puerta de enlace de aplicaciones (Application Gateway).

Limpieza de recursos

Cuando ya no necesite los recursos que ha creado con la puerta de enlace de aplicaciones, elimine el grupo de recursos. Mediante la eliminación del grupo de recursos también elimina la puerta de enlace de aplicaciones y todos sus recursos relacionados.

Para eliminar el grupo de recursos:

  1. En el menú de la izquierda de Azure Portal, seleccione Grupos de recursos.
  2. En la página Grupos de recursos, busque myResourceGroupAG en la lista y selecciónelo.
  3. En la página del grupo de recursos, seleccione Eliminar grupo de recursos.
  4. Escriba myResourceGroupAG en ESCRIBA EL NOMBRE DEL GRUPO DE RECURSOS y seleccione Eliminar.

Pasos siguientes