Preparación del entorno para utilizar el firewall de la aplicación web

Prepare su entorno para poder utilizar el servicio Web Application Firewall (WAF) de Oracle Cloud Infrastructure para proteger su aplicación.

Antes de Empezar

Antes de crear la política de WAF, debe conocer la dirección IP pública del equilibrador de carga employee-helidon-lb que ya se ha desplegado. Consulte Despliegue de una aplicación RESTful Java basada en microservicios en Oracle Cloud.

Obtenga y anote la dirección EXTERNAL-IP del equilibrador de carga de la aplicación Employee de ejemplo. Se necesitará para crear la política de WAF más adelante.

kubectl get service employee-helidon-lb

El comando anterior debe devolver una salida similar a la siguiente:

NAME                  TYPE           CLUSTER-IP     EXTERNAL-IP      PORT(S)        AGE
employee-helidon-lb   LoadBalancer   10.X.X.X       132.X.X.X        80:31437/TCP   5m

EXTERNAL-IP mostrado por Kubernetes es lo mismo que la dirección IP pública que se muestra al navegar hasta Core > Networking > Load Balancers en la consola de Oracle Cloud Infrastructure.

Crear una Política de WAF

Para proteger la aplicación mediante WAF, primero debe crear una política de WAF.

  1. Inicie sesión en la consola de Oracle Cloud Infrastructure.
  2. Abra el menú de navegación. En Control y administración, vaya a Seguridad y haga clic en Políticas de WAF.
    Si se le solicita, seleccione un compartimento donde se debe crear la política WAF.
  3. Haga clic en Crear Política WAF.
  4. En el recuadro de diálogo Crear Política WAF, introduzca los campos de la siguiente forma:
    Campo Valor
    Nombre de la Política Política de demostración de empleado
    Dominio Primario employee. example.com
    Dominios adicionales Dejar en blanco
    Nombre de Origen Equilibrador de carga de OKE de empleado
    URI Equilibrador de carga EXTERNAL-IP
  5. Haga clic en Crear Política WAF para cerrar el recuadro de diálogo.
  6. Una vez creados, cargue los detalles de la política de demostración de empleado en la lista de políticas.

Direccionar tráfico de aplicación mediante WAF

Para enrutar el tráfico a través de WAF, el dominio principal especificado y los dominios adicionales deben resolverse en la lista CNAME Target de la información de políticas de WAF. Esto se presenta como un aviso cuando la política se crea por primera vez.

Si la aplicación se configura realmente en una zona de DNS, normalmente crearía un registro CNAME o ALIAS para employee.example.com mediante WAF_Target como su valor.

Sin embargo, puesto que esta solución utiliza un nombre de host example.com para la aplicación Employee de ejemplo, debe configurar su equipo (desde la que accederá a la aplicación) para resolver el host.
  1. Defina una variable de entorno WAF_TARGET para utilizarla en otros comandos, asegurándose de que especifica el CNAME Target mostrado en los detalles de política de WAF como valor de la variable.
    # Mac or Linux
    export WAF_TARGET=employee-example-com.b.waas.oci.oraclecloud.net
    # Windows
    set WAF_TARGET=employee-example-com.b.waas.oci.oraclecloud.net
  2. Verifique que el tráfico fluye por WAF. Inspeccione las cabeceras de respuesta HTTP y espere ver lo siguiente:
    • Server: ZENEDGE
    • X-Cdn: Served-By-Zenedge
    curl -I-X GET http://${WAF_TARGET}/public/ -H'host: employee.example.com'
    El código anterior debe devolver una salida similar a la siguiente:
    HTTP/1.1 200 OK
    Content-Type: text/html
    Connection: keep-alive
    Server: ZENEDGE
    ETag: "1565120174000"
    X-Cache-Status: NOTCACHED
    Content-Length: 14258
    Date: Wed, 07 Aug 2019 20:22:35 GMT
    Last-Modified: Tue, 07 Aug 2019 19:36:14 GMT
    X-Zen-Fury: 1053bc526e3d722eadb457f2
  3. Configure la máquina para resolver la URL de la aplicación Employee de ejemplo cuando esté cargada en un explorador. Para ello, se crea una entrada en el archivo hosts, que omite DNS y direcciona las solicitudes de su máquina a la dirección IP de WAF para employee.example.com.
    1. Identifique una dirección IP de red (puede haber varias) para $WAF_TARGET.
      nslookup $WAF_TARGET
      El código anterior debe devolver una salida similar a la siguiente:
      Server:         192.168.X.X
      Address:        192.168.X.X#YY
      Non-authoritative answer:
      employee-example-com.b.waas.oci.oraclecloud.net canonical name = oci.tm.u.waas.oci.oraclecloud.net.
      oci.tm.u.waas.oci.oraclecloud.net  canonical name = us-seattle.u.waas.oci.oraclecloud.net.
      Name:   us-seattle.u.waas.oci.oraclecloud.net
      Address: 152.X.X.X
      Name:   us-seattle.u.waas.oci.oraclecloud.net
      Address: 152.X.X.Y
      Name:   us-seattle.u.waas.oci.oraclecloud.net
      Address: 152.X.X.Z
    2. Seleccione una dirección única de la sección de respuesta no autorizada y cree una entrada hosts para el dominio principal example en el archivo /etc/hosts como la siguiente:
      # hosts file entry
      # <WAF IP Address>    <domain>  
         152.X.X.Z          employee.example.com

      Varias entradas ya existirán. Asegúrese de dejar los cambios sin cambios para evitar comportamientos inesperados.

  4. Abra http://<employee.example.com>/public/ en un explorador.

La aplicación se ejecuta ahora en WAF.