Implementação com o Instalador All-in-One¶
Um instalador all-in-one é projetado para simplificar e padronizar o processo de instalação do nó Wallarm como um módulo dinâmico para o NGINX em vários ambientes. Este instalador identifica automaticamente as versões do sistema operacional e do NGINX e instala todas as dependências necessárias.
Em comparação com os pacotes Linux individuais oferecidos pela Wallarm para NGINX, NGINX Plus e NGINX fornecido pela distribuição, o instalador all-in-one simplifica o processo ao realizar automaticamente as seguintes ações:
-
Verificar a versão do seu SO e NGINX.
-
Adicionar os repositórios Wallarm para o SO e a versão do NGINX detectados.
-
Instalar os pacotes Wallarm a partir desses repositórios.
-
Conectar o módulo Wallarm instalado ao seu NGINX.
-
Conectar o nó de filtragem à Nuvem Wallarm usando o token fornecido.
Casos de uso¶
Dentre todas as opções de implementação do Wallarm suportadas, esta solução é a recomendada para os seguintes casos de uso:
-
Sua infraestrutura é baseada em bare metal ou máquinas virtuais, sem o uso de métodos baseados em contêineres. Normalmente, essas configurações são gerenciadas com ferramentas de Infraestrutura como Código (IaC) como o Ansible ou SaltStack.
-
Seus serviços são construídos em torno do NGINX. O Wallarm pode estender suas funcionalidades usando o instalador tudo-em-um.
Requisitos¶
-
Acesso à conta com a função de Administrador no Console Wallarm para a Nuvem dos EUA ou Nuvem da UE.
-
Sistemas operacionais suportados:
- Debian 10, 11 e 12.x
- Ubuntu LTS 18.04, 20.04, 22.04
- CentOS 7, 8 Stream, 9 Stream
- Alma/Rocky Linux 9
- RHEL 8.x
- RHEL 9.x
- Oracle Linux 8.x
- Oracle Linux 9.x
- Redox
- SuSe Linux
- Outros (a lista está sempre se expandindo, contate a equipe de suporte Wallarm para verificar se o seu sistema operacional está na lista )
-
Acesso a
https://meganode.wallarm.com
para baixar o instalador completo Wallarm. Certifique-se de que o acesso não está bloqueado por um firewall. -
Acesso a
https://us1.api.wallarm.com
para trabalhar com a Nuvem Wallarm dos EUA ou ahttps://api.wallarm.com
para trabalhar com a Nuvem Wallarm da UE. Se o acesso só pode ser configurado via servidor proxy, então use as instruções. -
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
-
Execução de todos os comandos como um superusuário (por exemplo,
root
).
Passo 1: Instale o NGINX e as dependências¶
Instale a última versão do NGINX de:
-
NGINX
estável
- veja como instalá-lo na documentação do NGINX. -
NGINX Plus - veja como instalá-lo na documentação do NGINX.
-
NGINX fornecido pela distribuição - para instalar, use os seguintes comandos:
Passo 2: Prepare o token Wallarm¶
Para instalar o node, você precisará de um token Wallarm do tipo apropriado. Para preparar um token:
Passo 3: Baixe o instalador Wallarm all-in-one¶
A Wallarm sugere instalações all-in-one para os seguintes processadores:
-
x86_64
-
ARM64 (beta)
Para baixar o script de instalação all-in-one da Wallarm, execute o comando:
Passo 4: Execute o instalador Wallarm all-in-one¶
- Execute o script baixado:
=== "Token da API"
# Se estiver usando a versão x86_64:
sudo env WALLARM_LABELS='group=<GROUP>' sh wallarm-4.8.0.x86_64-glibc.sh
# Se estiver usando a versão ARM64:
sudo env WALLARM_LABELS='group=<GROUP>' sh wallarm-4.8.0.aarch64-glibc.sh
A variável `WALLARM_LABELS` define o grupo ao qual o nó será adicionado (usado para agrupar logicamente os nós na interface do usuário do Console Wallarm).
=== "Token do nó"
# Se estiver usando a versão x86_64:
sudo sh wallarm-4.8.0.x86_64-glibc.sh
# Se estiver usando a versão ARM64:
sudo sh wallarm-4.8.0.aarch64-glibc.sh
-
Selecione Nuvem dos EUA ou Nuvem da EU.
-
Insira o token Wallarm.
Os comandos nas etapas a seguir são os mesmos para instalações x86_64 e ARM64.
Passo 5: Ative o nó Wallarm para analisar o tráfego¶
Por padrão, o nó Wallarm implantado não analisa o tráfego de entrada.
Dependendo da abordagem de implantação Wallarm selecionada (in-line ou Out-of-Band), configure o Wallarm para intermediar o tráfego ou processar o espelho de tráfego.
Realize a seguinte configuração no arquivo de configuração do NGINX na máquina com o nó instalado:
-
Defina um endereço IP para o Wallarm intermediar o tráfego legítimo. Pode ser um IP de uma instância de aplicativo, balanceador de carga ou nome DNS, etc., dependendo da sua arquitetura.
Para fazer isso, edite o valor
proxy_pass
, por exemplo, o Wallarm deve enviar solicitações legítimas parahttp://10.80.0.5
: -
Para o nó Wallarm analisar o tráfego de entrada, defina a diretiva
wallarm_mode
paramonitoring
:O modo de monitoramento é o recomendado para a primeira implantação e teste de solução. O Wallarm também oferece modos seguros de bloqueio e bloqueio, leia mais.
-
Para o nó Wallarm aceitar o tráfego espelhado, defina a seguinte configuração no bloco
server
do NGINX:wallarm_force server_addr $http_x_server_addr; wallarm_force server_port $http_x_server_port; # Altere 222.222.222.22 para o endereço do servidor de espelhamento set_real_ip_from 222.222.222.22; real_ip_header X-Forwarded-For; real_ip_recursive on; wallarm_force response_status 0; wallarm_force response_time 0; wallarm_force response_size 0;
- As diretivas
set_real_ip_from
ereal_ip_header
são necessárias para que o Console Wallarm exiba os endereços IP dos invasores. - As diretivas
wallarm_force_response_*
são necessárias para desativar a análise de todas as solicitações, exceto para cópias recebidas do tráfego espelhado.
- As diretivas
-
Para o nó Wallarm analisar o tráfego espelhado, defina a diretiva
wallarm_mode
paramonitoring
:Como as solicitações maliciosas não podem ser bloqueadas, o único modo que o Wallarm aceita é o monitoramento. Para a implantação in-line, também existem modos de bloqueio seguro e bloqueio, mas mesmo se você definir a diretiva
wallarm_mode
para um valor diferente de monitoramento, o nó continua a monitorar o tráfego e a registrar apenas tráfego malicioso (além do modo configurado para desligado).
Passo 6: Reinicie o NGINX¶
Reinicie o NGINX usando o seguinte comando:
Passo 7: Configure o envio de tráfego para o nó Wallarm¶
Dependendo da abordagem de implantação sendo usada, realize as seguintes configurações:
Atualize os alvos do seu balanceador de carga para enviar tráfego para a instância Wallarm. Para detalhes, consulte a documentação do seu balanceador de carga.
Configure seu servidor web ou proxy (por exemplo, NGINX, Envoy) para espelhar o tráfego de entrada para o nó Wallarm. Para detalhes de configuração, recomendamos que se refira à documentação do seu servidor web ou proxy.
Dentro do [link][exemplos-espelhando-servidor-web], você encontrará a configuração de exemplo dos servidores web e proxy mais populares (NGINX, Traefik, Envoy).
Passo 8: Teste 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.
Passo 9: Ajuste a solução implementada¶
O módulo dinâmico Wallarm com configurações padrão está instalado. O nó de filtragem pode exigir alguma configuração adicional após a implantação.
As configurações Wallarm são definidas usando as diretivas NGINX ou a UI Console Wallarm. As diretivas devem ser definidas nos seguintes arquivos na máquina com o nó Wallarm:
-
/etc/nginx/nginx.conf
com as configurações do NGINX -
/etc/nginx/wallarm-status.conf
com as configurações de monitoramento do nó Wallarm. A descrição detalhada está disponível no link -
/opt/wallarm/etc/collectd/wallarm-collectd.conf.d/wallarm-tarantool.conf
com as configurações para o plugincollectd
que coleta estatísticas do Tarantool
Abaixo estão algumas das configurações típicas que você pode aplicar, se necessário:
-
Usando o balanceador do servidor proxy atrás do nó de filtragem
-
Limitando o tempo de processamento de uma única solicitação na diretiva
wallarm_process_time_limit
-
Limitando o tempo de espera da resposta do servidor na diretiva NGINX
proxy_read_timeout
-
Limitando o tamanho máximo de solicitação na diretiva NGINX
client_max_body_size
Opções de lançamento¶
Assim que você tiver o script all-in-one baixado, você pode obter ajuda sobre isso com:
Que retorna:
...
Uso: setup.sh [opções]... [argumentos]... [filtragem/pós-análise]
OPÇÃO DESCRIÇÃO
-b, --batch Modo em lote, instalação não interativa.
-t, --token TOKEN Token do nó, usado apenas em modo em lote.
-c, --cloud CLOUD Nuvem Wallarm, uma das opções EU/US, padrão é EU, usado apenas em modo em lote.
-H, --host HOST Endereço da API Wallarm, por exemplo, api.wallarm.com or us1.api.wallarm.com, usado apenas em modo em lote.
-P, --port PORT Porto da API Wallarm, por exemplo, 443.
--no-ssl Desativar o SSL para o acesso à API Wallarm.
--no-verify Desativar a verificação de certificados SSL.
-f, --force Se houver um nó com o mesmo nome, criar uma nova instância.
-h, --help
--version
Note que:
-
A opção
--batch
habilita um modo de lote (não interativo). Neste modo, se você não usar parâmetros adicionais, o nó é instalado imediatamente após o lançamento do script, sem exigir nenhuma interação ou entrada de dados adicionais do usuário. O modo em lote:- Requer
--token
- Instala o nó na Nuvem da UE por padrão
- Permite modificações no comportamento do script com opções adicionais
- Requer
-
A chave
filtragem/pós-análise
permite instalar separadamente o módulo pós-análise. Se a chave não for usada, as partes de filtragem e pós-análise são instaladas juntas.