![如何解码审计日志](https://linux22.com/image/135079/%E5%A6%82%E4%BD%95%E8%A7%A3%E7%A0%81%E5%AE%A1%E8%AE%A1%E6%97%A5%E5%BF%97.png)
我正在审核 nfs 共享中的文件。当我使用命令查看审核日志时ausearch -f /var/nfs/general
,我得到一些如下所示的日志:
time->Tue Jun 12 16:23:34 2018
type=PROCTITLE msg=audit(1528800814.660:2782): proctitle=636174002F7661722F6E66732F67656E6572616C2F6E6673312E747874
type=PATH msg=audit(1528800814.660:2782): item=0 name="/var/nfs/general/nfs1.txt" inode=4063539 dev=08:01 mode=0100664 ouid=1001 ogid=1001 rdev=00:00 nametype=NORMAL
type=CWD msg=audit(1528800814.660:2782): cwd="/home/test"
type=SYSCALL msg=audit(1528800814.660:2782): arch=c000003e syscall=2 success=yes exit=3 a0=7ffc2c53c824 a1=0 a2=20000 a3=69d items=1 ppid=31104 pid=7295 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts18 ses=4294967295 comm="cat" exe="/bin/cat" key=(null)
现在如何获取访问nfs共享文件的客户端的IP地址和主机名?
还有其他方法可以找到这些详细信息吗?
我想收集详细信息,例如时间、日期、客户端的 IP 地址、客户端主机名、发生的事件(例如读取、写入、重命名、更改文件所有权、删除或在 nfs 文件夹中创建文件)。
收集到的详细信息将放入一个单独的文件中,该文件可用于进一步的目的。
我怎样才能做到这一点?
答案1
恐怕您无法使用标准的内核 NFS 服务器来做到这一点。审计子系统审计系统调用(从用户空间到内核的调用),并且 NFS 不会执行此类 I/O 操作的系统调用,因为 NFS 服务器直接在内核内部运行。
获取 NFS 操作日志的一些可能方法包括:
- 使用启用 NFS 调试日志记录
rpcdebug
并处理生成的日志。 - 使用该框架跟踪有趣的 NFS 操作
ftrace
。 - 切换到用户空间 NFS 服务器,例如 Ganesha。 (我不确定它是否可以记录访问。如果不能,您必须自己实现。)
如果您想知道,您提到的审核记录与 NFS 无关,那只是cat /var/nfs/general/nfs1.txt
本地运行的人。