Linux下記錄全部用戶的操做命令,以方便後期審計

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

 

 

簡單解決辦法:服務器

 

修改/etc/profile文件,在最後增長以下內容:運維

HISTFILESIZE=2000ide

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


保存文件,退出,輸入source /etc/profile,讓環境生效,或者退出終端,從新登陸也能夠。日誌

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

wKioL1aMz0TCBPqjAALT5VHMTE0509.jpg


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

HISTFILESIZE=2000進程

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

 

 

新內容爲:

### 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,把日誌實時發至日誌服務器中。

相關文章
相關標籤/搜索