實時用戶操作審計系統

【概述】:多人共同使用的服務器權限確實不好管理,誤操作等造成故障,無法追究,最好的辦法就是將用戶操作實時記錄到日誌,並推送到遠程日誌服務器上。包括(用戶登陸時間,目錄,操作命令及時間戳等)。以便事後追查。 -----這段網上抄的 - -

   方案:就是將這些操作記錄到本地文件,然後在通過fluentd收集到遠程日誌服務器上,實現僞實時。跟上文一樣,可以直接存到Elasticsearch,然後使用kibana直接展示方便。

   爲了方便二次開發,這次將日誌存到了mongodb,當然也可以存到mysql(本文不討論這個哈)

--------------------

   1,先實現記錄修改到本地文件

   (1)修改/etc/profile

export PROMPT_COMMAND='{ date "+%Y-%m-%d %T $(ifconfig | grep eth -A 1 | grep "192.168" | grep -oP "(?<=addr:)[\d\.]+") $(who am i |awk "{print \$1\" \"\$2\" \"\$3\" \"\$4\" \"\$5}") [`pwd`] $(history 1 | { read x cmd; echo "$cmd"; })"; } >> /var/log/audit.log'

   (2)執行source /etc/profile

記錄到本地格式的文件內容如下:

wKioL1L1xV-wzzrsAAPB0K7Kzew928.jpg

內容格式:記錄時間 本地IP 用戶 終端 登錄時間 來源 所在目錄 執行命令

注意:其他用戶必須對audit.log有寫入權限

2,收集到mongodb  

   fluentd客戶端配置如下:                    

<source>
  type tail
  format /^(?<time>\d{4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2}:\d{1,2}) (?<src>[^ ]*) (?<user>[^ ]*) (?<zhongduan>[^ ]*) (?<logintime>\d{4}
-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2}) \((?<dst>[^ ]*)\) \[(?<pwd>[^\]]*)\] (?<cmd>.*)?$/
  path /var/log/audit.log
  pos_file /var/log/td-agent/audit.pos
  tag mongo.fluent.audit
</source>

  fluentd服務器端和上篇文章類似

記錄到mongodb中的內容如下:

wKioL1L1yHvwTHnbAAMBlanhep8299.jpg

到此結束。。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章