Linux下記錄所有用戶的操作命令,以方便後期審計

運維與研發人員一多,登錄服務器操作的情況越來越常見,爲了安全,有必要對登錄系統的每次操作都進行記錄,以方便後期瞭解,掌握,審計。

 

 

簡單解決辦法:

 

修改/etc/profile文件,在最後增加如下內容:

HISTFILESIZE=2000

HISTTIMEFORMAT="%Y%m%d-%H%M `whoami`   "


保存文件,退出,輸入source /etc/profile,讓環境生效,或者退出終端,重新登錄也可以。

查看命令,在終端輸入history即可看到歷史命令的

wKioL1aMz0TCBPqjAALT5VHMTE0509.jpg


但這裏有個問題,因爲只是記錄了時間與命令,沒有記錄登錄的IP地址,後期的審計也不方便,爲防止以上情況,可以在/etc/profile文件中,進行完善,把以下兩條命令去掉,用新的內容進行填充。

HISTFILESIZE=2000

HISTTIMEFORMAT="%Y%m%d-%H%M `whoami`   "

 

 

新內容爲:

### add by lgh2 at 2016-01-06

#history

export HISTTIMEFORMAT="[%Y%m%d-%H%M-:%S]"

USER_IP=`who -u am i 2>/dev/null| awk '{print$NF}'|sed -e 's/[()]//g'`

HISTDIR=/var/log/.hist

if [ -z $USER_IP ]

then

 USER_IP=`hostname`

fi

if [ ! -d $HISTDIR ]

then

   mkdir -p$HISTDIR

   chmod 777$HISTDIR

fi

if [ ! -d $HISTDIR/${LOGNAME} ]

then

    mkdir -p $HISTDIR/${LOGNAME}

    chmod 300$HISTDIR/${LOGNAME}

fi

export HISTSIZE=4096

DT=`date +%Y%m%d_%H%M%S`

exportHISTFILE="$HISTDIR/${LOGNAME}/${USER_IP}.hist.$DT"

chmod 600 $HISTDIR/${LOGNAME}/*.hist* 2>/dev/null

###end by lgh2

 

解說:所有操作命令記錄存放在/var/log/.hist/{用戶}/目錄下,即使是同一個終端幾個不同的窗口,在該窗口退出或關閉時,該用戶目錄下會生產一個文件,多個窗口會生產多個文件,最後只要查看這些文件內容,就可以看出歷史操作了。

wKiom1aMzzzD5Hj7AABnkPQmzzs355.png

命令是記錄了,但從安全角度講,如果他清楚,所有操作均記錄了的話,是可以進入日誌記錄目錄,進行文件刪除或文件修改的,於是需要將這些文件及時傳到日誌收集服務器中,最好是作一個後臺實時監控進程,該目錄下有文件變化的話,直接觸發同步操作,把文件及時同步到日誌收集服務器,網上也有人把所有記錄實時通過日誌進程syslog,把日誌實時發至日誌服務器中。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章