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 中。
日志格式如下:

附录 1:
查看 user1 相关操作命令
# grep ‘user1_shell_cmd’ /var/log/messages