目前,我们使用 Snoopy 来监控用户在一些外部可访问的服务器上发出的所有命令。我们正在将所有内容更新到 RHEL8 以确保可支持性和合规性,并发现我心爱的史努比不再维护。所以它不会通过合规性审核,需要更换。
我通过在 system-auth 和 password-auth 中启用“pam_tty_audit.so”来研究使用 auditd 来做到这一点。这确实奏效了,但输出是,好吧,让我们说它不太理想。更不用说基本上不可读了。
我尝试通过添加这个来设置 /etc/profile 来记录...
function log2syslog
{
declare COMMAND
COMMAND=$(fc -ln -0)
logger -p local1.notice -t bash -i -- "${USER}:${COMMAND}"
}
trap log2syslog DEBUG
Run Code Online (Sandbox Code Playgroud)
并将其添加到 /etc/rsyslog.conf
local1.* -/var/log/cmdline
Run Code Online (Sandbox Code Playgroud)
它很好用!但该解决方案被拒绝,因为它可以被用户覆盖。
我什至尝试使用 rootsh 作为用户的 shell 并记录下来。记录良好,但上面没有时间/日期戳。所以不能接受。
所以回到手头的问题。我需要替换 Snoopy,它以带有时间戳的可读格式记录执行的每个命令,用户无法覆盖。
有什么想法吗?