Atualizando módulos NGINX Wallarm¶
Estas instruções descrevem as etapas para atualizar os módulos NGINX Wallarm 4.x instalados a partir dos pacotes individuais para a versão 4.8. Estes são os módulos instalados de acordo com uma das seguintes instruções:
Para atualizar o nó de fim de vida (3.6 ou inferior), utilize as diferentes instruções.
Métodos de atualização¶
Você pode realizar a atualização de duas maneiras distintas:
-
Migrar para o uso do instalador tudo-em-um durante o procedimento de atualização. Esse é o método recomendado, pois automatiza diversas atividades de instalação e atualização do nó, como identificação da versão do NGINX e do sistema operacional, adição de repositórios Wallarm adequados, instalação de pacotes e outros.
-
Continue usando o método atual de instalação manual através de pacotes DEB/RPM individuais. No entanto, é importante salientar que em futuras atualizações esse método exigirá um esforço adicional e configuração manual em comparação ao novo método.
Atualização com instalador all-in-one¶
Use o procedimento abaixo para atualizar os módulos NGINX Wallarm 4.x para a versão 4.8 usando instalador all-in-one.
Requisitos para atualização usando o instalador all-in-one¶
-
Acesso à conta com a função de Administrador no Console Wallarm para US Cloud ou EU Cloud.
-
Acesso a
https://meganode.wallarm.com
para baixar o instalador Wallarm all-in-one. Certifique-se de que o acesso não está bloqueado por um firewall. -
Acesso a
https://us1.api.wallarm.com
para trabalhar com o US Wallarm Cloud ou parahttps://api.wallarm.com
para trabalhar com o EU Wallarm Cloud. Se o acesso pode ser configurado somente via servidor proxy, então use as instruções. -
Execução de todos os comandos como superusuário (por exemplo,
root
).
Procedimento de atualização¶
-
Se os módulos de nó filtragem e postanálise estiverem instalados no mesmo servidor, siga as instruções abaixo para atualizar todos.
Você precisará executar um nó da versão mais recente usando o instalador all-in-one em uma máquina limpa, testar se funciona corretamente e parar o anterior e configurar o tráfego para fluir através da nova máquina em vez da anterior.
-
Se os módulos de nó de filtragem e postanálise estiverem instalados em servidores diferentes, primeiro atualize o módulo de postanálise e depois o módulo de filtragem seguindo estas instruções.
Etapa 1: Prepara máquina limpa¶
Ao atualizar os módulos 4.x com o instalador all-in-one, você não pode atualizar uma instalação de pacote antigo - em vez disso, você precisa usar uma máquina limpa. Assim, como passo 1, prepare uma máquina com um dos 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á constantemente se expandindo, entre em contato com a equipe de suporte da Wallarm para verificar se seu sistema operacional está na lista)
Usar uma máquina limpa nova levará ao fato de que, em algum momento, você terá ambos os nós antigos e novos, o que é bom: você pode testar o novo funcionando corretamente sem interromper o antigo.
Etapa 2: 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:
Etapa 3: Preparar token Wallarm¶
Para instalar o node, você precisará de um token Wallarm do tipo apropriado. Para preparar um token:
Etapa 4: Baixar o instalador all-in-one do Wallarm¶
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:
Etapa 5: Execute o instalador all-in-one do Wallarm¶
Nó de filtragem e postanálise no mesmo servidor¶
- 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.
Nó de filtragem e postanálise em servidores diferentes¶
Sequência de etapas para atualizar os módulos de nó de filtragem e postanálise
Se os módulos de nó de filtragem e postanálise estiverem instalados em servidores diferentes, então é necessário atualizar os pacotes de postanálise antes de atualizar os pacotes do nó de filtragem.
-
Atualize o módulo postanálise seguindo estas instruções.
-
Atualize o nó de filtragem:
# Se estiver usando a versão x86_64: sudo env WALLARM_LABELS='group=<GROUP>' sh wallarm-4.8.0.x86_64-glibc.sh filtering # Se estiver usando a versão ARM64: sudo env WALLARM_LABELS='group=<GROUP>' sh wallarm-4.8.0.aarch64-glibc.sh filtering
A variável
WALLARM_LABELS
define o grupo em que o nó será adicionado (usado para agrupamento lógico de nós na IU do Console Wallarm).
Etapa 6: Transferir configuração do NGINX e postanálise de máquina antiga para nova¶
Transfira a configuração do NGINX relacionada ao nó e a configuração de postanálise dos arquivos de configuração na máquina antiga para os arquivos em uma nova máquina. Você pode fazer isso copiando as diretivas necessárias.
Arquivos de origem
Na máquina antiga, dependendo do sistema operacional e da versão do NGINX, os arquivos de configuração do NGINX podem estar localizados em diretórios diferentes e ter nomes diferentes. Os mais comuns são os seguintes:
-
/etc/nginx/conf.d/default.conf
com configurações do NGINX -
/etc/nginx/conf.d/wallarm.conf
com configurações globais do nó de filtragemO arquivo é usado para configurações aplicadas a todos os domínios. Para aplicar configurações diferentes a diferentes grupos de domínio, o arquivo
default.conf
geralmente é usado ou um novo arquivo de configuração é criado para cada grupo de domínio (por exemplo,example.com.conf
etest.com.conf
). Informações detalhadas sobre os arquivos de configuração do NGINX estão disponíveis na documentação oficial do NGINX. -
/etc/nginx/conf.d/wallarm-status.conf
com configurações de monitoramento do nó Wallarm. Descrição detalhada disponível no link
Também, a configuração do módulo postanálise (configurações do banco de dados Tarantool) geralmente está localizada aqui:
-
/etc/default/wallarm-tarantool
ou -
/etc/sysconfig/wallarm-tarantool
Arquivos de destino
Como o instalador all-in-one funciona com diferentes combinações de sistema operacional e versões do NGINX, na sua nova máquina, os arquivos de destino podem ter nomes diferentes e estar localizados em diretórios diferentes.
Etapa 7: Reiniciar NGINX¶
Reinicie o NGINX usando o seguinte comando:
Etapa 8: Testar operação do nó Wallarm¶
Para testar a operação do novo nó:
-
Envie a solicitação com ataques de teste SQLI e XSS para o endereço do recurso protegido:
-
Abra o console Wallarm → seção Eventos no Cloud dos EUA ou Cloud da UE e certifique-se de que os ataques estão exibidos na lista.
-
Assim que seus dados armazenados em Cloud (regras, listas de IP) estiverem sincronizados para o novo nó, realize alguns ataques de teste para garantir que suas regras funcionem como esperado.
Etapa 9: Configurar envio de tráfego para o nó Wallarm¶
Dependendo da abordagem de implantação em uso, realize as seguintes configurações:
Atualize os alvos de seu balanceador de carga para enviar tráfego para a instância Wallarm. Para detalhes, consulte a documentação do seu balanceador de carga.
Antes de redirecionar completamente o tráfego para o novo nó, é recomendável primeiro redirecioná-lo parcialmente e verificar se o novo nó se comporta conforme o esperado.
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 consultar a documentação do seu servidor web ou proxy.
Dentro do link, você encontrará a configuração de exemplo para os servidores web e proxy mais populares (NGINX, Traefik, Envoy).
Etapa 10: Remover nó antigo¶
-
Exclua o nó antigo no console Wallarm → Nós selecionando seu nó e clicando em Excluir.
-
Confirme a ação.
Quando o nó é excluído do Cloud, ele para a filtragem das solicitações para suas aplicações. Excluir o nó de filtragem não pode ser desfeito. O nó será excluído permanentemente da lista de nós.
-
Exclua máquina com o nó antigo ou simplesmente limpe-a dos componentes do nó Wallarm:
Atualização manual¶
Use o procedimento abaixo para atualizar manualmente os módulos NGINX Wallarm 4.x para a versão 4.8.
Requisitos para atualização manual¶
-
Acesso à conta com a função de Administrador no Console Wallarm no US Cloud ou EU Cloud
-
Acesso a
https://us1.api.wallarm.com
se estiver trabalhando com o Wallarm Cloud dos EUA ou parahttps://api.wallarm.com
se estiver trabalhando com o Wallarm Cloud da UE. Por favor, certifique-se de que o acesso não está bloqueado por um firewall
Procedimento de atualização¶
-
Se os módulos de nó de filtragem e postanálise estiverem instalados no mesmo servidor, siga as instruções abaixo para atualizar todos os pacotes.
-
Se os módulos de nó de filtragem e postanálise estiverem instalados em servidores diferentes, primeiro atualize o módulo de postanálise seguindo estas instruções e, em seguida, execute as etapas abaixo para os módulos do nó de filtragem.
Etapa 1: Atualizar NGINX para a versão mais recente¶
Atualize o NGINX para a versão mais recente usando as instruções relevantes:
Distribuições baseadas em DEB:
Distribuições baseadas em RPM:
Para NGINX Plus, siga as instruções oficiais de atualização.
Para NGINX instalado de repositório Debian/CentOS, pule esta etapa. A versão instalada do NGINX será atualizada mais tarde junto com os módulos Wallarm.
Se sua infraestrutura precisa usar uma versão específica do NGINX, entre em contato com o suporte técnico da Wallarm para construir o módulo Wallarm para uma versão personalizada do NGINX.
Etapa 2: Adicionar novo repositório Wallarm¶
Exclua o endereço do repositório Wallarm anterior e adicione um repositório com um novo pacote de versão do nó Wallarm. Use os comandos para a plataforma apropriada.
CentOS e Amazon Linux 2.0.2021x e inferior
Debian e Ubuntu
-
Abra o arquivo com o endereço do repositório Wallarm no editor de texto instalado. Nestas instruções, vim é usado.
-
Comente ou exclua o endereço do repositório anterior.
-
Adicione um novo endereço de repositório:
Não suportado pelo NGINX estável e NGINX Plus
As versões oficiais do NGINX (estável e Plus) e, como resultado, o nó Wallarm 4.4 e superior não podem ser instalados no Debian 10.x (buster). Use este sistema operacional apenas se o NGINX estiver instalado a partir dos repositórios Debian/CentOS.
Etapa 3: Atualizar pacotes Wallarm¶
Nó de filtragem e postanálise no mesmo servidor¶
-
Execute o seguinte comando para atualizar os módulos de nó de filtragem e postanálise:
O erro "as assinaturas não puderam ser verificadas"
Se as chaves GPG adicionadas expirarem, o seguinte erro será retornado:
W: GPG error: https://repo.wallarm.com/ubuntu/wallarm-node focal/4.8/ Release:As seguintes assinaturas não puderam ser verificadas porque a chave pública não está disponível: NO_PUBKEY 1111FQQW999 E: O repositório 'https://repo.wallarm.com/ubuntu/wallarm-node focal/4.8/ Release' não está assinado. N: Atualizar a partir de tal repositório não pode ser feito de maneira segura, e é, portanto, desativado por padrão. N: Veja a página man do apt-secure(8) para detalhes da criação de repositório e configuração do usuário.
Para corrigir o problema, importe novas chaves GPG para os pacotes Wallarm e então atualize os pacotes usando os seguintes comandos:
Atualizando as dependências do Wallarm
O comando
sudo apt dist-upgrade
atualiza tanto os pacotes Wallarm quanto as dependências do nó de filtragem. É a opção recomendada para a atualização, uma vez que assegura o correto funcionamento da nova versão do nó de filtragem.O erro "as assinaturas não puderam ser verificadas"
Se as chaves GPG adicionadas expirarem, o seguinte erro será retornado:
W: GPG error: https://repo.wallarm.com/ubuntu/wallarm-node focal/4.8/ Release:As seguintes assinaturas não puderam ser verificadas porque a chave pública não está disponível: NO_PUBKEY 1111FQQW999 E: O repositório 'https://repo.wallarm.com/ubuntu/wallarm-node focal/4.8/ Release' não está assinado. N: Atualizar a partir de tal repositório não pode ser feito de maneira segura, e é, portanto, desativado por padrão. N: Veja a página man do apt-secure(8) para detalhes da criação de repositório e configuração do usuário.
Para corrigir o problema, importe novas chaves GPG para os pacotes Wallarm e então atualize os pacotes usando os seguintes comandos:
Atualizando as dependências do Wallarm
O comando
sudo apt dist-upgrade
atualiza tanto os pacotes Wallarm quanto as dependências do nó de filtragem. É a opção recomendada para a atualização, uma vez que assegura o correto funcionamento da nova versão do nó de filtragem. -
Se o gerenciador de pacotes perguntar por confirmação para reescrever o conteúdo do arquivo de configuração
/etc/cron.d/wallarm-node-nginx
, envie a opçãoY
.O conteúdo do
/etc/cron.d/wallarm-node-nginx
deve ser atualizado para que o novo script de contagem de RPS seja baixado.Por padrão, o gerenciador de pacotes usa a opção
N
, mas a opçãoY
é necessária para a contagem correta de RPS.
Nó de filtragem e postanálise em servidores diferentes¶
Sequência de etapas para atualizar os módulos de nó de filtragem e postanálise
Se os módulos de nó de filtragem e postanálise estiverem instalados em servidores diferentes, é necessário atualizar os pacotes de postanálise antes de atualizar os pacotes do nó de filtragem.
-
Atualize os pacotes de postanálise seguindo estas instruções.
-
Atualize os pacotes do nó Wallarm:
O erro "as assinaturas não puderam ser verificadas"
Se as chaves GPG adicionadas expirarem, o seguinte erro será retornado:
W: GPG error: https://repo.wallarm.com/ubuntu/wallarm-node focal/4.8/ Release:As seguintes assinaturas não puderam ser verificadas porque a chave pública não está disponível: NO_PUBKEY 1111FQQW999 E: O repositório 'https://repo.wallarm.com/ubuntu/wallarm-node focal/4.8/ Release' não está assinado. N: Atualizar a partir de tal repositório não pode ser feito de maneira segura, e é, portanto, desativado por padrão. N: Veja a página man do apt-secure(8) para detalhes da criação de repositório e configuração do usuário.
Para corrigir o problema, importe novas chaves GPG para os pacotes Wallarm e então atualize os pacotes usando os seguintes comandos:
Atualizando as dependências do Wallarm
O comando
sudo apt dist-upgrade
atualiza tanto os pacotes Wallarm quanto as dependências do nó de filtragem. É a opção recomendada para a atualização, uma vez que assegura o correto funcionamento da nova versão do nó de filtragem.O erro "as assinaturas não puderam ser verificadas"
Se as chaves GPG adicionadas expirarem, o seguinte erro será retornado:
W: GPG error: https://repo.wallarm.com/ubuntu/wallarm-node focal/4.8/ Release:As seguintes assinaturas não puderam ser verificadas porque a chave pública não está disponível: NO_PUBKEY 1111FQQW999 E: O repositório 'https://repo.wallarm.com/ubuntu/wallarm-node focal/4.8/ Release' não está assinado. N: Atualizar a partir de tal repositório não pode ser feito de maneira segura, e é, portanto, desativado por padrão. N: Veja a página man do apt-secure(8) para detalhes da criação de repositório e configuração do usuário.
Para corrigir o problema, importe novas chaves GPG para os pacotes Wallarm e então atualize os pacotes usando os seguintes comandos:
Atualizando as dependências do Wallarm
O comando
sudo apt dist-upgrade
atualiza tanto os pacotes Wallarm quanto as dependências do nó de filtragem. É a opção recomendada para a atualização, uma vez que assegura o correto funcionamento da nova versão do nó de filtragem. -
Se o gerenciador de pacotes perguntar por confirmação para reescrever o conteúdo do arquivo de configuração
/etc/cron.d/wallarm-node-nginx
, envie a opçãoY
.O conteúdo do
/etc/cron.d/wallarm-node-nginx
deve ser atualizado para que o novo script de contagem de RPS seja baixado.Por padrão, o gerenciador de pacotes usa a opção
N
, mas a opçãoY
é necessária para a contagem correta de RPS.
Etapa 4: Atualizar o tipo de nó¶
Apenas para nós instalados usando o script addnode
Só siga este passo se um nó da versão anterior estiver conectado ao Wallarm Cloud usando o script addnode
. Este script foi removido e substituído pelo register-node
, que requer um token para registrar o nó no Cloud.
-
Certifique-se de que sua conta Wallarm tem a função Administrador navegando para a lista de usuários no Cloud dos EUA ou Cloud da UE.
-
Abra o console Wallarm → Nós no Cloud dos EUA ou Cloud da UE e crie um nó do tipo Nó Wallarm.
Se o módulo de postanálise estiver instalado em um servidor separado
Se os módulos de processamento de tráfego inicial e postanálise estiverem instalados em servidores separados, é recomendado conectar esses módulos ao Wallarm Cloud usando o mesmo token de nó. A IU do Console Wallarm exibirá cada módulo como uma instância de nó separada, por exemplo:
O nó Wallarm já foi criado durante a atualização do módulo postanálise separada. Para conectar o módulo de processamento de tráfego inicial ao Cloud usando as mesmas credenciais de nó:
- Copie o token de nó gerado durante a atualização do módulo postanálise separada.
- Prossiga para a 4ª etapa na lista abaixo.
-
Copie o token gerado.
-
Pausar o serviço NGINX para mitigar o risco de cálculo incorreto de RPS:
-
Execute o script
register-node
para executar o Nó Wallarm:<TOKEN>
é o valor copiado do token do nó ou do token da API com a funçãoDeploy
.- A opção
--force
força a reescrita das credenciais de acesso ao Wallarm Cloud especificadas no arquivo/etc/wallarm/node.yaml
.
Etapa 5: Atualize a página de bloqueio do Wallarm¶
Na nova versão do nó, a página de bloqueio de amostra do Wallarm foi alterada. O logo e o e-mail de suporte na página agora estão vazios por padrão.
Se a página &/usr/share/nginx/html/wallarm_blocked.html
estava configurada para ser retornada em resposta a solicitações bloqueadas, copie e personalize a nova versão de uma página de amostra.
Etapa 6: Reiniciar NGINX¶
Etapa 7: Testar 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.
Personalização de configurações¶
Os módulos Wallarm estão atualizados para a versão 4.8. As configurações do nó de filtragem anterior serão aplicadas à nova versão automaticamente. Para fazer configurações adicionais, use as diretivas disponíveis.
Opções comuns de personalização:
-
Usando o balanceador do servidor proxy atrás do nó de filtragem
-
Limitando o tempo de processamento de uma única requisiçã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 da solicitação na diretiva NGINX
client_max_body_size