# Instalação e Configuração

### Pré-requisitos

Para integrar com sucesso usando o Netacea, certifique-se de que você tenha:

1. Uma versão do Fastly 1.2.131+ ou superior.
2. Acesso às chaves de API e endpoints de envio de logs relevantes no [portal Netaeca](https://docs.netacea.com/br/informacoes-do-plugin-netacea/accessing-your-integration-settings).
3. [Monitoramento ](https://docs.netacea.com/br/informacoes-do-plugin-netacea/fastly/monitoring-configuration)tenha sido configurado.

Os clientes também precisarão abrir um ticket de suporte com a Fastly para habilitar o POST em seu ambiente. Precisamos garantir que existam 2 pragmas habilitados em sua conta Fastly que não estão habilitados por padrão.

Pragmas Necessários:

```
Pragma optional_param fix_unsent_body_drain true;
Pragma optional_param no_body_if_bereq_is_get_or_head true;
```

Para habilitar os Pragmas, abra um ticket de suporte com o [Suporte Fastly](https://support.fastly.com).

### Etapas de Implementação

* Faça login na interface web do Fastly.
* Na página inicial, selecione o serviço apropriado. Você pode usar a caixa de pesquisa para buscar por ID, nome ou domínio.
* Clique no botão Edit configuration e depois selecione a opção para clonar a versão ativa. A página Domains aparecerá.

Todas as alterações de configuração abaixo serão feitas na versão recém-clonada.

{% hint style="info" %}
Anote a versão atualmente ativa caso precise fazer rollback no futuro.
{% endhint %}

### Host

Para permitir que o VCL do Netacea faça chamadas à API do Protector, 2 novos hosts devem ser configurados com os detalhes do Netacea, para serem chamados nos [snippets VCL](#vcl-snippets).

* Clique no link Origins. A página Origins aparecerá.
* Clique no botão "Create a Host". O campo Host aparecerá.

Preencha um novo host com a seguinte URL e clique em "Add":

```
mitigations-lbr.netacea.net
```

<figure><img src="https://3103183613-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJ0VONni9fqVKgqwRyueW%2Fuploads%2Fgit-blob-b7c4ea80005bb4ee1bea3868966b361aab551e4a%2FMitSvc2.PNG?alt=media" alt=""><figcaption></figcaption></figure>

Edite o novo host clicando no ícone de lápis e altere o nome para:

```
MitSvc
```

<figure><img src="https://3103183613-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJ0VONni9fqVKgqwRyueW%2Fuploads%2Fgit-blob-ebf7b118465ac7bef8c82bb7bbd51f4b245fdcf3%2FMitSvc.PNG?alt=media" alt=""><figcaption></figcaption></figure>

No campo Override host, insira a mesma URL do host original.

<figure><img src="https://3103183613-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJ0VONni9fqVKgqwRyueW%2Fuploads%2Fgit-blob-7275cea7605b5ffa73dd1f752c9b97abd22a6928%2FScreenshot%202025-04-02%20161507.png?alt=media" alt=""><figcaption></figcaption></figure>

Repita o processo, preencha o novo host com a seguinte URL e clique em "Add":

```
assets.ntcacdn.net
```

Edite o novo host clicando no ícone de lápis e altere o nome para:

```
CaptchaAssets
```

<figure><img src="https://3103183613-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJ0VONni9fqVKgqwRyueW%2Fuploads%2Fgit-blob-49a8907b485611ce27805cb9722cd40221b0e63b%2Fimage%20(72).png?alt=media" alt=""><figcaption></figcaption></figure>

### Snippets VCL

Para que o Netacea seja acionado e ofereça proteção, a solução precisa ser adicionada ao ambiente Fastly na forma de um VCL personalizado.

O VCL do Netacea é dividido em 7 snippets principais: INIT, DELIVER, RECV, ERROR, RECV\_CONFIGURE, PASS e MISS. Cada um precisa ser adicionado à configuração de VCL Snippets dentro do Fastly.

{% hint style="info" %}
O Netacea fornecerá o VCL separadamente.
{% endhint %}

**INIT:**

* Navegue até VCL snippets dentro do Fastly.
* Clique no botão "Create snippet".
* Dê ao snippet um nome adequado, como Netacea\_INIT
* Defina o tipo como "init"

<figure><img src="https://3103183613-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJ0VONni9fqVKgqwRyueW%2Fuploads%2Fgit-blob-1ea5a795993c72beb810dc8aa93f9b8ae91b663f%2Fimage%20(1)%20(2)%20(1).png?alt=media" alt=""><figcaption></figcaption></figure>

* Cole o código INIT no VCL
* Nas linhas 4 - 24, você encontrará campos definidos exclusivos para cada implantação, defina integration\_type para o modo adequado.

<figure><img src="https://3103183613-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJ0VONni9fqVKgqwRyueW%2Fuploads%2Fgit-blob-5b28e67307423fa52a04b5e02bdfdf56d56508e7%2Fimage%20(74).png?alt=media" alt=""><figcaption></figcaption></figure>

**Campos Obrigatórios**

<table data-full-width="true"><thead><tr><th width="338">Campo</th><th>Valor</th></tr></thead><tbody><tr><td>integration_type</td><td>fastly</td></tr><tr><td>integration_version</td><td>&#x3C;Versão da Integração></td></tr><tr><td>integration_mode</td><td><p>BYPASS - Desabilita a integração Netacea completamente</p><p>INGEST - Modo passivo para permitir que o Netacea colete e analise o tráfego</p><p>MITIGATE - Modo ativo que realizará mitigação baseada no Intent Analytics® do Netaeca</p><p>INJECT - Modo ativo para clientes que desejam receber análises do Netacea em seu backend e decidir as ações a tomar.</p></td></tr><tr><td>api_key</td><td>Fornecido pelo <a href="../accessing-your-integration-settings">portal Netaeca</a></td></tr><tr><td>secret_key</td><td>Fornecido pelo <a href="../accessing-your-integration-settings">portal Netaeca</a></td></tr><tr><td>encryption_key</td><td>Fornecido pelo <a href="../accessing-your-integration-settings">portal Netaeca</a></td></tr><tr><td>cookie_name</td><td><p>Um nome adequado para seu cookie de mitigação.</p><p><strong>Para maior segurança, não inclua Netacea ou Mitigation neste nome.</strong></p></td></tr><tr><td>captcha_cookie_name</td><td><p>Um nome adequado para seu cookie de rastreamento de Captcha.</p><p><strong>Para maior segurança, não inclua Netacea ou Mitigation neste nome.</strong></p></td></tr><tr><td>ignore_list</td><td>Lista separada por vírgulas de subdiretórios onde a mitigação não deve ser aplicada. Você pode configurar até 5 subdiretórios aqui. Todos os recursos sob tal diretório serão ignorados pela integração.<br>Adicione <code>/media/,/static/</code> por padrão para garantir cobertura total da integração sem acionar em conteúdo de mídia.</td></tr></tbody></table>

**Campos Opcionais - Podem ser deixados em branco, a menos que discutido com a equipe Netacea**

<table data-full-width="true"><thead><tr><th width="330">Campo</th><th>Valor</th></tr></thead><tbody><tr><td>real_ip_header_name</td><td><p>Permite que os usuários personalizem qual cabeçalho é usado para o IP da requisição.</p><p>Deixe <strong>em branco por</strong> padrão para usar o campo padrão do Fastly <code>client.IP</code>.</p></td></tr><tr><td>use_relative_path_captcha_assets</td><td>Se definido como <code>true</code>, garante que o Captcha seja servido sem referências ao CDN do Netacea. Caso contrário, incorporará a URL completa do CDN do Netacea no HTML do Captcha.<br>Deixe <strong>em branco por</strong> padrão para usar HTML em todo o site.</td></tr><tr><td>captcha_path</td><td>Permite que os usuários criem um endpoint que sempre serve o HTML do Captcha. Útil ao implementar desafio de captcha para aplicativos móveis.<br>Deixe <strong>em branco por</strong> padrão para usar o caminho /ATAverify.</td></tr><tr><td>captcha_header</td><td>Cabeçalho personalizado que indica se a resposta é uma página de Captcha. Deve estar no formato <code>name={{header name}}&#x26;value={{header value}}.</code></td></tr><tr><td>enable_captcha_content_negotiation</td><td>Gerencia o formato da página de Captcha. Quando definido como <code>true</code>, é possível que a integração retorne a página de Captcha em formato JSON.<br>Deixe <strong>em branco por</strong> padrão para usar HTML em todo o site.</td></tr></tbody></table>

<figure><img src="https://3103183613-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJ0VONni9fqVKgqwRyueW%2Fuploads%2Fgit-blob-525038b624bb0310dbd4fb6300b7e9aaa97de335%2Fimage%20(75).png?alt=media" alt=""><figcaption><p>Exemplo de configuração válida</p></figcaption></figure>

Em opções avançadas, defina a prioridade como 45.

<figure><img src="https://3103183613-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJ0VONni9fqVKgqwRyueW%2Fuploads%2Fgit-blob-12a5a2fad7d4b0e708596b3fff9f04279f7e7fbd%2Fimage%20(3)%20(1)%20(2)%20(1).png?alt=media" alt=""><figcaption></figcaption></figure>

**RECV**:

* Clique no botão "Create snippet"
* Dê ao snippet um nome adequado, como Netacea\_RECV
* Defina o tipo como "within subroutine" & "recv (vcl\_recv)"
* Cole o código RECV no VCL
* Defina a prioridade como 45

**DELIVER**

* Clique no botão "Create snippet"
* Dê ao snippet um nome adequado, como Netacea\_DELIVER
* Defina o tipo como "within subroutine" & "deliver (vcl\_deliver)"
* Cole o código DELIVER no VCL
* Defina a prioridade como 45

**ERROR:**

* Clique no botão "Create snippet"
* Dê ao snippet um nome adequado, como Netacea\_ERROR
* Defina o tipo como "within subroutine" & "error (vcl\_error)"
* Cole o código ERROR no VCL
* Defina a prioridade como 45

**RECV\_CONFIGURE:**

* Clique no botão "Create snippet"
* Dê ao snippet um nome adequado, como Netacea\_RECV\_CONFIGURE
* Defina o tipo como "within subroutine" & "recv (vcl\_recv)"
* Cole o código RECV\_CONFIGURE no VCL
* Defina a prioridade como 46

PASS:

* Clique no botão "Create snippet"
* Dê ao snippet um nome adequado, como Netacea\_PASS
* Defina o tipo como "within subroutine" & "pass (vcl\_pass)"
* Cole o código PASS no VCL
* Defina a prioridade como 45

MISS:

* Clique no botão "Create snippet"
*
