History 历史记录加入时间等信息
1、命令歷史記錄中加時間
默認情況下如下圖所示,沒有命令執(zhí)行時間,不利于審計分析。
通過設(shè)置export HISTTIMEFORMAT=’%F %T ',讓歷史記錄中帶上命令執(zhí)行時間。
注意”%T”和后面的”’”之間有空格,不然查看歷史記錄的時候,時間和命令之間沒有分割。
要一勞永逸,這個配置可以寫在/etc/profile中,當然如果要對指定用戶做配置,這個配置可以寫在/home/$USER/.bash_profile中。
本文將以/etc/profile為例進行演示。圖片要使配置立即生效請執(zhí)行source /etc/profile,我們再查看history記錄,可以看到記錄中帶上了命令執(zhí)行時間。
圖片
如果想要實現(xiàn)更細化的記錄,比如登陸過系統(tǒng)的用戶、IP地址、操作命令以及操作時間一一對應(yīng),可以通過在/etc/profile里面加入以下代碼實現(xiàn)
export HISTTIMEFORMAT="%F %Twho \-u am i 2>/dev/null| awk '{print $NF}'|sed \-e 's/[()]//g'``whoami
注意空格都是必須的。
圖片
修改/etc/profile并加載后,history記錄如下,時間、IP、用戶及執(zhí)行的命令都一一對應(yīng)。
圖片
通過以上配置,我們基本上可以滿足日常的審計工作了,但了解系統(tǒng)的朋友應(yīng)該很容易看出來,這種方法只是設(shè)置了環(huán)境變量,攻擊者unset掉這個環(huán)境變量,或者直接刪除命令歷史,對于安全應(yīng)急來說,這無疑是一個災(zāi)難。
針對這樣的問題,我們應(yīng)該如何應(yīng)對,下面才是我們今天的重點,通過修改bash源碼,讓history記錄通過syslog發(fā)送到遠程logserver中,大大增加了攻擊者對history記錄完整性破壞的難度。
2、修改bash源碼,支持syslog記錄
首先下載bash源碼,可以從gnu.org下載,這里不做詳細說明了,系統(tǒng)需要安裝gcc等編譯環(huán)境。我們用bash4.4版本做演示。
修改源碼:bashhist.c
圖片
修改源碼config-top.h,取消/#define SYSLOG_HISTORY/這行的注釋
圖片
編譯安裝,編譯過程不做詳細說明,本文中使用的編譯參數(shù)為:./configure --prefix=/usr/local/bash,安裝成功后對應(yīng)目錄如下:
圖片
此時可以修改/etc/passwd中用戶shell環(huán)境,也可以用編譯好的文件直接替換原有的bash二進制文件,但最好對原文件做好備份。
替換時要注意兩點:
1、一定要給可執(zhí)行權(quán)限,默認是有的,不過有時候下載到windows系統(tǒng)后,再上傳就沒有可執(zhí)行權(quán)限了,這里一定要確定,不然你會后悔的;
2、替換時原bash被占用,可以修改原用戶的bash環(huán)境后再進行替換。
查看效果,我們發(fā)現(xiàn)history記錄已經(jīng)寫到了/var/log/message中。
如果要寫到遠程logserver,需要配置syslog服務(wù),具體配置這里不做詳細講解,大家自己研究,發(fā)送到遠端logserver效果如下圖所示。
圖片
通過以上手段,可以有效保證history記錄的完整性,避免攻擊者登錄系統(tǒng)后,通過取消環(huán)境變量、刪除history記錄等方式抹掉操作行為,為安全審計、應(yīng)急響應(yīng)等提供了完整的原始數(shù)據(jù)。
總結(jié)
以上是生活随笔為你收集整理的History 历史记录加入时间等信息的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 宽带出租中节省带宽成本的妙招,一号双拨方
- 下一篇: cudagpus是什么_如何在cuda中