当前位置:网站首页>Wazuh開源主機安全解决方案的簡介與使用體驗

Wazuh開源主機安全解决方案的簡介與使用體驗

2022-07-05 05:37:00 運維個西瓜

日漸重要的主機安全管理

隨著各種數字幣風起雲湧的發展,原本以運行Linux系統為主、少有病毒或木馬侵擾的企業主機安全管理領域也越發變得不太平起來了,各色人等為了獲得“免費”的企業級算力挖幣,紛紛打起了企業服務器的主意。企業應用信息安全的管理已經不再滿足於僅僅配備幾個“網絡安全”設備了,僅做到這一點的話,恐怕會連目前的等級保護三級標准也通過不了。
目前一些有實力的大廠都有自研的Linux主機安全管理工具,也有幾家專做安全產品企業服務的廠商推出了商用產品,幾大公有雲廠商的雲應用商店裏也都將主機安全產品與雲防火牆、DDos防護打包提供給客戶了。

相較網絡安全防護產品而言,主機安全產品的成本投入會更高一些,因為這需要在每個主機上都安裝agent節點,計費基本上都是按節點數量收費。對於有一定運營規模的企業來說,使用幾百個物理機、虛機或雲主機都是很常見的,全面部署商用主機安全產品的成本壓力很大。

今天我們給大家介紹的這款開源主機安全產品——Wazuh,是免費的開源軟件。其組件遵守GNU通用公共許可證2版和Apache許可證2.0版(ALv2)。Wazuh平臺提供XDR和SIEM功能來保護雲、容器和服務器工作負載。其中包括日志數據分析、入侵和惡意軟件檢測、文件完整性監控、配置評估、漏洞檢測,以及支持檢查對法規遵從性的檢測。

幾個安全專業名詞:

  • XDR(跨層檢測與響應)
  • EDR(端點檢測與響應)
  • NTA(網絡流量分析)
  • SIEM(安全信息與事件管理)

Wazuh的使用場景

  • 日志數據分析
  • Rootkits檢測
  • 配置評估
  • 脆弱性檢測
  • 容器服務安全
  • 文件完整性監控
  • 主動響應並扼制
  • 系統資源清單管理
  • 雲服務安全
  • 法規遵從

Wazuh主要組件

Wazuh解决方案基於部署在受監控端點上的Wazuh agent,以及三個核心組件:Wazuh服務器、Wazuh索引器和Wazuh儀錶盤。

  • Wazuh indexer:一個高擴展性的全文檢索與分析引擎
  • Wazuh server:用於配置和管理agents,接收agents發送的數據並解析,單實例部署可以支持幾百到幾千個agents,支持集群模式以提供更大的處理能力。
  • Wazuh dashboard:Web UI,主要用於安全事件、法規遵從、入侵檢測、文件完整性監控及配置評估結果的可視化展示,也用於Wazuh的服務配置與狀態監控。
  • Wazuh agents:安裝在各種類型終端上的軟件,支持Linux, Windows, macOS, Solaris, AIX, and HP-UX。提供威脅預防、檢測和響應能力。

在這裏插入圖片描述

除了基於agent的監控功能外,Wazuh平臺還可以監控agentless設備,如防火牆、交換機、路由器或IDS等。例如,可以通過Syslog收集系統日志數據,並且可以通過SSH或API定期探測其數據來監視其配置。

Wazuh部署架構

對於業務負載較重的場景,建議將server與indexer分別部署在不同的主機節點,視負載大小還可以選擇進行server/indexer的單實例或集群模式部署。

在這裏插入圖片描述

Wazuh的組件間通信與常用端口

Wazuh agent與Wazuh server的通信

Wazuh server默認監聽1514端口,用於處理與agents的通信,默認使用AES加密傳輸。
接收到的數據會保存到以下默認路徑:

  • /var/ossec/logs/archives/archives.json,保存從agents收到的所有事件消息,建議部署cron定時任務以只保持近期數據,避免發生存儲空間滿的故障
  • /var/ossec/logs/alerts/alerts.json,保存匹配上識別規則的事件消息

Wazuh server與Wazuh indexer的通信

Wazuh server通過TLS加密,使用Filebeat將警報和事件數據發送到Wazuh indexer。Filebeat讀取Wazuh server輸出數據並將其發送到Wazuh indexer(默認情况下,偵聽端口9200/TCP)。一旦數據被Wazuh indexer索引,Wazuh儀錶盤將用於進一步信息挖掘和可視化展示。

Wazuh儀錶盤查詢Wazuh RESTful API(默認情况下監聽Wazuh server上的55000/TCP端口),以顯示Wazuh server和agent的配置和狀態相關信息。

Wazuh使用的服務端口與默認值

在這裏插入圖片描述

Wazuh的單實例部署與體驗

為體驗Wazuh的功能,我們可以在測試環境快速部署一個單實例的服務,即Wazuh server, Wazuh indexer 和 Wazuh dashboard都部署在一個主機上面。

主機操作系統建議:CentOS7/8,Ubuntu 16.04/18.04/20.04/22.04

安裝Wazuh:

$ curl -sO https://packages.wazuh.com/4.3/wazuh-install.sh && sudo bash ./wazuh-install.sh -a

在需要監控的終端主機上部署Wazuh agent軟件,參考方法:https://documentation.wazuh.com/current/installation-guide/wazuh-agent/index.html

安裝Linux Wazuh agnet:

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
WAZUH_MANAGER="10.0.0.2" yum install wazuh-agent

systemctl daemon-reload
systemctl enable wazuh-agent
systemctl start wazuh-agent

更多部署agent可用的選項請見 Deployment variables for Linux
關於Wazuh agent注册方法請見 Wazuh agent enrollment

禁用Wazuh agent的更新,以避免agent的版本因為不小心而昇級為高於server的版本:

sed -i "s/^enabled=1/enabled=0/" /etc/yum.repos.d/wazuh.repo

怎麼樣删除删除Wazuh服務:

$ sudo bash ./wazuh-install.sh --uninstall

注:如果網絡條件差,yum安裝報錯,可以試下從官網下載相關的rpm包進行安裝 https://documentation.wazuh.com/current/installation-guide/packages-list.html

集成部署Wazuh 與 Elastic Stack basic license

實現了Wazuh與Elastic Stack的功能集成,消息數據存儲到Elastic並基於Elastic Stack進行數據的檢索與圖錶化展示。

有兩種部署方式:

注:以下測試,我們都是基於centos7系統展開的。

安裝幾個工具包

yum install zip unzip curl

安裝Elasticsearch

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

cat > /etc/yum.repos.d/elastic.repo << EOF [elasticsearch-7.x] name=Elasticsearch repository for 7.x packages baseurl=https://artifacts.elastic.co/packages/7.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md EOF

yum install elasticsearch-7.10.2

elastic配置文件:

curl -so /etc/elasticsearch/elasticsearch.yml https://packages.wazuh.com/4.3/tpl/elastic-basic/elasticsearch_all_in_one.yml

安裝數字證書:

curl -so /usr/share/elasticsearch/instances.yml https://packages.wazuh.com/4.3/tpl/elastic-basic/instances_aio.yml
/usr/share/elasticsearch/bin/elasticsearch-certutil cert ca --pem --in instances.yml --keep-ca-key --out ~/certs.zip

unzip ~/certs.zip -d ~/certs
mkdir /etc/elasticsearch/certs/ca -p
cp -R ~/certs/ca/ ~/certs/elasticsearch/* /etc/elasticsearch/certs/
chown -R elasticsearch: /etc/elasticsearch/certs
chmod -R 500 /etc/elasticsearch/certs
chmod 400 /etc/elasticsearch/certs/ca/ca.* /etc/elasticsearch/certs/elasticsearch.*
rm -rf ~/certs/ ~/certs.zip

chown -R elasticsearch.elasticsearch /etc/elasticsearch/

注意需要使用到jdk8

設置服務啟動方式:

systemctl daemon-reload
systemctl enable elasticsearch
systemctl start elasticsearch

創建Elastic Stack pre-built roles and users:

/usr/share/elasticsearch/bin/elasticsearch-setup-passwords auto

檢查下安裝結果:

curl -XGET https://localhost:9200 -u elastic:<elastic_password> -k

安裝Wazuh server

Wazuh server負責從agents收集數據並進行分析,主要包括了Wazuh manager、Wazuh API和Filebeat三個組件。

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

安裝wazuh-manager:

yum install wazuh-manager

systemctl daemon-reload
systemctl enable wazuh-manager
systemctl start wazuh-manager

安裝Filebeat:
用於將報警事件和歸檔消息轉發到Elasticsearch存儲。

yum install filebeat-7.10.2

filebeat的配置文件:

curl -so /etc/filebeat/filebeat.yml https://packages.wazuh.com/4.3/tpl/elastic-basic/filebeat_all_in_one.yml

Wazuh報警配置模板:

curl -so /etc/filebeat/wazuh-template.json https://raw.githubusercontent.com/wazuh/wazuh/4.3/extensions/elasticsearch/7.x/wazuh-template.json
chmod go+r /etc/filebeat/wazuh-template.json

下載Filebeat使用的Wazuh模塊:

curl -s https://packages.wazuh.com/4.x/filebeat/wazuh-filebeat-0.2.tar.gz | tar -xvz -C /usr/share/filebeat/module

更新/etc/filebeat/filebeat.yml配置文件中的密碼信息:

output.elasticsearch.password: <elasticsearch_password>

將上面password參數值設置為elastic用戶的密碼

部署證書:

cp -r /etc/elasticsearch/certs/ca/ /etc/filebeat/certs/
cp /etc/elasticsearch/certs/elasticsearch.crt /etc/filebeat/certs/filebeat.crt
cp /etc/elasticsearch/certs/elasticsearch.key /etc/filebeat/certs/filebeat.key

啟動Filebeat:

systemctl daemon-reload
systemctl enable filebeat
systemctl start filebeat

測試安裝結果:

filebeat test output

安裝Kibana:

yum install kibana-7.10.2

部署證書:

mkdir /etc/kibana/certs/ca -p
cp -R /etc/elasticsearch/certs/ca/ /etc/kibana/certs/
cp /etc/elasticsearch/certs/elasticsearch.key /etc/kibana/certs/kibana.key
cp /etc/elasticsearch/certs/elasticsearch.crt /etc/kibana/certs/kibana.crt
chown -R kibana:kibana /etc/kibana/
chmod -R 500 /etc/kibana/certs
chmod 440 /etc/kibana/certs/ca/ca.* /etc/kibana/certs/kibana.*

curl -so /etc/kibana/kibana.yml https://packages.wazuh.com/4.3/tpl/elastic-basic/kibana_all_in_one.yml

編輯/etc/kibana/kibana.yml,更新密碼:

elasticsearch.password: <elasticsearch_password>

password參數值設置為elastic用戶的密碼

mkdir /usr/share/kibana/data
chown -R kibana:kibana /usr/share/kibana

安裝Wazuh kibana插件:

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.3.5_7.10.2-1.zip

允許kibana用戶使用443端口:

setcap 'cap_net_bind_service=+ep' /usr/share/kibana/node/bin/node

登錄web平臺:

URL: https://<wazuh_server_ip>
user: elastic
password: <PASSWORD_elastic>

禁用wazuh,elastic的yum安裝源,以避免部分軟件包被自動更新而導致出現兼容性問題:

sed -i "s/^enabled=1/enabled=0/" /etc/yum.repos.d/wazuh.repo
sed -i "s/^enabled=1/enabled=0/" /etc/yum.repos.d/elastic.repo

安裝Wazuh agent

找一個測試機,安裝Wazuh agent,用於驗證測試相關功能。
https://documentation.wazuh.com/current/installation-guide/wazuh-agent/index.html

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

WAZUH_MANAGER="IP-OF-WAZUH-MANAGER" yum install wazuh-agent

請將WAZUH_MANAGER參數值替換為Wazuh-manager主機的IP地址

systemctl daemon-reload
systemctl enable wazuh-agent
systemctl start wazuh-agent

sed -i "s/^enabled=1/enabled=0/" /etc/yum.repos.d/wazuh.repo

登錄kibana web平臺查看配置結果

從下面的截圖可以看到,Wazuh提供的安全管理功能是非常豐富的,有很多維度和層次,圖形化界面的展示使用體驗也很不錯。
在這裏插入圖片描述
在這裏插入圖片描述
接下來, 我們還將在後續的文章中繼續分享Wazuh的生產環境分布式部署方案與實踐,以及信息安全管理需求的定制化配置模板的設計與實現。

原网站

版权声明
本文为[運維個西瓜]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/186/202207050536257870.html