OSSEC服務端配置客戶端批次部署方案

wyzsk發表於2020-08-19
作者: hello · 2015/10/16 15:03

0x00 前言


最近也在研究ossec報警規則,還沒研究的很透徹,暫時不是這篇文章的內容。ossec中文資料還是比較少,外文文獻比較多。之前看到drops的兩篇文章分享/tips/?id=2821/tips/?id=636,看到評論都說批次部署是個坑,比較麻煩。現在說下我的方案,如何批次安裝部署客戶端。對大家有幫助,可以解決大家在批次部署過程遇到的問題。

0x01 服務端配置


服務端IP:192.168.145.128

服務端安裝可參考/tips/?id=636,不在這篇文章討論範圍。因為ossec服務端與客戶端是基於key認證傳輸資訊的,所以服務端需為客戶端生成相應的key。對於大企業來說每臺主機都有一個主機名,假如我們把這樣的伺服器資訊儲存到ip.txt文字里面。

ip.txt內容格式如下:

...
host_name:ip
host_name:ip
host_name:ip
host_name:ip
...

這樣的資訊對,在大企業裡面可透過api直接獲取得到。

接著利用指令碼,批次為每條記錄生成key。key_gen.py:

#!python
import os    

if __name__ == '__main__':
    save_keys_path = "keys.logs"
    f = open("ip.txt")
    lines = f.read().splitlines()
f.close()
#perl檔案在安裝包裡面
    shell_path ="/usr/src/ossec-hids-2.7.1/contrib/ossec-batch-manager.pl"
    for line in lines:
        arr = line.split(":")
        host_name = arr[0]
        ip = arr[1]
        #服務端根據name和ip新增客戶端
        cmd = "%s -a --ip %s --name %s" % (shell_path,ip,host_name)
        os.system(cmd)
        cmd = "%s -e %s >> %s" % (shell_path,ip,save_keys_path)
        os.system(cmd)

執行完後檢視服務端安裝目錄下的client.keys檔案,預設為/var/ossec/etc/client.keys先把這個檔案複製到web伺服器或者ftp伺服器方便客戶端下載

0x02 客戶端agent批次部署


agent群體比較大,批次部署需要面臨兩個問題:

1) 安裝程式安裝基於對話模式,怎麼處理使它順序安裝,沒有對話模式。

2) 客戶端agent對應key匯入問題。

3) 客戶端配置ossec.conf統一配置。

對於問題1)修改安裝包預配置檔案/ossec-hids-2.7.1/etc/preloaded-vars.conf,設定變數的值,方可以使其順序安裝。

去掉一些註釋,使其賦值,就不用透過對話模式進行賦值了。

把修改後的檔案preloaded-vars.conf複製到之前的ftp伺服器或者web伺服器下方便客戶端下載

對於問題2) 只需要剛才的ftp伺服器或者web伺服器下載client.keys,然後根據自己本地的ip獲取對應的key記錄,這個不難。

對於問題3) 在一臺客服端生成一份統一的ossec.conf,上傳到之前web伺服器或者ftp伺服器,方便其他客戶端下載。

至此,客戶端部署指令碼應該滿足上面點,具體指令碼如下:

ossec-agent-batch-install.sh檔案內容如下:

#!bash
#!/bin/bash    

cd /usr/local
wget -U "Mozillai/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.101 Safari/537.11"  http://www.ossec.net/files/ossec-hids-2.7.1.tar.gz    

tar -zxvf ossec-hids-2.7.1.tar.gz     

cd ossec-hids-2.7.1    

cd etc    

mv preloaded-vars.conf preloaded-vars.conf.bak    

#從服務端下載預配置檔案,用於順序安裝,不基於對話模式
wget http://192.168.145.128/preloaded-vars.conf
#開始安裝
../install.sh    

cd /var/ossec/etc    

#下載key檔案,下面主要匯入key
wget http://192.168.145.128/client.keys    

ip1=`/sbin/ifconfig eth0|sed -n '2p' |awk -F: '{print $2}'|awk '{print$1}'`
#ip2=`/sbin/ifconfig eth1|sed -n '2p' |awk -F: '{print $2}'|awk '{print$1}'`
#主要針對伺服器網路卡是eth0還是eth1不同操作
sed -i '/'$ip1'/!'d /var/ossec/etc/client.keys    


rm -rf ossec.conf
#下載客戶端統一配置檔案
wget http://192.168.145.128/ossec.conf    

#啟動客戶端程式
../bin/ossec-control start

0x03 總結


最後,可以透過ossec-wui檢視客戶端的部署情況或者在安裝目錄下 /var/ossec/bin/agent-control檢視客戶端的狀態。

本文章來源於烏雲知識庫,此映象為了方便大家學習研究,文章版權歸烏雲知識庫!

相關文章