OSI:Netmon/Instalace Graylog

Z HelpDesk

Instalace

Repozitář s konfigurací

Nastavení

  • Zvýšení paměti pro Javu jak pro Graylog tak pro Elasticsearch na 5 GB (pro případ složitějších dotazů a plynulejší běh)
/etc/default/elasticsearch - ES_JAVA_OPTS="-Xms5g -Xmx5g"
/etc/default/graylog-server - GRAYLOG_SERVER_JAVA_OPTS="-Xms5g -Xmx5g ..."
  • Přidat možnost wildcard full-text vyhledávání *text* (pozor nepřidávat dotazy s těmito znaky do dashboardů - výkon)
/etc/graylog/server/server.conf - allow_leading_wildcard_searches = true

Správa uživatelů

  • Uživatelé nejsou automaticky generováni po přihlášení přes shibolet. Je třeba je nejdříve vytvořit - System -> Users and Teams. Username se nastavuje na orion jméno, dobré je vyplnit i email a time zoónu nastaviut na Europe/Prague pro správný čas logů. Heslo uživatelům je možné nastavit libovolně (ideálně nějaký hash), přes to se stejně neprovádí autentizace. Graylog má offline admina, kterému se generuje heslo při instalaci. Členové KPS mají normálně nastavenou roli Admin.

Přidání read-only uživatele

  • Stejný postup jako přidání nového uživatele, ale je mu nastavena pouze role Reader (výchozí nastavení). Tomuto uživateli se pak musí nasdílet potřebné streamy - Streams -> Share -> Viewer -> Add. Pak může tento uživatel používat Search funkcionalitu s konkrétním streamem. Pokud mu předvytvoříme dashboard, tak i ten je nutné uživateli nasdílet - Dashboards -> Share -> Viewer -> Add. Uvnitř dashboardů lze vytvářet záložky a může se tak manipulovat s více dashboardy najednou např. pro účely KPS a jiné pro bezpečáky.

Zálohování Graylog konfigurace

  • Samotná konfigurace se ukládá do MongoDB - ta samotná lze zálohovat a je pravidelně zálohovaná. Celá instance graylogu však lze "modulárně" zálohovat pomocí funkcionality Content packů. System -> Content Packs -> Create Content Packs vede na klikací výběr položek, které jsou exportovány jako JSON. Tyto konfigurace pak lze přenášet mezi různými Graylog instancemi např. přenést nastavení inpůtů, streamů, pipelineů a dashboardů pro TACACS. Content pack lze také průběžně verzovat uvnitř Graylogu a také se po větších změnách musí manuálně umístit do repozitáře netmon-conf.

Vytváření vlastních lookup tables

  • Graylog umožňuje přiřazovat k logům vlastní fields, které lze definovat při vstupu. Ve složce /etc/graylog/lookup_tables se nachází skriptama generované .csv soubory ve tvatu "klíč","hodnota","hodnota". Tento soubor se pak musí nechat Graylogem zpracovávat a načítat při změnách System -> Lookup Tables -> Data Adapters. Lookup tables nemusí být pouze záležitostí .csv souborů, ale používá se i DNS pro zpětný překlad PTR záznamů. Kvůli výkonu je potřeba nastavit Cache s dostatečnou velikostí. Pro DNS bylo nastavena velikost na 10 tisíc položek s expirací 30 minut - při nasazení se pak velikost pohybuje kolem 7500 položek s hit-ratem 93%.

Vytváření email alertů

  • Každý uživatel by měl mít vyplnění email. Vytvoření je pak v Alerts -> Evend Definitions -> Create Event Definition. Údaje pro událost, která notifikuje o špatném přihlašování:
Condition Type: Filter & Aggregation
Search Query: type: (AUTHC-FAILNOUSER OR AUTHCFAIL)
Streams (Optional): tacacs
Search within the last: 10 min
Execute search every: 1 min
Create Events for Definition if: Aggregation of results reaches a threshold
Condition: count(NAC) > 10 # lze stáhnout na jakoukoli položku v logu, jde nám pouze o počet logů co se pokouší o přihlášení
Grace Period: 10 min # omezí čas k zaslání další notifikace
Message Backlog: 100 # vloží do emailu obsah 100 logů
  • K definice události se musí zavěsit notifikace, která lze doplnit o výpis backlog zpráv:
--- [Backlog] ------------------------------------
Last messages accounting for this alert (v tomhle případě seznam jmen co se zkouší přihlašovat a kam):
${foreach backlog message}
${message.fields.NAC_PTR}(${message.fields.NAC}) "${message.fields.user}" -> ${message.fields.NAS_PTR}(${message.fields.NAS})
${end}