版權 © 2014 http://netkiller.github.io
版權聲明
轉載請與作者聯繫,轉載時請務必標明文章原始出處和作者信息及本聲明。
|
|
|
微信掃瞄二維碼進入 Netkiller 微信訂閲號 QQ群:128659835 請註明“讀者” |
2017-06-16
首先談談什麼是“歷史記錄異地留痕”,歷史記錄就是~/.bash_history檔案,不同Shell名字可能不同,它會記錄每次用戶在鍵盤上敲下的命令,我們可以通過下面命令查詢歷史記錄。
$ history | head 1009 ls /www 1010 vim Makefile 1011 cat Makefile 1012 make index.html 1013 vim Makefile 1014 make index.html 1015 vim Makefile 1016 make index.html 1017 vim Makefile 1018 make index.html $ history | tail 2000 find /tmp/var/ 2001 ll 2002 cd workspace/Journal/ 2003 s 2004 ls 2005 make shell.html 2006 cat ~/.bash_history 2007 history 2008 history | head 2009 history | tail $ cat ~/.bash_history | head -n 100 cat /etc/issue cat /etc/resolv.conf ifconfig cat /etc/resolv.conf dmd df df -T cat /etc/fstab cat /etc/issue uname -a ps ax cd /srv/ ls cd workspace/ ls df df -T df ls cd .. ls
由於篇幅的限制,我是用了head,tail 命令限制顯示長度。
現在我在看看“監控”,監控就是過濾 ~/.bash_history 檔案內字元串,達到匹配標準,做出報警操作等等。例如我們發現adduser命令應立即報警,通知相關人員檢查。
首先我們將要用戶操作留痕,以方便隨時調閲,我們要知道系統管理員做了那些操作,還可用於審計工作。例如我們開發工作中有一個環節就是Code Review (代碼審查),可以幫助我們提前發現BUG,以及不合理做法,甚至是人為惡意植入後門等等。
歷史記錄異地留痕就是運維工作的 sysop review(運維審查)。
其次是監控,注意這裡的~/.bash_history監控並非實時監控,因為只有用戶推出shell後才能保存~/.bash_history檔案。所以監控是滯後的,但也足夠能幫助我們更早的知道系統發生了那些變化。
這個系統可以實時部署,對現有的業務不會影響。
歷史記錄異地留痕分為兩個部分,第一個部分是節點,第二部分是收集端,收集段同時還負責監控與報警。節點將收集的數據發送給收集端,然後收集端歸檔日誌。
最高權限着負責部署即可
首先修改history格式,預設只有行號,我需要記錄每一個命令的輸入時間點。
cat >> /etc/bashrc <<EOF export HISTTIMEFORMAT="%Y-%m-%d-%H:%M:%S " EOF
此時輸入history命令你可以看到時間點
# history 741 2014-12-24-10:06:26 ll 742 2014-12-24-10:06:40 ls 743 2014-12-24-10:06:44 ll 744 2014-12-24-10:06:47 ls 745 2014-12-24-10:58:13 history
$ git clone https://github.com/netkiller/logging.git $ cd logging $ python3 setup.py sdist $ python3 setup.py install
配置啟動腳本,打開檔案logging/init.d/uhistory
HOST=127.0.0.1 #此處為收集端的IP地址 # Port | User # ------------------- # 配置連接埠號與用戶 done << EOF 1220 neo 1221 jam 1222 sam EOF
$ git clone https://github.com/netkiller/logging.git $ cd logging $ python3 setup.py sdist $ python3 setup.py install
配置收集端連接埠,編輯檔案logging/init.d/ucollection
done << EOF 1220 /backup/neo/.bash_history 1221 /backup/jam/.bash_history 1222 /backup/sam/.bash_history EOF