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,把日志实时发至日志服务器中。

相关文章
相关标签/搜索