Executando Imagem Docker baseada em NGINX¶
O nó de filtragem baseado em NGINX da Wallarm pode ser implantado como um contêiner Docker. O contêiner Docker é grande e contém todos os subsistemas do nó de filtragem.
A funcionalidade do nó de filtragem instalado dentro do contêiner Docker é completamente idêntica à funcionalidade das outras opções de implantação.
Versão do NGINX no container Docker
O container Docker usa NGINX da versão 1.14.x
. Você pode descobrir algumas vulnerabilidades nesta versão do NGINX, mas na verdade a maioria delas são corrigidas pela equipe Debian. O container Docker executa serviços no Debian 10.x, portanto, as vulnerabilidades descobertas não devem resultar em comprometimento de dados.
Casos de uso¶
Dentre todas as opções de implantação do Wallarm suportadas, a imagem Docker baseada em NGINX é recomendada para a implantação do Wallarm nestes casos de uso:
-
Se a sua organização utiliza uma infraestrutura baseada em Docker, a imagem Docker do Wallarm é a escolha ideal. Ela se integra facilmente à sua configuração existente, seja você empregando uma arquitetura de microserviço que está rodando em AWS ECS, Alibaba ECS, ou outros serviços semelhantes. Essa solução também se aplica àqueles que estão usando máquinas virtuais que buscam uma gestão mais simplificada através de contêineres Docker.
-
Se você precisa de um controle refinado sobre cada contêiner, a imagem Docker se destaca. Ela oferece um nível maior de isolamento de recursos do que geralmente é possível com implantações baseadas em VM tradicionais.
Para obter mais informações sobre como executar a imagem Docker do Wallarm baseada em NGINX em serviços populares de orquestração de contêineres na nuvem pública, consulte nossos guias: AWS ECS, GCP GCE, Azure Container Instances, Alibaba ECS.
Requisitos¶
-
Docker instalado em seu sistema host
-
Acesso a
https://hub.docker.com/r/wallarm/node
para baixar a imagem do Docker. Certifique-se de que o acesso não está bloqueado por um firewall -
Acesso à conta com a função de Administrador no Console Wallarm na Nuvem dos EUA ou na Nuvem da UE
-
Acesso a
https://us1.api.wallarm.com
se estiver trabalhando com a Nuvem Wallarm dos EUA ou ahttps://api.wallarm.com
se estiver trabalhando com a Nuvem Wallarm da UE. Certifique-se de que o acesso não está bloqueado por um firewall -
Access to the IP addresses below for downloading updates to attack detection rules, as well as retrieving precise IPs for your allowlisted, denylisted, or graylisted countries, regions, or data centers
Opções para executar o contêiner¶
Os parâmetros de configuração do nó de filtragem devem ser passados para o contêiner Docker implantado de uma das seguintes maneiras:
-
Nas variáveis do ambiente. Esta opção permite a configuração de apenas os parâmetros básicos do nó de filtragem. A maioria das diretivas não pode ser configurada através de variáveis de ambiente.
-
No arquivo de configuração montado. Esta opção permite a configuração completa do nó de filtragem através de qualquer diretiva. Com este método de configuração, as variáveis de ambiente com as configurações de conexão do nó de filtragem e do Wallarm Cloud também são passadas para o contêiner.
Execute o contêiner passando as variáveis de ambiente¶
Para executar o contêiner:
-
Obtenha o token Wallarm do tipo apropriado:
-
Execute o contêiner com o nó:
Você pode passar as seguintes configurações básicas do nó de filtragem para o contêiner via a opção -e
:
Variável de ambiente | Descrição | Obrigatório |
---|---|---|
WALLARM_API_TOKEN | Token de nó ou API do Wallarm. | Sim |
NGINX_BACKEND | Domínio ou endereço IP do recurso a ser protegido com a solução Wallarm. | Sim |
WALLARM_API_HOST | Servidor de API Wallarm:
api.wallarm.com . | Não |
WALLARM_MODE | Modo de nó:
monitoring .Descrição detalhada dos modos de filtragem → | Não |
WALLARM_APPLICATION | Identificador único do aplicativo protegido a ser usado na Nuvem Wallarm. O valor pode ser um número inteiro positivo, exceto 0 .O valor padrão (se a variável não for passada para o contêiner) é -1 , o que indica o aplicativo padrão exibido na Console Wallarm → Configurações → Aplicativo.Mais detalhes sobre a configuração de aplicativos → | Não |
TARANTOOL_MEMORY_GB | Quantidade de memória alocada para o Tarantool. O valor pode ser um número inteiro ou um float (um ponto . é um separador decimal). Por padrão: 0.2 gigabytes. | Não |
NGINX_PORT | Define uma porta que o NGINX usará dentro do contêiner Docker. A partir da imagem Docker 4.0.2-1 , o serviço wallarm-status é executado automaticamente na mesma porta que o NGINX.O valor padrão (se a variável não for passada para o contêiner) é 80 .A sintaxe é NGINX_PORT='443' . | Não |
DISABLE_IPV6 | A variável com qualquer valor que não seja um vazio exclui a linha listen [::]:80 default_server ipv6only=on; do arquivo de configuração NGINX, o que impedirá o NGINX de processar conexões IPv6.Se a variável não for especificada explicitamente ou tiver um valor vazio "" , o NGINX processará conexões IPv6 e IPv4. | Não |
WALLARM_LABELS | Disponível a partir do nó 4.6. Funciona apenas se
...colocará a instância do nó no grupo de instâncias | Sim (para tokens de API) |
O comando faz o seguinte:
-
Cria o arquivo
default
com configuração mínima do NGINX e passa a configuração do nó de filtragem no diretório do contêiner/etc/nginx/sites-enabled
. -
Cria arquivos com as credenciais do nó de filtragem para acessar a Wallarm Cloud no diretório do contêiner
/etc/wallarm
:node.yaml
com UUID do nó de filtragem e chave secretaprivate.key
com a chave privada da Wallarm
-
Protege o recurso
http://NGINX_BACKEND:80
.
Execute o contêiner montando o arquivo de configuração¶
Você pode montar o arquivo de configuração preparado no contêiner Docker por meio da opção -v
. O arquivo deve conter as seguintes configurações:
Para executar o contêiner:
-
Obtenha o token Wallarm do tipo apropriado:
-
Execute o contêiner com o nó:
-
A opção
-e
passa as seguintes variáveis de ambiente necessárias para o contêiner:Variável de ambiente Descrição Obrigatório WALLARM_API_TOKEN
Token de nó Wallarm ou API. Sim WALLARM_API_HOST
Servidor API Wallarm: us1.api.wallarm.com
para a Nuvem dos EUAapi.wallarm.com
para a Nuvem da UE
api.wallarm.com
.Não WALLARM_LABELS
Disponível a partir do nó 4.6. Funciona apenas se
WALLARM_API_TOKEN
estiver configurado para token da API com a funçãoDeploy
. Define a etiquetagroup
para agrupamento de instâncias de nó, por exemplo:WALLARM_LABELS="group=<GROUP>"
...colocará a instância de nó no grupo de instâncias
<GROUP>
(existente, ou, se não existir, será criado).Sim (para tokens de API) -
A opção
-v
monta o diretório com o arquivo de configuraçãodefault
no diretório do contêiner/etc/nginx/sites-enabled
.Veja um exemplo do arquivo montado com configurações mínimas
server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; #listen 443 ssl; server_name localhost; #ssl_certificate cert.pem; #ssl_certificate_key cert.key; root /usr/share/nginx/html; index index.html index.htm; wallarm_mode monitoring; # wallarm_application 1; location / { proxy_pass http://example.com; include proxy_params; } }
Montando outros arquivos de configuração
Os diretórios do contêiner usados pelo NGINX:
/etc/nginx/conf.d
— configurações comuns/etc/nginx/sites-enabled
— configurações do host virtual/var/www/html
— arquivos estáticos
Se necessário, você pode montar quaisquer arquivos nos diretórios do contêiner listados. As diretivas do nó de filtragem devem ser descritas no arquivo
/etc/nginx/sites-enabled/default
.
-
O comando faz o seguinte:
-
Monta o arquivo
default
no diretório do contêiner/etc/nginx/sites-enabled
. -
Cria arquivos com as credenciais do nó de filtragem para acessar a Cloud da Wallarm no diretório do contêiner
/etc/wallarm
:node.yaml
com UUID do nó de filtragem e chave secretaprivate.key
com a chave privada da Wallarm
-
Protege o recurso
http://example.com
.
Configuração de log¶
O log é habilitado por padrão. Os diretórios de log são:
-
/var/log/nginx
— Logs do NGINX -
/var/log/wallarm
— Logs do nó Wallarm
Para configurar a geração estendida de logs das variáveis do nó de filtragem, use estas instruções.
Por padrão, os logs giram a cada 24 horas. Para configurar a rotação de log, altere os arquivos de configuração em /etc/logrotate.d/
. A alteração dos parâmetros de rotação por meio de variáveis de ambiente não é possível.
Testando a operação do nó Wallarm¶
-
Envie a solicitação com o ataque de teste Path Traversal para um endereço de recurso protegido:
-
Abra o Console Wallarm → seção Eventos na Nuvem dos EUA ou Nuvem da UE e certifique-se de que o ataque está exibido na lista.
Configurando os casos de uso¶
O arquivo de configuração montado no contêiner Docker deve descrever a configuração do nó de filtragem na diretiva disponível. Abaixo estão algumas opções de configuração do nó de filtragem comumente usadas: