合理使用shell历史命令记录功能

在Linux下可通过history命令查看用户所有的历史操作记录,同时shell命令操作记录默认保存在用户目录下的.bash_history文件中,通过这个文件可以查询shell命令的执行历史,有助于运维人员进行系统审计和问题排查,同时,在服务器遭受黑客攻击后,也可以通过这个命令或文件查询黑客登录服务器所执行的历史命令操作。但是有时候黑客在入侵服务器后为了毁灭痕迹,可能会删除.bash_history文件,这就需要合理保护或备份.bash_history文件。下面介绍下history日志文件的安全配置方法。默认的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命令。

为了确保服务器的安全,保留shell命令的执行历史是非常有用的一条技巧。虽然shell有历史功能,但是这个功能并非针对审计目的而设计,因此很容易被黑客篡改或丢失。下面再介绍一种方法,可以实现详细记录登录过系统的用户、IP地址、shell命令以及详细操作时间等,并将这些信息以文件的形式保存在一个安全的地方,以供系统审计和故障排查。将下面这段代码添加到/etc/profile文件中,即可实现上述功能。

#historyUSER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`HISTDIR=/usr/share/.historyif [ -z $USER_IP ]thenUSER_IP=`hostname`fi

?

2014-11-25 08:01:50if [ ! -d $HISTDIR ]thenmkdir -p $HISTDIRchmod 777 $HISTDIRfiif [ ! -d $HISTDIR/${LOGNAME} ]thenmkdir -p $HISTDIR/${LOGNAME}chmod 300 $HISTDIR/${LOGNAME}fiexport HISTSIZE=4000DT=`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这段代码将每个用户的shell命令执行历史以文件的形式保存在/usr/share/.history目录中,每个用户一个文件夹,并且文件夹下的每个文件以IP地址加shell命令操作时间的格式命名。下面是user01用户执行shell命令的历史记录文件,基本效果如下:[root@server user01]# pwd/usr/share/.history/user01[root@server user01]# ls -al-rw——- 1 user01 wheel 56 Jul 6 17:07 192.168.12.12.history.20130706_164512-rw——- 1 user01 wheel 43 Jul 6 17:42 192.168.12.12.history.20130706_172800-rw——- 1 user01 wheel 22 Jul 7 12:05 192.168.12.19.history.20130707_111123-rw——- 1 user01 wheel 22 Jul 8 13:41 192.168.12.20.history.20130708_120053-rw——- 1 user01 wheel 22 Jul 1 15:28 192.168.12.186.history.20130701_150941-rw——- 1 user01 wheel 22 Jul 2 19:47 192.168.12.163.history.20130702_193645-rw——- 1 user01 wheel 22 Jul 3 12:38 192.168.12.19.history.20130703_120948-rw——- 1 user01 wheel 22 Jul 3 19:14 192.168.12.134.history.20130703_183150保存历史命令的文件夹目录要尽量隐蔽,避免被黑客发现后删除。


未经允许不得转载:独自一人 » 合理使用shell历史命令记录功能

抱最大的希望,为最大的努力,做最坏的打算

合理使用shell历史命令记录功能

相关文章:

你感兴趣的文章:

标签云: