![FreeBSD:当文件和文件夹被打开、读取、移动、删除或修改时,如何使用auditd 进行日志记录?](https://linux22.com/image/154049/FreeBSD%EF%BC%9A%E5%BD%93%E6%96%87%E4%BB%B6%E5%92%8C%E6%96%87%E4%BB%B6%E5%A4%B9%E8%A2%AB%E6%89%93%E5%BC%80%E3%80%81%E8%AF%BB%E5%8F%96%E3%80%81%E7%A7%BB%E5%8A%A8%E3%80%81%E5%88%A0%E9%99%A4%E6%88%96%E4%BF%AE%E6%94%B9%E6%97%B6%EF%BC%8C%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8auditd%20%E8%BF%9B%E8%A1%8C%E6%97%A5%E5%BF%97%E8%AE%B0%E5%BD%95%EF%BC%9F.png)
auditd
当文件和文件夹被打开、读取、移动、删除或修改时,如何使用日志记录?查看资料这里,我不知道如何完成任务。
我正在尝试获取 FreeBSD 系统上的文件夹和文件访问/修改的日志。文件访问是通过 Samba 共享进行的,我通过 SMB 进行日志记录,但在某些罕见的情况下,SMB 不会记录事件(就像今天移动文件夹时,它没有被记录,但我稍后移动了一个文件夹并被记录) 。因此,我正在寻找更准确的替代方案。
更新auditd
以下是在 FreeNAS 11 FreeBSD 系统上 不起作用的内容。
检查内核编译时使用的选项(寻找 AUDIT):
sysctl kern.conftxt | grep AUDIT
> options AUDIT
我的/etc/security/audit_control
#
# $FreeBSD$
#
dir:/var/audit
dist:off
flags:lo,aa,fr,fw,cl,fa,fc,fd
minfree:5
naflags:lo,aa
policy:cnt,argv
filesz:2M
expire-after:10M
我的/etc/security/audit_user
:
#
# $FreeBSD$
#
testuser:lo,aa,fr,fw,cl,fa,fc,fd:no
root:lo:no
service auditd restart && service auditd status
结果:
Trigger sent.
Starting auditd.
auditd is running as pid 45763.
基于man audit_user
页面
标志字段设置可归因事件的系统范围默认预选掩码。在上面的示例中,将对所有用户成功和失败的登录/注销事件以及身份验证和授权进行审核。
我至少应该获取 testuser 和 root 的登录/注销日志。并且因为:
每用户和全局审核预选配置在登录时进行评估,因此用户必须注销并重新登录才能使与预选相关的审核更改生效。
然后我通过 ssh 注销并以 testuser 身份重新登录,创建了一些目录和文件,然后删除了它们。我通过 SMB 共享做了同样的事情,然后以 root 身份登录来检查踪迹。
praudit /var/audit/current
结果:
header,56,11,audit startup,0,Fri May 24 09:50:23 2019, + 398 msec
text,auditd::Audit startup
return,success,0
trailer,56
使用以下命令检查所有可用路径praudit /var/audit/*
:
header,56,11,audit startup,0,Wed May 22 14:41:33 2019, + 781 msec
text,auditd::Audit startup
return,success,0
trailer,56
header,56,11,audit startup,0,Thu May 23 18:44:10 2019, + 766 msec
text,auditd::Audit startup
return,success,0
trailer,56
header,56,11,audit startup,0,Thu May 23 18:54:51 2019, + 31 msec
text,auditd::Audit startup
return,success,0
trailer,56
header,56,11,audit startup,0,Thu May 23 18:55:04 2019, + 451 msec
text,auditd::Audit startup
return,success,0
trailer,56
header,56,11,audit startup,0,Thu May 23 18:55:04 2019, + 451 msec
text,auditd::Audit startup
return,success,0
trailer,56
我没有看到任何日志。
答案1
中的说明16.3。审计配置实际上非常清楚并且切题。你提出问题,甚至没有解释你已经尝试过什么以及从中学到了什么。但让我们尝试引导您完成这些步骤。一般来说,您只需要启动该服务(与任何其他服务一样)。检查输出。然后进行适当的更改。
首先遵循有关如何启动审计子系统的部分:
sysrc auditd_enable=YES
并启动服务:
service auditd start
就如此容易!现在您的系统上正在运行审核。现在让我们来看看16.3.2.1。 audit_control 文件:
dir:/var/audit
dist:off
flags:lo,aa
minfree:5
naflags:lo,aa
policy:cnt,argv
filesz:2M
expire-after:10M
记下dir
和flags
。首先查看/var/audit
指定的目录dir
。auditd
启动后您会注意到有 2 个新文件。一个以日期命名的活动日志文件.not_terminated
和一个名为 的链接current
。这就是您的日志存储的位置。如果您浏览这些文件,您会发现它们是二进制格式的。那我们就作弊看看下一章:16.4。使用审计跟踪。这表明我们用来praudit
获取明文。再次登录系统并注意如何使用以下命令记录它:
praudit /var/audit/current
它看起来像这样:
header,56,11,audit startup,0,Thu May 23 16:18:46 2019, + 609 msec
text,auditd::Audit startup
return,success,0
trailer,56
header,97,11,OpenSSH login,0,Thu May 23 16:21:03 2019, + 443 msec
subject_ex,clan,clan,clan,clan,clan,82938,82938,57698,212.60.115.22
text,successful login clan
return,success,0
trailer,97
header,92,11,logout - local,0,Thu May 23 16:21:15 2019, + 90 msec
subject_ex,clan,clan,clan,clan,clan,82938,82938,57698,212.60.115.22
text,sshd logout clan
return,success,0
trailer,92
首先我们看到auditd的启动。然后你会看到我登录。然后注销。
现在我们已经确认可以开始使用审核系统。然后我们可以继续查看您的具体要求。您要求:
打开、读取、移动、删除或修改
然后我们查看表中16.3.1.事件选择表达式并找到最相关的:
fr file read Audit events in which data is read or files are opened for reading.
fw file write Audit events in which data is written or files are written or modified.
cl file close Audit calls to the close system call.
也许您对以下内容感兴趣:
fa file attribute access Audit the access of object attributes such as stat(1) and pathconf(2).
fc file create Audit events where a file is created as a result.
fd file delete Audit events where file deletion occurs.
有了这些知识,我们现在可以设置flags
in /etc/security/audit_control
:
flags:fr,fw,cl,fa,fc,fd
或者,如果您也想保留默认值:
flags:lo,aa,fr,fw,cl,fa,fc,fd
如果您觉得自己没有得到想要的一切 - 那么请all
检查您需要哪些事件类:
flags:all
重新启动auditd
以使更改生效:
service auditd restart
到目前为止,这已经是整个系统范围内的事情了。如果您想限制仅对特定用户进行审核,您可以继续/etc/security/audit_user
:
sambauser:fr,fw,cl,fa,fc,fd:no
您甚至可以进一步微调并指定您是否只需要成功或失败的事件。
记住男人
请记住,FreeBSD 通常有相当完善的文档。除了 FreeBSD 手册(您已经参考过)之外,您还有一个很棒的工具man
:
man auditd
man audit_config
man praudit
手册页是最新的,包含许多有价值且易于获取的系统信息。如果您愿意,可以浏览器在线的