本文將以連載的形式分享splunk在實戰中的運用:從索引器&轉發器的安裝部署開始,到普通搜索&字段提取,再到報表&儀表盤定制以及告警等,詳細的寫出作者在實戰中的經驗(其實是遇到的坑),讓大家看完之后可以少走些彎路。
Splunk是機器數據的引擎。使用 Splunk 可收集、索引和利用所有應用程序、服務器和設備(物理、虛擬和云中)生成的快速移動型計算機數據,隨時從一個位置搜索并分析所有實時和歷史數據。使用 Splunk可以在幾分鐘內(而不是幾個小時或幾天)解決問題和調查安全事件,關聯并分析跨越多個系統的復雜事件,從而獲取新層次的安全運營以及業務運營可見性。
Splunk 可以從任何源實時索引任何類型的計算機數據,由下圖可見,通過端口監聽來收集各類服務器或者網絡設備的日志,還可以通過腳本來獲取系統指標等。
同時,可以通過在各個操作系統安裝部署轉發器(forwarder),來實現將各個agent端日志目錄文件發送到splunk索引器(indexer)中。下圖最底層為forwarder,中間層為indexer。
簡要介紹了一下整體架構,下面我們進入實戰環節。
6.3.3版本,IP為10.2.1.157
Linux&windows的6.3.3版本
索引器端需要配置監聽端口,以便接收從轉發器端發來的日志文件等。在“設置——轉發和接收——接收數據”中配置監聽9997端口
另外索引器默認的管理端口是8089,無需配置。
https://www.splunk.com/page/previous_releases/universalforwarder
需要在windows server上將”本地安全策略——本地策略——審核策略”中的所有審核策略均配置為”成功“和失敗”
首先復制轉發器到相應的服務器上
雙擊執行該文件,如下圖所示,勾選接受協議,之后選擇“Customize Options”即自定義安裝
路徑默認即可
勾選上“windows Event Logs”以及“Performance Monitor”的全部選項,但不用勾選”AD monitoring”(否則如果在域環境下,索引器會收到大量域內無用消息,極為占用資源),如下圖。
這個步驟默認即可。
(重要!)配置調度服務器(這一步是為了讓indexer可以識別到forwarder,并且可以從管理端下發日志采集指令)。 這一步中的IP填寫為10.2.1.157,端口填寫為8089,如下圖。
(重要!)這一步中配置接收索引器(這一步是為了讓indexer可以接收到forwarder發來的日志),IP填寫為10.2.1.157,端口填寫為9997。
執行安裝過程完畢后,點擊Finish結束。
最后在索引器中可以看到該轉發器已連接上
首先查看當前IP。
從內網服務器下載壓縮包:
#!shell
wget http://10.2.24.66/splunkforwarder-Linux.tgz
解壓。
進入%splunkforwarder%/bin
輸入./splunk start
進行安裝
輸入y,等待安裝完成。
輸入./splunk enable boot-start
,配置為開機啟動
(重要!)配置調度服務器(這一步是為了讓indexer可以識別到forwarder,并且可以從管理端下發日志采集指令)。
遇到的坑:6.3.3的轉發器安裝貌似沒法通過輸入命令來指定對端索引器,如果不搞配置文件的話,索引器是無法感知到這個轉發器的。
隨后在%splunkforwarder%/etc/system/local/
配置deploymentclient.conf
其文件內容格式為:
[target-broker:deploymentServer]
targetUri = 10.2.1.157:8089
如下配置即為成功
(重要!)這一步中配置接收索引器(這一步是為了讓indexer可以接收到forwarder發來的日志)
另外需要在%splunkforwarder%/etc/system/local/
配置outputs.conf
[tcpout]
defaultGroup = defau;lt-autolb-group
[tcpout:default-autolb-group]
server = 10.2.1.157:9997
[tcpout-server://10.2.1.157:9997]
如下配置即為成功
配置完conf文件后需要重啟splunk服務
另外,還需要配置/etc/rsyslog.conf
,設置接收syslog條目為:(為了實現索引分類,這里我將linux的syslog指定發到索引器的516端口)
* @10.2.1.157:516
配置完畢后保存退出,并且重啟rsyslog服務。
至此,linux端轉發器配置完畢。
隨后可看到在server端服務器列表中,該轉發器已連接上。
首先選擇“設置——數據導入“
選擇添加來自于轉發器的數據——windows事件日志
新建一個服務器組
由于目前只關心安全日志,只選security即可,如下圖。
將這些轉發器的上述配置好的日志均發送到自己新建的windows索引中,以免在超大的main索引里查詢導致效率下降。
同理,在”添加數據——文件和目錄”功能中,可以直接導入轉發器的IIS或tomcat等日志目錄所在的路徑,配置完畢后由轉發器自動將日志發到索引器上來(好像遠控有木有)
再將不同類別的日志存放到相應的索引中即可。
最后在搜索時輸入index=windows或者index=iis,即可搜到所有轉發器發來的日志了。
另外,在上一章節中所配置的linux syslog已經發送到了516端口,所以在這里我們新建一個監聽UDP:516的規則
并建立一個單獨的linux索引來存儲發到516端口的UDP數據(即syslog),屆時直接搜索index=linux即可。
先通過linux登錄失敗的特征字段“failed password”來查詢,同時,linux的日志均在名為linux的索引表中,故應該搜索:index=linux failed password。如下圖
之后想要統計來源的IP都有哪些,此時點擊左側的“Src_ip”,選擇”上限值”,即為發生次數最多的前20個。
可以自動生成統計圖,直觀展示哪些源IP的次數最多。
之后將Src_ip改為Dst_ip,可以觀察哪些linux服務器正遭受暴力破解的威脅。
至于上面說的Src_ip和Dst_ip是怎么分割出來的,且聽下回分解《搜索技巧&字段提取》。