Wazuh merupakan software yang bersifat opensource dan gratis yang berfungsi untuk monitoring security terutama untuk solusi threat prevention/detection, integrity monitoring, incident response dan compliance.
Arsitektur
pada dasarnya secara arsitektur wazuh mengunakan Elastic stack (Elastic search, Kibana) sebagai media untuk menyimpan log dan alert, namun pada wazuh terdapat wazuh manager dan wazuh agent untuk melakukan manipulasi log kedalam elasticsearch.
Komunikasi Wazuh Agent – Wazuh Server
Wazuh agent akan mengirim event secara terus menerus ke wazuh server untuk menganalisa dan deteksi adanya ancaman. Pada dasarnya event akan dikirim ketika wazuh agent secara koneksi sudah establish dengan wazuh server melalui port 1514. kemudian wazuh server akan menterjemahkan dan memvalidasi rules terhadap event yang sudah dikirim mengunakan analysis engine. berikut log yang akan terbentuk
- file
/var/ossec/logs/archives/archives.json
- file
/var/ossec/logs/alerts/alerts.json
Komunikasi Wazuh server – Elastic stack
wazuh server mengunakan filebeat untuk mengirim alert dan event ke elasticsearch server mengunakan enkripsi TLS. Filebeat akan membaca data output pada wazuh server yang kemudian dikirim ke elasticsaerch (secara default port 9200/TCP), kemudian data akan di index oleh elasticsearch, dan akan divisualisasikan mengunakan kibana
Wazuh web ui akan running dialam kibana sebagai plugin. wazuh kibana plugin akan melakukan query mengunakan restful API mengunakan port 55000/TCP ke wazuh server, dimana komunikasinya akan berjalan secara terenkripsi dengan TLS dan auntentikasi (username & password)
Port yang dibutuhkan
pada all in one deployment dimana wazuh server dan elastic stack di install didalam server yang sama, biasanya dengan environment seperti ini akan support 100 agen, dengan minimum requirement RAM 4 GB dan CPU 2 core, namun sangat direkomendasikan untuk mengunakan RAM 16 GB dan CPU 8 cores, namun untuk environment ini sangat tidak disarankan pada production karena sangat rentan dengan SPoF (Single Point of Failure).
Instalasi Wazuh
menambahkan repository untuk menginstal wazuh server
1 2 3 4 5 6 7 8 9 10 11 |
yum install curl unzip wget libcap rpm --import https://packages.wazuh.com/key/GPG-KEY-WAZUH cat > /etc/yum.repos.d/wazuh.repo << EOF [wazuh] gpgcheck=1 gpgkey=https://packages.wazuh.com/key/GPG-KEY-WAZUH enabled=1 name=EL-$releasever - Wazuh baseurl=https://packages.wazuh.com/4.x/yum/ protect=1 EOF |
instalasi wazuh manager/server
1 |
yum install wazuh-manager |
kemudian start dan melihat status wazuh manager
1 2 3 4 |
systemctl daemon-reload systemctl enable wazuh-manager systemctl start wazuh-manager systemctl status wazuh-manager |
Note: pastikan wazuh manager berjalan dengan baik
Instalasi Elasticsearch
Open Distro Elasticsearch adalah versi opensource dari elasticsearch dimana fungsinya sama seperti elasticsearch pada umumnya namun tidak mendapatkan support dari elastic.co
1 |
yum install opendistroforelasticsearch |
Konfigurasi Elasticsearch (user dan roles)
1 2 3 4 |
curl -so /etc/elasticsearch/elasticsearch.yml https://packages.wazuh.com/resources/4.1/open-distro/elasticsearch/7.x/elasticsearch_all_in_one.yml curl -so /usr/share/elasticsearch/plugins/opendistro_security/securityconfig/roles.yml https://packages.wazuh.com/resources/4.1/open-distro/elasticsearch/roles/roles.yml curl -so /usr/share/elasticsearch/plugins/opendistro_security/securityconfig/roles_mapping.yml https://packages.wazuh.com/resources/4.1/open-distro/elasticsearch/roles/roles_mapping.yml curl -so /usr/share/elasticsearch/plugins/opendistro_security/securityconfig/internal_users.yml https://packages.wazuh.com/resources/4.1/open-distro/elasticsearch/roles/internal_users.yml |
berikut adalah info roles usernya
Pembuatan sertifikat
- remove demo sertifikat
1 |
rm /etc/elasticsearch/esnode-key.pem /etc/elasticsearch/esnode.pem /etc/elasticsearch/kirk-key.pem /etc/elasticsearch/kirk.pem /etc/elasticsearch/root-ca.pem -f |
- generate dan deploy sertifikat
1 2 3 4 5 6 7 |
curl -so ~/wazuh-cert-tool.sh https://packages.wazuh.com/resources/4.1/open-distro/tools/certificate-utility/wazuh-cert-tool.sh curl -so ~/instances.yml https://packages.wazuh.com/resources/4.1/open-distro/tools/certificate-utility/instances_aio.yml bash ~/wazuh-cert-tool.sh mkdir /etc/elasticsearch/certs/ mv ~/certs/elasticsearch* /etc/elasticsearch/certs/ mv ~/certs/admin* /etc/elasticsearch/certs/ cp ~/certs/root-ca* /etc/elasticsearch/certs/ |
- Enable dan start service elasticsearch
1 2 3 |
systemctl daemon-reload systemctl enable elasticsearch systemctl start elasticsearch |
- menjalankan script securityadmin elasticsearch untuk start cluster
1 |
export JAVA_HOME=/usr/share/elasticsearch/jdk/ && /usr/share/elasticsearch/plugins/opendistro_security/tools/securityadmin.sh -cd /usr/share/elasticsearch/plugins/opendistro_security/securityconfig/ -nhnv -cacert /etc/elasticsearch/certs/root-ca.pem -cert /etc/elasticsearch/certs/admin.pem -key /etc/elasticsearch/certs/admin-key.pem |
jalankan perintah ini untuk memastikan instalasi sukses
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# curl -XGET https://localhost:9200 -u admin:admin -k { "name" : "wazuh-all-in-one", "cluster_name" : "elasticsearch", "cluster_uuid" : "iryrQg7GTb2vA2FNcNezHA", "version" : { "number" : "7.10.2", "build_flavor" : "oss", "build_type" : "rpm", "build_hash" : "747e1cc71def077253878a59143c1f785afa92b9", "build_date" : "2021-01-13T00:42:12.435326Z", "build_snapshot" : false, "lucene_version" : "8.7.0", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" } |
*Note: Direkomendasikan untuk menghapus plugin elasticsearch performence analyzer karena secara default akan diinstall
/usr/share/elasticsearch/bin/elasticsearch-plugin remove opendistro-performance-analyzer
kemudian restart service elasticsearch.
Instalasi Filebeat
Filebeat adalah tool untuk memforward alert dan event ke elasticsearch.
1 |
yum install filebeat |
download file konfigurasi filebeat dan template alert untuk elasticsearch
1 2 3 4 5 6 7 |
curl -so /etc/filebeat/filebeat.yml https://packages.wazuh.com/resources/4.1/open-distro/filebeat/7.x/filebeat_all_in_one.yml curl -so /etc/filebeat/wazuh-template.json https://raw.githubusercontent.com/wazuh/wazuh/4.1/extensions/elasticsearch/7.x/wazuh-template.json chmod go+r /etc/filebeat/wazuh-template.json curl -s https://packages.wazuh.com/4.x/filebeat/wazuh-filebeat-0.1.tar.gz | tar -xvz -C /usr/share/filebeat/module mkdir /etc/filebeat/certs cp ~/certs/root-ca.pem /etc/filebeat/certs/ mv ~/certs/filebeat* /etc/filebeat/certs/ |
enable dan start filebeat
1 2 3 |
systemctl daemon-reload systemctl enable filebeat systemctl start filebeat |
jalankan perintah ini memastikan instalasi filebeat sukses
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# filebeat test output elasticsearch: https://127.0.0.1:9200... parse url... OK connection... parse host... OK dns lookup... OK addresses: 192.168.122.150 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 |
Instalasi Kibana
Kibana adalah web interface untuk memvisualisasi event dan archive yang disimpan pada elastcisearch
1 |
yum install opendistroforelasticsearch-kibana |
download konfigurasi kibana
1 2 3 4 5 6 7 8 9 10 |
curl -so /etc/kibana/kibana.yml https://packages.wazuh.com/resources/4.1/open-distro/kibana/7.x/kibana_all_in_one.yml mkdir /usr/share/kibana/data chown -R kibana:kibana /usr/share/kibana/data cd /usr/share/kibana sudo -u kibana /usr/share/kibana/bin/kibana-plugin install https://packages.wazuh.com/4.x/ui/kibana/wazuh_kibana-4.1.5_7.10.2-1.zip mkdir /etc/kibana/certs cp ~/certs/root-ca.pem /etc/kibana/certs/ mv ~/certs/kibana* /etc/kibana/certs/ chown kibana:kibana /etc/kibana/certs/* setcap 'cap_net_bind_service=+ep' /usr/share/kibana/node/bin/node |
enable dan start service kibana
1 2 3 |
systemctl daemon-reload systemctl enable kibana systemctl start kibana |
akses, url: https://localhost, username : admin, password: admin
Ref:
https://documentation.wazuh.com/current/installation-guide/requirements.html
https://documentation.wazuh.com/current/getting-started/architecture.html
System Engineer
Komentar