# Instalação e Configuração

### Pré-requisitos

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

1. Acesso às chaves de API relevantes e endpoints de envio de logs da Netacea.

### Etapas de Implementação

1. No console do F5, acesse o item de menu System > Resource Provisioning.

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

2\. Certifique-se de que 'iRules Language Extensions (iRulesLX)' está marcado e possui provisionamento adequado atribuído - 'Nominal' deve ser escolhido.

3\. Em 'Local Traffic > iRules', os itens de menu específicos do LX devem estar presentes.

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

#### Fazer upload do workspace <a href="#upload-workspace" id="upload-workspace"></a>

1. Acesse iRules > LX Workspaces
2. Clique no botão 'Import'.

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

3\. Aponte a importação para o workspace fornecido pela Netacea e nomeie o workspace como 'Netacea'.

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

#### Instalando o módulo f5-nodejs <a href="#installing-f5-nodejs-module" id="installing-f5-nodejs-module"></a>

{% hint style="info" %}
**Nota:** Ao conectar via SSH, você pode acabar no `tmos` em vez do bash. Você pode identificar isso na linha de comando se ela contiver a palavra `tmos`, por exemplo:

`username@(ip-172-31-10-207)(cfg-sync Standalone)(Active)(/Common)(tmos)#`

Para acessar o local do arquivo abaixo, você precisará mudar para bash usando o seguinte comando:

`run /util bash`
{% endhint %}

A biblioteca nodejs para iRules LX NÃO está publicada no NPM ([https://www.npmjs.com](https://www.npmjs.com/)) e reside apenas no sistema F5 BIG-IP. Você pode encontrar mais informações no site do F5 [aqui](https://support.f5.com/csp/article/K16221101), bem como no NPM (<https://www.npmjs.com/package/f5-nodejs>).

Devido a esse fato, algumas etapas curtas são necessárias para garantir que o workspace funcione conforme esperado.

* Conecte-se via SSH ao seu nó F5 através de um terminal
* Navegue até o diretório onde seu workspace está localizado, por exemplo: `/var/ilx/workspaces/Common/your_module_name_here/extensions/netacea`
* Uma vez dentro do módulo Netacea, crie um diretório chamado `node_modules`, por exemplo: `mkdir node_modules`
* Navegue até o diretório `node_modules` recém-criado e descompacte os arquivos f5-nodejs executando o comando `tar -xvzf /usr/share/packages/nodejs/f5-nodejs-6.tgz`

Isso instalará o módulo f5-nodejs na pasta `node_module` desejada e pode ser visualizado no console do F5.

#### Adicionando Chaves de API <a href="#adding-api-keys" id="adding-api-keys"></a>

1. Na visualização LX Workspaces - clique no workspace nomeado, por exemplo: 'Netacea'
2. Localize o arquivo config.json e inclua a apiKey e secretKey para o workspace e clique em 'Save File' abaixo
3. Clique no botão 'Reload from Workspace...' que então atualizará os arquivos dentro do workspace.

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

4\. Certifique-se de que não há 'workspace files' destacados em laranja posteriormente. Isso indica que eles foram alterados desde o último recarregamento do plugin.

As chaves de API são sempre adicionadas e salvas antes de prosseguir para 'Activate Plugin' - caso contrário, falhará ao iniciar.

#### Adicionando seu NetaceaConfig.json <a href="#adding-your-netaceaconfig.json" id="adding-your-netaceaconfig.json"></a>

Existem 5 campos que devem estar localizados no arquivo NetaceaConfig.json. Um exemplo pode ser encontrado abaixo:

{% code overflow="wrap" %}

```
{ 
"apiKey": "API_KEY", 
"secretKey": "SECRET_KEY",
"mitigationType": "MITIGATION_TYPE", // Either "INGEST" or "MITIGATE"
"ingestType": "KINESIS",
"mitigationServiceUrl": "MITIGATE SERVICE URL",
  "kinesis": {
  "kinesisStreamName": "KINESIS_STREAM_NAME",
    "kinesisAccessKey": "KINESIS_ACCESS_KEY",
    "kinesisSecretKey": "KINESIS_SECRET_KEY",
    "logBatchSize": 100,
    "maxLogAgeSeconds": 3
  }
}
```

{% endcode %}

#### Ativar plugin <a href="#activate-plugin" id="activate-plugin"></a>

1. Na visualização LX workspaces - clique na aba 'LX Plugins' e depois no botão 'Create'

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

2\. Nomeie o plugin como 'Netacea' e escolha o workspace que acabamos de importar.

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

#### Habilitando iRules <a href="#enabling-irules" id="enabling-irules"></a>

{% hint style="info" %}
Vale ressaltar que o worker do F5 pode realizar 'INGEST' a partir da iRule mitigate. Habilitar netacea\_mitigate significa que você não precisa ter netacea\_ingest habilitado, pois a iRule mitigate também gerenciará o Ingest. Isso significa que o usuário só precisa atualizar o "mitigationType" localizado no NetaceaConfig.json para alternar entre ingest e mitigate sem alterar a iRule em si.
{% endhint %}

1. Na visualização do servidor virtual relevante, escolha a aba 'Resources' e depois 'manage' para alocação de iRule.

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

2\. Encontre as duas iRules da Netacea na lista 'Available', mova a iRule relevante para a caixa 'Enabled' e defina a prioridade desejada. Recomendamos a prioridade mais alta onde não haja conflito.

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

**netacea\_ingest** - isso apenas enviará dados de requisição para a Netacea para análise e não tomará nenhuma ação em requisições ao vivo.

**netacea\_mitigate** - isso enviará dados de requisição para a Netacea e mitigará automaticamente as ameaças identificadas de acordo com sua configuração.

### Links úteis <a href="#useful-links" id="useful-links"></a>

F5 Datasheet - <https://www.f5.com/pdf/products/big-ip-local-traffic-manager-ds.pdf>

Visão geral do iRules LX - <https://clouddocs.f5.com/api/irules-lx/>

Documentação da API iRules LX - <https://clouddocs.f5.com/api/irules-lx/APIReference.html>

Guia de Streaming do iRulesLX aqui: <https://readthedocs.org/projects/f5-agility-labs-irules/downloads/pdf/latest/>
