Preparar Seu Ambiente para Usar o Firewall do Aplicativo Web

Prepare seu ambiente para poder usar o serviço WAF (Web Application Firewall) do Oracle Cloud Infrastructure para proteger sua aplicação.

Antes de Começar

Antes de criar a política WAF, você precisa saber o endereço IP público do balanceador de carga employee-helidon-lb já ter sido implantado. Consulte Disponibilizar um aplicativo RESTful Java baseado em microsserviços no Oracle Cloud.

Obtenha e observe o endereço EXTERNAL-IP do balanceador de carga do aplicativo Employee de amostra. Isso será necessário para criar a política WAF posteriormente.

kubectl get service employee-helidon-lb

O comando anterior deve retornar uma saída semelhante à seguinte:

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 exibido pelo Kubernetes é o mesmo que o endereço IP público, que é exibido quando você navega até Core > Networking > Load Balancers na console do Oracle Cloud Infrastructure.

Criar uma Política de WAF

Para proteger sua aplicação usando o WAF, primeiro você precisa criar uma política de WAF.

  1. Acesse a console do Oracle Cloud Infrastructure.
  2. Abra o menu de navegação. Em Governança e Administração, vá para Segurança e clique em Políticas de WAF.
    Se solicitado, selecione um compartimento onde a política WAF deve ser criada.
  3. Clique em Criar Política de WAF.
  4. Na caixa de diálogo Criar Política de WAF, informe os campos da seguinte forma:
    Campo Valor
    Nome da Política Política de Demonstração do Funcionário
    Domínio Principal employee. example.com
    Domínios Adicionais Deixar em branco
    Nome da Origem Balanceador de Carga OKE do Funcionário
    URI Balanceador de Carga EXTERNAL-IP
  5. Clique em Criar Política de WAF para fechar a caixa de diálogo.
  6. Depois de criado, carregue os detalhes da Política de Demonstração do Funcionário da lista de políticas.

Tráfego do Aplicativo de Rota Usando o WAF

Para rotear o tráfego por meio do WAF, o domínio principal especificado e quaisquer domínios adicionais devem ser resolvidos para o CNAME Target listado nas informações de política do WAF. Ela é apresentada como uma observação quando a política é criada pela primeira vez.

Se o aplicativo for, na verdade, configurado em uma zona DNS, você normalmente criará um registro CNAME ou ALIAS para employee.example.com usando WAF_Target como seu valor.

No entanto, como essa solução usa um nome de host example.com para a aplicação Employee de amostra, você precisa configurar sua máquina (na qual você acessará a aplicação) para resolver o host.
  1. Defina uma variável de ambiente WAF_TARGET para uso em outros comandos, certificando-se de especificar o CNAME Target listado nos detalhes da política WAF como o valor da variável.
    # 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 se o tráfego está fluindo por meio do WAF. Inspecione os cabeçalhos de Resposta HTTP e espere ver o seguinte:
    • Server: ZENEDGE
    • X-Cdn: Served-By-Zenedge
    curl -I-X GET http://${WAF_TARGET}/public/ -H'host: employee.example.com'
    O código anterior deve retornar uma saída semelhante à seguinte:
    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 sua máquina para resolver a amostra de URL do aplicativo Employee quando carregada em um navegador. Isso é feito criando uma entrada no arquivo hosts, que ignora o DNS e roteia solicitações da sua máquina para o endereço IP WAF de employee.example.com.
    1. Identifique um (pode haver vários) endereço IP de rede para o $WAF_TARGET.
      nslookup $WAF_TARGET
      O código anterior deve retornar uma saída semelhante à seguinte:
      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. Selecione qualquer endereço único na seção Resposta não autorizada e crie uma entrada hosts para o domínio principal example no arquivo /etc/hosts como se segue:
      # hosts file entry
      # <WAF IP Address>    <domain>  
         152.X.X.Z          employee.example.com

      Várias entradas já existirão. Certifique-se de deixar aqueles inalterados para evitar comportamentos inesperados.

  4. Abra http://<employee.example.com>/public/ em um browser.

O aplicativo agora é executado em WAF.