OSI:Netmon/Instalace Graylog
Z HelpDesk
Instalace
- je jednoduchý proces https://docs.graylog.org/en/latest/pages/installation/os/debian.html
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 (v tomhle případě seznam jmen co se zkouší přihlašovat a kam):
--- [Backlog] ------------------------------------ Last messages accounting for this alert: ${foreach backlog message} ${message.fields.NAC_PTR}(${message.fields.NAC}) "${message.fields.user}" -> ${message.fields.NAS_PTR}(${message.fields.NAS}) ${end}
Informace k Inputům
- V System -> Inputs se definují inputy. Všude používáme typ "Syslog UDP". Ke každému inputu se přidává statická položka (static field) input:nazev kvůli pozdějšímu zpracování příslušným streamem. Inputy mají extraktory, které zavisejí na pořadí (Manage extractors -> Sort extractors). Vytvářením extractorů lze nastavovat pomocné položky, které ale nejsou potřeba v konečném vyhledávání a zpracovávání - tyto položky můžeme skrýt v System -> Pipelines:
rule "tacacs hiding" when has_field("tac_meta") AND has_field("tac_msg") then remove_field("tac_meta"); remove_field("tac_msg"); end
- Aby Pipeliny fungovaly je třeba zajistit v System -> Configurations -> Message Processors Configuration -> Pipeline Processor (musí být poslední v pořadí)
Informace ke Streamům
Streamy propojují inputy ke zpracování a k ukládání. V našem případě jsou streamy mapovány 1:1 na inputy