如何设置linux的系统日志审计功能
在linux系统中可通过history查看用户所有的历史操作记录的,并且操作命令都会存在.bash_history文件中,通过查看这个文件可以查到所有的执行命令,有助于运维的审查和历史排查,但是在黑客入侵的时候也很可能会被黑客利用,也会删除这个文件,毁灭痕迹,我们为了保护历史执行命令,下面我们介绍安全设置。
让history记录shell命令的执行时间设置
修改/etc/bashrc文件
HISTFILESIZE=4000
HISTSIZE=4000
HISTTIMEFORMAT='%F %T'
export HISTTIMEFORMAT
其中,HISTFILESIZE定义了在.bash_history文件中保存命令的记录总数,默认值是1000,这里设置为4000;HISTSIZE定义了history命令输出的记录总数;HISTTIMEFORMAT定义时间显示格式,这里的格式与date命令后的“+"%F %T"”是一致的;HISTTIMEFORMAT作为history的时间变量将值传递给history命令。
设置完之后在执行history命令就可以看到命令的执行时间了
为了防止篡改下面我们设置系统变量来实现记录操作的用户、IP地址、shell命令以及操作时间等,并将这些信息以文件保存在一个自定义的一个安全的地方,可以供运维人员系统审计和故障排查等。
下面是变量设置的内容
#history
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
HISTDIR=/usr/share/.history
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=4000
DT=`date +%Y%m%d_%H%M%S`
export HISTFILE="$HISTDIR/${LOGNAME}/${USER_IP}.history.$DT"
export HISTTIMEFORMAT="[%Y.%m.%d %H:%M:%S]"
chmod 600 $HISTDIR/${LOGNAME}/*.history* 2>/dev/null
实现的效果

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。