1. 程式人生 > >linux系統監控:記錄用戶操作軌跡,誰動過服務器

linux系統監控:記錄用戶操作軌跡,誰動過服務器

linux linux script linux安全 linux系統監控 甘兵

1、前言

我們在實際工作當中,都碰到過誤操作、誤刪除、誤修改過配置文件等等事件。對於沒有堡壘機的公司來說,要在linux系統上深究到底誰做過配置文件的修改、做過誤刪除是很頭疼的事情,特別是遇到刪庫跑路的事件,更頭大了。當然你可以通過history來查看歷史命令記錄,如果把history記錄塗抹掉了,是不是啥也看不到了,如果你想查看在某個時間段到底是誰通過vim編輯過某個文件呢?

那麽,有什麽辦法可以看見這些操作呢,答案是一定有的,具體怎麽實現呢,linux script命令正有如此強大的功能,可以滿足我們的需求,script可以記錄終端會話,只要是linux6.3以上的系統,都會自帶script命令,下面我用centos 7系統來測試一下。


2、配置

2.1 驗證script命令(我這裏是有的)

[root@localhost ~]# which script
/usr/bin/script


2.2 配置profile文件,在末尾添加如下內容:

[root@localhost ~]# vim /etc/profile

if [ $UID -ge 0 ]; then
        exec /usr/bin/script -t 2>/var/log/script/$USER-$UID-`date +%Y%m%d%H%M`.date -a -f -q /var/log/script/$USER-$UID-`date +%Y%m%d%H%M`.log
fi
參數:
    -t    指明輸出錄制的時間數據
    -f     如果需要在輸出到日誌文件的同時,也可以查看日誌文件的內容,可以使用 -f 參數。PS:可以用於教學,兩個命令行接-f可以實時演示
    -a     輸出錄制的文件,在現有內容上追加新的內容
    -q     可以使script命令以靜默模式運行


如下圖所示:

技術分享圖片

說明:

用戶登錄執行的操作都會記錄到/var/log/script/*.log 裏(保存日誌的目錄根據你自己定義),我們可以通過more、vi等命令查看目錄裏的日誌。


註意:

  • 我這裏把用戶ID大於0的都記錄下來了,你可以重新登錄用戶,隨便操作一些命令,查看生成的文件。

  • root用戶的ID為0,新建普通用戶的UID是從500開始的(通過cat /etc/password可以查看用戶的UID),如果你不想記錄root用戶的操作,你把if裏面的值改成500: if [ $UID - ge 500 ];


2.3 創建目錄、賦予權限

你是不是以為寫了這條if語句在/etc/profile文件中就完事了,目錄都沒創建呢:

[root@localhost ~]# mkdir /var/log/script

#最好給個777的權限,我用744的權限反正也生效
[root@localhost ~]# chmod 777 /var/log/script/


2.4 使環境生效

[root@localhost ~]# source  /etc/profile


3、驗證

好了,你可以退出linux終端,在重新登錄一下,然後隨便敲幾個命令來看看。

[root@localhost ~]# cd /var/log/script/
[root@localhost script]# ll
total 16
-rw-r--r-- 1 root root   68 Dec 22 15:46 root-0-201712221545.date
-rw-r--r-- 1 root root  111 Dec 22 15:46 root-0-201712221545.log
-rw-r--r-- 1 root root    0 Dec 22 15:46 root-0-201712221546.date
-rw-r--r-- 1 root root 5693 Dec 22 15:46 root-0-201712221546.log

從上圖可以看到,在/var/log/script目錄中,已經產生了log和data為後綴的文件,並且還看到了root用戶和UID號0。

.log:記錄了操作

.data:可以回放操作


我們用scriptreplay來回放一下操作,看下效果如保:

[root@localhost script]# scriptreplay root-0-201712221545.date root-0-201712221545.log

註意:先指定“時間文件 .data”,然後是“命令文件 .log”,不要顛倒了

以上就完也了記錄用戶的所有操作,並且還可以隨時查看,相當於有回放功能,像錄像一樣,以後定位是誰的問題就好找原因了。


linux系統監控:記錄用戶操作軌跡,誰動過服務器