Linux下记录所有用户的操作命令,以方便后期审计
2016-01-06 16:25
671 查看
运维与研发人员一多,登录服务器操作的情况越来越常见,为了安全,有必要对登录系统的每次操作都进行记录,以方便后期了解,掌握,审计。
简单解决办法:
修改/etc/profile文件,在最后增加如下内容:
HISTFILESIZE=2000
HISTTIMEFORMAT="%Y%m%d-%H%M `whoami` "
保存文件,退出,输入source /etc/profile,让环境生效,或者退出终端,重新登录也可以。
查看命令,在终端输入history即可看到历史命令的
但这里有个问题,因为只是记录了时间与命令,没有记录登录的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/{用户}/目录下,即使是同一个终端几个不同的窗口,在该窗口退出或关闭时,该用户目录下会生产一个文件,多个窗口会生产多个文件,最后只要查看这些文件内容,就可以看出历史操作了。
简单解决办法:
修改/etc/profile文件,在最后增加如下内容:
HISTFILESIZE=2000
HISTTIMEFORMAT="%Y%m%d-%H%M `whoami` "
保存文件,退出,输入source /etc/profile,让环境生效,或者退出终端,重新登录也可以。
查看命令,在终端输入history即可看到历史命令的
但这里有个问题,因为只是记录了时间与命令,没有记录登录的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/{用户}/目录下,即使是同一个终端几个不同的窗口,在该窗口退出或关闭时,该用户目录下会生产一个文件,多个窗口会生产多个文件,最后只要查看这些文件内容,就可以看出历史操作了。
命令是记录了,但从安全角度讲,如果他清楚,所有操作均记录了的话,是可以进入日志记录目录,进行文件删除或文件修改的,于是需要将这些文件及时传到日志收集服务器中,最好是作一个后台实时监控进程,该目录下有文件变化的话,直接触发同步操作,把文件及时同步到日志收集服务器,网上也有人把所有记录实时通过日志进程syslog,把日志实时发至日志服务器中。
相关文章推荐
- Linux 日志系统组成详解
- Awstats处理多apache日志
- 典型入侵日志分析
- MS SQL Server数据库清理错误日志的方法
- 对MySQL日志操作的一些基本命令总结
- 简介操作MySQL日志的一些方法
- MySQL的日志基础知识及基本操作学习教程
- MSSQL 2005/2008 日志压缩清理方法小结
- SQL Server误区30日谈 第19天 Truncate表的操作不会被记录到日志
- C#3.0使用EventLog类写Windows事件日志的方法
- MySQL中查询日志与慢查询日志的基本学习教程
- mysql binlog二进制日志详解
- C#实现线程安全的简易日志记录方法
- C#实现将程序运行信息写入日志的方法
- ORACLE DATAGUARD中手工处理日志v$archive_GAP的方法
- 某个aspx页面突然死了连日志也没有的解决方法
- 如何查看数据库alert日志文件
- Oralce数据导入出现(SYSTEM.PROC_AUDIT)问题处理方法
- 解析php如何将日志写进syslog
- 日志中的秘密 Windows登录类型知多少?