配置rsyslog以记录所有命令

时间:2015-03-16 11:22:10

标签: linux logging centos rsyslog

我有一个CentOS 6.6,我想配置rsyslog来登录/ var / log / secure每个root用户或普通用户插入的命令。

1 个答案:

答案 0 :(得分:0)

在没有rsyslog配置的情况下尝试此操作

Snoopy是一个很小的库,可以记录系统上所有已执行的命令(+参数)。

https://github.com/a2o/snoopy

这些是CentOS上的默认输出位置:/ var / log / secure

这就是典型的史努比输出:

 2015-02-11T19:05:10+00:00 labrat-1 snoopy[896]: [uid:0 sid:11679 tty:/dev/pts/2 cwd:/root filename:/usr/bin/cat]: cat /etc/fstab.BAK
 2015-02-11T19:05:15+00:00 labrat-1 snoopy[896]: [uid:0 sid:11679 tty:/dev/pts/2 cwd:/root filename:/usr/bin/rm]: rm -f /etc/fstab.BAK
 2015-02-11T19:05:19+00:00 labrat-1 snoopy[896]: [uid:0 sid:11679 tty:/dev/pts/2 cwd:/root filename:/usr/bin/tail]: tail -f /var/log/messages

使用rsyslog config

对于BASH shell,编辑系统范围的BASH运行时配置文件:

sudo -e /etc/bash.bashrc

追加到该文件的末尾:

 export PROMPT_COMMAND='RETRN_VAL=$?;logger -p local6.debug "$(whoami) [$$]: $(history 1 | sed "s/^[ ]*[0-9]\+[ ]*//" ) [$RETRN_VAL]"'

使用新文件设置“local6”的日志记录:

 sudo -e /etc/rsyslog.d/bash.conf

内容......

 local6.*    /var/log/secure

重启rsyslog:

sudo service rsyslog restart

https://askubuntu.com/questions/93566/how-to-log-all-bash-commands-by-all-users-on-a-server