標籤:
Shell 記錄異地留痕審計與監控 http://netkiller.github.io/journal/shell.history.html Mr. Neo Chen (陳景峰), netkiller, BG7NYT
中國廣東省深圳市龍華新區民治街道溪山美地
518131
+86 13113668890
+86 755 29812080
<[email protected]>
著作權 ? 2014 http://netkiller.github.io
著作權聲明
轉載請與作者聯絡,轉載時請務必標明文章原始出處和作者資訊及本聲明。
|
文檔出處: |
http://netkiller.github.io |
http://netkiller.sourceforge.net |
|
2014-12-25
摘要 我的系列文檔
Netkiller Architect 手劄 |
Netkiller Developer 手劄 |
Netkiller PHP 手劄 |
Netkiller Python 手劄 |
Netkiller Testing 手劄 |
Netkiller Cryptography 手劄 |
Netkiller Linux 手劄 |
Netkiller Debian 手劄 |
Netkiller CentOS 手劄 |
Netkiller FreeBSD 手劄 |
Netkiller Shell 手劄 |
Netkiller Security 手劄 |
Netkiller Web 手劄 |
Netkiller Monitoring 手劄 |
Netkiller Storage 手劄 |
Netkiller Mail 手劄 |
Netkiller Docbook 手劄 |
Netkiller Version 手劄 |
Netkiller Database 手劄 |
Netkiller PostgreSQL 手劄 |
Netkiller MySQL 手劄 |
Netkiller NoSQL 手劄 |
Netkiller LDAP 手劄 |
Netkiller Network 手劄 |
Netkiller Cisco IOS 手劄 |
Netkiller H3C 手劄 |
Netkiller Multimedia 手劄 |
Netkiller Perl 手劄 |
Netkiller Amateur Radio 手劄 |
Netkiller DevOps 手劄 |
目錄
- 1. 什麼是Shell記錄異地留痕與監控
- 2. 什麼要將Shell記錄異地留痕並監控
- 3. 何時做記錄異地留痕
- 4. 在哪裡做記錄異地留痕
- 5. 角色與許可權
- 6. 怎麼實現記錄異地留痕
- 6.1. 節點配置
- 6.2. 推送端
- 6.3. 收集端
- 7. 延伸閱讀
1. 什麼是Shell記錄異地留痕與監控
首先談談什麼是“記錄異地留痕”,記錄就是~/.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/issuecat /etc/resolv.confifconfigcat /etc/resolv.confdmddfdf -Tcat /etc/fstabcat /etc/issueuname -aps axcd /srv/lscd workspace/lsdfdf -Tdflscd ..ls
由於篇幅的限制,我是用了head,tail 命令限制顯示長度。
現在我在看看“監控”,監控就是過濾 ~/.bash_history 檔案內字串,達到匹配標準,做出警示操作等等。例如我們發現adduser命令應立即警示,通知相關人員檢查。
2. 什麼要將Shell記錄異地留痕並監控
首先我們將要使用者操作留痕,以方便隨時調閱,我們要知道系統管理員做了那些操作,還可用於審計工作。例如我們開發工作中有一個環節就是Code Review (代碼審查),可以協助我們提前發現BUG,以及不合理做法,甚至是人為惡意植入後門等等。
記錄異地留痕就是營運工作的 sysop review(營運審查)。
其次是監控,注意這裡的~/.bash_history監控並非即時監控,因為只有使用者推出shell後才能儲存~/.bash_history檔案。所以監控是滯後的,但也足夠能協助我們更早的知道系統發生了那些變化。
3. 何時做記錄異地留痕
這個系統可以即時部署,對現有的業務不會影響。
4. 在哪裡做記錄異地留痕
記錄異地留痕分為兩個部分,第一個部分是節點,第二部分是收集端,收集段同時還負責監控與警示。節點將收集的資料發送給收集端,然後收集端歸檔日誌。
5. 角色與許可權
最高許可權著負責部署即可
6. 怎麼實現記錄異地留痕 6.1. 節點配置
首先修改history格式,預設只有行號,我需要記錄每一個命令的輸入時間點。
cat >> /etc/bashrc <<EOFexport 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
6.2. 推送端
$ 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 << EOF1220 neo1221 jam1222 samEOF
6.3. 收集端
$ git clone https://github.com/netkiller/logging.git$ cd logging$ python3 setup.py sdist$ python3 setup.py install
配置收集端連接埠,編輯檔案logging/init.d/ucollection
done << EOF1220 /backup/neo/.bash_history1221 /backup/jam/.bash_history1222 /backup/sam/.bash_historyEOF
7. 延伸閱讀
《日誌歸檔與資料採礦》
Shell 記錄異地留痕審計與監控