1. 程式人生 > 資訊 >AdDuplex 資料:微軟 Win11 份額整個 4 月增長了不到 0.4%

AdDuplex 資料:微軟 Win11 份額整個 4 月增長了不到 0.4%

Shell 歷史記錄異地留痕審計與監控

摘要

我的系列文件

程式語言

Netkiller Architect 手札

Netkiller Developer 手札

Netkiller PHP 手札

Netkiller Python 手札

Netkiller Testing 手札

Netkiller Cryptography 手札

Netkiller Perl 手札

Netkiller Docbook 手札

Netkiller Project 手札

Netkiller Java 手札

Netkiller DevOps 手札

作業系統

Netkiller Linux 手札

Netkiller Debian 手札

Netkiller CentOS 手札

Netkiller FreeBSD 手札

Netkiller Shell 手札

Netkiller Security 手札

Netkiller Web 手札

Netkiller Monitoring 手札

Netkiller Storage 手札

Netkiller Mail 手札

Netkiller Multimedia 手札

資料庫

Netkiller Database 手札

Netkiller PostgreSQL 手札

Netkiller MySQL 手札

Netkiller NoSQL 手札

Netkiller LDAP 手札

網路裝置及其他

Netkiller Network 手札

Netkiller Cisco IOS 手札

Netkiller H3C 手札

Netkiller Amateur Radio 手札

您可以使用iBook閱讀當前文件


目錄

  • 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/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命令應立即報警,通知相關人員檢查。

2. 什麼要將Shell歷史記錄異地留痕並監控

首先我們將要使用者操作留痕,以方便隨時調閱,我們要知道系統管理員做了那些操作,還可用於審計工作。例如我們開發工作中有一個環節就是Code Review (程式碼審查),可以幫助我們提前發現BUG,以及不合理做法,甚至是人為惡意植入後門等等。

歷史記錄異地留痕就是運維工作的 sysop review(運維審查)。

其次是監控,注意這裡的~/.bash_history監控並非實時監控,因為只有使用者推出shell後才能儲存~/.bash_history檔案。所以監控是滯後的,但也足夠能幫助我們更早的知道系統發生了那些變化。

3. 何時做歷史記錄異地留痕

這個系統可以實時部署,對現有的業務不會影響。

4. 在哪裡做歷史記錄異地留痕

歷史記錄異地留痕分為兩個部分,第一個部分是節點,第二部分是收集端,收集段同時還負責監控與報警。節點將收集的資料傳送給收集端,然後收集端歸檔日誌。

5. 角色與許可權

最高許可權著負責部署即可

6. 怎麼實現歷史記錄異地留痕

6.1. 節點配置

首先修改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			

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 << EOF
1220 neo
1221 jam
1222 sam
EOF				

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 << EOF
1220 /backup/neo/.bash_history
1221 /backup/jam/.bash_history
1222 /backup/sam/.bash_history
EOF			

7. 延伸閱讀

《日誌歸檔與資料探勘》