我如何logging在Linux上执行的所有命令,包括它们的命令行参数(参数)?
所以,例如,如果有人跑:
rm -rf /tmp/foo
我会看到类似这样的日志条目:
2016-01-01 18:00:00 user=bob command='rm -rf /tmp/foo'
而不只是这个:
2016-01-01 18:00:00 user=bob command='rm'
我只能find不logging命令行参数(参数)的auditd用法。 有没有办法正确configurationauditd来logging这个? 看起来FreeBSD有一种设置argv策略的方式 ,但是这似乎并不存在于Debian衍生产品中。
你有没有尝试发送历史logging到系统日志?
许多例子之一
https://jablonskis.org/2011/howto-log-bash-history-to-syslog/index.html
审计是真正的整洁:)通过适当的configuration,你可以看到所有这些事件(我会给你一个例子从我的服务器)所以你可以看到,在我的ausearch输出,你可以看到/ bin / rm被调用,还有被删除的文件(我把真正的path改成了/ tmp / X *,正如你所看到的,它把所有参数a1到a8)。 如果这是你想要的,我可以给你一些我的configuration,以及一些我用来configurationauditd的指南。
time->Thu May 28 11:35:01 2015 type=PATH msg=audit(1432812901.638:4583880): item=1 name=(null) inode=57348 dev=08:02 mode=0100755 ouid=0 ogid=0 rdev=00:00 type=PATH msg=audit(1432812901.638:4583880): item=0 name="/bin/rm" inode=8252 dev=08:02 mode=0100755 ouid=0 ogid=0 rdev=00:00 type=CWD msg=audit(1432812901.638:4583880): cwd="XXX" type=EXECVE msg=audit(1432812901.638:4583880): argc=9 a0="rm" a1="-r" a2="/tmp/*" a3="/tmp/XX" a4="/tmp/XXX" a5="/tmp/XXXX" a6="/tmp/XXXXX" a7="/tmp/XXXXXXX" a8="/tmp/XXXXXXX" type=SYSCALL msg=audit(1432812901.638:4583880): arch=c000003e syscall=59 success=yes exit=0 a0=1d27830 a1=1d27e20 a2=1d26870 a3=7fff70cfb2d0 items=2 ppid=10230 pid=10231 auid=1105 uid=1105 gid=1005 euid=1105 suid=1105 fsuid=1105 egid=1005 sgid=1005 fsgid=1005 tty=(none) ses=35220 comm="rm" exe="/bin/rm" key=(null)