Instalação do Módulo Postanalytics Separado¶
No processamento de solicitações da Wallarm, são envolvidas duas etapas, incluindo a etapa de pós-análise para análise estatística da solicitação. A pós-análise consome muita memória, o que pode exigir que seja realizada em um servidor dedicado para um desempenho otimizado. Este artigo explica como instalar o módulo de pós-análise em um servidor separado.
A opção de instalar o módulo de pós-análise em um servidor separado está disponível para os seguintes artefatos Wallarm:
Por padrão, as instruções de implantação da Wallarm orientam você a instalar ambos os módulos no mesmo servidor.
Visão geral¶
O processamento de solicitações no nó Wallarm consiste em duas etapas:
-
Processamento primário no módulo NGINX-Wallarm, que não consome muita memória e pode ser executado em servidores de frontend sem alterar os requisitos do servidor.
-
Análise estatística das solicitações processadas no módulo de pós-análise que consome muita memória.
Os esquemas abaixo representam a interação do módulo em dois cenários: quando instalado no mesmo servidor e em servidores diferentes.
Métodos de instalação¶
Você pode instalar o módulo de pós-análise em um servidor separado de duas maneiras diferentes:
-
Usando o instalador all-in-one (disponível a partir do nó Wallarm 4.6) - automatiza muitas atividades e facilita muito a implantação do módulo de pós-análise. Portanto, este é um método de instalação recomendado.
-
Manualmente - use para versões de nó mais antigas.
Ao instalar o módulo de filtragem e pós-análise separadamente, você pode combinar as abordagens manual e automática: instale a parte de pós-análise manualmente e depois a parte de filtragem com o instalador all-in-one, e vice-versa: a parte de pós-análise com o instalador all-in-one e então a parte de filtragem manualmente.
Instalação automática all-in-one¶
A partir do nó Wallarm 4.6, para instalar a pós-análise separadamente, recomenda-se usar a instalação all-in-one, que automatiza muitas atividades e facilita muito a implantação do módulo de pós-análise.
Requisitos¶
-
Acesso à conta com a função de Administrador e autenticação de dois fatores desativada no Console Wallarm para a Nuvem dos EUA ou Nuvem da UE
-
Execução de todos os comandos como superusuário (por exemplo,
root
) -
Acesso a
https://meganode.wallarm.com
para baixar o instalador all-in-one da Wallarm. Certifique-se de que o acesso não está bloqueado por um firewall -
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. Se o acesso pode ser configurado apenas via servidor proxy, então use as instruções -
Editor de texto instalado vim, nano, ou qualquer outro. Nos comandos neste artigo, vim é usado
Passo 1: Baixe o instalador Wallarm all-in-one¶
Para baixar o script de instalação all-in-one da Wallarm, execute o comando:
Passo 2: Prepare o token Wallarm¶
Para instalar o nó, você precisará de um token Wallarm do tipo apropriado. Para preparar um token:
Passo 3: Execute o instalador Wallarm all-in-one para instalar a pós-análise¶
Para instalar a pós-análise separadamente com o instalador all-in-one, use:
# Se estiver usando a versão x86_64:
sudo env WALLARM_LABELS='group=<GROUP>' sh wallarm-4.8.0.x86_64-glibc.sh postanalytics
# Se estiver usando a versão ARM64:
sudo env WALLARM_LABELS='group=<GROUP>' sh wallarm-4.8.0.aarch64-glibc.sh postanalytics
A variável WALLARM_LABELS
define o grupo em que o nó será adicionado (usado para agrupamento lógico de nós na UI do Console Wallarm).
Passo 4: Instale o módulo NGINX-Wallarm em um servidor separado¶
Uma vez que o módulo de pós-análise esteja instalado no servidor separado:
-
Instale o módulo NGINX-Wallarm em um servidor diferente:
# 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 UI do Console Wallarm). -
Realize as etapas pós-instalação, como habilitar a análise do tráfego, reiniciar o NGINX, configurar o envio de tráfego para a instância Wallarm, testar e ajustar, conforme descrito aqui.
Passo 5: Conecte o módulo NGINX-Wallarm ao módulo de pós-análise¶
Na máquina com o módulo NGINX-Wallarm, no arquivo de configuração do NGINX, especifique o endereço do servidor do módulo de pós-análise:
upstream wallarm_tarantool {
server <ip1>:3313 max_fails=0 fail_timeout=0 max_conns=1;
server <ip2>:3313 max_fails=0 fail_timeout=0 max_conns=1;
keepalive 2;
}
# omitido
wallarm_tarantool_upstream wallarm_tarantool;
-
O valor
max_conns
deve ser especificado para cada um dos servidores upstream Tarantool para impedir a criação de conexões excessivas. -
O valor
keepalive
não deve ser menor do que o número de servidores Tarantool. -
A string
# wallarm_tarantool_upstream wallarm_tarantool;
está comentada por padrão - por favor, exclua#
.
Após a alteração do arquivo de configuração, reinicie NGINX/NGINX Plus no servidor do módulo NGINX-Wallarm:
Passo 6: Verifique a interação dos módulos NGINX‑Wallarm e pós-análise separados¶
Para verificar a interação dos módulos NGINX‑Wallarm e pós-análise separados, você pode enviar a solicitação com um ataque de teste para o endereço do aplicativo protegido:
Se os módulos NGINX‑Wallarm e pós-análise separados estiverem configurados corretamente, o ataque será enviado para a nuvem Wallarm e exibido na seção Eventos do Console Wallarm:
Se o ataque não foi enviado para a Nuvem, por favor, verifique se não há erros na operação dos serviços:
-
Certifique-se de que o serviço de pós-análise
wallarm-tarantool
está com statusactive
. -
Analise os registros do módulo de pós-análise
Se houver um registro como
SystemError binary: failed to bind: Cannot assign requested address
, certifique-se de que o servidor aceita a conexão no endereço e porta especificados. -
No servidor com o módulo NGINX‑Wallarm, analise os registros do NGINX:
Se houver um registro como
[error] wallarm: <address> connect() failed
, certifique-se de que o endereço do módulo de pós-análise separado está especificado corretamente nos arquivos de configuração do módulo NGINX‑Wallarm e de que o servidor de pós-análise separado aceita a conexão no endereço e porta especificados. -
No servidor com o módulo NGINX‑Wallarm, obtenha as estatísticas sobre as solicitações processadas usando o comando abaixo e certifique-se de que o valor de
tnt_errors
é 0.Descrição de todos os parâmetros retornados pelo serviço de estatísticas →
Instalação manual¶
Requisitos¶
-
Acesso à conta com a função Administrador e autenticação em duas etapas desativada na Console Wallarm para o US Cloud ou EU Cloud
-
SELinux desativado ou configurado de acordo com as instruções
-
Execução de todos os comandos como superusuário (por exemplo,
root
) -
Acesso a
https://repo.wallarm.com
para baixar pacotes. Certifique-se de que o acesso não está bloqueado por um firewall -
Acesso a
https://us1.api.wallarm.com
se estiver trabalhando com o Wallarm Cloud dos EUA ou ahttps://api.wallarm.com
se estiver trabalhando com o Wallarm Cloud da UE. Se o acesso só pode ser configurado via servidor proxy, então use as instruções - Editor de texto instalado vim, nano ou qualquer outro. Nos comandos neste artigo, é usado o vim
Passo 1: Adicione repositórios Wallarm¶
O módulo de pós-análise, como os outros módulos Wallarm, é instalado e atualizado a partir dos repositórios Wallarm. Para adicionar repositórios, use os comandos para sua plataforma:
sudo apt -y install dirmngr
curl -fSsL https://repo.wallarm.com/wallarm.gpg | sudo gpg --no-default-keyring --keyring gnupg-ring:/etc/apt/trusted.gpg.d/wallarm.gpg --import
sudo chmod 644 /etc/apt/trusted.gpg.d/wallarm.gpg
sh -c "echo 'deb https://repo.wallarm.com/debian/wallarm-node bullseye/4.8/' | sudo tee /etc/apt/sources.list.d/wallarm.list"
sudo apt update
Passo 2: Instale pacotes para o módulo de pós-análise¶
Instale o pacote wallarm-node-tarantool
do repositório Wallarm para o módulo de pós-análise e o banco de dados Tarantool:
Passo 3: Conecte o módulo de pós-análise à Cloud Wallarm¶
O módulo de pós-análise interage com a Cloud Wallarm. É necessário criar o nó Wallarm para o módulo de pós-análise e conectar esse nó à Cloud. Ao conectar, você pode definir o nome do nó de pós-análise, sob o qual ele será exibido na UI do Console Wallarm e colocar o nó no grupo de nós apropriado (usado para organizar logicamente os nós na UI). É recomendado usar o mesmo grupo de nós para o nó que processa o tráfego inicial e o nó que realiza a pós-análise.
Para fornecer acesso ao nó, você precisa gerar um token no lado da Cloud e especificá-lo na máquina com os pacotes do nó.
Para conectar o nó de filtragem de pós-análise à Cloud:
-
Obtenha o token Wallarm do tipo apropriado:
-
Execute o script
register-node
em uma máquina onde você instala o nó de filtragem:sudo /usr/share/wallarm-common/register-node -t <TOKEN> --labels 'group=<GROUP>' -H us1.api.wallarm.com --no-sync --no-sync-acl
<TOKEN>
é o valor copiado do token API com o papelDeploy
.- O parâmetro
--labels 'group=<GROUP>'
coloca seu nó no grupo de nós<GROUP>
(existente, ou, se não existir, será criado).
- Use
-H us1.api.wallarm.com
para instalar na Cloud US, remova esta opção para instalar na Cloud EU. - Você pode adicionar o parâmetro
-n <HOST_NAME>
para definir um nome personalizado para sua instância do nó. O nome final da instância será:HOST_NAME_NodeUUID
.
Passo 4: Atualize a configuração do módulo de pós-análise¶
Os arquivos de configuração do módulo de pós-análise estão localizados nos caminhos:
-
/etc/default/wallarm-tarantool
para sistemas operacionais Debian e Ubuntu -
/etc/sysconfig/wallarm-tarantool
para sistemas operacionais CentOS e Amazon Linux 2.0.2021x e inferiores
Para abrir o arquivo no modo de edição, use o comando:
Memória¶
O módulo de pós-análise usa o armazenamento em memória Tarantool. Para ambientes de produção, é recomendável ter uma quantidade maior de memória. Se estiver testando o nó Wallarm ou se tiver um tamanho de servidor pequeno, a quantidade menor pode ser suficiente.
O tamanho da memória alocada é definido em GB pela diretiva SLAB_ALLOC_ARENA
no arquivo de configuração /etc/default/wallarm-tarantool
ou /etc/sysconfig/wallarm-tarantool
. O valor pode ser um número inteiro ou um float (um ponto .
é um separador decimal).
Recomendações detalhadas sobre a alocação de memória para Tarantool são descritas nestas instruções.
Endereço do servidor de pós-análise separado¶
Para definir o endereço do servidor de pós-análise separado:
-
Abra o arquivo Tarantool no modo de edição:
-
Descomente as variáveis
HOST
ePORT
e defina os seguintes valores: -
Se o arquivo de configuração do Tarantool estiver configurado para aceitar conexões em endereços IP diferentes de
0.0.0.0
ou127.0.0.1
, forneça os endereços em/etc/wallarm/node.yaml
:
Passo 5: Reinicie os serviços Wallarm¶
Para aplicar as configurações ao módulo de pós-análise:
Passo 6: Instale o módulo NGINX-Wallarm em um servidor separado¶
Uma vez que o módulo de pós-análise esteja instalado no servidor separado, instale os outros módulos Wallarm em um servidor diferente. Abaixo estão os links para as instruções correspondentes e os nomes dos pacotes a serem especificados para a instalação do módulo NGINX-Wallarm:
-
Na etapa de instalação do pacote, especifique
wallarm-node-nginx
enginx-module-wallarm
. -
Na etapa de instalação do pacote, especifique
wallarm-node-nginx
enginx-plus-module-wallarm
. -
NGINX fornecido pela distribuição
Na etapa de instalação do pacote, especifique
wallarm-node-nginx
elibnginx-mod-http-wallarm/nginx-mod-http-wallarm
.
A versão do pacote wallarm-node-tarantool
O pacote wallarm-node-tarantool
deve ser da mesma versão ou superior aos pacotes do módulo principal NGINX-Wallarm instalados em um servidor separado.
Para verificar as versões:
Passo 7: Conecte o módulo NGINX-Wallarm ao módulo de pós-análise¶
Na máquina com o módulo NGINX-Wallarm, no arquivo de configuração do NGINX, especifique o endereço do servidor do módulo de pós-análise:
upstream wallarm_tarantool {
server <ip1>:3313 max_fails=0 fail_timeout=0 max_conns=1;
server <ip2>:3313 max_fails=0 fail_timeout=0 max_conns=1;
keepalive 2;
}
# omitido
wallarm_tarantool_upstream wallarm_tarantool;
-
O valor
max_conns
deve ser especificado para cada um dos servidores upstream Tarantool para impedir a criação de conexões excessivas. -
O valor
keepalive
não deve ser menor do que o número de servidores Tarantool. -
A string
# wallarm_tarantool_upstream wallarm_tarantool;
está comentada por padrão - por favor, exclua#
.
Após a alteração do arquivo de configuração, reinicie NGINX/NGINX Plus no servidor do módulo NGINX-Wallarm:
Passo 8: Verifique a interação dos módulos NGINX‑Wallarm e pós-análise separados¶
Para verificar a interação dos módulos NGINX‑Wallarm e pós-análise separados, você pode enviar a solicitação com um ataque de teste para o endereço do aplicativo protegido:
Se os módulos NGINX‑Wallarm e pós-análise separados estiverem configurados corretamente, o ataque será enviado para a nuvem Wallarm e exibido na seção Eventos do Console Wallarm:
Se o ataque não foi enviado para a Nuvem, por favor, verifique se não há erros na operação dos serviços:
-
Certifique-se de que o serviço de pós-análise
wallarm-tarantool
está com statusactive
. -
Analise os registros do módulo de pós-análise
Se houver um registro como
SystemError binary: failed to bind: Cannot assign requested address
, certifique-se de que o servidor aceita a conexão no endereço e porta especificados. -
No servidor com o módulo NGINX‑Wallarm, analise os registros do NGINX:
Se houver um registro como
[error] wallarm: <address> connect() failed
, certifique-se de que o endereço do módulo de pós-análise separado está especificado corretamente nos arquivos de configuração do módulo NGINX‑Wallarm e de que o servidor de pós-análise separado aceita a conexão no endereço e porta especificados. -
No servidor com o módulo NGINX‑Wallarm, obtenha as estatísticas sobre as solicitações processadas usando o comando abaixo e certifique-se de que o valor de
tnt_errors
é 0.Descrição de todos os parâmetros retornados pelo serviço de estatísticas →
Proteção do módulo de pós-análise¶
Proteja o módulo de pós-análise instalado
Recomendamos fortemente proteger um módulo de pós-análise Wallarm recém-instalado com um firewall. Caso contrário, existe o risco de obter acesso não autorizado ao serviço que pode resultar em:
- Divulgação de informações sobre solicitações processadas
- Possibilidade de executar código Lua arbitrário e comandos do sistema operacional
Observe que esse risco não existe se você estiver implantando o módulo de pós-análise junto com o módulo NGINX-Wallarm no mesmo servidor. Isso acontece porque o módulo de pós-análise vai escutar a porta 3313
.
Aqui estão as configurações do firewall que devem ser aplicadas ao módulo de pós-análise instalado separadamente:
- Permita o tráfego HTTPS de e para os servidores API Wallarm, para que o módulo de pós-análise possa interagir com esses servidores:
us1.api.wallarm.com
é o servidor API na Nuvem Wallarm USapi.wallarm.com
é o servidor API na Nuvem Wallarm EU
- Restrinja o acesso à porta
3313
Tarantool via protocolos TCP e UDP, permitindo conexões apenas dos endereços IP dos nós de filtragem Wallarm.