# Instalacja i konfiguracja

### Wymagania wstępne

Aby pomyślnie przeprowadzić integrację z wykorzystaniem Netacea, upewnij się, że posiadasz:

1. Dostęp do odpowiednich kluczy API oraz punktów końcowych do przesyłania logów od Netacea.

### Kroki implementacji

1. W konsoli F5 przejdź do pozycji menu System > Resource Provisioning.

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

2\. Upewnij się, że opcja 'iRules Language Extensions (iRulesLX)' jest zaznaczona i ma przypisany odpowiedni poziom zasobów - należy wybrać 'Nominal'.

3\. W sekcji 'Local Traffic > iRules' powinny być widoczne pozycje menu specyficzne dla LX.

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

#### Przesyłanie przestrzeni roboczej <a href="#upload-workspace" id="upload-workspace"></a>

1. Przejdź do iRules > LX Workspaces
2. Kliknij przycisk 'Import'.

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

3\. Wskaż import na przestrzeń roboczą dostarczoną przez Netacea i nazwij ją 'Netacea'.

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

#### Instalacja modułu f5-nodejs <a href="#installing-f5-nodejs-module" id="installing-f5-nodejs-module"></a>

{% hint style="info" %}
**Uwaga:** Podczas łączenia się przez SSH możesz trafić do `tmos` zamiast do bash. Możesz to rozpoznać po wierszu poleceń, jeśli zawiera słowo `tmos` np.

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

Aby uzyskać dostęp do poniższej lokalizacji pliku, musisz przełączyć się na bash za pomocą następującego polecenia:

`run /util bash`
{% endhint %}

Biblioteka nodejs dla iRules LX NIE jest opublikowana w NPM ([https://www.npmjs.com](https://www.npmjs.com/)) i znajduje się wyłącznie w systemie F5 BIG-IP. Więcej informacji można znaleźć na stronie f5 [tutaj](https://support.f5.com/csp/article/K16221101), a także w NPM (<https://www.npmjs.com/package/f5-nodejs>).

Z tego powodu wymaganych jest kilka krótkich kroków, aby upewnić się, że przestrzeń robocza działa zgodnie z oczekiwaniami.

* Połącz się z węzłem F5 przez SSH za pomocą terminala
* Przejdź do katalogu, w którym znajduje się Twoja przestrzeń robocza, np. `/var/ilx/workspaces/Common/your_module_name_here/extensions/netacea`
* Gdy znajdziesz się wewnątrz modułu Netacea, utwórz katalog o nazwie `node_modules` np. `mkdir node_modules`
* Przejdź do nowo utworzonego katalogu `node_modules` i rozpakuj pliki f5-nodejs, uruchamiając polecenie `tar -xvzf /usr/share/packages/nodejs/f5-nodejs-6.tgz`

Spowoduje to zainstalowanie modułu f5-nodejs w wybranym folderze `node_module`, co można zobaczyć w konsoli F5.

#### Dodawanie kluczy API <a href="#adding-api-keys" id="adding-api-keys"></a>

1. W widoku LX Workspaces - kliknij na nazwaną przestrzeń roboczą, np. 'Netacea'
2. Znajdź plik config.json i dodaj apiKey oraz secretKey dla przestrzeni roboczej, a następnie kliknij 'Save File' poniżej
3. Kliknij przycisk 'Reload from Workspace...', który zaktualizuje pliki w przestrzeni roboczej.

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

4\. Upewnij się, że po tej operacji nie ma podświetlonych na pomarańczowo 'workspace files'. Takie podświetlenie oznacza, że zostały zmienione od ostatniego przeładowania wtyczki.

Klucze API są zawsze dodawane i zapisywane przed przejściem do 'Activate Plugin' - w przeciwnym razie uruchomienie się nie powiedzie.

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

W pliku NetaceaConfig.json powinno znajdować się 5 pól. Przykład można znaleźć poniżej:

{% 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 %}

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

1. W widoku LX workspaces - kliknij zakładkę 'LX Plugins', a następnie przycisk 'Create'

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

2\. Nazwij wtyczkę 'Netacea' i wybierz właśnie zaimportowaną przestrzeń roboczą.

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

#### Włączanie iRules <a href="#enabling-irules" id="enabling-irules"></a>

{% hint style="info" %}
Warto zauważyć, że worker F5 może wykonywać 'INGEST' z reguły iRule mitigate. Włączenie netacea\_mitigate oznacza, że nie trzeba mieć włączonego netacea\_ingest, ponieważ reguła iRule mitigate również obsługuje Ingest. Oznacza to, że użytkownik musi jedynie zaktualizować "mitigationType" znajdujące się w NetaceaConfig.json, aby przełączać się między trybem ingest a mitigate bez zmiany samej reguły iRule.
{% endhint %}

1. W widoku odpowiedniego serwera wirtualnego wybierz zakładkę 'Resources', a następnie 'manage' w sekcji przypisania iRule.

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

2\. Znajdź dwie reguły iRules Netacea na liście 'Available', przenieś odpowiednią regułę iRule do pola 'Enabled' i ustaw żądany priorytet. Zalecamy najwyższy priorytet, przy którym nie wystąpi konflikt.

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

**netacea\_ingest** - ta reguła będzie tylko wysyłać dane żądań do Netacea w celu analizy i nie będzie podejmować żadnych działań na żywych żądaniach.

**netacea\_mitigate** - ta reguła będzie wysyłać dane żądań do Netacea i automatycznie mitygować zidentyfikowane zagrożenia zgodnie z Twoją konfiguracją.

### Przydatne linki <a href="#useful-links" id="useful-links"></a>

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

Przegląd iRules LX - <https://clouddocs.f5.com/api/irules-lx/>

Dokumentacja API iRules LX - <https://clouddocs.f5.com/api/irules-lx/APIReference.html>

Przewodnik po iRulesLX Streaming tutaj: <https://readthedocs.org/projects/f5-agility-labs-irules/downloads/pdf/latest/>
