沒意外的話,這篇就是 Wazuh 的最後一篇了
不知該哭還笑,光是 Wazuh 就幫我撐了這麼多篇文章,
還好 Wazuh 筆記還算豐富,相對比較輕鬆
但這樣我其他可以講的內容就被壓縮了哈哈
一度有點懷疑,我是不是題目直接報名 Wazuh 大全就好了
不過因為我還是有其他東西想分享,而且題目是一個人的藍隊
所以就讓我們來替Wazuh做個好好 Ending
今天來介紹備份和升級
首先因為我們是使用 Docker 安裝的
所以基本上是可以無痛升級的沒問題
不過Just in case,記得還是要先備份
備份對於資訊安全極為重要,它扮演了保護和恢復資訊資產的關鍵角色
光是看看有多少廠商都有在做備份,就知道這個市場需求跟重要性有多大
還有朗朗上口的口號 321備份原則
「至少3份備份、分別儲存在2種不同儲存媒體、至少1份份在異地保存。」
所以我們一定也要來幫我們的設定檔跟資料來備份一下
提醒
備份(Backup)和備援(Redundancy)是兩個不同的概念。
備份是避免是資料受損,通常將資料複製到不同的儲存媒體或空間。
備援是為了確保系統或服務持續運行,即使發生部分的故障,仍然能夠運行(或是減少停機時間),維持系統跟服務的可用性。
應該要依照資產(服務、系統、資料)用途和需求,來規劃適當的備份與備援計劃。
Wazuh 的備份可以使用下列的指令進行
Step 1:
建立一個準備存放備份資料的目錄,順便也打上時間戳記
bkp_folder=~/wazuh_files_backup/$(date +%F_%H:%M)
mkdir -p $bkp_folder && echo $bkp_folder
Step 2:
將主機的資訊儲存下來在同一個目錄下
cat /etc/*release* > $bkp_folder/host-info.txt
echo -e "\n$(hostname): $(hostname -I)" >> $bkp_folder/host-info.txt
Step 3:
暫停Wazuh服務
# 切換到docker-compose.yml的路徑
cd /root/wazuh-docker/single-node/
docker-compose stop
Step 4:
開始備份
因為我們是容器啟動的,我是直接把 Docker-compose.yml 裡面有持久化儲存的目錄都備份
以下內容會備份 Wazuh 的伺服器資料
這種備份方式會把目錄階層跟權限都一起同步
rsync -aREz \
/root/wazuh-docker/single-node/config \
/var/lib/docker/volumes/single-node_* \
$bkp_folder
Step 5:
完成之後可以啟動 Docker
docker-compose start
也可以確認看看服務是不是正常
備份也可以透過排程的方式來定期備份
但因為備份建議還是將服務暫停會比較好
所以排程要把服務暫停也寫進去
總之要怎麼做可以自行評估考量看看
還有就是官網的備份教學
實際上官網建議備份的目錄列表跟操作如下
不過用容器的方式我們直接全部備份起來也是可以的
https://documentation.wazuh.com/current/user-manual/files-backup/creating/wazuh-central-components.html
rsync -aREz \
/etc/filebeat/ \
/etc/postfix/ \
/var/ossec/api/configuration/ \
/var/ossec/etc/client.keys \
/var/ossec/etc/sslmanager* \
/var/ossec/etc/ossec.conf \
/var/ossec/etc/internal_options.conf \
/var/ossec/etc/local_internal_options.conf \
/var/ossec/etc/rules/local_rules.xml \
/var/ossec/etc/decoders/local_decoder.xml \
/var/ossec/etc/shared/ \
/var/ossec/logs/ \
/var/ossec/queue/agentless/ \
/var/ossec/queue/agents-timestamp \
/var/ossec/queue/fts/ \
/var/ossec/queue/rids/ \
/var/ossec/stats/ \
/var/ossec/var/multigroups/ $bkp_folder
rsync -aREz \
/var/ossec/etc/*.pem \
/var/ossec/etc/authd.pass $bkp_folder
rsync -aREz \
/var/ossec/active-response/bin/<custom_AR_script> \
/var/ossec/etc/lists/<user_cdb_list>.cdb \
/var/ossec/integrations/<custom_integration_script> \
/var/ossec/wodles/<custom_wodle_script> $bkp_folder
rsync -aREz \
/var/ossec/queue/db/ $bkp_folder
rsync -aREz \
/etc/wazuh-indexer/certs/ \
/etc/wazuh-indexer/jvm.options \
/etc/wazuh-indexer/jvm.options.d \
/etc/wazuh-indexer/log4j2.properties \
/etc/wazuh-indexer/opensearch.yml \
/etc/wazuh-indexer/opensearch.keystore \
/etc/wazuh-indexer/opensearch-observability/ \
/etc/wazuh-indexer/opensearch-reports-scheduler/ \
/etc/wazuh-indexer/opensearch-security/ \
/usr/lib/sysctl.d/wazuh-indexer.conf $bkp_folder
rsync -aREz \
/etc/wazuh-dashboard/certs/ \
/etc/wazuh-dashboard/opensearch_dashboards.yml \
/usr/share/wazuh-dashboard/config/opensearch_dashboards.keystore \
/usr/share/wazuh-dashboard/data/wazuh/config/wazuh.yml $bkp_folder
rsync -aREz \
/usr/share/wazuh-dashboard/data/wazuh/downloads/ \
/usr/share/wazuh-dashboard/plugins/wazuh/public/assets/custom/images/ $bkp_folder
升級的話,剛說了可以無痛升級,但實際上可能也不完全是啦 XD
升級要修改一下我們 docker-compose.yml 的內容
這次我們就把容器給終止
docker-compose down
升級第一個當然是把 IMAGE 版本改掉
我這邊是從 4.5.0 升級到 4.5.2 (記得 manager / indexer / dashboard 三個都要改)
實際上,如果架構、路徑、參數沒改變的情況
改完這邊就可以直接重啟服務了,EASY~~~
接著版本差異較大的,因為路徑有一些修改,可以參考看看官網的內容
例如 4.3 → 4.5
有許多路徑是有變化的,如果不改的話重啟服務會有問題
這可能就稍微累一點點了,但嚴格來說也不難
https://documentation.wazuh.com/current/deployment-options/docker/upgrading-wazuh-docker.html
最好的方式,當然還是自己看看自己原本的版本與要升級的版本的 docker-compose 內容
自己確認好路徑的差異,不要把 volume mount 改錯位置就好
可以直接去 github 確認
https://github.com/wazuh/wazuh-docker/blob/v4.5.2/single-node/docker-compose.yml
我自己從 4.5.0 升級到 4.5.2
是只有改IMAGE啦
改好之後啟動就好了,因為要拉新的 IMAGES 會比較久
也可以順便手動把舊的 IMAGES 刪除掉
docker-compose up -d
服務正常運作,版本也是新的
最後,然後別忘了agent也要升級
可以直接從 Wazuh Server 中央去遠端升級 Agent
例如要升級編號為 001 的 Agent
/var/ossec/bin/agent_upgrade -a 001
-l 可以列出所有agents的版本
/var/ossec/bin/agent_upgrade -l
如果有很多 agent,用個 shell 腳本去跑就好
今天就到這邊啦~
小犬颱風來襲,大家注意安全啦