Pular para conteúdo

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:

  1. Verificar a versão do seu SO e NGINX.

  2. Adicionar os repositórios Wallarm para o SO e a versão do NGINX detectados.

  3. Instalar os pacotes Wallarm a partir desses repositórios.

  4. Conectar o módulo Wallarm instalado ao seu NGINX.

  5. Conectar o nó de filtragem à Nuvem Wallarm usando o token fornecido.

All-in-one comparado ao manual

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 a https://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

    34.96.64.17
    34.110.183.149
    35.235.66.155
    34.102.90.100
    34.94.156.115
    35.235.115.105
    
    34.160.38.183
    34.144.227.90
    34.90.110.226
    
  • 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:

    sudo apt-get update 
    sudo apt -y install --no-install-recommends nginx
    
    sudo apt update 
    sudo apt -y install --no-install-recommends nginx
    
    sudo yum -y update 
    sudo yum install -y nginx
    
    sudo yum -y update 
    sudo yum install -y nginx
    
    sudo yum -y update 
    sudo yum install -y nginx
    

Passo 2: Prepare o token Wallarm

Para instalar o node, você precisará de um token Wallarm do tipo apropriado. Para preparar um token:

  1. Abra o Console Wallarm → ConfiguraçõesTokens de API no US Cloud ou EU Cloud.
  2. Encontre ou crie um token de API com a função de origem Deploy.
  3. Copie este token.
  1. Abra o Console Wallarm → Nós no US Cloud ou EU Cloud.
  2. Faça uma das seguintes ações:
    • Crie o nó do tipo Nó Wallarm e copie o token gerado.
    • Use o grupo de nós existente - copie o token usando o menu do nó → Copiar 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:

curl -O https://meganode.wallarm.com/4.8/wallarm-4.8.0.x86_64-glibc.sh
curl -O https://meganode.wallarm.com/4.8/wallarm-4.8.0.aarch64-glibc.sh

Passo 4: Execute o instalador Wallarm all-in-one

  1. 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

  1. Selecione Nuvem dos EUA ou Nuvem da EU.

  2. 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:

  1. 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 para http://10.80.0.5:

    server {
        listen 80;
        listen [::]:80 ipv6only=on;
    
        ...
    
        location / {
            proxy_pass http://10.80.0.5; 
            ...
        }
    }
    
  2. Para o nó Wallarm analisar o tráfego de entrada, defina a diretiva wallarm_mode para monitoring:

    server {
        listen 80;
        listen [::]:80 ipv6only=on;
        wallarm_mode monitoring;
    
        ...
    }
    

    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.

  1. 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 e real_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.
  2. Para o nó Wallarm analisar o tráfego espelhado, defina a diretiva wallarm_mode para monitoring:

    server {
        listen 80;
        listen [::]:80 ipv6only=on;
        wallarm_mode monitoring;
    
        ...
    }
    

    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:

sudo systemctl restart nginx

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

  1. Envie a solicitação com o ataque de teste Path Traversal para um endereço de recurso protegido:

    curl http://localhost/etc/passwd
    
  2. 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.
    Ataques na interface

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 plugin collectd que coleta estatísticas do Tarantool

Abaixo estão algumas das configurações típicas que você pode aplicar, se necessário:

Opções de lançamento

Assim que você tiver o script all-in-one baixado, você pode obter ajuda sobre isso com:

sudo sh ./wallarm-4.8.0.x86_64-glibc.sh -- -h

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
  • 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.