Linux系統下活用History命令
導讀 | 下可透過history 檢視使用者所有的歷史操作記錄,在安全應急響應中起著非常重要的作用,但在未進行附加配置情況下,history 只能檢視使用者歷史操作記錄,並不能區分使用者以及操作時間,不便於審計分析。 |
當然,一些不好的操作習慣也可能透過命令歷史洩露敏感資訊。
下面我們來介紹如何讓history日誌記錄更細化,更便於我們審計分析。
預設情況下如下圖所示,沒有命令執行時間,不利於審計分析。
透過設定export HISTTIMEFORMAT=’\%F \%T ‘,讓歷史記錄中帶上命令執行時間。
注意”\%T”和後面的”’”之間有空格,不然檢視歷史記錄的時候,時間和命令之間沒有分割。
要一勞永逸,這個配置可以寫在/etc/profile中,當然如果要對指定使用者做配置,這個配置可以寫在/home/\$USER/.bash_profile中。
本文將以/etc/profile為例進行演示。
要使配置立即生效請執行source /etc/profile,我們再檢視history記錄,可以看到記錄中帶上了命令執行時間。
如果想要實現更細化的記錄,比如登陸過系統的使用者、IP地址、操作命令以及操作時間一一對應,可以透過在/etc/profile裡面加入以下程式碼實現
export HISTTIMEFORMAT="\%F \%T`who \-u am i 2>/dev/null| awk '{print $NF}'|sed \-e 's/[()]//g'``whoami`
注意空格都是必須的。
修改/etc/profile並載入後,history記錄如下,時間、IP、使用者及執行的命令都一一對應。
透過以上配置,我們基本上可以滿足日常的審計工作了,但瞭解系統的朋友應該很容易看出來,這種方法只是設定了環境變數,攻擊者unset掉這個環境變數,或者直接刪除命令歷史,對於安全應急來說,這無疑是一個災難。
針對這樣的問題,我們應該如何應對,下面才是我們今天的重點,透過修改bash原始碼,讓history記錄透過syslog傳送到遠端logserver中,大大增加了攻擊者對history記錄完整性破壞的難度。
首先下載bash原始碼,可以從gnu.org下載,這裡不做詳細說明了,系統需要安裝gcc等編譯環境。我們用bash4.4版本做演示。
修改原始碼:bashhist.c
修改原始碼config-top.h,取消/#define SYSLOG_HISTORY/這行的註釋
編譯安裝,編譯過程不做詳細說明,本文中使用的編譯引數為: ./configure --prefix=/usr/local/bash,安裝成功後對應目錄如下:
此時可以修改/etc/passwd中使用者 環境,也可以用編譯好的檔案直接替換原有的bash二進位制檔案,但最好對原檔案做好備份。
替換時要注意兩點:
1、一定要給可執行許可權,預設是有的,不過有時候下載到windows系統後,再上傳就沒有可執行許可權了,這裡一定要確定,不然你會後悔的;
2、替換時原bash被佔用,可以修改原使用者的bash環境後再進行替換。
檢視效果,我們發現history記錄已經寫到了/var/log/message中。
如果要寫到遠端logserver,需要配置syslog服務,具體配置這裡不做詳細講解,大家自己研究,傳送到遠端logserver效果如下圖所示。
透過以上手段,可以有效保證history記錄的完整性,避免攻擊者登入系統後,透過取消環境變數、刪除history記錄等方式抹掉操作行為,為安全審計、應急響應等提供了完整的原始資料。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2766256/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux下history命令用法Linux
- Linux下history命令簡單原理Linux
- linux下修改history命令儲存條數Linux
- linux-history命令Linux
- Linux history 命令詳解Linux
- AIX系統的History命令增加時間戳AI時間戳
- 【轉】Linux下history命令配置及高階應用Linux
- 活用Linux作業系統的後臺任務(轉)Linux作業系統
- Linux系統下強大的ethtool命令Linux
- Linux系統下find、locate命令如何使用?Linux
- linux history命令使用tip_ztLinux
- [20121121]關於linux下history命令.txtLinux
- Linux系統如何定製History輸出格式Linux
- Linux 基礎教程 44-history命令Linux
- linux中history命令的簡單使用Linux
- Linux系統命令之systemctl命令。Linux
- Linux常見命令(系統命令)Linux
- Linux 系統下檢視硬體資訊命令大全Linux
- Linux系統下使用split命令分割大檔案.Linux
- Linux系統命令大全。Linux
- Linux系統管理命令Linux
- Linux系統命令3Linux
- Linux常用系統命令Linux
- Linux系統命令與Solaris系統命令的對比Linux
- 在 RHEL/CentOS 系統上使用 YUM history 命令回滾升級操作CentOS
- 常見命令-history
- 乾貨丨Linux系統下強大的ethtool命令Linux
- Linux系統下常用的目錄操作命令有哪些?Linux
- 在Linux下檢視系統版本資訊命令總結Linux
- uname命令顯示系統資訊?linux系統運維命令Linux運維
- LINUX(十五)Linux系統管理命令Linux
- linux系統命令記錄Linux
- Linux 系統檢視命令Linux
- Linux系統命令及VimLinux
- <Linux系統minfo命令用法>Linux
- <Linux系統uname命令用法>Linux
- linux常用系統分析命令Linux
- linux系統檢視命令Linux