Pojďme si společně ukázat jak nainstalovat a nastavit OpenSource security platformu Wazuh, která integruje SIEM a XDR do jedinečného řešení.
Wazuh indexer
Přípravné práce
Začneme tím, že na cílovém serveru povolíme všechny porty potřebné pro chod Wazuh, a to jak ty, které se týkají syslog serveru nebo registrace a komunikace agentů, tak i port pro webové rozhraní.
Pomocí příkazů níže všechny tyto porty přidáme do vyjímek na firewallu:
firewall-cmd --permanent --add-port={514,443,1514,1515,1516,55000}/tcp
firewall-cmd --permanent --add-port={514,1514}/udp
firewall-cmd --reload
V tuto chvíli máme splněny základní požadavky pro chod Wazuh indexeru.
Stáhneme si tedy nástroj dodávaný přímo Wazuhem, který nám na serveru vygeneruje všechny potřebné certifikáty pro zabezpečenou šifrovanou komunikaci mezi všemi Wazuh komponenty.
curl -sO https://packages.wazuh.com/4.4/wazuh-certs-tool.sh
A následně také konfigurační soubor config.yml
, který nám bude sloužit jako předpis pro vytvoření jednotlivých certifikátů.
curl -sO https://packages.wazuh.com/4.4/config.yml
Certifikáty a nastavení
Tento konfigurační soubor si otevřete a potřebné hodnoty do něj vyplňte, dle požadavků vaší infrastruktury.
nano ./config.yml
Pro demonstrační účely používáme v naší ukázce instalaci tzv. all-in-one, tedy tak, že všechny komponenty Wazuh jsou nainstalovány na jednom serveru.
Obsah tohoto vzorového konfiguračního souboru je tedy na našem případě následující:
nodes:
indexer:
- name: wazuh-demo
ip: 192.168.91.15
server:
- name: wazuh-demo
ip: 192.168.91.15
dashboard:
- name: wazuh-demo
ip: 192.168.91.15
Soubor uložíme a spustíme stažený skript, který vygeneruje certifikáty dle tohoto konfiguračního souboru.
bash ./wazuh-certs-tool.sh -A
Vygenerované certifikáty se automaticky objeví ve složce wazuh-certificates
.
Tyto certifikáty budeme pro pokračování instalačního procesu pochopitelně potřebovat a tak je pro snadnou přenositelnost mezi případnými jednotlivými nody zkomprimujeme do archivu:
tar -cvf ./wazuh-certificates.tar -C ./wazuh-certificates/ .
V dalším kroku ověříme, že máme nainstalovaný balíček coreutils
a případně ho tedy i nainstalujeme.
yum install coreutils
Nyní naimportujeme RPM
klíč pro oficiální Wazuh repozitář:
rpm --import https://packages.wazuh.com/key/GPG-KEY-WAZUH
A manuálně vytvoříme soubor s údaji k tomuto repozitáři v cestě /etc/yum.repos.d/wazuh.repo
a uložíme ho s následujícím obsahem:
[wazuh]
name=EL-$releasever - Wazuh
baseurl=https://packages.wazuh.com/4.x/yum/
gpgkey=https://packages.wazuh.com/key/GPG-KEY-WAZUH
gpgcheck=1
enabled=1
protect=1
Instalace
Následně tedy můžeme překročit k instalaci balíčku samotné komponenty Wazuh indexer.
yum install wazuh-indexer
Po dokončení instalace balíčku wazuh-indexer si otevřeme implicitně dodaný konfigurační soubor /etc/wazuh-indexer/opensearch.yml
a vyplníme ho údaji o rozložení našich uzlů ve Wazuh clusteru.
Vzhledem k tomu, že v naší ukázce používáme typ instalace all-in-one, pak toto v nastavení zohledníme v následujících konfiguračních direktivách.
Ostatní nastavení můžeme ponechat ve výchozím stavu a soubor uložíme.
network.host: "192.168.91.15"
node.name: "wazuh-demo"
cluster.initial_master_nodes:
"wazuh-demo"
cluster.name: "wazuh-custer"
Nyní je potřeba nasadit na každý jeden node v clusteru (v našem případě máme pro ukázku pouze jeden) naše předem vygenerované certifikáty, a to následovně.
Vytvoříme si složku ve standardní cestě, kde budou certifikáty umístěny.
mkdir /etc/wazuh-indexer/certs
A do tohoto umístění rozbalíme potřebné certifikáty pod správnými názvy, a to z archivu, ve kterém se nacházejí.
tar -xf ./wazuh-certificates.tar -C /etc/wazuh-indexer/certs/ ./indexer.pem ./indexer-key.pem ./admin.pem ./admin-key.pem ./root-ca.pem
Certifikátům, i složce, ve které jsou certifikáty umístěny nastavíme správná vlastnictví a oprávnění.
chown -R wazuh-indexer:wazuh-indexer /etc/wazuh-indexer/certs
chmod 500 /etc/wazuh-indexer/certs
chmod 400 /etc/wazuh-indexer/certs/*
Pro potřeby inicalizace Wazuh clusteru s novými certifikáty musí systémová služba již běžet.
Nastavíme jí proto automatické spouštění po startu a zároveň ji rovnou i spustíme.
systemctl daemon-reload
systemctl enable wazuh-indexer --now
V dalším kroku spustíme dodaný skript, který nám cluster s novými certifikáty zinicializuje, tedy přidá základní konfigurační soubory a s těmi cluster spustí.
/usr/share/wazuh-indexer/bin/indexer-security-init.sh
V posledním kroku otestujeme funkčnost Indexeru. Nejprve, zda API indexeru korektně odpovídá:
curl -k -u admin:admin https://wazuh-demo.lab.initmax.cz:9200
Korektní výsledek s odpovědí API, která nám vrátí základní informace o clusteru vypadá v našem vzorovém scénáři následovně.
Následujícím příkazem si můžeme zobrazit například seznam jednotlivých uzlů v clusteru (v našem případě je pouze jeden):
curl -k -u admin:admin https://wazuh-demo.lab.initmax.cz:9200/_cat/nodes?v
Pokud Wazuh indexer API správně odpovídá, pak máme tuto komponentu prozatím hotovou a můžeme přikročit k instalaci Wazuh manageru.
Wazuh manager (server)
Jelikož repozitáře máme už přidané z předchozích kroků, tak pouze stáhneme a nainstalujeme příslušný instalační balíček:
yum -y install wazuh-manager
Nastartujeme systémovou službu a nastavíme jí automatické spouštění po startu.
systemctl daemon-reload
systemctl enable wazuh-manager --now
Ověříme si, že služba korektně běží.
systemctl status wazuh-manager
Wazuh manager zpracovává parsované logy na základě jednotlivých, námi nastavených pravidel a ty pak ukládá do souboru.
Z těchto souborů je vyzvedává filebeat
, který si nyní také nainstalujeme.
yum -y install filebeat
Následujícím příkazem si stáhneme základní konfiguraci pro filebeat
z oficiálního repozitáře Wazuh:
curl -so /etc/filebeat/filebeat.yml https://packages.wazuh.com/4.4/tpl/wazuh/filebeat/filebeat.yml
V tomto konfiguračním souboru v cestě /etc/filebeat/filebeat.yml
upravíme v sekci output.elasticsearch:
podsekci hosts:
tak, aby reflektovala IP adresu zdrojového Indexeru.
V našem případě tedy následovně:
output.elasticsearch:
hosts: ["192.168.91.15:9200"]
Následně pak vytvoříme keystore pro filebeat
:
filebeat keystore create
Do vytvořeného filebeat
keystore přidáme přihlašovací údaje pro uživatele admin
.
Pozor: Toto rozhodně není z bezpečnostního hlediska doporučovaný postup a slouží zde pouze pro demonstrační účely, protože zadávané heslo je viditelné v historii příkazů!
echo admin | filebeat keystore add username --stdin --force
echo admin | filebeat keystore add password --stdin --force
V dalším kroku si z oficiálního repozitáře Wazuh stáhneme základní šablonu pro filebeat
a nastavíme jí správná oprávnění.
Tato šablona slouží jako předpis, který filebeat
zašle Indexeru, a na základě kterých se následně data ukládají a označují tak, aby s nimi filebeat
mohl efektivně pracovat a Wazuh dále zpracovávat.
curl -so /etc/filebeat/wazuh-template.json https://raw.githubusercontent.com/wazuh/wazuh/4.4/extensions/elasticsearch/7.x/wazuh-template.json
chmod go+r /etc/filebeat/wazuh-template.json
Stáhneme a nainstalujeme Wazuh modul pro filebeat
:
curl -s https://packages.wazuh.com/4.x/filebeat/wazuh-filebeat-0.2.tar.gz | tar -xvz -C /usr/share/filebeat/module
Jako poslední krok konfigurace filebeat
pak opět nainstalujeme předpřipravené certifikáty do správných cest a se správnými oprávněními:
mkdir /etc/filebeat/certs
tar -xf ./wazuh-certificates.tar -C /etc/filebeat/certs/ ./filebeat.pem ./filebeat-key.pem ./root-ca.pem
chmod 500 /etc/filebeat/certs
chmod 400 /etc/filebeat/certs/*
chown -R root:root /etc/filebeat/certs
V tuto chvíli již můžeme službu spustit a nastavit jí i automatické spouštění po startu systému.
systemctl daemon-reload
systemctl enable filebeat --now
Po úspěšném spuštění služby filebeat
můžeme základní funkčnost otestovat následujícím příkazem:
filebeat test output
V případě, že je všechno v pořádku, pak korektní výstup tohoto příkazu vypadá v našem testovacím scénáři takto:
elasticsearch: https://192.168.91.15:9200...
parse url... OK
connection...
parse host... OK
dns lookup... OK
adresses: 192.168.91.15
dial up... OK
TLS...
security: server's certificate chain verification is enabled
handshake... OK
TLS version: TLSv1.3
dial up... OK
talk to server... OK
version: 7.10.2
Toto jsou veškeré kroky, pro úspěšnou instalaci a základní konfiguraci Wazuh manageru a nyní se můžeme zaměřit na instalaci Wazuh dashboardu.
Wazuh dashboard
Nejprve nainstalujeme potřebné knihovny.
yum install libcap
Vzhledem k naší vzorové instalaci „all-in-one“ máme repozitáře už přidané z předchozích kroků, takže už pouze stáhneme a nainstalujeme příslušný instalační balíček:
yum -y install wazuh-dashboard
Po dokončení instalace upravíme konfigurační soubor /etc/wazuh-dashboard/opensearch_dashboards.yml
tak, aby věděl o všech stranách clusteru.
V našem ukázkovém příkladu bude nutné změnit hodnoty těchto dvou konfiguračních direktiv, a to následovně:
server.host: 192.168.91.15
opensearch.hosts: https://192.168.91.15:9200
Po uložení konfiguračního souboru opět přistoupíme k instalaci předpřipravených certifikátů a nastavíme jim správná oprávnění.
mkdir /etc/wazuh-dashboard/certs
tar -xf ./wazuh-certificates.tar -C /etc/wazuh-dashboard/certs/ ./dashboard.pem ./dashboard-key.pem ./root-ca.pem
chmod 500 /etc/wazuh-dashboard/certs
chmod 400 /etc/wazuh-dashboard/certs/*
chown -R wazuh-dashboard:wazuh-dashboard /etc/wazuh-dashboard/certs
A nezbývá než službu Wazuh-dashboard nastartovat a povolit jí automatické spouštění po startu.
systemctl daemon-reload
systemctl enable wazuh-dashboard --now
V tuto chvíli máme nainstalovány všechny komponenty Wazuh a můžeme se přihlásit do jeho webového rozhraní, v našem případě na url https://192.168.91.15/
.
Wazuh agents
Ověřování heslem
Implicitně je Wazuh manager nastaven tak, že zaregistruje jakékoliv agenta, který se mu přihlásí.
Což není z bezpečnostních ani provozních důvodů zcela záhodno, a proto na úrovni serveru nastavíme nutnost ověřování jednotlivých agentů heslem.
To můžeme udělat i ve webovém rozhraní, a to v sekci Management -> Configuration
.
Tip: Tento konfigurační soubor můžeme editovat i přímo na souborovém systému Wazuh manageru, a to v cestě /var/ossec/etc/ossec.conf
pomocí svého oblíbeného textového editoru.
Zde zvolíme odkaz Edit configuration
.
Tento odkaz nám umožní ručně editovat konfigurační XML soubor ossec.conf
, což je konfigurace Wazuh manageru, a to přímo ve webovém rozhraní.
V tomto konfiguračním souboru je nutné v sekci <auth>
nastavit direktivu <use_password>
na hodnotu yes
.
Následně je třeba na úrovni operčního systému vytvořit soubor obsahující heslo, které bude Manager ověřovat při registraci agentů.
Tento soubor vytvoříme ve standardní cestě, tedy /var/ossec/etc/authd.pass
, bez jakýchkoliv jiných znaků do něj vložíme registrační heslo a soubor uložíme.
nano /var/ossec/etc/authd.pass
Pozor: V současné chvíli se pracuje na efektivnějším a hlavně bezpečnějším systému uložení ověřovacího hesla (např. keystore), a v novějších verzích se tak tento krok může lišit!
Nyní můžeme přistoupit k samotné konfiguraci serveru.
Nastavení manageru
Nejprve zapneme detekci zranitelností, tedy tomto stejném konfiguračním souboru v sekci <vulnerability_detector>
změníme direktivu <enabled>
na hodnotu yes
, viz níže.
...
<vulnerability_detector>
<enabled>yes</enabled>
...
A ve stejné sekci <vulnerability_detector>
zároveň povolíme provider pro konkrétní operační systémy, v našem případě je to CentOS.
Povolíme tedy provider pro RedHat:
...
<vulnerability_detector>
...
<provider name="redhat">
<enabled>yes</enabled>
...
Pomocí tlačítka Save
zkontrolujeme validitu námi upraveného souboru a soubor uložíme.
Po úspěšném uložení souboru je následně třeba zrestartovat Wazuh manager pomocí tlačítka Restart Manager
.
Tuto akci pak potvrdíme tlačítkem Confirm
v následujícím dialogovém okně.
Tip: Zrestartovat Manager pochopitelně můžeme i restartováním jeho systémové služby na úrovni operačního systému.
systemctl restart wazuh-manager
Jako poslední krok je pak doporučeno vygenerovat pro Wazuh nová hesla namísto implicitních, což provedeme následujícím příkazem.
Výstupem tohoto příkazu jsou pak právě nově vygenerovaná, silná hesla.
/usr/share/wazuh-indexer/plugins/opensearch-security/tools/wazuh-passwords-tool.sh --change-all --admin-user wazuh --admin-password wazuh
Přidání agenta
Jednotlivé agenty doporučujeme rozřazovat do skupin, například podle typu serveru, anebo podle operačního systému, jako je tomu v našem případě.
Skupiny si můžete vytvořit v sekci Management -> Groups
pomocí tlačítka Add new group
.
Přidat nové agenty pak můžeme ve formuláři v menu Agents
na úrovni webového rozhraní.
Instalace agenta
Samotnou instalaci agenta pak provedeme zkopírováním příkazu, vygenerovaného tímto formulářem, na cílovém serveru.
Pozor: Wazuh agent nesmí být nainstalován na serveru, kde běží Manager a tato komponenta samotná nám tuto instalaci kvůli konfliktům ani nepovolí!
Protože nechceme, aby naše registrační heslo bylo součástí historie příkazů v shellu, tak ho prozatím ponecháme s nabízenými hvězdičkami.
sudo WAZUH_MANAGER='192.168.91.15' WAZUH_REGISTRATION_PASSWORD='******' WAZUH_AGENT_GROUP='linux' WAZUH_AGENT_NAME='centos-agent' yum install -y https://packages.wazuh.com/4.x/yum/wazuh-agent=4.4.1-1.x86_64.rpm
Po úspěšné instalaci agenta otevřeme soubor, obsahující registrační heslo.
Hvězdičky ručně změníme na správné heslo a soubor uložíme.
nano /var/ossec/etc/authd.pass
A jako poslední krok službu spustíme a zapneme její spouštění po startu systému.
systemctl daemon-reload
systemctl enable wazuh-agent --now
Součástí procesu spouštění této služby na Wazuh agentu proběhne základní bezpečnostní audit a sken zranitelností.
Na Wazuh manager se z agenta pošlou veškeré potřebné informace o jeho operačním systému, agent se oproti serveru zaregistruje a následně i přidá pro další analýzu.
Stejným způsobem pak přidáváme i další jednotlivé agenty.
V tuto chvíli máme úspěšně nainstalované a funkční všechny centrální komponenty Wazuh, a to včetně jejich základní konfigurace a přidání jednoho vzorového agenta.
Dejte nám Like, sdílejte nás nebo nás sledujte 😍
Ať vám nic neunikne: