Linux History操作日志配置

History记录了用户操作命令,但没有记录来源ip地址、操作用户、操作时间等,且用户可以清空History记录,一旦服务器出现问题,很难调查取证和审计用户操作。

在没有堡垒机的情况下,可以通过logger将History中的操作命令记录到系统日志中。此方法实时记录用户操作,且记录来源ip地址、操作用户、操作时间、操作命令等。

HISTORY日志配置步骤:

1.使用root权限修改/etc/profile文件,增加 history操作日志配置,内容如下:

export HISTTIMEFORMAT=”[%Y-%m-%d %H:%M:%S] [`who am i 2>/dev/null|awk ‘{print $NF}’|sed -e ‘s/[()]//g’`]”

export PROMPT_COMMAND=’\

if [ -z “$OLD_PWD” ];then

export OLD_PWD=$PWD;

fi;

if [ ! -z “$LAST_CMD” ] && [ “$(history 1)” != “$LAST_CMD” ];then

logger -t `whoami`_shell_cmd “[$OLD_PWD]$(history 1)”;

fi;

export LAST_CMD=”$(history 1)”;

export OLD_PWD=$PWD;’

2.执行命令,使配置内容立即生效

source /etc/profile

3.配置完成后重新启动rsyslog服务

service rsyslog restart

4.日志记录文件及日志格式

logger命令默认的日志保存在 /var/log/messages中。

日志格式如下:

如查看示例图中user1相关操作命令,可执行命令:

grep ‘user1_shell_cmd’ /var/log/messages