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